Index: content/browser/renderer_host/render_view_host_impl.cc |
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc |
index 19033a8ecdfa24d7156bc34187e4d0aa82ada488..a4bf9d18b5b150409218f24cc38a67e8a5cf9a3a 100644 |
--- a/content/browser/renderer_host/render_view_host_impl.cc |
+++ b/content/browser/renderer_host/render_view_host_impl.cc |
@@ -297,8 +297,18 @@ bool RenderViewHostImpl::CreateRenderView( |
set_renderer_initialized(true); |
- GpuSurfaceTracker::Get()->SetSurfaceHandle( |
- surface_id(), GetCompositingSurface()); |
+ // If this is not an active RenderView, then we need to create a |
+ // handle with NULL_TRANSPORT type. Active RenderViews will implement |
+ // GetCompositingSurface() in the RenderWidgetHostView delegate which returns |
+ // the appropriate surface type. |
+ if (proxy_route_id != MSG_ROUTING_NONE) { |
+ GpuSurfaceTracker::Get()->SetSurfaceHandle( |
+ surface_id(), |
+ gfx::GLSurfaceHandle(gfx::kNullPluginWindow, gfx::NULL_TRANSPORT)); |
+ } else { |
+ GpuSurfaceTracker::Get()->SetSurfaceHandle(surface_id(), |
+ GetCompositingSurface()); |
+ } |
// Ensure the RenderView starts with a next_page_id larger than any existing |
// page ID it might be asked to render. |