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