summaryrefslogtreecommitdiffstats
path: root/content/renderer/browser_plugin
diff options
context:
space:
mode:
authorkenrb@chromium.org <kenrb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-03 22:21:55 +0000
committerkenrb@chromium.org <kenrb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-03 22:21:55 +0000
commit95d3182359968c2ede57e70e05b80d93ccdf2bf5 (patch)
tree896a720387bb30a39756d151575049a13a8e652a /content/renderer/browser_plugin
parent9e9ae7296cfed7bfc612b0e3eeef7ad0c936b1ba (diff)
downloadchromium_src-95d3182359968c2ede57e70e05b80d93ccdf2bf5.zip
chromium_src-95d3182359968c2ede57e70e05b80d93ccdf2bf5.tar.gz
chromium_src-95d3182359968c2ede57e70e05b80d93ccdf2bf5.tar.bz2
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
Diffstat (limited to 'content/renderer/browser_plugin')
-rw-r--r--content/renderer/browser_plugin/browser_plugin.cc17
-rw-r--r--content/renderer/browser_plugin/browser_plugin.h4
-rw-r--r--content/renderer/browser_plugin/browser_plugin_compositing_helper.cc60
3 files changed, 42 insertions, 39 deletions
diff --git a/content/renderer/browser_plugin/browser_plugin.cc b/content/renderer/browser_plugin/browser_plugin.cc
index 5f88fe1..eb67048 100644
--- a/content/renderer/browser_plugin/browser_plugin.cc
+++ b/content/renderer/browser_plugin/browser_plugin.cc
@@ -432,15 +432,14 @@ void BrowserPlugin::OnAttachACK(
}
void BrowserPlugin::OnBuffersSwapped(
- int guest_instance_id,
- const BrowserPluginMsg_BuffersSwapped_Params& params) {
- DCHECK(guest_instance_id == guest_instance_id_);
+ int instance_id,
+ const FrameMsg_BuffersSwapped_Params& params) {
EnableCompositing(true);
compositing_helper_->OnBuffersSwapped(params.size,
params.mailbox_name,
- params.route_id,
- params.host_id,
+ params.gpu_route_id,
+ params.gpu_host_id,
GetDeviceScaleFactor());
}
@@ -449,13 +448,13 @@ void BrowserPlugin::OnCompositorFrameSwapped(const IPC::Message& message) {
if (!BrowserPluginMsg_CompositorFrameSwapped::Read(&message, &param))
return;
scoped_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame);
- param.b.AssignTo(frame.get());
+ param.b.frame.AssignTo(frame.get());
EnableCompositing(true);
compositing_helper_->OnCompositorFrameSwapped(frame.Pass(),
- param.c /* route_id */,
- param.d /* output_surface_id */,
- param.e /* host_id */);
+ param.b.producing_route_id,
+ param.b.output_surface_id,
+ param.b.producing_host_id);
}
void BrowserPlugin::OnCopyFromCompositingSurface(int guest_instance_id,
diff --git a/content/renderer/browser_plugin/browser_plugin.h b/content/renderer/browser_plugin/browser_plugin.h
index d2b21aa..162c8de 100644
--- a/content/renderer/browser_plugin/browser_plugin.h
+++ b/content/renderer/browser_plugin/browser_plugin.h
@@ -25,8 +25,8 @@
struct BrowserPluginHostMsg_AutoSize_Params;
struct BrowserPluginHostMsg_ResizeGuest_Params;
struct BrowserPluginMsg_Attach_ACK_Params;
-struct BrowserPluginMsg_BuffersSwapped_Params;
struct BrowserPluginMsg_UpdateRect_Params;
+struct FrameMsg_BuffersSwapped_Params;
namespace content {
@@ -296,7 +296,7 @@ class CONTENT_EXPORT BrowserPlugin :
void OnAttachACK(int instance_id,
const BrowserPluginMsg_Attach_ACK_Params& ack_params);
void OnBuffersSwapped(int instance_id,
- const BrowserPluginMsg_BuffersSwapped_Params& params);
+ const FrameMsg_BuffersSwapped_Params& params);
void OnCompositorFrameSwapped(const IPC::Message& message);
void OnCopyFromCompositingSurface(int instance_id,
int request_id,
diff --git a/content/renderer/browser_plugin/browser_plugin_compositing_helper.cc b/content/renderer/browser_plugin/browser_plugin_compositing_helper.cc
index a3ce844..89916e2 100644
--- a/content/renderer/browser_plugin/browser_plugin_compositing_helper.cc
+++ b/content/renderer/browser_plugin/browser_plugin_compositing_helper.cc
@@ -14,6 +14,7 @@
#include "cc/output/copy_output_result.h"
#include "cc/resources/single_release_callback.h"
#include "content/common/browser_plugin/browser_plugin_messages.h"
+#include "content/common/frame_messages.h"
#include "content/common/gpu/client/context_provider_command_buffer.h"
#include "content/renderer/browser_plugin/browser_plugin_manager.h"
#include "content/renderer/render_thread_impl.h"
@@ -73,37 +74,38 @@ void BrowserPluginCompositingHelper::CopyFromCompositingSurface(
void BrowserPluginCompositingHelper::DidCommitCompositorFrame() {
if (software_ack_pending_) {
- cc::CompositorFrameAck ack;
+ FrameHostMsg_CompositorFrameSwappedACK_Params params;
+ params.producing_host_id = last_host_id_;
+ params.producing_route_id = last_route_id_;
+ params.output_surface_id = last_output_surface_id_;
if (!unacked_software_frames_.empty()) {
- ack.last_software_frame_id = unacked_software_frames_.back();
+ params.ack.last_software_frame_id = unacked_software_frames_.back();
unacked_software_frames_.pop_back();
}
browser_plugin_manager_->Send(
- new BrowserPluginHostMsg_CompositorFrameACK(
+ new BrowserPluginHostMsg_CompositorFrameSwappedACK(
host_routing_id_,
instance_id_,
- last_route_id_,
- last_output_surface_id_,
- last_host_id_,
- ack));
+ params));
software_ack_pending_ = false;
}
if (!resource_collection_.get() || !ack_pending_)
return;
- cc::CompositorFrameAck ack;
- resource_collection_->TakeUnusedResourcesForChildCompositor(&ack.resources);
+ FrameHostMsg_CompositorFrameSwappedACK_Params params;
+ params.producing_host_id = last_host_id_;
+ params.producing_route_id = last_route_id_;
+ params.output_surface_id = last_output_surface_id_;
+ resource_collection_->TakeUnusedResourcesForChildCompositor(
+ &params.ack.resources);
browser_plugin_manager_->Send(
- new BrowserPluginHostMsg_CompositorFrameACK(
+ new BrowserPluginHostMsg_CompositorFrameSwappedACK(
host_routing_id_,
instance_id_,
- last_route_id_,
- last_output_surface_id_,
- last_host_id_,
- ack));
+ params));
ack_pending_ = false;
}
@@ -173,31 +175,33 @@ void BrowserPluginCompositingHelper::MailboxReleased(
case TEXTURE_IMAGE_TRANSPORT: {
std::string mailbox_name(reinterpret_cast<const char*>(mailbox.name.name),
sizeof(mailbox.name.name));
+ FrameHostMsg_BuffersSwappedACK_Params params;
+ params.gpu_host_id = mailbox.host_id;
+ params.gpu_route_id = mailbox.route_id;
+ params.mailbox_name = mailbox_name;
+ params.sync_point = sync_point;
browser_plugin_manager_->Send(
new BrowserPluginHostMsg_BuffersSwappedACK(
host_routing_id_,
instance_id_,
- mailbox.route_id,
- mailbox.host_id,
- mailbox_name,
- sync_point));
+ params));
break;
}
case GL_COMPOSITOR_FRAME: {
- cc::CompositorFrameAck ack;
- ack.gl_frame_data.reset(new cc::GLFrameData());
- ack.gl_frame_data->mailbox = mailbox.name;
- ack.gl_frame_data->size = mailbox.size;
- ack.gl_frame_data->sync_point = sync_point;
+ FrameHostMsg_CompositorFrameSwappedACK_Params params;
+ params.producing_host_id = mailbox.host_id;
+ params.producing_route_id = mailbox.route_id;
+ params.output_surface_id = mailbox.output_surface_id;
+ params.ack.gl_frame_data.reset(new cc::GLFrameData());
+ params.ack.gl_frame_data->mailbox = mailbox.name;
+ params.ack.gl_frame_data->size = mailbox.size;
+ params.ack.gl_frame_data->sync_point = sync_point;
browser_plugin_manager_->Send(
- new BrowserPluginHostMsg_CompositorFrameACK(
+ new BrowserPluginHostMsg_CompositorFrameSwappedACK(
host_routing_id_,
instance_id_,
- mailbox.route_id,
- mailbox.output_surface_id,
- mailbox.host_id,
- ack));
+ params));
break;
}
case SOFTWARE_COMPOSITOR_FRAME: