diff options
Diffstat (limited to 'content/browser/renderer_host')
8 files changed, 20 insertions, 6 deletions
diff --git a/content/browser/renderer_host/gpu_message_filter.cc b/content/browser/renderer_host/gpu_message_filter.cc index 9902a96..5fa10ad 100644 --- a/content/browser/renderer_host/gpu_message_filter.cc +++ b/content/browser/renderer_host/gpu_message_filter.cc @@ -205,6 +205,7 @@ void GpuMessageFilter::OnSynchronizeGpu(IPC::Message* reply) { } void GpuMessageFilter::OnCreateViewCommandBuffer( + gfx::PluginWindowHandle compositing_surface, int32 render_view_id, const GPUCreateCommandBufferConfig& init_params, IPC::Message* reply) { @@ -219,6 +220,7 @@ void GpuMessageFilter::OnCreateViewCommandBuffer( } ui_shim->CreateViewCommandBuffer( + compositing_surface, render_view_id, render_process_id_, init_params, diff --git a/content/browser/renderer_host/gpu_message_filter.h b/content/browser/renderer_host/gpu_message_filter.h index 34e75f1..c8e8ada 100644 --- a/content/browser/renderer_host/gpu_message_filter.h +++ b/content/browser/renderer_host/gpu_message_filter.h @@ -8,6 +8,7 @@ #include "content/browser/browser_message_filter.h" #include "content/common/gpu_process_launch_causes.h" +#include "ui/gfx/native_widget_types.h" class GpuProcessHost; class GpuProcessHostUIShim; @@ -42,6 +43,7 @@ class GpuMessageFilter : public BrowserMessageFilter, void OnEstablishGpuChannel(content::CauseForGpuLaunch); void OnSynchronizeGpu(IPC::Message* reply); void OnCreateViewCommandBuffer( + gfx::PluginWindowHandle compositing_surface, int32 render_view_id, const GPUCreateCommandBufferConfig& init_params, IPC::Message* reply); diff --git a/content/browser/renderer_host/render_view_host.cc b/content/browser/renderer_host/render_view_host.cc index d5eb8c9..5f11584 100644 --- a/content/browser/renderer_host/render_view_host.cc +++ b/content/browser/renderer_host/render_view_host.cc @@ -168,6 +168,7 @@ bool RenderViewHost::CreateRenderView(const string16& frame_name) { ViewMsg_New_Params params; params.parent_window = GetNativeViewId(); + params.compositing_surface = GetCompositingSurface(); params.renderer_preferences = delegate_->GetRendererPrefs(process()->profile()); params.web_preferences = delegate_->GetWebkitPrefs(); diff --git a/content/browser/renderer_host/render_widget_host.cc b/content/browser/renderer_host/render_widget_host.cc index 57004c9..d7ad0b5 100644 --- a/content/browser/renderer_host/render_widget_host.cc +++ b/content/browser/renderer_host/render_widget_host.cc @@ -122,6 +122,12 @@ gfx::NativeViewId RenderWidgetHost::GetNativeViewId() { return 0; } +gfx::PluginWindowHandle RenderWidgetHost::GetCompositingSurface() { + if (view_) + return view_->GetCompositingSurface(); + return gfx::kNullPluginWindow; +} + bool RenderWidgetHost::PreHandleKeyboardEvent( const NativeWebKeyboardEvent& event, bool* is_keyboard_shortcut) { @@ -134,7 +140,8 @@ void RenderWidgetHost::Init() { renderer_initialized_ = true; // Send the ack along with the information on placement. - Send(new ViewMsg_CreatingNew_ACK(routing_id_, GetNativeViewId())); + Send(new ViewMsg_CreatingNew_ACK( + routing_id_, GetNativeViewId(), GetCompositingSurface())); WasResized(); } diff --git a/content/browser/renderer_host/render_widget_host.h b/content/browser/renderer_host/render_widget_host.h index 9ed7ccd..ab5aa91 100644 --- a/content/browser/renderer_host/render_widget_host.h +++ b/content/browser/renderer_host/render_widget_host.h @@ -413,6 +413,10 @@ class RenderWidgetHost : public IPC::Channel::Listener, // This is used for various IPC messages, including plugins. gfx::NativeViewId GetNativeViewId(); + // Retrieves an id for the surface that the renderer can draw to + // when accelerated compositing is enabled. + gfx::PluginWindowHandle GetCompositingSurface(); + // Called to handled a keyboard event before sending it to the renderer. // This is overridden by RenderView to send upwards to its delegate. // Returns true if the event was handled, and then the keyboard event will diff --git a/content/browser/renderer_host/render_widget_host_view.h b/content/browser/renderer_host/render_widget_host_view.h index 5d4cf69..76c1db4 100644 --- a/content/browser/renderer_host/render_widget_host_view.h +++ b/content/browser/renderer_host/render_widget_host_view.h @@ -270,8 +270,7 @@ class RenderWidgetHostView { virtual void ShowCompositorHostWindow(bool show) = 0; #endif - virtual gfx::PluginWindowHandle AcquireCompositingSurface() = 0; - virtual void ReleaseCompositingSurface(gfx::PluginWindowHandle surface) = 0; + virtual gfx::PluginWindowHandle GetCompositingSurface() = 0; // Toggles visual muting of the render view area. This is on when a // constrained window is showing, for example. |color| is the shade of diff --git a/content/browser/renderer_host/test_render_view_host.cc b/content/browser/renderer_host/test_render_view_host.cc index 6eba441..394d447 100644 --- a/content/browser/renderer_host/test_render_view_host.cc +++ b/content/browser/renderer_host/test_render_view_host.cc @@ -242,7 +242,7 @@ void TestRenderWidgetHostView::ShowCompositorHostWindow(bool show) { } #endif -gfx::PluginWindowHandle TestRenderWidgetHostView::AcquireCompositingSurface() { +gfx::PluginWindowHandle TestRenderWidgetHostView::GetCompositingSurface() { return gfx::kNullPluginWindow; } diff --git a/content/browser/renderer_host/test_render_view_host.h b/content/browser/renderer_host/test_render_view_host.h index 4326529..a860806 100644 --- a/content/browser/renderer_host/test_render_view_host.h +++ b/content/browser/renderer_host/test_render_view_host.h @@ -141,8 +141,7 @@ class TestRenderWidgetHostView : public RenderWidgetHostView { virtual void AcceleratedCompositingActivated(bool activated) { } #endif - virtual gfx::PluginWindowHandle AcquireCompositingSurface(); - virtual void ReleaseCompositingSurface(gfx::PluginWindowHandle surface) { } + virtual gfx::PluginWindowHandle GetCompositingSurface(); virtual bool ContainsNativeView(gfx::NativeView native_view) const; |