15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Multiply-included message header, no traditional include guard. 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h" 1058e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch#include "base/process/process.h" 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/values.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/content_export.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/content_param_traits.h" 1423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "content/common/cursors/webcursor.h" 15868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "content/common/edit_command.h" 165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "content/common/frame_param_macros.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/common_param_traits.h" 18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "content/public/common/drop_data.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ipc/ipc_channel_handle.h" 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ipc/ipc_message_macros.h" 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ipc/ipc_message_utils.h" 225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "third_party/WebKit/public/web/WebCompositionUnderline.h" 237d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebDragOperation.h" 247d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebDragStatus.h" 2523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "third_party/skia/include/core/SkBitmap.h" 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/point.h" 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/rect.h" 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/size.h" 2968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#include "url/gurl.h" 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef IPC_MESSAGE_EXPORT 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define IPC_MESSAGE_EXPORT CONTENT_EXPORT 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define IPC_MESSAGE_START BrowserPluginMsgStart 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_ENUM_TRAITS_MAX_VALUE(blink::WebDragStatus, blink::WebDragStatusLast) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_BEGIN(BrowserPluginHostMsg_AutoSize_Params) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(bool, enable) 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(gfx::Size, max_size) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(gfx::Size, min_size) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_END() 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_BEGIN(BrowserPluginHostMsg_ResizeGuest_Params) 46ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch // Indicates whether the parameters have been populated or not. 47ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch IPC_STRUCT_MEMBER(bool, size_changed) 48f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) // The new size of guest view. 49f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) IPC_STRUCT_MEMBER(gfx::Size, view_size) 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Indicates the scale factor of the embedder WebView. 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(float, scale_factor) 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Indicates a request for a full repaint of the page. 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // This is required for switching from compositing to the software 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // rendering path. 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(bool, repaint) 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_END() 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)IPC_STRUCT_BEGIN(BrowserPluginHostMsg_Attach_Params) 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(bool, focused) 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(bool, visible) 61f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) IPC_STRUCT_MEMBER(bool, opaque) 6268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) IPC_STRUCT_MEMBER(GURL, embedder_frame_url) 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(BrowserPluginHostMsg_AutoSize_Params, auto_size_params) 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(BrowserPluginHostMsg_ResizeGuest_Params, 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) resize_guest_params) 66f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) IPC_STRUCT_MEMBER(gfx::Point, origin) 67c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)IPC_STRUCT_END() 68c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_BEGIN(BrowserPluginMsg_UpdateRect_Params) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The size of the RenderView when this message was generated. This is 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // included so the host knows how large the view is from the perspective of 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // the renderer process. This is necessary in case a resize operation is in 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // progress. If auto-resize is enabled, this should update the corresponding 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // view size. 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(gfx::Size, view_size) 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // All the above coordinates are in DIP. This is the scale factor needed 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // to convert them to pixels. 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(float, scale_factor) 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Is this UpdateRect an ACK to a resize request? 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(bool, is_resize_ack) 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_END() 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Browser plugin messages 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ----------------------------------------------------------------------------- 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// These messages are from the embedder to the browser process. 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 90c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// This message is sent from BrowserPlugin to BrowserPluginGuest to issue an 91c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// edit command. 92c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_ExecuteEditCommand, 93c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int /* instance_id */, 94c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) std::string /* command */) 95c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 96868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// This message must be sent just before sending a key event. 97868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_SetEditCommandsForNextKeyEvent, 98868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) int /* instance_id */, 99868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) std::vector<content::EditCommand> /* edit_commands */) 100868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 1015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// This message is sent from BrowserPlugin to BrowserPluginGuest whenever IME 1025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// composition state is updated. 1035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_MESSAGE_ROUTED5( 1045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) BrowserPluginHostMsg_ImeSetComposition, 1055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int /* instance_id */, 1065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) std::string /* text */, 1075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) std::vector<blink::WebCompositionUnderline> /* underlines */, 1085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int /* selectiont_start */, 1095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int /* selection_end */) 1105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// This message is sent from BrowserPlugin to BrowserPluginGuest to notify that 1125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// confirming the current composition is requested. 1135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_MESSAGE_ROUTED3(BrowserPluginHostMsg_ImeConfirmComposition, 1145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int /* instance_id */, 1155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) std::string /* text */, 1165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) bool /* keep selection */) 1175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Deletes the current selection plus the specified number of characters before 1195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// and after the selection or caret. 1205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_MESSAGE_ROUTED3(BrowserPluginHostMsg_ExtendSelectionAndDelete, 1215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int /* instance_id */, 1225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int /* before */, 1235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int /* after */) 1245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This message is sent to the browser process to enable or disable autosize 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// mode. 1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED3( 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserPluginHostMsg_SetAutoSize, 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserPluginHostMsg_AutoSize_Params /* auto_size_params */, 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserPluginHostMsg_ResizeGuest_Params /* resize_guest_params */) 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// This message is sent to the browser process to indicate that a BrowserPlugin 1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// has taken ownership of the lifetime of the guest of the given |instance_id|. 135c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// |params| is the state of the BrowserPlugin taking ownership of 136c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// the guest. If a guest doesn't already exist with the given |instance_id|, 137c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// a new one will be created. 138eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochIPC_MESSAGE_ROUTED3(BrowserPluginHostMsg_Attach, 1392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* instance_id */, 140eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch BrowserPluginHostMsg_Attach_Params /* params */, 141eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::DictionaryValue /* extra_params */) 1422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells the guest to focus or defocus itself. 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_SetFocus, 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool /* enable */) 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Sends an input event to the guest. 1492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED3(BrowserPluginHostMsg_HandleInputEvent, 1502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* instance_id */, 1512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) gfx::Rect /* guest_window_rect */, 1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC::WebInputEventPointer /* event */) 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 154a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)IPC_MESSAGE_ROUTED3(BrowserPluginHostMsg_CopyFromCompositingSurfaceAck, 155a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int /* instance_id */, 156a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int /* request_id */, 157a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) SkBitmap); 158a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 159f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Notify the guest renderer that some resources given to the embededer 160f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// are not used any more. 1615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_ReclaimCompositorResources, 162f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) int /* instance_id */, 1635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) FrameHostMsg_ReclaimCompositorResources_Params /* params */) 164f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// When a BrowserPlugin has been removed from the embedder's DOM, it informs 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the browser process to cleanup the guest. 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(BrowserPluginHostMsg_PluginDestroyed, 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */) 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells the guest it has been shown or hidden. 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_SetVisibility, 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool /* visible */) 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Tells the guest to change its background opacity. 176f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_SetContentsOpaque, 177f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) int /* instance_id */, 178f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) bool /* opaque */) 179f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells the guest that a drag event happened on the plugin. 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED5(BrowserPluginHostMsg_DragStatusUpdate, 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 183f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebDragStatus /* drag_status */, 184eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch content::DropData /* drop_data */, 185f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebDragOperationsMask /* operation_mask */, 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::Point /* plugin_location */) 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Sends a PointerLock Lock ACK to the BrowserPluginGuest. 1892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_LockMouse_ACK, 1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* instance_id */, 1912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool /* succeeded */) 1922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Sends a PointerLock Unlock ACK to the BrowserPluginGuest. 1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED1(BrowserPluginHostMsg_UnlockMouse_ACK, int /* instance_id */) 1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 19690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Sent when plugin's position has changed without UpdateRect. 19790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_UpdateGeometry, 19890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) int /* instance_id */, 19990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) gfx::Rect /* view_rect */) 20090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ----------------------------------------------------------------------------- 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// These messages are from the guest renderer to the browser process 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// A embedder sends this message to the browser when it wants 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// to resize a guest plugin container so that the guest is relaid out 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// according to the new size. 2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_ResizeGuest, 2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* instance_id*/, 2092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) BrowserPluginHostMsg_ResizeGuest_Params) 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ----------------------------------------------------------------------------- 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// These messages are from the browser process to the embedder. 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 214c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// This message is sent in response to a completed attachment of a guest 215f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// to a BrowserPlugin. 216f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)IPC_MESSAGE_CONTROL1(BrowserPluginMsg_Attach_ACK, int /* instance_id */); 217c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Once the swapped out guest RenderView has been created in the embedder render 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// process, the browser process informs the embedder of its routing ID. 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL2(BrowserPluginMsg_GuestContentWindowReady, 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* source_routing_id */) 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// When the guest crashes, the browser process informs the embedder through this 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// message. 2267dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochIPC_MESSAGE_CONTROL1(BrowserPluginMsg_GuestGone, 2277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch int /* instance_id */) 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// When the user tabs to the end of the tab stops of a guest, the browser 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// process informs the embedder to tab out of the browser plugin. 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL2(BrowserPluginMsg_AdvanceFocus, 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool /* reverse */) 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// When the guest starts/stops listening to touch events, it needs to notify the 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// plugin in the embedder about it. 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL2(BrowserPluginMsg_ShouldAcceptTouchEvents, 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool /* accept */) 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Inform the embedder of the cursor the guest wishes to display. 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL2(BrowserPluginMsg_SetCursor, 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 24423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) content::WebCursor /* cursor */) 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The guest has damage it wants to convey to the embedder so that it can 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// update its backing store. 2482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL2(BrowserPluginMsg_UpdateRect, 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserPluginMsg_UpdateRect_Params) 2512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 252a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)IPC_MESSAGE_CONTROL4(BrowserPluginMsg_CopyFromCompositingSurface, 253a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int /* instance_id */, 254a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int /* request_id */, 255a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) gfx::Rect /* source_rect */, 256a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) gfx::Size /* dest_size */) 257a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 2582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Guest renders into an FBO with textures provided by the embedder. 2595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// BrowserPlugin shares mostly the same logic as out-of-process RenderFrames but 2605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// because BrowserPlugins implement custom a second level of routing logic, 2615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// the IPCs need to be annotated with an extra instance_id. These messages 2625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// provide that extra id. 263eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochIPC_MESSAGE_CONTROL2(BrowserPluginMsg_BuffersSwapped, 2642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* instance_id */, 2655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) FrameMsg_BuffersSwapped_Params /* params */) 2662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_MESSAGE_CONTROL2(BrowserPluginMsg_CompositorFrameSwapped, 268c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int /* instance_id */, 2695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) FrameMsg_CompositorFrameSwapped_Params /* params */) 270c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 2712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Forwards a PointerLock Unlock request to the BrowserPlugin. 272ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben MurdochIPC_MESSAGE_CONTROL2(BrowserPluginMsg_SetMouseLock, 273ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch int /* instance_id */, 274ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch bool /* enable */) 2752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// See comment about BrowserPluginMsg_BuffersSwapped and 2775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// BrowserPluginMsg_CompositorFrameSwapped for how these related 2785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// to the FrameHostMsg variants. 279a02191e04bc25c4935f804f2c080ae28663d096dBen MurdochIPC_MESSAGE_ROUTED1(BrowserPluginHostMsg_BuffersSwappedACK, 2805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) FrameHostMsg_BuffersSwappedACK_Params /* params */) 2815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 2825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Acknowledge that we presented an ubercomp frame. 2835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_CompositorFrameSwappedACK, 2845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int /* instance_id */, 2855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) FrameHostMsg_CompositorFrameSwappedACK_Params /* params */) 286