browser_plugin_messages.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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" 107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/memory/shared_memory.h" 1158e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch#include "base/process/process.h" 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/values.h" 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "cc/output/compositor_frame.h" 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "cc/output/compositor_frame_ack.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/content_export.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/content_param_traits.h" 17868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "content/common/edit_command.h" 185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "content/common/frame_param_macros.h" 19c2db58bd994c04d98e4ee2cd7565b71548655fe3Ben Murdoch#include "content/public/common/browser_plugin_permission_type.h" 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/common_param_traits.h" 21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "content/public/common/drop_data.h" 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ipc/ipc_channel_handle.h" 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ipc/ipc_message_macros.h" 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ipc/ipc_message_utils.h" 25a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "third_party/skia/include/core/SkBitmap.h" 265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "third_party/WebKit/public/web/WebCompositionUnderline.h" 277d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebDragOperation.h" 287d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebDragStatus.h" 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/point.h" 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/rect.h" 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/size.h" 3268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#include "url/gurl.h" 33868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "webkit/common/cursors/webcursor.h" 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef IPC_MESSAGE_EXPORT 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define IPC_MESSAGE_EXPORT CONTENT_EXPORT 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define IPC_MESSAGE_START BrowserPluginMsgStart 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_ENUM_TRAITS_MAX_VALUE(blink::WebDragStatus, blink::WebDragStatusLast) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_BEGIN(BrowserPluginHostMsg_AutoSize_Params) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(bool, enable) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(gfx::Size, max_size) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(gfx::Size, min_size) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_END() 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_BEGIN(BrowserPluginHostMsg_ResizeGuest_Params) 50ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch // Indicates whether the parameters have been populated or not. 51ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch IPC_STRUCT_MEMBER(bool, size_changed) 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The sequence number used to uniquely identify the damage buffer for the 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // current container size. 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(uint32, damage_buffer_sequence_id) 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The handle to use to map the damage buffer in the browser process. 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(base::SharedMemoryHandle, damage_buffer_handle) 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The size of the damage buffer. 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(size_t, damage_buffer_size) 5990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // The new rect of the guest view area. 6090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) IPC_STRUCT_MEMBER(gfx::Rect, view_rect) 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Indicates the scale factor of the embedder WebView. 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(float, scale_factor) 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Indicates a request for a full repaint of the page. 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // This is required for switching from compositing to the software 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // rendering path. 662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(bool, repaint) 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_STRUCT_END() 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)IPC_STRUCT_BEGIN(BrowserPluginHostMsg_Attach_Params) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(std::string, storage_partition_id) 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(bool, persist_storage) 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(bool, focused) 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(bool, visible) 74f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) IPC_STRUCT_MEMBER(bool, opaque) 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(std::string, name) 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(std::string, src) 7768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) IPC_STRUCT_MEMBER(GURL, embedder_frame_url) 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(BrowserPluginHostMsg_AutoSize_Params, auto_size_params) 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(BrowserPluginHostMsg_ResizeGuest_Params, 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) resize_guest_params) 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_END() 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 83c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)IPC_STRUCT_BEGIN(BrowserPluginMsg_Attach_ACK_Params) 84c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) IPC_STRUCT_MEMBER(std::string, storage_partition_id) 85c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) IPC_STRUCT_MEMBER(bool, persist_storage) 86c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) IPC_STRUCT_MEMBER(std::string, name) 87c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)IPC_STRUCT_END() 88c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_BEGIN(BrowserPluginMsg_UpdateRect_Params) 902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The sequence number of the damage buffer used by the browser process. 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(uint32, damage_buffer_sequence_id) 922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The position and size of the bitmap. 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(gfx::Rect, bitmap_rect) 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The scroll delta. Only one of the delta components can be non-zero, and if 972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // they are both zero, then it means there is no scrolling and the scroll_rect 982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // is ignored. 992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(gfx::Vector2d, scroll_delta) 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The rectangular region to scroll. 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(gfx::Rect, scroll_rect) 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The scroll offset of the render view. 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(gfx::Point, scroll_offset) 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The regions of the bitmap (in view coords) that contain updated pixels. 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // In the case of scrolling, this includes the scroll damage rect. 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(std::vector<gfx::Rect>, copy_rects) 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The size of the RenderView when this message was generated. This is 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // included so the host knows how large the view is from the perspective of 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // the renderer process. This is necessary in case a resize operation is in 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // progress. If auto-resize is enabled, this should update the corresponding 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // view size. 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(gfx::Size, view_size) 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // All the above coordinates are in DIP. This is the scale factor needed 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // to convert them to pixels. 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(float, scale_factor) 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Is this UpdateRect an ACK to a resize request? 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IPC_STRUCT_MEMBER(bool, is_resize_ack) 1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Used in HW accelerated case to switch between sending an UpdateRect_ACK 1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // with the new size or just resizing. 1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC_STRUCT_MEMBER(bool, needs_ack) 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_STRUCT_END() 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Browser plugin messages 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ----------------------------------------------------------------------------- 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// These messages are from the embedder to the browser process. 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// This message is sent to the browser process to request an instance ID. 1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// |request_id| is used by BrowserPluginEmbedder to route the response back 1372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// to its origin. 1382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED1(BrowserPluginHostMsg_AllocateInstanceID, 1392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* request_id */) 1402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 141c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// This message is sent from BrowserPlugin to BrowserPluginGuest to issue an 142c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// edit command. 143c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_ExecuteEditCommand, 144c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int /* instance_id */, 145c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) std::string /* command */) 146c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 147868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// This message must be sent just before sending a key event. 148868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_SetEditCommandsForNextKeyEvent, 149868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) int /* instance_id */, 150868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) std::vector<content::EditCommand> /* edit_commands */) 151868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 1525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// This message is sent from BrowserPlugin to BrowserPluginGuest whenever IME 1535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// composition state is updated. 1545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_MESSAGE_ROUTED5( 1555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) BrowserPluginHostMsg_ImeSetComposition, 1565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int /* instance_id */, 1575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) std::string /* text */, 1585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) std::vector<blink::WebCompositionUnderline> /* underlines */, 1595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int /* selectiont_start */, 1605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int /* selection_end */) 1615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// This message is sent from BrowserPlugin to BrowserPluginGuest to notify that 1635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// confirming the current composition is requested. 1645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_MESSAGE_ROUTED3(BrowserPluginHostMsg_ImeConfirmComposition, 1655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int /* instance_id */, 1665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) std::string /* text */, 1675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) bool /* keep selection */) 1685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Deletes the current selection plus the specified number of characters before 1705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// and after the selection or caret. 1715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_MESSAGE_ROUTED3(BrowserPluginHostMsg_ExtendSelectionAndDelete, 1725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int /* instance_id */, 1735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int /* before */, 1745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int /* after */) 1755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This message is sent to the browser process to enable or disable autosize 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// mode. 1782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED3( 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserPluginHostMsg_SetAutoSize, 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserPluginHostMsg_AutoSize_Params /* auto_size_params */, 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserPluginHostMsg_ResizeGuest_Params /* resize_guest_params */) 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// This message is sent to the browser process to indicate that a BrowserPlugin 1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// has taken ownership of the lifetime of the guest of the given |instance_id|. 186c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// |params| is the state of the BrowserPlugin taking ownership of 187c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// the guest. If a guest doesn't already exist with the given |instance_id|, 188c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// a new one will be created. 189eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochIPC_MESSAGE_ROUTED3(BrowserPluginHostMsg_Attach, 1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* instance_id */, 191eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch BrowserPluginHostMsg_Attach_Params /* params */, 192eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::DictionaryValue /* extra_params */) 1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells the guest to focus or defocus itself. 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_SetFocus, 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool /* enable */) 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Sends an input event to the guest. 2002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED3(BrowserPluginHostMsg_HandleInputEvent, 2012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* instance_id */, 2022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) gfx::Rect /* guest_window_rect */, 2032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) IPC::WebInputEventPointer /* event */) 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// An ACK to the guest process letting it know that the embedder has handled 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the previous frame and is ready for the next frame. If the guest sent the 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// embedder a bitmap that does not match the size of the BrowserPlugin's 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// container, the BrowserPlugin requests a new size as well. 209a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)IPC_MESSAGE_ROUTED4(BrowserPluginHostMsg_UpdateRect_ACK, 2102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* instance_id */, 211a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) bool /* needs_ack */, 2122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) BrowserPluginHostMsg_AutoSize_Params /* auto_size_params */, 2132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) BrowserPluginHostMsg_ResizeGuest_Params /* resize_guest_params */) 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// A BrowserPlugin sends this to BrowserPluginEmbedder (browser process) when it 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// wants to navigate to a given src URL. If a guest WebContents already exists, 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// it will navigate that WebContents. If not, it will create the WebContents, 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// associate it with the BrowserPluginGuest, and navigate it to the requested 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// URL. 2202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_NavigateGuest, 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id*/, 2222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string /* src */) 2232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 224a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)IPC_MESSAGE_ROUTED3(BrowserPluginHostMsg_CopyFromCompositingSurfaceAck, 225a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int /* instance_id */, 226a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int /* request_id */, 227a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) SkBitmap); 228a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 229f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Notify the guest renderer that some resources given to the embededer 230f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// are not used any more. 2315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_ReclaimCompositorResources, 232f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) int /* instance_id */, 2335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) FrameHostMsg_ReclaimCompositorResources_Params /* params */) 234f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// When a BrowserPlugin has been removed from the embedder's DOM, it informs 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the browser process to cleanup the guest. 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(BrowserPluginHostMsg_PluginDestroyed, 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */) 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells the guest it has been shown or hidden. 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_SetVisibility, 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool /* visible */) 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Tells the guest to change its background opacity. 246f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_SetContentsOpaque, 247f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) int /* instance_id */, 248f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) bool /* opaque */) 249f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells the guest that a drag event happened on the plugin. 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED5(BrowserPluginHostMsg_DragStatusUpdate, 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 253f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebDragStatus /* drag_status */, 254eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch content::DropData /* drop_data */, 255f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebDragOperationsMask /* operation_mask */, 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::Point /* plugin_location */) 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Response to BrowserPluginMsg_PluginAtPositionRequest, returns the browser 2592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// plugin instace id and the coordinates (local to the plugin). 2602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED3(BrowserPluginHostMsg_PluginAtPositionResponse, 2612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* instance_id */, 2622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* request_id */, 2632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) gfx::Point /* position */) 2642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Sets the name of the guest window to the provided |name|. 2662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_SetName, 2672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* instance_id */, 2682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string /* name */) 2692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Sends a PointerLock Lock ACK to the BrowserPluginGuest. 2712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_LockMouse_ACK, 2722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* instance_id */, 2732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool /* succeeded */) 2742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Sends a PointerLock Unlock ACK to the BrowserPluginGuest. 2762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED1(BrowserPluginHostMsg_UnlockMouse_ACK, int /* instance_id */) 2772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 27890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Sent when plugin's position has changed without UpdateRect. 27990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_UpdateGeometry, 28090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) int /* instance_id */, 28190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) gfx::Rect /* view_rect */) 28290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ----------------------------------------------------------------------------- 2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// These messages are from the guest renderer to the browser process 2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// A embedder sends this message to the browser when it wants 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// to resize a guest plugin container so that the guest is relaid out 2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// according to the new size. 2892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_ResizeGuest, 2902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* instance_id*/, 2912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) BrowserPluginHostMsg_ResizeGuest_Params) 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ----------------------------------------------------------------------------- 2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// These messages are from the browser process to the embedder. 2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// This message is sent from the browser process to the embedder render process 2972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// in response to a request to allocate an instance ID. The |request_id| is used 2982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// to route the response to the requestor. 2992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginMsg_AllocateInstanceID_ACK, 3002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* request_id */, 3012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* instance_id */) 3022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 303c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// This message is sent in response to a completed attachment of a guest 304c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// to a BrowserPlugin. This message carries information about the guest 305c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// that is used to update the attributes of the browser plugin. 306c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)IPC_MESSAGE_CONTROL2(BrowserPluginMsg_Attach_ACK, 307c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int /* instance_id */, 308c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) BrowserPluginMsg_Attach_ACK_Params /* params */) 309c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Once the swapped out guest RenderView has been created in the embedder render 3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// process, the browser process informs the embedder of its routing ID. 3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL2(BrowserPluginMsg_GuestContentWindowReady, 3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* source_routing_id */) 3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// When the guest crashes, the browser process informs the embedder through this 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// message. 3187dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochIPC_MESSAGE_CONTROL1(BrowserPluginMsg_GuestGone, 3197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch int /* instance_id */) 3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// When the user tabs to the end of the tab stops of a guest, the browser 3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// process informs the embedder to tab out of the browser plugin. 3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL2(BrowserPluginMsg_AdvanceFocus, 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool /* reverse */) 3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// When the guest starts/stops listening to touch events, it needs to notify the 3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// plugin in the embedder about it. 3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL2(BrowserPluginMsg_ShouldAcceptTouchEvents, 3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool /* accept */) 3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Inform the embedder of the cursor the guest wishes to display. 3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL2(BrowserPluginMsg_SetCursor, 3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebCursor /* cursor */) 3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The guest has damage it wants to convey to the embedder so that it can 3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// update its backing store. 3402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL2(BrowserPluginMsg_UpdateRect, 3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int /* instance_id */, 3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BrowserPluginMsg_UpdateRect_Params) 3432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 344a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)IPC_MESSAGE_CONTROL4(BrowserPluginMsg_CopyFromCompositingSurface, 345a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int /* instance_id */, 346a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int /* request_id */, 347a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) gfx::Rect /* source_rect */, 348a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) gfx::Size /* dest_size */) 349a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 3502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Requests the renderer to find out if a browser plugin is at position 3512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// (|x|, |y|) within the embedder. 3522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// The response message is BrowserPluginHostMsg_PluginAtPositionResponse. 3532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// The |request_id| uniquely identifies a request from an embedder. 3542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginMsg_PluginAtPositionRequest, 3552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* request_id */, 3562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) gfx::Point /* position */) 3572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Informs BrowserPlugin of a new name set for the top-level guest frame. 3592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL2(BrowserPluginMsg_UpdatedName, 3602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* instance_id */, 3612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string /* name */) 3622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Guest renders into an FBO with textures provided by the embedder. 3645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// BrowserPlugin shares mostly the same logic as out-of-process RenderFrames but 3655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// because BrowserPlugins implement custom a second level of routing logic, 3665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// the IPCs need to be annotated with an extra instance_id. These messages 3675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// provide that extra id. 368eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochIPC_MESSAGE_CONTROL2(BrowserPluginMsg_BuffersSwapped, 3692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int /* instance_id */, 3705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) FrameMsg_BuffersSwapped_Params /* params */) 3712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_MESSAGE_CONTROL2(BrowserPluginMsg_CompositorFrameSwapped, 373c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int /* instance_id */, 3745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) FrameMsg_CompositorFrameSwapped_Params /* params */) 375c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 3762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Forwards a PointerLock Unlock request to the BrowserPlugin. 377ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben MurdochIPC_MESSAGE_CONTROL2(BrowserPluginMsg_SetMouseLock, 378ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch int /* instance_id */, 379ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch bool /* enable */) 3802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// See comment about BrowserPluginMsg_BuffersSwapped and 3825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// BrowserPluginMsg_CompositorFrameSwapped for how these related 3835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// to the FrameHostMsg variants. 3845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_BuffersSwappedACK, 3855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int /* instance_id */, 3865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) FrameHostMsg_BuffersSwappedACK_Params /* params */) 3875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Acknowledge that we presented an ubercomp frame. 3895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_CompositorFrameSwappedACK, 3905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int /* instance_id */, 3915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) FrameHostMsg_CompositorFrameSwappedACK_Params /* params */) 392