|  | // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | // IPC messages for page rendering. | 
|  | // Multiply-included message file, hence no include guard. | 
|  |  | 
|  | #include <stddef.h> | 
|  | #include <stdint.h> | 
|  |  | 
|  | #include "base/memory/shared_memory.h" | 
|  | #include "base/process/process.h" | 
|  | #include "base/strings/string16.h" | 
|  | #include "build/build_config.h" | 
|  | #include "cc/ipc/cc_param_traits.h" | 
|  | #include "cc/output/begin_frame_args.h" | 
|  | #include "cc/output/compositor_frame.h" | 
|  | #include "cc/resources/shared_bitmap.h" | 
|  | #include "content/common/content_export.h" | 
|  | #include "content/common/content_param_traits.h" | 
|  | #include "content/common/date_time_suggestion.h" | 
|  | #include "content/common/frame_replication_state.h" | 
|  | #include "content/common/navigation_gesture.h" | 
|  | #include "content/common/resize_params.h" | 
|  | #include "content/common/text_input_state.h" | 
|  | #include "content/common/view_message_enums.h" | 
|  | #include "content/public/common/common_param_traits.h" | 
|  | #include "content/public/common/favicon_url.h" | 
|  | #include "content/public/common/menu_item.h" | 
|  | #include "content/public/common/page_state.h" | 
|  | #include "content/public/common/page_zoom.h" | 
|  | #include "content/public/common/referrer.h" | 
|  | #include "content/public/common/renderer_preferences.h" | 
|  | #include "content/public/common/three_d_api_types.h" | 
|  | #include "content/public/common/window_container_type.h" | 
|  | #include "ipc/ipc_channel_handle.h" | 
|  | #include "ipc/ipc_message_macros.h" | 
|  | #include "media/base/audio_parameters.h" | 
|  | #include "media/base/channel_layout.h" | 
|  | #include "media/base/ipc/media_param_traits.h" | 
|  | #include "media/base/media_log_event.h" | 
|  | #include "net/base/network_change_notifier.h" | 
|  | #include "third_party/WebKit/public/platform/WebDisplayMode.h" | 
|  | #include "third_party/WebKit/public/platform/WebFloatPoint.h" | 
|  | #include "third_party/WebKit/public/platform/WebFloatRect.h" | 
|  | #include "third_party/WebKit/public/platform/WebScreenInfo.h" | 
|  | #include "third_party/WebKit/public/platform/modules/screen_orientation/WebScreenOrientationType.h" | 
|  | #include "third_party/WebKit/public/web/WebDeviceEmulationParams.h" | 
|  | #include "third_party/WebKit/public/web/WebMediaPlayerAction.h" | 
|  | #include "third_party/WebKit/public/web/WebPluginAction.h" | 
|  | #include "third_party/WebKit/public/web/WebPopupType.h" | 
|  | #include "third_party/WebKit/public/web/WebSharedWorkerCreationContextType.h" | 
|  | #include "third_party/WebKit/public/web/WebSharedWorkerCreationErrors.h" | 
|  | #include "third_party/WebKit/public/web/WebTextDirection.h" | 
|  | #include "ui/base/ime/text_input_mode.h" | 
|  | #include "ui/base/ime/text_input_type.h" | 
|  | #include "ui/base/ui_base_types.h" | 
|  | #include "ui/gfx/geometry/point.h" | 
|  | #include "ui/gfx/geometry/rect.h" | 
|  | #include "ui/gfx/geometry/rect_f.h" | 
|  | #include "ui/gfx/geometry/vector2d.h" | 
|  | #include "ui/gfx/geometry/vector2d_f.h" | 
|  | #include "ui/gfx/icc_profile.h" | 
|  | #include "ui/gfx/ipc/color/gfx_param_traits.h" | 
|  | #include "ui/gfx/ipc/gfx_param_traits.h" | 
|  | #include "ui/gfx/ipc/skia/gfx_skia_param_traits.h" | 
|  | #include "ui/gfx/range/range.h" | 
|  |  | 
|  | #if defined(OS_MACOSX) | 
|  | #include "third_party/WebKit/public/platform/WebScrollbarButtonsPlacement.h" | 
|  | #include "third_party/WebKit/public/web/mac/WebScrollbarTheme.h" | 
|  | #endif | 
|  |  | 
|  | #undef IPC_MESSAGE_EXPORT | 
|  | #define IPC_MESSAGE_EXPORT CONTENT_EXPORT | 
|  |  | 
|  | #define IPC_MESSAGE_START ViewMsgStart | 
|  |  | 
|  | IPC_ENUM_TRAITS_MAX_VALUE(blink::WebDeviceEmulationParams::ScreenPosition, | 
|  | blink::WebDeviceEmulationParams::ScreenPositionLast) | 
|  | IPC_ENUM_TRAITS_MAX_VALUE(blink::WebMediaPlayerAction::Type, | 
|  | blink::WebMediaPlayerAction::Type::TypeLast) | 
|  | IPC_ENUM_TRAITS_MAX_VALUE(blink::WebPluginAction::Type, | 
|  | blink::WebPluginAction::Type::TypeLast) | 
|  | IPC_ENUM_TRAITS_MAX_VALUE(blink::WebPopupType, | 
|  | blink::WebPopupType::WebPopupTypeLast) | 
|  | // TODO(dcheng): Update WebScreenOrientationType to have a "Last" enum member. | 
|  | IPC_ENUM_TRAITS_MIN_MAX_VALUE(blink::WebScreenOrientationType, | 
|  | blink::WebScreenOrientationUndefined, | 
|  | blink::WebScreenOrientationLandscapeSecondary) | 
|  | IPC_ENUM_TRAITS_MAX_VALUE(blink::WebWorkerCreationError, | 
|  | blink::WebWorkerCreationErrorLast) | 
|  | IPC_ENUM_TRAITS_MAX_VALUE(blink::WebTextDirection, | 
|  | blink::WebTextDirection::WebTextDirectionLast) | 
|  | IPC_ENUM_TRAITS_MAX_VALUE(blink::WebDisplayMode, | 
|  | blink::WebDisplayMode::WebDisplayModeLast) | 
|  | IPC_ENUM_TRAITS_MAX_VALUE(WindowContainerType, WINDOW_CONTAINER_TYPE_MAX_VALUE) | 
|  | IPC_ENUM_TRAITS(content::FaviconURL::IconType) | 
|  | IPC_ENUM_TRAITS(content::MenuItem::Type) | 
|  | IPC_ENUM_TRAITS_MAX_VALUE(content::NavigationGesture, | 
|  | content::NavigationGestureLast) | 
|  | IPC_ENUM_TRAITS_MIN_MAX_VALUE(content::PageZoom, | 
|  | content::PageZoom::PAGE_ZOOM_OUT, | 
|  | content::PageZoom::PAGE_ZOOM_IN) | 
|  | IPC_ENUM_TRAITS_MAX_VALUE(gfx::FontRenderParams::Hinting, | 
|  | gfx::FontRenderParams::HINTING_MAX) | 
|  | IPC_ENUM_TRAITS_MAX_VALUE(gfx::FontRenderParams::SubpixelRendering, | 
|  | gfx::FontRenderParams::SUBPIXEL_RENDERING_MAX) | 
|  | IPC_ENUM_TRAITS_MAX_VALUE(content::TapMultipleTargetsStrategy, | 
|  | content::TAP_MULTIPLE_TARGETS_STRATEGY_MAX) | 
|  | IPC_ENUM_TRAITS_MAX_VALUE(content::ThreeDAPIType, | 
|  | content::THREE_D_API_TYPE_LAST) | 
|  | IPC_ENUM_TRAITS_MAX_VALUE(media::MediaLogEvent::Type, | 
|  | media::MediaLogEvent::TYPE_LAST) | 
|  | IPC_ENUM_TRAITS_MAX_VALUE(ui::TextInputMode, ui::TEXT_INPUT_MODE_MAX) | 
|  | IPC_ENUM_TRAITS_MAX_VALUE(ui::TextInputType, ui::TEXT_INPUT_TYPE_MAX) | 
|  |  | 
|  | #if defined(OS_MACOSX) | 
|  | IPC_ENUM_TRAITS_MAX_VALUE( | 
|  | blink::WebScrollbarButtonsPlacement, | 
|  | blink::WebScrollbarButtonsPlacement::WebScrollbarButtonsPlacementLast) | 
|  |  | 
|  | IPC_ENUM_TRAITS_MAX_VALUE(blink::ScrollerStyle, blink::ScrollerStyleOverlay) | 
|  | #endif | 
|  |  | 
|  | IPC_STRUCT_TRAITS_BEGIN(blink::WebMediaPlayerAction) | 
|  | IPC_STRUCT_TRAITS_MEMBER(type) | 
|  | IPC_STRUCT_TRAITS_MEMBER(enable) | 
|  | IPC_STRUCT_TRAITS_END() | 
|  |  | 
|  | IPC_STRUCT_TRAITS_BEGIN(blink::WebPluginAction) | 
|  | IPC_STRUCT_TRAITS_MEMBER(type) | 
|  | IPC_STRUCT_TRAITS_MEMBER(enable) | 
|  | IPC_STRUCT_TRAITS_END() | 
|  |  | 
|  | IPC_STRUCT_TRAITS_BEGIN(blink::WebFloatPoint) | 
|  | IPC_STRUCT_TRAITS_MEMBER(x) | 
|  | IPC_STRUCT_TRAITS_MEMBER(y) | 
|  | IPC_STRUCT_TRAITS_END() | 
|  |  | 
|  | IPC_STRUCT_TRAITS_BEGIN(blink::WebFloatRect) | 
|  | IPC_STRUCT_TRAITS_MEMBER(x) | 
|  | IPC_STRUCT_TRAITS_MEMBER(y) | 
|  | IPC_STRUCT_TRAITS_MEMBER(width) | 
|  | IPC_STRUCT_TRAITS_MEMBER(height) | 
|  | IPC_STRUCT_TRAITS_END() | 
|  |  | 
|  | IPC_STRUCT_TRAITS_BEGIN(blink::WebSize) | 
|  | IPC_STRUCT_TRAITS_MEMBER(width) | 
|  | IPC_STRUCT_TRAITS_MEMBER(height) | 
|  | IPC_STRUCT_TRAITS_END() | 
|  |  | 
|  | IPC_STRUCT_TRAITS_BEGIN(blink::WebDeviceEmulationParams) | 
|  | IPC_STRUCT_TRAITS_MEMBER(screenPosition) | 
|  | IPC_STRUCT_TRAITS_MEMBER(screenSize) | 
|  | IPC_STRUCT_TRAITS_MEMBER(viewPosition) | 
|  | IPC_STRUCT_TRAITS_MEMBER(deviceScaleFactor) | 
|  | IPC_STRUCT_TRAITS_MEMBER(viewSize) | 
|  | IPC_STRUCT_TRAITS_MEMBER(fitToView) | 
|  | IPC_STRUCT_TRAITS_MEMBER(offset) | 
|  | IPC_STRUCT_TRAITS_MEMBER(scale) | 
|  | IPC_STRUCT_TRAITS_MEMBER(screenOrientationAngle) | 
|  | IPC_STRUCT_TRAITS_MEMBER(screenOrientationType) | 
|  | IPC_STRUCT_TRAITS_END() | 
|  |  | 
|  | IPC_STRUCT_TRAITS_BEGIN(blink::WebScreenInfo) | 
|  | IPC_STRUCT_TRAITS_MEMBER(deviceScaleFactor) | 
|  | IPC_STRUCT_TRAITS_MEMBER(depth) | 
|  | IPC_STRUCT_TRAITS_MEMBER(depthPerComponent) | 
|  | IPC_STRUCT_TRAITS_MEMBER(isMonochrome) | 
|  | IPC_STRUCT_TRAITS_MEMBER(rect) | 
|  | IPC_STRUCT_TRAITS_MEMBER(availableRect) | 
|  | IPC_STRUCT_TRAITS_MEMBER(orientationType) | 
|  | IPC_STRUCT_TRAITS_MEMBER(orientationAngle) | 
|  | IPC_STRUCT_TRAITS_END() | 
|  |  | 
|  | IPC_STRUCT_TRAITS_BEGIN(content::ResizeParams) | 
|  | IPC_STRUCT_TRAITS_MEMBER(screen_info) | 
|  | IPC_STRUCT_TRAITS_MEMBER(new_size) | 
|  | IPC_STRUCT_TRAITS_MEMBER(physical_backing_size) | 
|  | IPC_STRUCT_TRAITS_MEMBER(top_controls_shrink_blink_size) | 
|  | IPC_STRUCT_TRAITS_MEMBER(top_controls_height) | 
|  | IPC_STRUCT_TRAITS_MEMBER(bottom_controls_height) | 
|  | IPC_STRUCT_TRAITS_MEMBER(visible_viewport_size) | 
|  | IPC_STRUCT_TRAITS_MEMBER(resizer_rect) | 
|  | IPC_STRUCT_TRAITS_MEMBER(is_fullscreen_granted) | 
|  | IPC_STRUCT_TRAITS_MEMBER(display_mode) | 
|  | IPC_STRUCT_TRAITS_MEMBER(needs_resize_ack) | 
|  | IPC_STRUCT_TRAITS_END() | 
|  |  | 
|  | IPC_STRUCT_TRAITS_BEGIN(content::MenuItem) | 
|  | IPC_STRUCT_TRAITS_MEMBER(label) | 
|  | IPC_STRUCT_TRAITS_MEMBER(tool_tip) | 
|  | IPC_STRUCT_TRAITS_MEMBER(type) | 
|  | IPC_STRUCT_TRAITS_MEMBER(action) | 
|  | IPC_STRUCT_TRAITS_MEMBER(rtl) | 
|  | IPC_STRUCT_TRAITS_MEMBER(has_directional_override) | 
|  | IPC_STRUCT_TRAITS_MEMBER(enabled) | 
|  | IPC_STRUCT_TRAITS_MEMBER(checked) | 
|  | IPC_STRUCT_TRAITS_MEMBER(submenu) | 
|  | IPC_STRUCT_TRAITS_END() | 
|  |  | 
|  | IPC_STRUCT_TRAITS_BEGIN(content::DateTimeSuggestion) | 
|  | IPC_STRUCT_TRAITS_MEMBER(value) | 
|  | IPC_STRUCT_TRAITS_MEMBER(localized_value) | 
|  | IPC_STRUCT_TRAITS_MEMBER(label) | 
|  | IPC_STRUCT_TRAITS_END() | 
|  |  | 
|  | IPC_STRUCT_TRAITS_BEGIN(content::FaviconURL) | 
|  | IPC_STRUCT_TRAITS_MEMBER(icon_url) | 
|  | IPC_STRUCT_TRAITS_MEMBER(icon_type) | 
|  | IPC_STRUCT_TRAITS_MEMBER(icon_sizes) | 
|  | IPC_STRUCT_TRAITS_END() | 
|  |  | 
|  | IPC_STRUCT_TRAITS_BEGIN(content::RendererPreferences) | 
|  | IPC_STRUCT_TRAITS_MEMBER(can_accept_load_drops) | 
|  | IPC_STRUCT_TRAITS_MEMBER(should_antialias_text) | 
|  | IPC_STRUCT_TRAITS_MEMBER(hinting) | 
|  | IPC_STRUCT_TRAITS_MEMBER(use_autohinter) | 
|  | IPC_STRUCT_TRAITS_MEMBER(use_bitmaps) | 
|  | IPC_STRUCT_TRAITS_MEMBER(subpixel_rendering) | 
|  | IPC_STRUCT_TRAITS_MEMBER(use_subpixel_positioning) | 
|  | IPC_STRUCT_TRAITS_MEMBER(focus_ring_color) | 
|  | IPC_STRUCT_TRAITS_MEMBER(thumb_active_color) | 
|  | IPC_STRUCT_TRAITS_MEMBER(thumb_inactive_color) | 
|  | IPC_STRUCT_TRAITS_MEMBER(track_color) | 
|  | IPC_STRUCT_TRAITS_MEMBER(active_selection_bg_color) | 
|  | IPC_STRUCT_TRAITS_MEMBER(active_selection_fg_color) | 
|  | IPC_STRUCT_TRAITS_MEMBER(inactive_selection_bg_color) | 
|  | IPC_STRUCT_TRAITS_MEMBER(inactive_selection_fg_color) | 
|  | IPC_STRUCT_TRAITS_MEMBER(browser_handles_all_top_level_requests) | 
|  | IPC_STRUCT_TRAITS_MEMBER(caret_blink_interval) | 
|  | IPC_STRUCT_TRAITS_MEMBER(use_custom_colors) | 
|  | IPC_STRUCT_TRAITS_MEMBER(enable_referrers) | 
|  | IPC_STRUCT_TRAITS_MEMBER(enable_do_not_track) | 
|  | IPC_STRUCT_TRAITS_MEMBER(webrtc_ip_handling_policy) | 
|  | IPC_STRUCT_TRAITS_MEMBER(webrtc_udp_min_port) | 
|  | IPC_STRUCT_TRAITS_MEMBER(webrtc_udp_max_port) | 
|  | IPC_STRUCT_TRAITS_MEMBER(user_agent_override) | 
|  | IPC_STRUCT_TRAITS_MEMBER(accept_languages) | 
|  | IPC_STRUCT_TRAITS_MEMBER(report_frame_name_changes) | 
|  | IPC_STRUCT_TRAITS_MEMBER(tap_multiple_targets_strategy) | 
|  | IPC_STRUCT_TRAITS_MEMBER(disable_client_blocked_error_page) | 
|  | IPC_STRUCT_TRAITS_MEMBER(plugin_fullscreen_allowed) | 
|  | IPC_STRUCT_TRAITS_MEMBER(use_video_overlay_for_embedded_encrypted_video) | 
|  | IPC_STRUCT_TRAITS_MEMBER(use_view_overlay_for_all_video) | 
|  | IPC_STRUCT_TRAITS_MEMBER(network_contry_iso) | 
|  | #if defined(OS_WIN) | 
|  | IPC_STRUCT_TRAITS_MEMBER(caption_font_family_name) | 
|  | IPC_STRUCT_TRAITS_MEMBER(caption_font_height) | 
|  | IPC_STRUCT_TRAITS_MEMBER(small_caption_font_family_name) | 
|  | IPC_STRUCT_TRAITS_MEMBER(small_caption_font_height) | 
|  | IPC_STRUCT_TRAITS_MEMBER(menu_font_family_name) | 
|  | IPC_STRUCT_TRAITS_MEMBER(menu_font_height) | 
|  | IPC_STRUCT_TRAITS_MEMBER(status_font_family_name) | 
|  | IPC_STRUCT_TRAITS_MEMBER(status_font_height) | 
|  | IPC_STRUCT_TRAITS_MEMBER(message_font_family_name) | 
|  | IPC_STRUCT_TRAITS_MEMBER(message_font_height) | 
|  | IPC_STRUCT_TRAITS_MEMBER(vertical_scroll_bar_width_in_dips) | 
|  | IPC_STRUCT_TRAITS_MEMBER(horizontal_scroll_bar_height_in_dips) | 
|  | IPC_STRUCT_TRAITS_MEMBER(arrow_bitmap_height_vertical_scroll_bar_in_dips) | 
|  | IPC_STRUCT_TRAITS_MEMBER(arrow_bitmap_width_horizontal_scroll_bar_in_dips) | 
|  | #endif | 
|  | IPC_STRUCT_TRAITS_MEMBER(default_font_size) | 
|  | IPC_STRUCT_TRAITS_END() | 
|  |  | 
|  | IPC_STRUCT_TRAITS_BEGIN(media::MediaLogEvent) | 
|  | IPC_STRUCT_TRAITS_MEMBER(id) | 
|  | IPC_STRUCT_TRAITS_MEMBER(type) | 
|  | IPC_STRUCT_TRAITS_MEMBER(params) | 
|  | IPC_STRUCT_TRAITS_MEMBER(time) | 
|  | IPC_STRUCT_TRAITS_END() | 
|  |  | 
|  | IPC_STRUCT_TRAITS_BEGIN(content::TextInputState) | 
|  | IPC_STRUCT_TRAITS_MEMBER(type) | 
|  | IPC_STRUCT_TRAITS_MEMBER(mode) | 
|  | IPC_STRUCT_TRAITS_MEMBER(flags) | 
|  | IPC_STRUCT_TRAITS_MEMBER(value) | 
|  | IPC_STRUCT_TRAITS_MEMBER(selection_start) | 
|  | IPC_STRUCT_TRAITS_MEMBER(selection_end) | 
|  | IPC_STRUCT_TRAITS_MEMBER(composition_start) | 
|  | IPC_STRUCT_TRAITS_MEMBER(composition_end) | 
|  | IPC_STRUCT_TRAITS_MEMBER(can_compose_inline) | 
|  | IPC_STRUCT_TRAITS_MEMBER(show_ime_if_needed) | 
|  | IPC_STRUCT_TRAITS_MEMBER(is_non_ime_change) | 
|  | IPC_STRUCT_TRAITS_END() | 
|  |  | 
|  | IPC_STRUCT_BEGIN(ViewHostMsg_CreateWindow_Params) | 
|  | // Routing ID of the view initiating the open. | 
|  | IPC_STRUCT_MEMBER(int, opener_id) | 
|  |  | 
|  | // True if this open request came in the context of a user gesture. | 
|  | IPC_STRUCT_MEMBER(bool, user_gesture) | 
|  |  | 
|  | // Type of window requested. | 
|  | IPC_STRUCT_MEMBER(WindowContainerType, window_container_type) | 
|  |  | 
|  | // The session storage namespace ID this view should use. | 
|  | IPC_STRUCT_MEMBER(int64_t, session_storage_namespace_id) | 
|  |  | 
|  | // The name of the resulting frame that should be created (empty if none | 
|  | // has been specified). UTF8 encoded string. | 
|  | IPC_STRUCT_MEMBER(std::string, frame_name) | 
|  |  | 
|  | // The routing id of the frame initiating the open. | 
|  | IPC_STRUCT_MEMBER(int, opener_render_frame_id) | 
|  |  | 
|  | // The URL of the frame initiating the open. | 
|  | IPC_STRUCT_MEMBER(GURL, opener_url) | 
|  |  | 
|  | // The URL of the top frame containing the opener. | 
|  | IPC_STRUCT_MEMBER(GURL, opener_top_level_frame_url) | 
|  |  | 
|  | // The security origin of the frame initiating the open. | 
|  | IPC_STRUCT_MEMBER(GURL, opener_security_origin) | 
|  |  | 
|  | // Whether the opener will be suppressed in the new window, in which case | 
|  | // scripting the new window is not allowed. | 
|  | IPC_STRUCT_MEMBER(bool, opener_suppressed) | 
|  |  | 
|  | // Whether the window should be opened in the foreground, background, etc. | 
|  | IPC_STRUCT_MEMBER(WindowOpenDisposition, disposition) | 
|  |  | 
|  | // The URL that will be loaded in the new window (empty if none has been | 
|  | // sepcified). | 
|  | IPC_STRUCT_MEMBER(GURL, target_url) | 
|  |  | 
|  | // The referrer that will be used to load |target_url| (empty if none has | 
|  | // been specified). | 
|  | IPC_STRUCT_MEMBER(content::Referrer, referrer) | 
|  |  | 
|  | // The window features to use for the new view. | 
|  | IPC_STRUCT_MEMBER(blink::WebWindowFeatures, features) | 
|  |  | 
|  | // The additional window features to use for the new view. We pass these | 
|  | // separately from |features| above because we cannot serialize WebStrings | 
|  | // over IPC. | 
|  | IPC_STRUCT_MEMBER(std::vector<base::string16>, additional_features) | 
|  | IPC_STRUCT_END() | 
|  |  | 
|  | IPC_STRUCT_BEGIN(ViewHostMsg_CreateWindow_Reply) | 
|  | // The ID of the view to be created. If the ID is MSG_ROUTING_NONE, then the | 
|  | // view couldn't be created. | 
|  | IPC_STRUCT_MEMBER(int32_t, route_id, MSG_ROUTING_NONE) | 
|  |  | 
|  | // The ID of the main frame hosted in the view. | 
|  | IPC_STRUCT_MEMBER(int32_t, main_frame_route_id, MSG_ROUTING_NONE) | 
|  |  | 
|  | // The ID of the widget for the main frame. | 
|  | IPC_STRUCT_MEMBER(int32_t, main_frame_widget_route_id, MSG_ROUTING_NONE) | 
|  |  | 
|  | // TODO(dcheng): No clue. This is kind of duplicated from ViewMsg_New_Params. | 
|  | IPC_STRUCT_MEMBER(int64_t, cloned_session_storage_namespace_id) | 
|  | IPC_STRUCT_END() | 
|  |  | 
|  | IPC_STRUCT_BEGIN(ViewHostMsg_CreateWorker_Params) | 
|  | // URL for the worker script. | 
|  | IPC_STRUCT_MEMBER(GURL, url) | 
|  |  | 
|  | // Name for a SharedWorker, otherwise empty string. | 
|  | IPC_STRUCT_MEMBER(base::string16, name) | 
|  |  | 
|  | // Security policy used in the worker. | 
|  | IPC_STRUCT_MEMBER(base::string16, content_security_policy) | 
|  |  | 
|  | // Security policy type used in the worker. | 
|  | IPC_STRUCT_MEMBER(blink::WebContentSecurityPolicyType, security_policy_type) | 
|  |  | 
|  | // The ID of the parent document (unique within parent renderer). | 
|  | IPC_STRUCT_MEMBER(unsigned long long, document_id) | 
|  |  | 
|  | // RenderFrame routing id used to send messages back to the parent. | 
|  | IPC_STRUCT_MEMBER(int, render_frame_route_id) | 
|  |  | 
|  | // Address space of the context that created the worker. | 
|  | IPC_STRUCT_MEMBER(blink::WebAddressSpace, creation_address_space) | 
|  |  | 
|  | // The type (secure or nonsecure) of the context that created the worker. | 
|  | IPC_STRUCT_MEMBER(blink::WebSharedWorkerCreationContextType, | 
|  | creation_context_type) | 
|  | IPC_STRUCT_END() | 
|  |  | 
|  | IPC_STRUCT_BEGIN(ViewHostMsg_CreateWorker_Reply) | 
|  | // The route id for the created worker. | 
|  | IPC_STRUCT_MEMBER(int, route_id) | 
|  |  | 
|  | // The error that occurred, if the browser failed to create the | 
|  | // worker. | 
|  | IPC_STRUCT_MEMBER(blink::WebWorkerCreationError, error) | 
|  | IPC_STRUCT_END() | 
|  |  | 
|  | IPC_STRUCT_BEGIN(ViewHostMsg_DateTimeDialogValue_Params) | 
|  | IPC_STRUCT_MEMBER(ui::TextInputType, dialog_type) | 
|  | IPC_STRUCT_MEMBER(double, dialog_value) | 
|  | IPC_STRUCT_MEMBER(double, minimum) | 
|  | IPC_STRUCT_MEMBER(double, maximum) | 
|  | IPC_STRUCT_MEMBER(double, step) | 
|  | IPC_STRUCT_MEMBER(std::vector<content::DateTimeSuggestion>, suggestions) | 
|  | IPC_STRUCT_END() | 
|  |  | 
|  | IPC_STRUCT_BEGIN(ViewHostMsg_SelectionBounds_Params) | 
|  | IPC_STRUCT_MEMBER(gfx::Rect, anchor_rect) | 
|  | IPC_STRUCT_MEMBER(blink::WebTextDirection, anchor_dir) | 
|  | IPC_STRUCT_MEMBER(gfx::Rect, focus_rect) | 
|  | IPC_STRUCT_MEMBER(blink::WebTextDirection, focus_dir) | 
|  | IPC_STRUCT_MEMBER(bool, is_anchor_first) | 
|  | IPC_STRUCT_END() | 
|  |  | 
|  | IPC_STRUCT_BEGIN(ViewHostMsg_UpdateRect_Params) | 
|  | // The size of the RenderView when this message was generated.  This is | 
|  | // included so the host knows how large the view is from the perspective of | 
|  | // the renderer process.  This is necessary in case a resize operation is in | 
|  | // progress. If auto-resize is enabled, this should update the corresponding | 
|  | // view size. | 
|  | IPC_STRUCT_MEMBER(gfx::Size, view_size) | 
|  |  | 
|  | // The following describes the various bits that may be set in flags: | 
|  | // | 
|  | //   ViewHostMsg_UpdateRect_Flags::IS_RESIZE_ACK | 
|  | //     Indicates that this is a response to a ViewMsg_Resize message. | 
|  | // | 
|  | //   ViewHostMsg_UpdateRect_Flags::IS_REPAINT_ACK | 
|  | //     Indicates that this is a response to a ViewMsg_Repaint message. | 
|  | // | 
|  | // If flags is zero, then this message corresponds to an unsolicited paint | 
|  | // request by the render view.  Any of the above bits may be set in flags, | 
|  | // which would indicate that this paint message is an ACK for multiple | 
|  | // request messages. | 
|  | IPC_STRUCT_MEMBER(int, flags) | 
|  | IPC_STRUCT_END() | 
|  |  | 
|  | IPC_STRUCT_BEGIN(ViewMsg_New_Params) | 
|  | // Renderer-wide preferences. | 
|  | IPC_STRUCT_MEMBER(content::RendererPreferences, renderer_preferences) | 
|  |  | 
|  | // Preferences for this view. | 
|  | IPC_STRUCT_MEMBER(content::WebPreferences, web_preferences) | 
|  |  | 
|  | // The ID of the view to be created. | 
|  | IPC_STRUCT_MEMBER(int32_t, view_id, MSG_ROUTING_NONE) | 
|  |  | 
|  | // The ID of the main frame hosted in the view. | 
|  | IPC_STRUCT_MEMBER(int32_t, main_frame_routing_id, MSG_ROUTING_NONE) | 
|  |  | 
|  | // The ID of the widget for the main frame. | 
|  | IPC_STRUCT_MEMBER(int32_t, main_frame_widget_routing_id, MSG_ROUTING_NONE) | 
|  |  | 
|  | // The session storage namespace ID this view should use. | 
|  | IPC_STRUCT_MEMBER(int64_t, session_storage_namespace_id) | 
|  |  | 
|  | // The route ID of the opener RenderFrame or RenderFrameProxy, if we need to | 
|  | // set one (MSG_ROUTING_NONE otherwise). | 
|  | IPC_STRUCT_MEMBER(int, opener_frame_route_id, MSG_ROUTING_NONE) | 
|  |  | 
|  | // Whether the RenderView should initially be swapped out. | 
|  | IPC_STRUCT_MEMBER(bool, swapped_out) | 
|  |  | 
|  | // Carries replicated information, such as frame name and sandbox flags, for | 
|  | // this view's main frame, which will be a proxy in |swapped_out| | 
|  | // views when in --site-per-process mode, or a RenderFrame in all other | 
|  | // cases. | 
|  | IPC_STRUCT_MEMBER(content::FrameReplicationState, replicated_frame_state) | 
|  |  | 
|  | // The ID of the proxy object for the main frame in this view. It is only | 
|  | // used if |swapped_out| is true. | 
|  | IPC_STRUCT_MEMBER(int32_t, proxy_routing_id, MSG_ROUTING_NONE) | 
|  |  | 
|  | // Whether the RenderView should initially be hidden. | 
|  | IPC_STRUCT_MEMBER(bool, hidden) | 
|  |  | 
|  | // Whether the RenderView will never be visible. | 
|  | IPC_STRUCT_MEMBER(bool, never_visible) | 
|  |  | 
|  | // Whether the window associated with this view was created with an opener. | 
|  | IPC_STRUCT_MEMBER(bool, window_was_created_with_opener) | 
|  |  | 
|  | // The initial page ID to use for this view, which must be larger than any | 
|  | // existing navigation that might be loaded in the view.  Page IDs are unique | 
|  | // to a view and are only updated by the renderer after this initial value. | 
|  | IPC_STRUCT_MEMBER(int32_t, next_page_id) | 
|  |  | 
|  | // The initial renderer size. | 
|  | IPC_STRUCT_MEMBER(content::ResizeParams, initial_size) | 
|  |  | 
|  | // Whether to enable auto-resize. | 
|  | IPC_STRUCT_MEMBER(bool, enable_auto_resize) | 
|  |  | 
|  | // The minimum size to layout the page if auto-resize is enabled. | 
|  | IPC_STRUCT_MEMBER(gfx::Size, min_size) | 
|  |  | 
|  | // The maximum size to layout the page if auto-resize is enabled. | 
|  | IPC_STRUCT_MEMBER(gfx::Size, max_size) | 
|  |  | 
|  | // The page zoom level. | 
|  | IPC_STRUCT_MEMBER(double, page_zoom_level) | 
|  |  | 
|  | // The ICC profile of the output color space to use for image decode. | 
|  | IPC_STRUCT_MEMBER(gfx::ICCProfile, image_decode_color_space) | 
|  | IPC_STRUCT_END() | 
|  |  | 
|  | #if defined(OS_MACOSX) | 
|  | IPC_STRUCT_BEGIN(ViewMsg_UpdateScrollbarTheme_Params) | 
|  | IPC_STRUCT_MEMBER(float, initial_button_delay) | 
|  | IPC_STRUCT_MEMBER(float, autoscroll_button_delay) | 
|  | IPC_STRUCT_MEMBER(bool, jump_on_track_click) | 
|  | IPC_STRUCT_MEMBER(blink::ScrollerStyle, preferred_scroller_style) | 
|  | IPC_STRUCT_MEMBER(bool, redraw) | 
|  | IPC_STRUCT_MEMBER(blink::WebScrollbarButtonsPlacement, button_placement) | 
|  | IPC_STRUCT_END() | 
|  | #endif | 
|  |  | 
|  | // Messages sent from the browser to the renderer. | 
|  |  | 
|  | #if defined(OS_ANDROID) | 
|  | // Tells the renderer to cancel an opened date/time dialog. | 
|  | IPC_MESSAGE_ROUTED0(ViewMsg_CancelDateTimeDialog) | 
|  |  | 
|  | // Replaces a date time input field. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_ReplaceDateTime, | 
|  | double /* dialog_value */) | 
|  |  | 
|  | #endif | 
|  |  | 
|  | // Tells the render side that a ViewHostMsg_LockMouse message has been | 
|  | // processed. |succeeded| indicates whether the mouse has been successfully | 
|  | // locked or not. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_LockMouse_ACK, | 
|  | bool /* succeeded */) | 
|  | // Tells the render side that the mouse has been unlocked. | 
|  | IPC_MESSAGE_ROUTED0(ViewMsg_MouseLockLost) | 
|  |  | 
|  | // Sent by the browser when the parameters for vsync alignment have changed. | 
|  | IPC_MESSAGE_ROUTED2(ViewMsg_UpdateVSyncParameters, | 
|  | base::TimeTicks /* timebase */, | 
|  | base::TimeDelta /* interval */) | 
|  |  | 
|  | // Tells the renderer to create a new view. | 
|  | // This message is slightly different, the view it takes (via | 
|  | // ViewMsg_New_Params) is the view to create, the message itself is sent as a | 
|  | // non-view control message. | 
|  | IPC_MESSAGE_CONTROL1(ViewMsg_New, | 
|  | ViewMsg_New_Params) | 
|  |  | 
|  | // Sends updated preferences to the renderer. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_SetRendererPrefs, | 
|  | content::RendererPreferences) | 
|  |  | 
|  | // This passes a set of webkit preferences down to the renderer. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_UpdateWebPreferences, | 
|  | content::WebPreferences) | 
|  |  | 
|  | // Informs the renderer that the timezone has changed along with a new | 
|  | // timezone ID. | 
|  | IPC_MESSAGE_CONTROL1(ViewMsg_TimezoneChange, std::string) | 
|  |  | 
|  | // Tells the render view to close. | 
|  | // Expects a Close_ACK message when finished. | 
|  | IPC_MESSAGE_ROUTED0(ViewMsg_Close) | 
|  |  | 
|  | // Tells the render view to change its size.  A ViewHostMsg_UpdateRect message | 
|  | // is generated in response provided new_size is not empty and not equal to | 
|  | // the view's current size.  The generated ViewHostMsg_UpdateRect message will | 
|  | // have the IS_RESIZE_ACK flag set. It also receives the resizer rect so that | 
|  | // we don't have to fetch it every time WebKit asks for it. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_Resize, content::ResizeParams /* params */) | 
|  |  | 
|  | // Enables device emulation. See WebDeviceEmulationParams for description. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_EnableDeviceEmulation, | 
|  | blink::WebDeviceEmulationParams /* params */) | 
|  |  | 
|  | // Disables device emulation, enabled previously by EnableDeviceEmulation. | 
|  | IPC_MESSAGE_ROUTED0(ViewMsg_DisableDeviceEmulation) | 
|  |  | 
|  | // Tells the render view that the resize rect has changed. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_ChangeResizeRect, | 
|  | gfx::Rect /* resizer_rect */) | 
|  |  | 
|  | // Sent to inform the view that it was hidden.  This allows it to reduce its | 
|  | // resource utilization. | 
|  | IPC_MESSAGE_ROUTED0(ViewMsg_WasHidden) | 
|  |  | 
|  | // Tells the render view that it is no longer hidden (see WasHidden), and the | 
|  | // render view is expected to respond with a full repaint if needs_repainting | 
|  | // is true. If needs_repainting is false, then this message does not trigger a | 
|  | // message in response. | 
|  | IPC_MESSAGE_ROUTED2(ViewMsg_WasShown, | 
|  | bool /* needs_repainting */, | 
|  | ui::LatencyInfo /* latency_info */) | 
|  |  | 
|  | // Tells the renderer to focus the first (last if reverse is true) focusable | 
|  | // node. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_SetInitialFocus, | 
|  | bool /* reverse */) | 
|  |  | 
|  | // Sent to inform the renderer to invoke a context menu. | 
|  | // The parameter specifies the location in the render view's coordinates. | 
|  | IPC_MESSAGE_ROUTED2(ViewMsg_ShowContextMenu, | 
|  | ui::MenuSourceType, | 
|  | gfx::Point /* location where menu should be shown */) | 
|  |  | 
|  | // Tells the renderer to perform the given action on the media player | 
|  | // located at the given point. | 
|  | IPC_MESSAGE_ROUTED2(ViewMsg_MediaPlayerActionAt, | 
|  | gfx::Point, /* location */ | 
|  | blink::WebMediaPlayerAction) | 
|  |  | 
|  | // Tells the renderer to perform the given action on the plugin located at | 
|  | // the given point. | 
|  | IPC_MESSAGE_ROUTED2(ViewMsg_PluginActionAt, | 
|  | gfx::Point, /* location */ | 
|  | blink::WebPluginAction) | 
|  |  | 
|  | // Sets the page scale for the current main frame to the given page scale. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_SetPageScale, float /* page_scale_factor */) | 
|  |  | 
|  | // Change the zoom level for the current main frame.  If the level actually | 
|  | // changes, a ViewHostMsg_DidZoomURL message will be sent back to the browser | 
|  | // telling it what url got zoomed and what its current zoom level is. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_Zoom, | 
|  | content::PageZoom /* function */) | 
|  |  | 
|  | // Set the zoom level for a particular url that the renderer is in the | 
|  | // process of loading.  This will be stored, to be used if the load commits | 
|  | // and ignored otherwise. | 
|  | IPC_MESSAGE_ROUTED2(ViewMsg_SetZoomLevelForLoadingURL, | 
|  | GURL /* url */, | 
|  | double /* zoom_level */) | 
|  |  | 
|  | // Used to tell a render view whether it should expose various bindings | 
|  | // that allow JS content extended privileges.  See BindingsPolicy for valid | 
|  | // flag values. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_AllowBindings, | 
|  | int /* enabled_bindings_flags */) | 
|  |  | 
|  | // Tell the renderer to add a property to the WebUI binding object.  This | 
|  | // only works if we allowed WebUI bindings. | 
|  | IPC_MESSAGE_ROUTED2(ViewMsg_SetWebUIProperty, | 
|  | std::string /* property_name */, | 
|  | std::string /* property_value_json */) | 
|  |  | 
|  | // Used to notify the render-view that we have received a target URL. Used | 
|  | // to prevent target URLs spamming the browser. | 
|  | IPC_MESSAGE_ROUTED0(ViewMsg_UpdateTargetURL_ACK) | 
|  |  | 
|  | // Provides the results of directory enumeration. | 
|  | IPC_MESSAGE_ROUTED2(ViewMsg_EnumerateDirectoryResponse, | 
|  | int /* request_id */, | 
|  | std::vector<base::FilePath> /* files_in_directory */) | 
|  |  | 
|  | // Instructs the renderer to close the current page, including running the | 
|  | // onunload event handler. | 
|  | // | 
|  | // Expects a ClosePage_ACK message when finished. | 
|  | IPC_MESSAGE_ROUTED0(ViewMsg_ClosePage) | 
|  |  | 
|  | // Notifies the renderer that a paint is to be generated for the rectangle | 
|  | // passed in. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_Repaint, | 
|  | gfx::Size /* The view size to be repainted */) | 
|  |  | 
|  | // Notification that a move or resize renderer's containing window has | 
|  | // started. | 
|  | IPC_MESSAGE_ROUTED0(ViewMsg_MoveOrResizeStarted) | 
|  |  | 
|  | IPC_MESSAGE_ROUTED2(ViewMsg_UpdateScreenRects, | 
|  | gfx::Rect /* view_screen_rect */, | 
|  | gfx::Rect /* window_screen_rect */) | 
|  |  | 
|  | // Reply to ViewHostMsg_RequestMove, ViewHostMsg_ShowView, and | 
|  | // ViewHostMsg_ShowWidget to inform the renderer that the browser has | 
|  | // processed the move.  The browser may have ignored the move, but it finished | 
|  | // processing.  This is used because the renderer keeps a temporary cache of | 
|  | // the widget position while these asynchronous operations are in progress. | 
|  | IPC_MESSAGE_ROUTED0(ViewMsg_Move_ACK) | 
|  |  | 
|  | // Used to instruct the RenderView to send back updates to the preferred size. | 
|  | IPC_MESSAGE_ROUTED0(ViewMsg_EnablePreferredSizeChangedMode) | 
|  |  | 
|  | // Used to instruct the RenderView to automatically resize and send back | 
|  | // updates for the new size. | 
|  | IPC_MESSAGE_ROUTED2(ViewMsg_EnableAutoResize, | 
|  | gfx::Size /* min_size */, | 
|  | gfx::Size /* max_size */) | 
|  |  | 
|  | // Used to instruct the RenderView to disalbe automatically resize. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_DisableAutoResize, | 
|  | gfx::Size /* new_size */) | 
|  |  | 
|  | // Changes the text direction of the currently selected input field (if any). | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_SetTextDirection, | 
|  | blink::WebTextDirection /* direction */) | 
|  |  | 
|  | // Tells the renderer to clear the focused element (if any). | 
|  | IPC_MESSAGE_ROUTED0(ViewMsg_ClearFocusedElement) | 
|  |  | 
|  | // Make the RenderView background transparent or opaque. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_SetBackgroundOpaque, bool /* opaque */) | 
|  |  | 
|  | // Used to tell the renderer not to add scrollbars with height and | 
|  | // width below a threshold. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_DisableScrollbarsForSmallWindows, | 
|  | gfx::Size /* disable_scrollbar_size_limit */) | 
|  |  | 
|  | // Activate/deactivate the RenderView (i.e., set its controls' tint | 
|  | // accordingly, etc.). | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_SetActive, | 
|  | bool /* active */) | 
|  |  | 
|  | // Response message to ViewHostMsg_CreateWorker. | 
|  | // Sent when the worker has started. | 
|  | IPC_MESSAGE_ROUTED0(ViewMsg_WorkerCreated) | 
|  |  | 
|  | // Sent when the worker failed to load the worker script. | 
|  | // In normal cases, this message is sent after ViewMsg_WorkerCreated is sent. | 
|  | // But if the shared worker of the same URL already exists and it has failed | 
|  | // to load the script, when the renderer send ViewHostMsg_CreateWorker before | 
|  | // the shared worker is killed only ViewMsg_WorkerScriptLoadFailed is sent. | 
|  | IPC_MESSAGE_ROUTED0(ViewMsg_WorkerScriptLoadFailed) | 
|  |  | 
|  | // Sent when the worker has connected. | 
|  | // This message is sent only if the worker successfully loaded the script. | 
|  | IPC_MESSAGE_ROUTED0(ViewMsg_WorkerConnected) | 
|  |  | 
|  | // Tells the renderer that the network type has changed so that navigator.onLine | 
|  | // and navigator.connection can be updated. | 
|  | IPC_MESSAGE_CONTROL2(ViewMsg_NetworkConnectionChanged, | 
|  | net::NetworkChangeNotifier::ConnectionType /* type */, | 
|  | double /* max bandwidth mbps */) | 
|  |  | 
|  | // Sent by the browser to synchronize with the next compositor frame. Used only | 
|  | // for tests. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_WaitForNextFrameForTests, int /* routing_id */) | 
|  |  | 
|  | #if defined(ENABLE_PLUGINS) | 
|  | // Reply to ViewHostMsg_OpenChannelToPpapiBroker | 
|  | // Tells the renderer that the channel to the broker has been created. | 
|  | IPC_MESSAGE_ROUTED2(ViewMsg_PpapiBrokerChannelCreated, | 
|  | base::ProcessId /* broker_pid */, | 
|  | IPC::ChannelHandle /* handle */) | 
|  |  | 
|  | // Reply to ViewHostMsg_RequestPpapiBrokerPermission. | 
|  | // Tells the renderer whether permission to access to PPAPI broker was granted | 
|  | // or not. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_PpapiBrokerPermissionResult, | 
|  | bool /* result */) | 
|  |  | 
|  | // Tells the renderer to empty its plugin list cache, optional reloading | 
|  | // pages containing plugins. | 
|  | IPC_MESSAGE_CONTROL1(ViewMsg_PurgePluginListCache, | 
|  | bool /* reload_pages */) | 
|  | #endif | 
|  |  | 
|  | // An acknowledge to ViewHostMsg_MultipleTargetsTouched to notify the renderer | 
|  | // process to release the magnified image. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_ReleaseDisambiguationPopupBitmap, | 
|  | cc::SharedBitmapId /* id */) | 
|  |  | 
|  | // Fetches complete rendered content of a web page as plain text. | 
|  | IPC_MESSAGE_ROUTED0(ViewMsg_GetRenderedText) | 
|  |  | 
|  | #if defined(OS_MACOSX) | 
|  | // Notification of a change in scrollbar appearance and/or behavior. | 
|  | IPC_MESSAGE_CONTROL1(ViewMsg_UpdateScrollbarTheme, | 
|  | ViewMsg_UpdateScrollbarTheme_Params /* params */) | 
|  |  | 
|  | // Notification that the OS X Aqua color preferences changed. | 
|  | IPC_MESSAGE_CONTROL3(ViewMsg_SystemColorsChanged, | 
|  | int /* AppleAquaColorVariant */, | 
|  | std::string /* AppleHighlightedTextColor */, | 
|  | std::string /* AppleHighlightColor */) | 
|  | #endif | 
|  |  | 
|  | #if defined(OS_ANDROID) | 
|  | // Tells the renderer to suspend/resume the webkit timers. | 
|  | IPC_MESSAGE_CONTROL1(ViewMsg_SetWebKitSharedTimersSuspended, | 
|  | bool /* suspend */) | 
|  |  | 
|  | // Notifies the renderer whether hiding/showing the top controls is enabled | 
|  | // and whether or not to animate to the proper state. | 
|  | IPC_MESSAGE_ROUTED3(ViewMsg_UpdateTopControlsState, | 
|  | bool /* enable_hiding */, | 
|  | bool /* enable_showing */, | 
|  | bool /* animate */) | 
|  |  | 
|  | IPC_MESSAGE_ROUTED0(ViewMsg_ShowImeIfNeeded) | 
|  |  | 
|  | // Extracts the data at the given rect, returning it through the | 
|  | // ViewHostMsg_SmartClipDataExtracted IPC. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_ExtractSmartClipData, | 
|  | gfx::Rect /* rect */) | 
|  | #endif | 
|  |  | 
|  | // Sent by browser to tell renderer compositor that some resources that were | 
|  | // given to the browser in a swap are not being used anymore. | 
|  | // If this message is in response to a swap then is_swap_ack is set. | 
|  | IPC_MESSAGE_ROUTED3(ViewMsg_ReclaimCompositorResources, | 
|  | uint32_t /* output_surface_id */, | 
|  | bool /* is_swap_ack */, | 
|  | cc::ReturnedResourceArray /* resources */) | 
|  |  | 
|  | // Sent by browser to give renderer compositor a new namespace ID for any | 
|  | // SurfaceSequences it has to create. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_SetSurfaceClientId, | 
|  | uint32_t /* surface_id_namespace */) | 
|  |  | 
|  | IPC_MESSAGE_ROUTED0(ViewMsg_SelectWordAroundCaret) | 
|  |  | 
|  | // Sent by the browser to ask the renderer to redraw. Robust to events that can | 
|  | // happen in renderer (abortion of the commit or draw, loss of output surface | 
|  | // etc.). | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_ForceRedraw, | 
|  | ui::LatencyInfo /* latency_info */) | 
|  |  | 
|  | // Let renderer know begin frame messages won't be sent even if requested. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_SetBeginFramePaused, bool /* paused */) | 
|  |  | 
|  | // Sent by the browser when the renderer should generate a new frame. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_BeginFrame, | 
|  | cc::BeginFrameArgs /* args */) | 
|  |  | 
|  | // Sent by the browser to deliver a compositor proto to the renderer. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_HandleCompositorProto, | 
|  | std::vector<uint8_t> /* proto */) | 
|  |  | 
|  | // ----------------------------------------------------------------------------- | 
|  | // Messages sent from the renderer to the browser. | 
|  |  | 
|  | // Sent by renderer to request a ViewMsg_BeginFrame message for upcoming | 
|  | // display events. If |enabled| is true, the BeginFrame message will continue | 
|  | // to be be delivered until the notification is disabled. | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_SetNeedsBeginFrames, | 
|  | bool /* enabled */) | 
|  |  | 
|  | // Sent by the renderer when it is creating a new window.  The browser creates a | 
|  | // tab for it.  If |reply.route_id| is MSG_ROUTING_NONE, the view couldn't be | 
|  | // created. | 
|  | IPC_SYNC_MESSAGE_CONTROL1_1(ViewHostMsg_CreateWindow, | 
|  | ViewHostMsg_CreateWindow_Params, | 
|  | ViewHostMsg_CreateWindow_Reply) | 
|  |  | 
|  | // Similar to ViewHostMsg_CreateWindow, except used for sub-widgets, like | 
|  | // <select> dropdowns.  This message is sent to the WebContentsImpl that | 
|  | // contains the widget being created. | 
|  | IPC_SYNC_MESSAGE_CONTROL2_1(ViewHostMsg_CreateWidget, | 
|  | int /* opener_id */, | 
|  | blink::WebPopupType /* popup type */, | 
|  | int /* route_id */) | 
|  |  | 
|  | // Similar to ViewHostMsg_CreateWidget except the widget is a full screen | 
|  | // window. | 
|  | IPC_SYNC_MESSAGE_CONTROL1_1(ViewHostMsg_CreateFullscreenWidget, | 
|  | int /* opener_id */, | 
|  | int /* route_id */) | 
|  |  | 
|  | // Asks the browser for a unique routing ID. | 
|  | IPC_SYNC_MESSAGE_CONTROL0_1(ViewHostMsg_GenerateRoutingID, | 
|  | int /* routing_id */) | 
|  |  | 
|  | // These three messages are sent to the parent RenderViewHost to display the | 
|  | // page/widget that was created by | 
|  | // CreateWindow/CreateWidget/CreateFullscreenWidget. routing_id | 
|  | // refers to the id that was returned from the Create message above. | 
|  | // The initial_rect parameter is in screen coordinates. | 
|  | // | 
|  | // FUTURE: there will probably be flags here to control if the result is | 
|  | // in a new window. | 
|  | IPC_MESSAGE_ROUTED4(ViewHostMsg_ShowView, | 
|  | int /* route_id */, | 
|  | WindowOpenDisposition /* disposition */, | 
|  | gfx::Rect /* initial_rect */, | 
|  | bool /* opened_by_user_gesture */) | 
|  |  | 
|  | IPC_MESSAGE_ROUTED2(ViewHostMsg_ShowWidget, | 
|  | int /* route_id */, | 
|  | gfx::Rect /* initial_rect */) | 
|  |  | 
|  | // Message to show a full screen widget. | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_ShowFullscreenWidget, | 
|  | int /* route_id */) | 
|  |  | 
|  | // Sent by the renderer process to request that the browser close the view. | 
|  | // This corresponds to the window.close() API, and the browser may ignore | 
|  | // this message.  Otherwise, the browser will generates a ViewMsg_Close | 
|  | // message to close the view. | 
|  | IPC_MESSAGE_ROUTED0(ViewHostMsg_Close) | 
|  |  | 
|  | // Send in response to a ViewMsg_UpdateScreenRects so that the renderer can | 
|  | // throttle these messages. | 
|  | IPC_MESSAGE_ROUTED0(ViewHostMsg_UpdateScreenRects_ACK) | 
|  |  | 
|  | // Sent by the renderer process to request that the browser move the view. | 
|  | // This corresponds to the window.resizeTo() and window.moveTo() APIs, and | 
|  | // the browser may ignore this message. | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_RequestMove, | 
|  | gfx::Rect /* position */) | 
|  |  | 
|  | // Indicates that the render view has been closed in respose to a | 
|  | // Close message. | 
|  | IPC_MESSAGE_CONTROL1(ViewHostMsg_Close_ACK, | 
|  | int /* old_route_id */) | 
|  |  | 
|  | // Indicates that the current page has been closed, after a ClosePage | 
|  | // message. | 
|  | IPC_MESSAGE_ROUTED0(ViewHostMsg_ClosePage_ACK) | 
|  |  | 
|  | // Notifies the browser that we have session history information. | 
|  | // page_id: unique ID that allows us to distinguish between history entries. | 
|  | IPC_MESSAGE_ROUTED2(ViewHostMsg_UpdateState, | 
|  | int32_t /* page_id */, | 
|  | content::PageState /* state */) | 
|  |  | 
|  | // Notifies the browser that we want to show a destination url for a potential | 
|  | // action (e.g. when the user is hovering over a link). | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_UpdateTargetURL, | 
|  | GURL) | 
|  |  | 
|  | // Sent when the document element is available for the top-level frame.  This | 
|  | // happens after the page starts loading, but before all resources are | 
|  | // finished. | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_DocumentAvailableInMainFrame, | 
|  | bool /* uses_temporary_zoom_level */) | 
|  |  | 
|  | // Sent to update part of the view.  In response to this message, the host | 
|  | // generates a ViewMsg_UpdateRect_ACK message. | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_UpdateRect, | 
|  | ViewHostMsg_UpdateRect_Params) | 
|  |  | 
|  | IPC_MESSAGE_ROUTED0(ViewHostMsg_Focus) | 
|  |  | 
|  | // Message sent from renderer to the browser when focus changes inside the | 
|  | // webpage. The first parameter says whether the newly focused element needs | 
|  | // keyboard input (true for textfields, text areas and content editable divs). | 
|  | // The second parameter is the node bounds relative to RenderWidgetHostView. | 
|  | IPC_MESSAGE_ROUTED2(ViewHostMsg_FocusedNodeChanged, | 
|  | bool /* is_editable_node */, | 
|  | gfx::Rect /* node_bounds */) | 
|  |  | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_SetCursor, content::WebCursor) | 
|  |  | 
|  | // Get the list of proxies to use for |url|, as a semicolon delimited list | 
|  | // of "<TYPE> <HOST>:<PORT>" | "DIRECT". | 
|  | IPC_SYNC_MESSAGE_CONTROL1_2(ViewHostMsg_ResolveProxy, | 
|  | GURL /* url */, | 
|  | bool /* result */, | 
|  | std::string /* proxy list */) | 
|  |  | 
|  | // A renderer sends this to the browser process when it wants to create a | 
|  | // worker.  The browser will create the worker process if necessary, and | 
|  | // will return the route id on in the reply on success.  On error returns | 
|  | // MSG_ROUTING_NONE and an error type. | 
|  | IPC_SYNC_MESSAGE_CONTROL1_1(ViewHostMsg_CreateWorker, | 
|  | ViewHostMsg_CreateWorker_Params, | 
|  | ViewHostMsg_CreateWorker_Reply) | 
|  |  | 
|  | // A renderer sends this to the browser process when a document has been | 
|  | // detached. The browser will use this to constrain the lifecycle of worker | 
|  | // processes (SharedWorkers are shut down when their last associated document | 
|  | // is detached). | 
|  | IPC_MESSAGE_CONTROL1(ViewHostMsg_DocumentDetached, uint64_t /* document_id */) | 
|  |  | 
|  | // Wraps an IPC message that's destined to the worker on the renderer->browser | 
|  | // hop. | 
|  | IPC_MESSAGE_CONTROL1(ViewHostMsg_ForwardToWorker, | 
|  | IPC::Message /* message */) | 
|  |  | 
|  | // Tells the browser that a specific Appcache manifest in the current page | 
|  | // was accessed. | 
|  | IPC_MESSAGE_ROUTED2(ViewHostMsg_AppCacheAccessed, | 
|  | GURL /* manifest url */, | 
|  | bool /* blocked by policy */) | 
|  |  | 
|  | // Used to go to the session history entry at the given offset (ie, -1 will | 
|  | // return the "back" item). | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_GoToEntryAtOffset, | 
|  | int /* offset (from current) of history item to get */) | 
|  |  | 
|  | // Sent from an inactive renderer for the browser to route to the active | 
|  | // renderer, instructing it to close. | 
|  | IPC_MESSAGE_ROUTED0(ViewHostMsg_RouteCloseEvent) | 
|  |  | 
|  | // Notifies that the preferred size of the content changed. | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_DidContentsPreferredSizeChange, | 
|  | gfx::Size /* pref_size */) | 
|  |  | 
|  | // Notifies whether there are JavaScript touch event handlers or not. | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_HasTouchEventHandlers, | 
|  | bool /* has_handlers */) | 
|  |  | 
|  | // A message from HTML-based UI.  When (trusted) Javascript calls | 
|  | // send(message, args), this message is sent to the browser. | 
|  | IPC_MESSAGE_ROUTED3(ViewHostMsg_WebUISend, | 
|  | GURL /* source_url */, | 
|  | std::string  /* message */, | 
|  | base::ListValue /* args */) | 
|  |  | 
|  | #if defined(ENABLE_PLUGINS) | 
|  | // A renderer sends this to the browser process when it wants to access a PPAPI | 
|  | // broker. In contrast to FrameHostMsg_OpenChannelToPpapiBroker, this is called | 
|  | // for every connection. | 
|  | // The browser will respond with ViewMsg_PpapiBrokerPermissionResult. | 
|  | IPC_MESSAGE_ROUTED3(ViewHostMsg_RequestPpapiBrokerPermission, | 
|  | int /* routing_id */, | 
|  | GURL /* document_url */, | 
|  | base::FilePath /* plugin_path */) | 
|  | #endif  // defined(ENABLE_PLUGINS) | 
|  |  | 
|  | // Send the tooltip text for the current mouse position to the browser. | 
|  | IPC_MESSAGE_ROUTED2(ViewHostMsg_SetTooltipText, | 
|  | base::string16 /* tooltip text string */, | 
|  | blink::WebTextDirection /* text direction hint */) | 
|  |  | 
|  | // Notification that the text selection has changed. | 
|  | // Note: The secound parameter is the character based offset of the | 
|  | // base::string16 | 
|  | // text in the document. | 
|  | IPC_MESSAGE_ROUTED3(ViewHostMsg_SelectionChanged, | 
|  | base::string16 /* text covers the selection range */, | 
|  | uint32_t /* the offset of the text in the document */, | 
|  | gfx::Range /* selection range in the document */) | 
|  |  | 
|  | // Notification that the selection bounds have changed. | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_SelectionBoundsChanged, | 
|  | ViewHostMsg_SelectionBounds_Params) | 
|  |  | 
|  | // Asks the browser to enumerate a directory.  This is equivalent to running | 
|  | // the file chooser in directory-enumeration mode and having the user select | 
|  | // the given directory.  The result is returned in a | 
|  | // ViewMsg_EnumerateDirectoryResponse message. | 
|  | IPC_MESSAGE_ROUTED2(ViewHostMsg_EnumerateDirectory, | 
|  | int /* request_id */, | 
|  | base::FilePath /* file_path */) | 
|  |  | 
|  | // Tells the browser to move the focus to the next (previous if reverse is | 
|  | // true) focusable element. | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_TakeFocus, | 
|  | bool /* reverse */) | 
|  |  | 
|  | // Required for opening a date/time dialog | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_OpenDateTimeDialog, | 
|  | ViewHostMsg_DateTimeDialogValue_Params /* value */) | 
|  |  | 
|  | // Required for updating text input state. | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_TextInputStateChanged, | 
|  | content::TextInputState /* text_input_state */) | 
|  |  | 
|  | // Sent when the renderer changes the zoom level for a particular url, so the | 
|  | // browser can update its records.  If the view is a plugin doc, then url is | 
|  | // used to update the zoom level for all pages in that site.  Otherwise, the | 
|  | // render view's id is used so that only the menu is updated. | 
|  | IPC_MESSAGE_ROUTED2(ViewHostMsg_DidZoomURL, | 
|  | double /* zoom_level */, | 
|  | GURL /* url */) | 
|  |  | 
|  | // Sent when the renderer changes its page scale factor. | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_PageScaleFactorChanged, | 
|  | float /* page_scale_factor */) | 
|  |  | 
|  | // Updates the minimum/maximum allowed zoom percent for this tab from the | 
|  | // default values.  If |remember| is true, then the zoom setting is applied to | 
|  | // other pages in the site and is saved, otherwise it only applies to this | 
|  | // tab. | 
|  | IPC_MESSAGE_ROUTED2(ViewHostMsg_UpdateZoomLimits, | 
|  | int /* minimum_percent */, | 
|  | int /* maximum_percent */) | 
|  |  | 
|  | IPC_MESSAGE_ROUTED3( | 
|  | ViewHostMsg_SwapCompositorFrame, | 
|  | uint32_t /* output_surface_id */, | 
|  | cc::CompositorFrame /* frame */, | 
|  | std::vector<IPC::Message> /* messages_to_deliver_with_frame */) | 
|  |  | 
|  | // Send back a string to be recorded by UserMetrics. | 
|  | IPC_MESSAGE_CONTROL1(ViewHostMsg_UserMetricsRecordAction, | 
|  | std::string /* action */) | 
|  |  | 
|  | // Notifies the browser of an event occurring in the media pipeline. | 
|  | IPC_MESSAGE_CONTROL1(ViewHostMsg_MediaLogEvents, | 
|  | std::vector<media::MediaLogEvent> /* events */) | 
|  |  | 
|  | // Requests to lock the mouse. Will result in a ViewMsg_LockMouse_ACK message | 
|  | // being sent back. | 
|  | // |privileged| is used by Pepper Flash. If this flag is set to true, we won't | 
|  | // pop up a bubble to ask for user permission or take mouse lock content into | 
|  | // account. | 
|  | IPC_MESSAGE_ROUTED3(ViewHostMsg_LockMouse, | 
|  | bool /* user_gesture */, | 
|  | bool /* last_unlocked_by_target */, | 
|  | bool /* privileged */) | 
|  |  | 
|  | // Requests to unlock the mouse. A ViewMsg_MouseLockLost message will be sent | 
|  | // whenever the mouse is unlocked (which may or may not be caused by | 
|  | // ViewHostMsg_UnlockMouse). | 
|  | IPC_MESSAGE_ROUTED0(ViewHostMsg_UnlockMouse) | 
|  |  | 
|  | // Notifies that multiple touch targets may have been pressed, and to show | 
|  | // the disambiguation popup. | 
|  | IPC_MESSAGE_ROUTED3(ViewHostMsg_ShowDisambiguationPopup, | 
|  | gfx::Rect, /* Border of touched targets */ | 
|  | gfx::Size, /* Size of zoomed image */ | 
|  | cc::SharedBitmapId /* id */) | 
|  |  | 
|  | // Notifies the browser that document has parsed the body. This is used by the | 
|  | // ResourceScheduler as an indication that bandwidth contention won't block | 
|  | // first paint. | 
|  | IPC_MESSAGE_ROUTED0(ViewHostMsg_WillInsertBody) | 
|  |  | 
|  | // Notification that the urls for the favicon of a site has been determined. | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_UpdateFaviconURL, | 
|  | std::vector<content::FaviconURL> /* candidates */) | 
|  |  | 
|  | // Message sent from renderer to the browser when the element that is focused | 
|  | // has been touched. A bool is passed in this message which indicates if the | 
|  | // node is editable. | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_FocusedNodeTouched, | 
|  | bool /* editable */) | 
|  |  | 
|  | // Message sent from the renderer to the browser when an HTML form has failed | 
|  | // validation constraints. | 
|  | IPC_MESSAGE_ROUTED3(ViewHostMsg_ShowValidationMessage, | 
|  | gfx::Rect /* anchor rectangle in root view coordinate */, | 
|  | base::string16 /* validation message */, | 
|  | base::string16 /* supplemental text */) | 
|  |  | 
|  | // Message sent from the renderer to the browser when a HTML form validation | 
|  | // message should be hidden from view. | 
|  | IPC_MESSAGE_ROUTED0(ViewHostMsg_HideValidationMessage) | 
|  |  | 
|  | // Message sent from the renderer to the browser when the suggested co-ordinates | 
|  | // of the anchor for a HTML form validation message have changed. | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_MoveValidationMessage, | 
|  | gfx::Rect /* anchor rectangle in root view coordinate */) | 
|  |  | 
|  | // Sent once a paint happens after the first non empty layout. In other words, | 
|  | // after the frame widget has painted something. | 
|  | IPC_MESSAGE_ROUTED0(ViewHostMsg_DidFirstVisuallyNonEmptyPaint) | 
|  |  | 
|  | // Send after a paint happens after any page commit, including a blank one. | 
|  | // TODO(kenrb): This, and all ViewHostMsg_* messages that actually pertain to | 
|  | // RenderWidget(Host), should be renamed to WidgetHostMsg_*. | 
|  | // See https://crbug.com/537793. | 
|  | IPC_MESSAGE_ROUTED0(ViewHostMsg_DidFirstPaintAfterLoad) | 
|  |  | 
|  | // Sent by the renderer to deliver a compositor proto to the browser. | 
|  | IPC_MESSAGE_ROUTED1(ViewHostMsg_ForwardCompositorProto, | 
|  | std::vector<uint8_t> /* proto */) | 
|  |  | 
|  | // Sent in reply to ViewMsg_WaitForNextFrameForTests. | 
|  | IPC_MESSAGE_ROUTED0(ViewHostMsg_WaitForNextFrameForTests_ACK) | 
|  |  | 
|  | #if defined(OS_ANDROID) | 
|  | // Start an android intent with the given URI. | 
|  | IPC_MESSAGE_ROUTED2(ViewHostMsg_StartContentIntent, | 
|  | GURL /* content_url */, | 
|  | bool /* is_main_frame */) | 
|  |  | 
|  | // Reply to the ViewMsg_ExtractSmartClipData message. | 
|  | IPC_MESSAGE_ROUTED3(ViewHostMsg_SmartClipDataExtracted, | 
|  | base::string16 /* text */, | 
|  | base::string16 /* html */, | 
|  | gfx::Rect /* rect */) | 
|  |  | 
|  | // Notifies that an unhandled tap has occurred at the specified x,y position | 
|  | // and that the UI may need to be triggered. | 
|  | IPC_MESSAGE_ROUTED2(ViewHostMsg_ShowUnhandledTapUIIfNeeded, | 
|  | int /* x */, | 
|  | int /* y */) | 
|  |  | 
|  | #elif defined(OS_MACOSX) | 
|  | // Receives content of a web page as plain text. | 
|  | IPC_MESSAGE_ROUTED1(ViewMsg_GetRenderedTextCompleted, std::string) | 
|  | #endif | 
|  |  | 
|  | // Adding a new message? Stick to the sort order above: first platform | 
|  | // independent ViewMsg, then ifdefs for platform specific ViewMsg, then platform | 
|  | // independent ViewHostMsg, then ifdefs for platform specific ViewHostMsg. |