1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // Singly or Multiply-included shared traits file depending on circumstances.
6 // This allows the use of IPC serialization macros in more than one IPC message
8 #ifndef CONTENT_PUBLIC_COMMON_COMMON_PARAM_TRAITS_MACROS_H_
9 #define CONTENT_PUBLIC_COMMON_COMMON_PARAM_TRAITS_MACROS_H_
11 #include "content/public/common/console_message_level.h"
12 #include "content/public/common/page_transition_types.h"
13 #include "content/public/common/password_form.h"
14 #include "content/public/common/security_style.h"
15 #include "content/public/common/ssl_status.h"
16 #include "ipc/ipc_message_macros.h"
17 #include "net/base/request_priority.h"
18 #include "third_party/WebKit/public/platform/WebPoint.h"
19 #include "third_party/WebKit/public/platform/WebRect.h"
20 #include "third_party/WebKit/public/platform/WebReferrerPolicy.h"
21 #include "third_party/WebKit/public/platform/WebURLRequest.h"
22 #include "ui/base/window_open_disposition.h"
23 #include "webkit/common/webpreferences.h"
24 #include "webkit/plugins/webplugininfo.h"
26 #undef IPC_MESSAGE_EXPORT
27 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT
29 IPC_ENUM_TRAITS(content::ConsoleMessageLevel
)
30 IPC_ENUM_TRAITS(content::PageTransition
)
31 IPC_ENUM_TRAITS(content::SecurityStyle
)
32 IPC_ENUM_TRAITS(WebKit::WebReferrerPolicy
)
33 IPC_ENUM_TRAITS(WindowOpenDisposition
)
34 IPC_ENUM_TRAITS(webkit_glue::EditingBehavior
)
35 IPC_ENUM_TRAITS(content::PasswordForm::Type
)
36 IPC_ENUM_TRAITS(net::RequestPriority
)
38 IPC_STRUCT_TRAITS_BEGIN(WebKit::WebPoint
)
39 IPC_STRUCT_TRAITS_MEMBER(x
)
40 IPC_STRUCT_TRAITS_MEMBER(y
)
41 IPC_STRUCT_TRAITS_END()
43 IPC_STRUCT_TRAITS_BEGIN(WebKit::WebRect
)
44 IPC_STRUCT_TRAITS_MEMBER(x
)
45 IPC_STRUCT_TRAITS_MEMBER(y
)
46 IPC_STRUCT_TRAITS_MEMBER(width
)
47 IPC_STRUCT_TRAITS_MEMBER(height
)
48 IPC_STRUCT_TRAITS_END()
50 IPC_STRUCT_TRAITS_BEGIN(content::PasswordForm
)
51 IPC_STRUCT_TRAITS_MEMBER(signon_realm
)
52 IPC_STRUCT_TRAITS_MEMBER(origin
)
53 IPC_STRUCT_TRAITS_MEMBER(action
)
54 IPC_STRUCT_TRAITS_MEMBER(submit_element
)
55 IPC_STRUCT_TRAITS_MEMBER(username_element
)
56 IPC_STRUCT_TRAITS_MEMBER(username_value
)
57 IPC_STRUCT_TRAITS_MEMBER(other_possible_usernames
)
58 IPC_STRUCT_TRAITS_MEMBER(password_element
)
59 IPC_STRUCT_TRAITS_MEMBER(password_value
)
60 IPC_STRUCT_TRAITS_MEMBER(password_autocomplete_set
)
61 IPC_STRUCT_TRAITS_MEMBER(old_password_element
)
62 IPC_STRUCT_TRAITS_MEMBER(old_password_value
)
63 IPC_STRUCT_TRAITS_MEMBER(ssl_valid
)
64 IPC_STRUCT_TRAITS_MEMBER(preferred
)
65 IPC_STRUCT_TRAITS_MEMBER(blacklisted_by_user
)
66 IPC_STRUCT_TRAITS_MEMBER(type
)
67 IPC_STRUCT_TRAITS_MEMBER(times_used
)
68 IPC_STRUCT_TRAITS_END()
70 IPC_STRUCT_TRAITS_BEGIN(content::SSLStatus
)
71 IPC_STRUCT_TRAITS_MEMBER(security_style
)
72 IPC_STRUCT_TRAITS_MEMBER(cert_id
)
73 IPC_STRUCT_TRAITS_MEMBER(cert_status
)
74 IPC_STRUCT_TRAITS_MEMBER(security_bits
)
75 IPC_STRUCT_TRAITS_MEMBER(connection_status
)
76 IPC_STRUCT_TRAITS_MEMBER(content_status
)
77 IPC_STRUCT_TRAITS_END()
79 IPC_STRUCT_TRAITS_BEGIN(webkit::WebPluginMimeType
)
80 IPC_STRUCT_TRAITS_MEMBER(mime_type
)
81 IPC_STRUCT_TRAITS_MEMBER(file_extensions
)
82 IPC_STRUCT_TRAITS_MEMBER(description
)
83 IPC_STRUCT_TRAITS_MEMBER(additional_param_names
)
84 IPC_STRUCT_TRAITS_MEMBER(additional_param_values
)
85 IPC_STRUCT_TRAITS_END()
87 IPC_STRUCT_TRAITS_BEGIN(webkit::WebPluginInfo
)
88 IPC_STRUCT_TRAITS_MEMBER(name
)
89 IPC_STRUCT_TRAITS_MEMBER(path
)
90 IPC_STRUCT_TRAITS_MEMBER(version
)
91 IPC_STRUCT_TRAITS_MEMBER(desc
)
92 IPC_STRUCT_TRAITS_MEMBER(mime_types
)
93 IPC_STRUCT_TRAITS_MEMBER(type
)
94 IPC_STRUCT_TRAITS_MEMBER(pepper_permissions
)
95 IPC_STRUCT_TRAITS_END()
97 IPC_STRUCT_TRAITS_BEGIN(WebPreferences
)
98 IPC_STRUCT_TRAITS_MEMBER(standard_font_family_map
)
99 IPC_STRUCT_TRAITS_MEMBER(fixed_font_family_map
)
100 IPC_STRUCT_TRAITS_MEMBER(serif_font_family_map
)
101 IPC_STRUCT_TRAITS_MEMBER(sans_serif_font_family_map
)
102 IPC_STRUCT_TRAITS_MEMBER(cursive_font_family_map
)
103 IPC_STRUCT_TRAITS_MEMBER(fantasy_font_family_map
)
104 IPC_STRUCT_TRAITS_MEMBER(default_font_size
)
105 IPC_STRUCT_TRAITS_MEMBER(default_fixed_font_size
)
106 IPC_STRUCT_TRAITS_MEMBER(minimum_font_size
)
107 IPC_STRUCT_TRAITS_MEMBER(minimum_logical_font_size
)
108 IPC_STRUCT_TRAITS_MEMBER(default_encoding
)
109 IPC_STRUCT_TRAITS_MEMBER(javascript_enabled
)
110 IPC_STRUCT_TRAITS_MEMBER(web_security_enabled
)
111 IPC_STRUCT_TRAITS_MEMBER(javascript_can_open_windows_automatically
)
112 IPC_STRUCT_TRAITS_MEMBER(loads_images_automatically
)
113 IPC_STRUCT_TRAITS_MEMBER(images_enabled
)
114 IPC_STRUCT_TRAITS_MEMBER(plugins_enabled
)
115 IPC_STRUCT_TRAITS_MEMBER(dom_paste_enabled
)
116 IPC_STRUCT_TRAITS_MEMBER(inspector_settings
)
117 IPC_STRUCT_TRAITS_MEMBER(site_specific_quirks_enabled
)
118 IPC_STRUCT_TRAITS_MEMBER(shrinks_standalone_images_to_fit
)
119 IPC_STRUCT_TRAITS_MEMBER(uses_universal_detector
)
120 IPC_STRUCT_TRAITS_MEMBER(text_areas_are_resizable
)
121 IPC_STRUCT_TRAITS_MEMBER(java_enabled
)
122 IPC_STRUCT_TRAITS_MEMBER(allow_scripts_to_close_windows
)
123 IPC_STRUCT_TRAITS_MEMBER(remote_fonts_enabled
)
124 IPC_STRUCT_TRAITS_MEMBER(javascript_can_access_clipboard
)
125 IPC_STRUCT_TRAITS_MEMBER(xss_auditor_enabled
)
126 IPC_STRUCT_TRAITS_MEMBER(dns_prefetching_enabled
)
127 IPC_STRUCT_TRAITS_MEMBER(local_storage_enabled
)
128 IPC_STRUCT_TRAITS_MEMBER(databases_enabled
)
129 IPC_STRUCT_TRAITS_MEMBER(application_cache_enabled
)
130 IPC_STRUCT_TRAITS_MEMBER(tabs_to_links
)
131 IPC_STRUCT_TRAITS_MEMBER(hyperlink_auditing_enabled
)
132 IPC_STRUCT_TRAITS_MEMBER(is_online
)
133 IPC_STRUCT_TRAITS_MEMBER(user_style_sheet_enabled
)
134 IPC_STRUCT_TRAITS_MEMBER(user_style_sheet_location
)
135 IPC_STRUCT_TRAITS_MEMBER(author_and_user_styles_enabled
)
136 IPC_STRUCT_TRAITS_MEMBER(allow_universal_access_from_file_urls
)
137 IPC_STRUCT_TRAITS_MEMBER(allow_file_access_from_file_urls
)
138 IPC_STRUCT_TRAITS_MEMBER(webaudio_enabled
)
139 IPC_STRUCT_TRAITS_MEMBER(experimental_webgl_enabled
)
140 IPC_STRUCT_TRAITS_MEMBER(experimental_websocket_enabled
)
141 IPC_STRUCT_TRAITS_MEMBER(pinch_virtual_viewport_enabled
)
142 IPC_STRUCT_TRAITS_MEMBER(flash_3d_enabled
)
143 IPC_STRUCT_TRAITS_MEMBER(flash_stage3d_enabled
)
144 IPC_STRUCT_TRAITS_MEMBER(flash_stage3d_baseline_enabled
)
145 IPC_STRUCT_TRAITS_MEMBER(gl_multisampling_enabled
)
146 IPC_STRUCT_TRAITS_MEMBER(privileged_webgl_extensions_enabled
)
147 IPC_STRUCT_TRAITS_MEMBER(webgl_errors_to_console_enabled
)
148 IPC_STRUCT_TRAITS_MEMBER(accelerated_compositing_for_overflow_scroll_enabled
)
149 IPC_STRUCT_TRAITS_MEMBER(
150 accelerated_compositing_for_scrollable_frames_enabled
)
151 IPC_STRUCT_TRAITS_MEMBER(composited_scrolling_for_frames_enabled
)
152 IPC_STRUCT_TRAITS_MEMBER(mock_scrollbars_enabled
)
153 IPC_STRUCT_TRAITS_MEMBER(threaded_html_parser
)
154 IPC_STRUCT_TRAITS_MEMBER(show_paint_rects
)
155 IPC_STRUCT_TRAITS_MEMBER(asynchronous_spell_checking_enabled
)
156 IPC_STRUCT_TRAITS_MEMBER(unified_textchecker_enabled
)
157 IPC_STRUCT_TRAITS_MEMBER(accelerated_compositing_enabled
)
158 IPC_STRUCT_TRAITS_MEMBER(force_compositing_mode
)
159 IPC_STRUCT_TRAITS_MEMBER(accelerated_2d_canvas_enabled
)
160 IPC_STRUCT_TRAITS_MEMBER(minimum_accelerated_2d_canvas_size
)
161 IPC_STRUCT_TRAITS_MEMBER(antialiased_2d_canvas_disabled
)
162 IPC_STRUCT_TRAITS_MEMBER(accelerated_filters_enabled
)
163 IPC_STRUCT_TRAITS_MEMBER(gesture_tap_highlight_enabled
)
164 IPC_STRUCT_TRAITS_MEMBER(accelerated_compositing_for_plugins_enabled
)
165 IPC_STRUCT_TRAITS_MEMBER(accelerated_compositing_for_3d_transforms_enabled
)
166 IPC_STRUCT_TRAITS_MEMBER(accelerated_compositing_for_animation_enabled
)
167 IPC_STRUCT_TRAITS_MEMBER(accelerated_compositing_for_video_enabled
)
168 IPC_STRUCT_TRAITS_MEMBER(memory_info_enabled
)
169 IPC_STRUCT_TRAITS_MEMBER(fullscreen_enabled
)
170 IPC_STRUCT_TRAITS_MEMBER(allow_displaying_insecure_content
)
171 IPC_STRUCT_TRAITS_MEMBER(allow_running_insecure_content
)
172 IPC_STRUCT_TRAITS_MEMBER(enable_scroll_animator
)
173 IPC_STRUCT_TRAITS_MEMBER(visual_word_movement_enabled
)
174 IPC_STRUCT_TRAITS_MEMBER(password_echo_enabled
)
175 IPC_STRUCT_TRAITS_MEMBER(css_sticky_position_enabled
)
176 IPC_STRUCT_TRAITS_MEMBER(css_shaders_enabled
)
177 IPC_STRUCT_TRAITS_MEMBER(css_grid_layout_enabled
)
178 IPC_STRUCT_TRAITS_MEMBER(lazy_layout_enabled
)
179 IPC_STRUCT_TRAITS_MEMBER(region_based_columns_enabled
)
180 IPC_STRUCT_TRAITS_MEMBER(touch_enabled
)
181 IPC_STRUCT_TRAITS_MEMBER(device_supports_touch
)
182 IPC_STRUCT_TRAITS_MEMBER(device_supports_mouse
)
183 IPC_STRUCT_TRAITS_MEMBER(touch_adjustment_enabled
)
184 IPC_STRUCT_TRAITS_MEMBER(fixed_position_creates_stacking_context
)
185 IPC_STRUCT_TRAITS_MEMBER(sync_xhr_in_documents_enabled
)
186 IPC_STRUCT_TRAITS_MEMBER(deferred_image_decoding_enabled
)
187 IPC_STRUCT_TRAITS_MEMBER(should_respect_image_orientation
)
188 IPC_STRUCT_TRAITS_MEMBER(number_of_cpu_cores
)
189 IPC_STRUCT_TRAITS_MEMBER(editing_behavior
)
190 IPC_STRUCT_TRAITS_MEMBER(supports_multiple_windows
)
191 IPC_STRUCT_TRAITS_MEMBER(viewport_enabled
)
192 IPC_STRUCT_TRAITS_MEMBER(initialize_at_minimum_page_scale
)
193 IPC_STRUCT_TRAITS_MEMBER(smart_insert_delete_enabled
)
194 IPC_STRUCT_TRAITS_MEMBER(cookie_enabled
)
195 IPC_STRUCT_TRAITS_MEMBER(spatial_navigation_enabled
)
196 #if defined(OS_ANDROID)
197 IPC_STRUCT_TRAITS_MEMBER(text_autosizing_enabled
)
198 IPC_STRUCT_TRAITS_MEMBER(font_scale_factor
)
199 IPC_STRUCT_TRAITS_MEMBER(force_enable_zoom
)
200 IPC_STRUCT_TRAITS_MEMBER(double_tap_to_zoom_enabled
)
201 IPC_STRUCT_TRAITS_MEMBER(user_gesture_required_for_media_playback
)
202 IPC_STRUCT_TRAITS_MEMBER(default_video_poster_url
)
203 IPC_STRUCT_TRAITS_MEMBER(support_deprecated_target_density_dpi
)
204 IPC_STRUCT_TRAITS_MEMBER(use_wide_viewport
)
206 IPC_STRUCT_TRAITS_END()
208 #endif // CONTENT_PUBLIC_COMMON_COMMON_PARAM_TRAITS_MACROS_H_