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

Unified Diff: trunk/src/content/browser/gpu/gpu_process_host.cc

Issue 387863004: Revert 281866 "Mac ÜC: Make resize smooth" (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 5 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: trunk/src/content/browser/gpu/gpu_process_host.cc
===================================================================
--- trunk/src/content/browser/gpu/gpu_process_host.cc (revision 282673)
+++ trunk/src/content/browser/gpu/gpu_process_host.cc (working copy)
@@ -852,49 +852,39 @@
gfx::AcceleratedWidget native_widget =
GpuSurfaceTracker::Get()->AcquireNativeWidget(params.surface_id);
-
- // Retrieve the render widget helper to forward this message to on the UI
- // thread.
- RenderWidgetHelper* helper = NULL;
- int render_widget_id = 0;
if (native_widget) {
- int render_process_id = 0;
- // TODO(ccameron): The render process and widget IDs have a race between
- // the UI and the IO threads, and may potentially be wrong. Move the
- // functionality in RenderProcessHost::WaitForBackingStoreMsg to a place
- // where it can accept IPCs from all renderers (rather than this hack where
- // we fake the render process and widget ID of a renderer for the browser).
- // http://crbug.com/392031
- if (RenderWidgetHelper::GetRenderWidgetIDForWidget(
- native_widget, &render_process_id, &render_widget_id)) {
- helper = RenderWidgetHelper::FromProcessHostID(render_process_id);
- }
- } else {
- int render_process_id = 0;
- if (GpuSurfaceTracker::Get()->GetRenderWidgetIDForSurface(
- params.surface_id, &render_process_id, &render_widget_id)) {
- helper = RenderWidgetHelper::FromProcessHostID(render_process_id);
- }
+ RenderWidgetHelper::OnNativeSurfaceBuffersSwappedOnIOThread(this, params);
+ return;
}
- // If this is not targetting a native widget and we don't find a helper, then
- // ack immediately and ignore the message.
- if (!helper && !native_widget) {
- AcceleratedSurfaceMsg_BufferPresented_Params ack_params;
- ack_params.sync_point = 0;
+ gfx::GLSurfaceHandle surface_handle =
+ GpuSurfaceTracker::Get()->GetSurfaceHandle(params.surface_id);
+ // Compositor window is always gfx::kNullPluginWindow.
+ // TODO(jbates) http://crbug.com/105344 This will be removed when there are no
+ // plugin windows.
+ if (surface_handle.handle != gfx::kNullPluginWindow ||
+ surface_handle.transport_type == gfx::TEXTURE_TRANSPORT) {
+ RouteOnUIThread(GpuHostMsg_AcceleratedSurfaceBuffersSwapped(params));
+ return;
+ }
+
+ AcceleratedSurfaceMsg_BufferPresented_Params ack_params;
+ ack_params.sync_point = 0;
+
+ int render_process_id = 0;
+ int render_widget_id = 0;
+ if (!GpuSurfaceTracker::Get()->GetRenderWidgetIDForSurface(
+ params.surface_id, &render_process_id, &render_widget_id)) {
Send(new AcceleratedSurfaceMsg_BufferPresented(params.route_id,
ack_params));
return;
}
-
- // If this is targetting a native widget, then ack the swap immediately to
- // avoid introducing a deadlock between the browser and GPU processes (rate
- // limiting is done through the compositor).
- if (native_widget) {
- AcceleratedSurfaceMsg_BufferPresented_Params ack_params;
- ack_params.sync_point = 0;
+ RenderWidgetHelper* helper =
+ RenderWidgetHelper::FromProcessHostID(render_process_id);
+ if (!helper) {
Send(new AcceleratedSurfaceMsg_BufferPresented(params.route_id,
ack_params));
+ return;
}
// Pass the SwapBuffers on to the RenderWidgetHelper to wake up the UI thread
@@ -902,7 +892,6 @@
// will forward to the RenderWidgetHostView via RenderProcessHostImpl and
// RenderWidgetHostImpl.
ViewHostMsg_CompositorSurfaceBuffersSwapped_Params view_params;
- view_params.use_native_widget = native_widget;
view_params.surface_id = params.surface_id;
view_params.surface_handle = params.surface_handle;
view_params.route_id = params.route_id;
@@ -910,18 +899,9 @@
view_params.scale_factor = params.scale_factor;
view_params.gpu_process_host_id = host_id_;
view_params.latency_info = params.latency_info;
- if (helper) {
- helper->DidReceiveBackingStoreMsg(
- ViewHostMsg_CompositorSurfaceBuffersSwapped(
- render_widget_id,
- view_params));
- } else if (native_widget) {
- BrowserThread::PostTask(
- BrowserThread::UI,
- FROM_HERE,
- base::Bind(&RenderWidgetHelper::OnNativeSurfaceBuffersSwappedOnUIThread,
- view_params));
- }
+ helper->DidReceiveBackingStoreMsg(ViewHostMsg_CompositorSurfaceBuffersSwapped(
+ render_widget_id,
+ view_params));
}
#endif // OS_MACOSX

Powered by Google App Engine
This is Rietveld 408576698