Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1414)

Unified Diff: content/browser/renderer_host/render_widget_helper.cc

Issue 9194005: gpu: reference target surfaces through a globally unique surface id. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix more tests Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
-}
« no previous file with comments | « content/browser/renderer_host/render_widget_helper.h ('k') | content/browser/renderer_host/render_widget_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698