Home | History | Annotate | Download | only in common
      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.
      4 
      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
      7 // file.
      8 #ifndef CONTENT_PUBLIC_COMMON_COMMON_PARAM_TRAITS_MACROS_H_
      9 #define CONTENT_PUBLIC_COMMON_COMMON_PARAM_TRAITS_MACROS_H_
     10 
     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 "content/public/common/webplugininfo.h"
     17 #include "ipc/ipc_message_macros.h"
     18 #include "net/base/request_priority.h"
     19 #include "third_party/WebKit/public/platform/WebPoint.h"
     20 #include "third_party/WebKit/public/platform/WebRect.h"
     21 #include "third_party/WebKit/public/platform/WebReferrerPolicy.h"
     22 #include "third_party/WebKit/public/platform/WebURLRequest.h"
     23 #include "third_party/WebKit/public/web/WebWindowFeatures.h"
     24 #include "ui/base/window_open_disposition.h"
     25 #include "webkit/common/webpreferences.h"
     26 
     27 #undef IPC_MESSAGE_EXPORT
     28 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT
     29 
     30 IPC_ENUM_TRAITS(content::ConsoleMessageLevel)
     31 IPC_ENUM_TRAITS(content::PageTransition)
     32 IPC_ENUM_TRAITS(content::SecurityStyle)
     33 IPC_ENUM_TRAITS(WebKit::WebReferrerPolicy)
     34 IPC_ENUM_TRAITS(WindowOpenDisposition)
     35 IPC_ENUM_TRAITS(webkit_glue::EditingBehavior)
     36 IPC_ENUM_TRAITS(content::PasswordForm::Type)
     37 IPC_ENUM_TRAITS(net::RequestPriority)
     38 
     39 IPC_STRUCT_TRAITS_BEGIN(WebKit::WebPoint)
     40   IPC_STRUCT_TRAITS_MEMBER(x)
     41   IPC_STRUCT_TRAITS_MEMBER(y)
     42 IPC_STRUCT_TRAITS_END()
     43 
     44 IPC_STRUCT_TRAITS_BEGIN(WebKit::WebRect)
     45   IPC_STRUCT_TRAITS_MEMBER(x)
     46   IPC_STRUCT_TRAITS_MEMBER(y)
     47   IPC_STRUCT_TRAITS_MEMBER(width)
     48   IPC_STRUCT_TRAITS_MEMBER(height)
     49 IPC_STRUCT_TRAITS_END()
     50 
     51 IPC_STRUCT_TRAITS_BEGIN(content::PasswordForm)
     52 IPC_STRUCT_TRAITS_MEMBER(signon_realm)
     53 IPC_STRUCT_TRAITS_MEMBER(origin)
     54 IPC_STRUCT_TRAITS_MEMBER(action)
     55 IPC_STRUCT_TRAITS_MEMBER(submit_element)
     56 IPC_STRUCT_TRAITS_MEMBER(username_element)
     57 IPC_STRUCT_TRAITS_MEMBER(username_value)
     58 IPC_STRUCT_TRAITS_MEMBER(other_possible_usernames)
     59 IPC_STRUCT_TRAITS_MEMBER(password_element)
     60 IPC_STRUCT_TRAITS_MEMBER(password_value)
     61 IPC_STRUCT_TRAITS_MEMBER(password_autocomplete_set)
     62 IPC_STRUCT_TRAITS_MEMBER(old_password_element)
     63 IPC_STRUCT_TRAITS_MEMBER(old_password_value)
     64 IPC_STRUCT_TRAITS_MEMBER(ssl_valid)
     65 IPC_STRUCT_TRAITS_MEMBER(preferred)
     66 IPC_STRUCT_TRAITS_MEMBER(blacklisted_by_user)
     67 IPC_STRUCT_TRAITS_MEMBER(type)
     68 IPC_STRUCT_TRAITS_MEMBER(times_used)
     69 IPC_STRUCT_TRAITS_END()
     70 
     71 IPC_STRUCT_TRAITS_BEGIN(content::SSLStatus)
     72   IPC_STRUCT_TRAITS_MEMBER(security_style)
     73   IPC_STRUCT_TRAITS_MEMBER(cert_id)
     74   IPC_STRUCT_TRAITS_MEMBER(cert_status)
     75   IPC_STRUCT_TRAITS_MEMBER(security_bits)
     76   IPC_STRUCT_TRAITS_MEMBER(connection_status)
     77   IPC_STRUCT_TRAITS_MEMBER(content_status)
     78 IPC_STRUCT_TRAITS_END()
     79 
     80 IPC_STRUCT_TRAITS_BEGIN(content::WebPluginMimeType)
     81   IPC_STRUCT_TRAITS_MEMBER(mime_type)
     82   IPC_STRUCT_TRAITS_MEMBER(file_extensions)
     83   IPC_STRUCT_TRAITS_MEMBER(description)
     84   IPC_STRUCT_TRAITS_MEMBER(additional_param_names)
     85   IPC_STRUCT_TRAITS_MEMBER(additional_param_values)
     86 IPC_STRUCT_TRAITS_END()
     87 
     88 IPC_STRUCT_TRAITS_BEGIN(content::WebPluginInfo)
     89   IPC_STRUCT_TRAITS_MEMBER(name)
     90   IPC_STRUCT_TRAITS_MEMBER(path)
     91   IPC_STRUCT_TRAITS_MEMBER(version)
     92   IPC_STRUCT_TRAITS_MEMBER(desc)
     93   IPC_STRUCT_TRAITS_MEMBER(mime_types)
     94   IPC_STRUCT_TRAITS_MEMBER(type)
     95   IPC_STRUCT_TRAITS_MEMBER(pepper_permissions)
     96 IPC_STRUCT_TRAITS_END()
     97 
     98 IPC_STRUCT_TRAITS_BEGIN(WebPreferences)
     99   IPC_STRUCT_TRAITS_MEMBER(standard_font_family_map)
    100   IPC_STRUCT_TRAITS_MEMBER(fixed_font_family_map)
    101   IPC_STRUCT_TRAITS_MEMBER(serif_font_family_map)
    102   IPC_STRUCT_TRAITS_MEMBER(sans_serif_font_family_map)
    103   IPC_STRUCT_TRAITS_MEMBER(cursive_font_family_map)
    104   IPC_STRUCT_TRAITS_MEMBER(fantasy_font_family_map)
    105   IPC_STRUCT_TRAITS_MEMBER(default_font_size)
    106   IPC_STRUCT_TRAITS_MEMBER(default_fixed_font_size)
    107   IPC_STRUCT_TRAITS_MEMBER(minimum_font_size)
    108   IPC_STRUCT_TRAITS_MEMBER(minimum_logical_font_size)
    109   IPC_STRUCT_TRAITS_MEMBER(default_encoding)
    110   IPC_STRUCT_TRAITS_MEMBER(javascript_enabled)
    111   IPC_STRUCT_TRAITS_MEMBER(web_security_enabled)
    112   IPC_STRUCT_TRAITS_MEMBER(javascript_can_open_windows_automatically)
    113   IPC_STRUCT_TRAITS_MEMBER(loads_images_automatically)
    114   IPC_STRUCT_TRAITS_MEMBER(images_enabled)
    115   IPC_STRUCT_TRAITS_MEMBER(plugins_enabled)
    116   IPC_STRUCT_TRAITS_MEMBER(dom_paste_enabled)
    117   IPC_STRUCT_TRAITS_MEMBER(inspector_settings)
    118   IPC_STRUCT_TRAITS_MEMBER(site_specific_quirks_enabled)
    119   IPC_STRUCT_TRAITS_MEMBER(shrinks_standalone_images_to_fit)
    120   IPC_STRUCT_TRAITS_MEMBER(uses_universal_detector)
    121   IPC_STRUCT_TRAITS_MEMBER(text_areas_are_resizable)
    122   IPC_STRUCT_TRAITS_MEMBER(java_enabled)
    123   IPC_STRUCT_TRAITS_MEMBER(allow_scripts_to_close_windows)
    124   IPC_STRUCT_TRAITS_MEMBER(remote_fonts_enabled)
    125   IPC_STRUCT_TRAITS_MEMBER(javascript_can_access_clipboard)
    126   IPC_STRUCT_TRAITS_MEMBER(xss_auditor_enabled)
    127   IPC_STRUCT_TRAITS_MEMBER(dns_prefetching_enabled)
    128   IPC_STRUCT_TRAITS_MEMBER(local_storage_enabled)
    129   IPC_STRUCT_TRAITS_MEMBER(databases_enabled)
    130   IPC_STRUCT_TRAITS_MEMBER(application_cache_enabled)
    131   IPC_STRUCT_TRAITS_MEMBER(tabs_to_links)
    132   IPC_STRUCT_TRAITS_MEMBER(hyperlink_auditing_enabled)
    133   IPC_STRUCT_TRAITS_MEMBER(is_online)
    134   IPC_STRUCT_TRAITS_MEMBER(user_style_sheet_enabled)
    135   IPC_STRUCT_TRAITS_MEMBER(user_style_sheet_location)
    136   IPC_STRUCT_TRAITS_MEMBER(author_and_user_styles_enabled)
    137   IPC_STRUCT_TRAITS_MEMBER(allow_universal_access_from_file_urls)
    138   IPC_STRUCT_TRAITS_MEMBER(allow_file_access_from_file_urls)
    139   IPC_STRUCT_TRAITS_MEMBER(webaudio_enabled)
    140   IPC_STRUCT_TRAITS_MEMBER(experimental_webgl_enabled)
    141   IPC_STRUCT_TRAITS_MEMBER(experimental_websocket_enabled)
    142   IPC_STRUCT_TRAITS_MEMBER(pinch_virtual_viewport_enabled)
    143   IPC_STRUCT_TRAITS_MEMBER(flash_3d_enabled)
    144   IPC_STRUCT_TRAITS_MEMBER(flash_stage3d_enabled)
    145   IPC_STRUCT_TRAITS_MEMBER(flash_stage3d_baseline_enabled)
    146   IPC_STRUCT_TRAITS_MEMBER(gl_multisampling_enabled)
    147   IPC_STRUCT_TRAITS_MEMBER(privileged_webgl_extensions_enabled)
    148   IPC_STRUCT_TRAITS_MEMBER(webgl_errors_to_console_enabled)
    149   IPC_STRUCT_TRAITS_MEMBER(accelerated_compositing_for_overflow_scroll_enabled)
    150   IPC_STRUCT_TRAITS_MEMBER(
    151       accelerated_compositing_for_scrollable_frames_enabled)
    152   IPC_STRUCT_TRAITS_MEMBER(composited_scrolling_for_frames_enabled)
    153   IPC_STRUCT_TRAITS_MEMBER(mock_scrollbars_enabled)
    154   IPC_STRUCT_TRAITS_MEMBER(threaded_html_parser)
    155   IPC_STRUCT_TRAITS_MEMBER(show_paint_rects)
    156   IPC_STRUCT_TRAITS_MEMBER(asynchronous_spell_checking_enabled)
    157   IPC_STRUCT_TRAITS_MEMBER(unified_textchecker_enabled)
    158   IPC_STRUCT_TRAITS_MEMBER(accelerated_compositing_enabled)
    159   IPC_STRUCT_TRAITS_MEMBER(force_compositing_mode)
    160   IPC_STRUCT_TRAITS_MEMBER(accelerated_2d_canvas_enabled)
    161   IPC_STRUCT_TRAITS_MEMBER(minimum_accelerated_2d_canvas_size)
    162   IPC_STRUCT_TRAITS_MEMBER(antialiased_2d_canvas_disabled)
    163   IPC_STRUCT_TRAITS_MEMBER(accelerated_filters_enabled)
    164   IPC_STRUCT_TRAITS_MEMBER(gesture_tap_highlight_enabled)
    165   IPC_STRUCT_TRAITS_MEMBER(accelerated_compositing_for_plugins_enabled)
    166   IPC_STRUCT_TRAITS_MEMBER(accelerated_compositing_for_3d_transforms_enabled)
    167   IPC_STRUCT_TRAITS_MEMBER(accelerated_compositing_for_animation_enabled)
    168   IPC_STRUCT_TRAITS_MEMBER(accelerated_compositing_for_video_enabled)
    169   IPC_STRUCT_TRAITS_MEMBER(memory_info_enabled)
    170   IPC_STRUCT_TRAITS_MEMBER(fullscreen_enabled)
    171   IPC_STRUCT_TRAITS_MEMBER(allow_displaying_insecure_content)
    172   IPC_STRUCT_TRAITS_MEMBER(allow_running_insecure_content)
    173   IPC_STRUCT_TRAITS_MEMBER(enable_scroll_animator)
    174   IPC_STRUCT_TRAITS_MEMBER(visual_word_movement_enabled)
    175   IPC_STRUCT_TRAITS_MEMBER(password_echo_enabled)
    176   IPC_STRUCT_TRAITS_MEMBER(should_clear_document_background)
    177   IPC_STRUCT_TRAITS_MEMBER(css_sticky_position_enabled)
    178   IPC_STRUCT_TRAITS_MEMBER(css_shaders_enabled)
    179   IPC_STRUCT_TRAITS_MEMBER(lazy_layout_enabled)
    180   IPC_STRUCT_TRAITS_MEMBER(region_based_columns_enabled)
    181   IPC_STRUCT_TRAITS_MEMBER(touch_enabled)
    182   IPC_STRUCT_TRAITS_MEMBER(device_supports_touch)
    183   IPC_STRUCT_TRAITS_MEMBER(device_supports_mouse)
    184   IPC_STRUCT_TRAITS_MEMBER(touch_adjustment_enabled)
    185   IPC_STRUCT_TRAITS_MEMBER(fixed_position_creates_stacking_context)
    186   IPC_STRUCT_TRAITS_MEMBER(sync_xhr_in_documents_enabled)
    187   IPC_STRUCT_TRAITS_MEMBER(deferred_image_decoding_enabled)
    188   IPC_STRUCT_TRAITS_MEMBER(should_respect_image_orientation)
    189   IPC_STRUCT_TRAITS_MEMBER(number_of_cpu_cores)
    190   IPC_STRUCT_TRAITS_MEMBER(editing_behavior)
    191   IPC_STRUCT_TRAITS_MEMBER(supports_multiple_windows)
    192   IPC_STRUCT_TRAITS_MEMBER(viewport_enabled)
    193   IPC_STRUCT_TRAITS_MEMBER(initialize_at_minimum_page_scale)
    194   IPC_STRUCT_TRAITS_MEMBER(smart_insert_delete_enabled)
    195   IPC_STRUCT_TRAITS_MEMBER(compositor_touch_hit_testing)
    196   IPC_STRUCT_TRAITS_MEMBER(cookie_enabled)
    197   IPC_STRUCT_TRAITS_MEMBER(spatial_navigation_enabled)
    198 #if defined(OS_ANDROID)
    199   IPC_STRUCT_TRAITS_MEMBER(text_autosizing_enabled)
    200   IPC_STRUCT_TRAITS_MEMBER(font_scale_factor)
    201   IPC_STRUCT_TRAITS_MEMBER(force_enable_zoom)
    202   IPC_STRUCT_TRAITS_MEMBER(double_tap_to_zoom_enabled)
    203   IPC_STRUCT_TRAITS_MEMBER(user_gesture_required_for_media_playback)
    204   IPC_STRUCT_TRAITS_MEMBER(default_video_poster_url)
    205   IPC_STRUCT_TRAITS_MEMBER(support_deprecated_target_density_dpi)
    206   IPC_STRUCT_TRAITS_MEMBER(use_legacy_background_size_shorthand_behavior)
    207   IPC_STRUCT_TRAITS_MEMBER(wide_viewport_quirk)
    208   IPC_STRUCT_TRAITS_MEMBER(use_wide_viewport)
    209   IPC_STRUCT_TRAITS_MEMBER(viewport_meta_layout_size_quirk)
    210   IPC_STRUCT_TRAITS_MEMBER(viewport_meta_merge_quirk)
    211   IPC_STRUCT_TRAITS_MEMBER(viewport_meta_zero_values_quirk)
    212   IPC_STRUCT_TRAITS_MEMBER(ignore_main_frame_overflow_hidden_quirk)
    213   IPC_STRUCT_TRAITS_MEMBER(report_screen_size_in_physical_pixels_quirk)
    214 #endif
    215 IPC_STRUCT_TRAITS_END()
    216 
    217 IPC_STRUCT_TRAITS_BEGIN(WebKit::WebWindowFeatures)
    218   IPC_STRUCT_TRAITS_MEMBER(x)
    219   IPC_STRUCT_TRAITS_MEMBER(xSet)
    220   IPC_STRUCT_TRAITS_MEMBER(y)
    221   IPC_STRUCT_TRAITS_MEMBER(ySet)
    222   IPC_STRUCT_TRAITS_MEMBER(width)
    223   IPC_STRUCT_TRAITS_MEMBER(widthSet)
    224   IPC_STRUCT_TRAITS_MEMBER(height)
    225   IPC_STRUCT_TRAITS_MEMBER(heightSet)
    226   IPC_STRUCT_TRAITS_MEMBER(menuBarVisible)
    227   IPC_STRUCT_TRAITS_MEMBER(statusBarVisible)
    228   IPC_STRUCT_TRAITS_MEMBER(toolBarVisible)
    229   IPC_STRUCT_TRAITS_MEMBER(locationBarVisible)
    230   IPC_STRUCT_TRAITS_MEMBER(scrollbarsVisible)
    231   IPC_STRUCT_TRAITS_MEMBER(resizable)
    232   IPC_STRUCT_TRAITS_MEMBER(fullscreen)
    233   IPC_STRUCT_TRAITS_MEMBER(dialog)
    234 IPC_STRUCT_TRAITS_END()
    235 
    236 #endif  // CONTENT_PUBLIC_COMMON_COMMON_PARAM_TRAITS_MACROS_H_
    237