Index: content/browser/renderer_host/render_widget_helper.cc |
diff --git a/content/browser/renderer_host/render_widget_helper.cc b/content/browser/renderer_host/render_widget_helper.cc |
index 4803956deed5a2bbaca91d885f775804fbae9334..7800bf059ce1a3d4afb17d31ae3e8fafaa15a618 100644 |
--- a/content/browser/renderer_host/render_widget_helper.cc |
+++ b/content/browser/renderer_host/render_widget_helper.cc |
@@ -8,6 +8,7 @@ |
#include "base/bind_helpers.h" |
#include "base/eintr_wrapper.h" |
#include "base/threading/thread.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/resource_dispatcher_host.h" |
@@ -212,8 +213,11 @@ void RenderWidgetHelper::OnCrossSiteSwapOutACK( |
void RenderWidgetHelper::CreateNewWindow( |
const ViewHostMsg_CreateWindow_Params& params, |
base::ProcessHandle render_process, |
- int* route_id) { |
+ int* route_id, |
+ int* surface_id) { |
*route_id = GetNextRoutingID(); |
+ *surface_id = GpuSurfaceTracker::Get()->AddSurfaceForRenderer( |
+ render_process_id_, *route_id); |
// Block resource requests until the view is created, since the HWND might be |
// needed if a response ends up creating a plugin. |
resource_dispatcher_host_->BlockRequestsForRoute( |
@@ -221,8 +225,8 @@ void RenderWidgetHelper::CreateNewWindow( |
BrowserThread::PostTask( |
BrowserThread::UI, FROM_HERE, |
- base::Bind( |
- &RenderWidgetHelper::OnCreateWindowOnUI, this, params, *route_id)); |
+ base::Bind(&RenderWidgetHelper::OnCreateWindowOnUI, |
+ this, params, *route_id)); |
} |
void RenderWidgetHelper::OnCreateWindowOnUI( |
@@ -245,8 +249,11 @@ void RenderWidgetHelper::OnCreateWindowOnIO(int route_id) { |
void RenderWidgetHelper::CreateNewWidget(int opener_id, |
WebKit::WebPopupType popup_type, |
- int* route_id) { |
+ int* route_id, |
+ int* surface_id) { |
*route_id = GetNextRoutingID(); |
+ *surface_id = GpuSurfaceTracker::Get()->AddSurfaceForRenderer( |
+ render_process_id_, *route_id); |
BrowserThread::PostTask( |
BrowserThread::UI, FROM_HERE, |
base::Bind( |
@@ -255,8 +262,11 @@ void RenderWidgetHelper::CreateNewWidget(int opener_id, |
} |
void RenderWidgetHelper::CreateNewFullscreenWidget(int opener_id, |
- int* route_id) { |
+ int* route_id, |
+ int* surface_id) { |
*route_id = GetNextRoutingID(); |
+ *surface_id = GpuSurfaceTracker::Get()->AddSurfaceForRenderer( |
+ render_process_id_, *route_id); |
BrowserThread::PostTask( |
BrowserThread::UI, FROM_HERE, |
base::Bind( |
@@ -334,24 +344,3 @@ void RenderWidgetHelper::ClearAllocatedDIBs() { |
allocated_dibs_.clear(); |
} |
#endif |
- |
-void RenderWidgetHelper::SetCompositingSurface( |
- int render_widget_id, |
- gfx::PluginWindowHandle compositing_surface) { |
- base::AutoLock locked(view_compositing_surface_map_lock_); |
- if (compositing_surface != gfx::kNullPluginWindow) |
- view_compositing_surface_map_[render_widget_id] = compositing_surface; |
- else |
- view_compositing_surface_map_.erase(render_widget_id); |
-} |
- |
-gfx::PluginWindowHandle RenderWidgetHelper::LookupCompositingSurface( |
- int render_widget_id) { |
- base::AutoLock locked(view_compositing_surface_map_lock_); |
- ViewCompositingSurfaceMap::iterator it = |
- view_compositing_surface_map_.find(render_widget_id); |
- if (it == view_compositing_surface_map_.end()) |
- return gfx::kNullPluginWindow; |
- |
- return it->second; |
-} |