| Index: content/browser/gpu/gpu_process_host_ui_shim.cc
|
| diff --git a/content/browser/gpu/gpu_process_host_ui_shim.cc b/content/browser/gpu/gpu_process_host_ui_shim.cc
|
| index 488553d63105f2039ea28fba33d79ff48d3b60f9..7d26d665fc897e686bd3ff55883175c4abb7ae18 100644
|
| --- a/content/browser/gpu/gpu_process_host_ui_shim.cc
|
| +++ b/content/browser/gpu/gpu_process_host_ui_shim.cc
|
| @@ -13,6 +13,7 @@
|
| #include "base/process_util.h"
|
| #include "content/browser/gpu/gpu_data_manager.h"
|
| #include "content/browser/gpu/gpu_process_host.h"
|
| +#include "content/browser/gpu/gpu_surface_tracker.h"
|
| #include "content/browser/renderer_host/render_process_host_impl.h"
|
| #include "content/browser/renderer_host/render_view_host.h"
|
| #include "content/browser/renderer_host/render_widget_host_view.h"
|
| @@ -73,8 +74,13 @@ class ScopedSendOnIOThread {
|
| bool cancelled_;
|
| };
|
|
|
| -RenderWidgetHostView* GetRenderWidgetHostViewFromID(int render_process_id,
|
| - int render_widget_id) {
|
| +RenderWidgetHostView* GetRenderWidgetHostViewFromSurfaceID(int surface_id) {
|
| + int render_process_id = 0;
|
| + int render_widget_id = 0;
|
| + if (!GpuSurfaceTracker::Get()->GetRenderWidgetIDForSurface(
|
| + surface_id, &render_process_id, &render_widget_id))
|
| + return NULL;
|
| +
|
| content::RenderProcessHost* process =
|
| content::RenderProcessHost::FromID(render_process_id);
|
| if (!process)
|
| @@ -226,8 +232,7 @@ void GpuProcessHostUIShim::OnGraphicsInfoCollected(
|
|
|
| #if defined(TOOLKIT_USES_GTK) || defined(OS_WIN)
|
|
|
| -void GpuProcessHostUIShim::OnResizeView(int32 client_id,
|
| - int32 render_view_id,
|
| +void GpuProcessHostUIShim::OnResizeView(int32 surface_id,
|
| int32 route_id,
|
| gfx::Size size) {
|
| // Always respond even if the window no longer exists. The GPU process cannot
|
| @@ -237,8 +242,7 @@ void GpuProcessHostUIShim::OnResizeView(int32 client_id,
|
| host_id_,
|
| new AcceleratedSurfaceMsg_ResizeViewACK(route_id));
|
|
|
| - RenderWidgetHostView* view = GetRenderWidgetHostViewFromID(client_id,
|
| - render_view_id);
|
| + RenderWidgetHostView* view = GetRenderWidgetHostViewFromSurfaceID(surface_id);
|
| if (!view)
|
| return;
|
|
|
| @@ -278,16 +282,16 @@ void GpuProcessHostUIShim::OnAcceleratedSurfaceNew(
|
| host_id_,
|
| new AcceleratedSurfaceMsg_NewACK(
|
| params.route_id,
|
| - params.surface_id,
|
| + params.surface_handle,
|
| TransportDIB::DefaultHandleValue()));
|
|
|
| - RenderWidgetHostView* view = GetRenderWidgetHostViewFromID(
|
| - params.client_id, params.render_view_id);
|
| + RenderWidgetHostView* view = GetRenderWidgetHostViewFromSurfaceID(
|
| + params.surface_id);
|
| if (!view)
|
| return;
|
|
|
| - uint64 surface_id = params.surface_id;
|
| - TransportDIB::Handle surface_handle = TransportDIB::DefaultHandleValue();
|
| + uint64 surface_handle = params.surface_handle;
|
| + TransportDIB::Handle shm_handle = TransportDIB::DefaultHandleValue();
|
|
|
| #if defined(OS_MACOSX)
|
| if (params.create_transport_dib) {
|
| @@ -305,7 +309,7 @@ void GpuProcessHostUIShim::OnAcceleratedSurfaceNew(
|
| local_handle);
|
| // Create a remote handle for the GPU process to map the SHM.
|
| if (!shared_memory->ShareToProcess(0 /* pid, not needed */,
|
| - &surface_handle)) {
|
| + &shm_handle)) {
|
| return;
|
| }
|
| }
|
| @@ -314,15 +318,15 @@ void GpuProcessHostUIShim::OnAcceleratedSurfaceNew(
|
| view->AcceleratedSurfaceSetIOSurface(params.window,
|
| params.width,
|
| params.height,
|
| - surface_id);
|
| + surface_handle);
|
| }
|
| #else // defined(UI_COMPOSITOR_IMAGE_TRANSPORT)
|
| view->AcceleratedSurfaceNew(
|
| - params.width, params.height, &surface_id, &surface_handle);
|
| + params.width, params.height, &surface_handle, &shm_handle);
|
| #endif
|
| delayed_send.Cancel();
|
| Send(new AcceleratedSurfaceMsg_NewACK(
|
| - params.route_id, surface_id, surface_handle));
|
| + params.route_id, surface_handle, shm_handle));
|
| }
|
|
|
| #endif
|
| @@ -336,8 +340,8 @@ void GpuProcessHostUIShim::OnAcceleratedSurfaceBuffersSwapped(
|
| host_id_,
|
| new AcceleratedSurfaceMsg_BuffersSwappedACK(params.route_id));
|
|
|
| - RenderWidgetHostView* view = GetRenderWidgetHostViewFromID(
|
| - params.client_id, params.render_view_id);
|
| + RenderWidgetHostView* view = GetRenderWidgetHostViewFromSurfaceID(
|
| + params.surface_id);
|
| if (!view)
|
| return;
|
|
|
| @@ -356,8 +360,8 @@ void GpuProcessHostUIShim::OnAcceleratedSurfacePostSubBuffer(
|
| host_id_,
|
| new AcceleratedSurfaceMsg_PostSubBufferACK(params.route_id));
|
|
|
| - RenderWidgetHostView* view = GetRenderWidgetHostViewFromID(
|
| - params.client_id, params.render_view_id);
|
| + RenderWidgetHostView* view = GetRenderWidgetHostViewFromSurfaceID(
|
| + params.surface_id);
|
| if (!view)
|
| return;
|
|
|
| @@ -371,8 +375,8 @@ void GpuProcessHostUIShim::OnAcceleratedSurfacePostSubBuffer(
|
|
|
| void GpuProcessHostUIShim::OnAcceleratedSurfaceRelease(
|
| const GpuHostMsg_AcceleratedSurfaceRelease_Params& params) {
|
| - RenderWidgetHostView* view = GetRenderWidgetHostViewFromID(
|
| - params.client_id, params.render_view_id);
|
| + RenderWidgetHostView* view = GetRenderWidgetHostViewFromSurfaceID(
|
| + params.surface_id);
|
| if (!view)
|
| return;
|
| view->AcceleratedSurfaceRelease(params.identifier);
|
|
|