From 95d3182359968c2ede57e70e05b80d93ccdf2bf5 Mon Sep 17 00:00:00 2001 From: "kenrb@chromium.org" Date: Fri, 3 Jan 2014 22:21:55 +0000 Subject: Adding RenderWidgetHostViewChildFrame for OOPIF view. RenderWidgetHostViewChildFrame becomes the view class for child frames being rendered in a different process from their parent. CrossProcessFrameConnector is a supporting class for that, encapsulating state specific to the parent/child frame relationship. RenderWidgetHostViewGuest is made a subclass of RenderWidgetHostViewChildFrame in order to keep them synchronized. Gradually we will move all functionality from RWHVGuest to RWHVChildFrame and then get rid of RWHVGuest altogether. TBR=sadrul BUG=325803 Review URL: https://codereview.chromium.org/100473010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242942 0039d316-1c4b-4281-b951-d872f2087c98 --- .../browser_plugin/browser_plugin_messages.h | 55 ++++++++-------------- 1 file changed, 20 insertions(+), 35 deletions(-) (limited to 'content/common/browser_plugin/browser_plugin_messages.h') diff --git a/content/common/browser_plugin/browser_plugin_messages.h b/content/common/browser_plugin/browser_plugin_messages.h index c85b229..be34c7b 100644 --- a/content/common/browser_plugin/browser_plugin_messages.h +++ b/content/common/browser_plugin/browser_plugin_messages.h @@ -15,6 +15,7 @@ #include "content/common/content_export.h" #include "content/common/content_param_traits.h" #include "content/common/edit_command.h" +#include "content/common/frame_param_macros.h" #include "content/public/common/browser_plugin_permission_type.h" #include "content/public/common/common_param_traits.h" #include "content/public/common/drop_data.h" @@ -85,14 +86,6 @@ IPC_STRUCT_BEGIN(BrowserPluginMsg_Attach_ACK_Params) IPC_STRUCT_MEMBER(std::string, name) IPC_STRUCT_END() -IPC_STRUCT_BEGIN(BrowserPluginMsg_BuffersSwapped_Params) - IPC_STRUCT_MEMBER(gfx::Size, size) - IPC_STRUCT_MEMBER(gfx::Rect, damage_rect) - IPC_STRUCT_MEMBER(std::string, mailbox_name) - IPC_STRUCT_MEMBER(int, route_id) - IPC_STRUCT_MEMBER(int, host_id) -IPC_STRUCT_END() - IPC_STRUCT_BEGIN(BrowserPluginMsg_UpdateRect_Params) // The sequence number of the damage buffer used by the browser process. IPC_STRUCT_MEMBER(uint32, damage_buffer_sequence_id) @@ -228,29 +221,11 @@ IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_NavigateGuest, int /* instance_id*/, std::string /* src */) -// Acknowledge that we presented a HW buffer and provide a sync point -// to specify the location in the command stream when the compositor -// is no longer using it. -IPC_MESSAGE_ROUTED5(BrowserPluginHostMsg_BuffersSwappedACK, - int /* instance_id */, - int /* route_id */, - int /* gpu_host_id */, - std::string /* mailbox_name */, - uint32 /* sync_point */) - IPC_MESSAGE_ROUTED3(BrowserPluginHostMsg_CopyFromCompositingSurfaceAck, int /* instance_id */, int /* request_id */, SkBitmap); -// Acknowledge that we presented an ubercomp frame. -IPC_MESSAGE_ROUTED5(BrowserPluginHostMsg_CompositorFrameACK, - int /* instance_id */, - int /* route_id */, - uint32 /* output_surface_id */, - int /* renderer_host_id */, - cc::CompositorFrameAck /* ack */) - // Notify the guest renderer that some resources given to the embededer // are not used any more. IPC_MESSAGE_ROUTED5(BrowserPluginHostMsg_ReclaimCompositorResources, @@ -389,21 +364,31 @@ IPC_MESSAGE_CONTROL2(BrowserPluginMsg_UpdatedName, std::string /* name */) // Guest renders into an FBO with textures provided by the embedder. -// When HW accelerated buffers are swapped in the guest, the message -// is forwarded to the embedder to notify it of a new texture -// available for compositing. +// BrowserPlugin shares mostly the same logic as out-of-process RenderFrames but +// because BrowserPlugins implement custom a second level of routing logic, +// the IPCs need to be annotated with an extra instance_id. These messages +// provide that extra id. IPC_MESSAGE_CONTROL2(BrowserPluginMsg_BuffersSwapped, int /* instance_id */, - BrowserPluginMsg_BuffersSwapped_Params) + FrameMsg_BuffersSwapped_Params /* params */) -IPC_MESSAGE_CONTROL5(BrowserPluginMsg_CompositorFrameSwapped, +IPC_MESSAGE_CONTROL2(BrowserPluginMsg_CompositorFrameSwapped, int /* instance_id */, - cc::CompositorFrame /* frame */, - int /* route_id */, - uint32 /* output_surface_id */, - int /* renderer_host_id */) + FrameMsg_CompositorFrameSwapped_Params /* params */) // Forwards a PointerLock Unlock request to the BrowserPlugin. IPC_MESSAGE_CONTROL2(BrowserPluginMsg_SetMouseLock, int /* instance_id */, bool /* enable */) + +// See comment about BrowserPluginMsg_BuffersSwapped and +// BrowserPluginMsg_CompositorFrameSwapped for how these related +// to the FrameHostMsg variants. +IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_BuffersSwappedACK, + int /* instance_id */, + FrameHostMsg_BuffersSwappedACK_Params /* params */) + +// Acknowledge that we presented an ubercomp frame. +IPC_MESSAGE_ROUTED2(BrowserPluginHostMsg_CompositorFrameSwappedACK, + int /* instance_id */, + FrameHostMsg_CompositorFrameSwappedACK_Params /* params */) -- cgit v1.1