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

Issue 7136001: GPU compositing surface handle is no longer sent to renderer process. (Closed)

Created:
9 years, 6 months ago by apatrick_chromium
Modified:
9 years, 6 months ago
Reviewers:
jam, jonathan.backer
CC:
chromium-reviews, joi+watch-content_chromium.org, jam, brettw-cc_chromium.org
Visibility:
Public.

Description

GPU compositing surface handle is no longer sent to renderer process. Instead it is stored in a map in RenderWidgetHelper indexed by RenderWidgetHost route ID. This allows the UI thread to maintain the mapping as windows are created and destroyed and the IO thread to lookup the mapping in order to create GL contexts that render to the windows. This avoids a race where JavaScript would open a popup window and immediately try to use an accelerated canvas to render to it (2D canvas or WebGL canvas). <-- This is no longer true of this patch. There was a potential deadlock. WebGL canvas used to work in this case only because it would fall back to using ReadPixels. This goes some way to fixing the bug referenced below but does not fix it completely.BUG=80703 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=90617

Patch Set 1 #

Patch Set 2 : '' #

Patch Set 3 : '' #

Patch Set 4 : '' #

Patch Set 5 : '' #

Patch Set 6 : '' #

Patch Set 7 : '' #

Total comments: 3

Patch Set 8 : '' #

Total comments: 4

Patch Set 9 : '' #

Patch Set 10 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+127 lines, -87 lines) Patch
M chrome/browser/extensions/extension_host.cc View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/notifications/balloon_host.cc View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/renderer_host/render_widget_host_view_gtk.cc View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/renderer_host/render_widget_host_view_mac.mm View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/renderer_host/render_widget_host_view_mac_unittest.mm View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/renderer_host/render_widget_host_view_views.cc View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/renderer_host/render_widget_host_view_win.cc View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/tab_contents/thumbnail_generator_unittest.cc View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -1 line 0 comments Download
M chrome/test/render_view_test.cc View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -1 line 0 comments Download
M content/browser/renderer_host/browser_render_process_host.h View 1 2 3 4 5 6 7 8 9 1 chunk +3 lines, -0 lines 0 comments Download
M content/browser/renderer_host/browser_render_process_host.cc View 1 2 3 4 5 6 7 8 9 2 chunks +7 lines, -1 line 0 comments Download
M content/browser/renderer_host/gpu_message_filter.h View 1 2 3 4 5 6 7 8 9 5 chunks +6 lines, -2 lines 0 comments Download
M content/browser/renderer_host/gpu_message_filter.cc View 1 2 3 4 5 6 7 8 9 2 chunks +10 lines, -4 lines 0 comments Download
M content/browser/renderer_host/mock_render_process_host.h View 1 2 3 4 5 6 7 8 9 1 chunk +3 lines, -0 lines 0 comments Download
M content/browser/renderer_host/mock_render_process_host.cc View 1 2 3 4 5 6 7 8 9 1 chunk +5 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_process_host.h View 1 2 3 4 5 6 7 8 9 2 chunks +9 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_view_host.cc View 1 2 3 4 5 6 7 8 9 1 chunk +3 lines, -1 line 0 comments Download
M content/browser/renderer_host/render_widget_helper.h View 1 2 3 4 5 6 7 8 9 4 chunks +13 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_helper.cc View 1 2 3 4 5 6 7 8 9 1 chunk +21 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host.h View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -1 line 0 comments Download
M content/browser/renderer_host/render_widget_host.cc View 1 2 3 4 5 6 7 8 9 3 chunks +14 lines, -3 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_unittest.cc View 1 2 3 4 5 6 7 8 9 3 chunks +4 lines, -4 lines 0 comments Download
M content/browser/renderer_host/test_render_view_host.cc View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -1 line 0 comments Download
M content/browser/tab_contents/interstitial_page.cc View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -1 line 0 comments Download
M content/browser/tab_contents/render_view_host_manager.cc View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -1 line 0 comments Download
M content/common/gpu/gpu_messages.h View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -2 lines 0 comments Download
M content/common/view_messages.h View 1 2 3 4 5 6 7 8 9 2 chunks +2 lines, -6 lines 0 comments Download
M content/renderer/gpu/gpu_channel_host.h View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -1 line 0 comments Download
M content/renderer/gpu/gpu_channel_host.cc View 1 2 3 4 5 6 7 8 9 2 chunks +1 line, -2 lines 0 comments Download
M content/renderer/gpu/renderer_gl_context.h View 1 2 3 4 5 6 7 8 9 2 chunks +0 lines, -2 lines 0 comments Download
M content/renderer/gpu/renderer_gl_context.cc View 1 2 3 4 5 6 7 8 9 5 chunks +7 lines, -17 lines 0 comments Download
M content/renderer/gpu/webgraphicscontext3d_command_buffer_impl.cc View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -1 line 0 comments Download
M content/renderer/render_thread.cc View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -1 line 0 comments Download
M content/renderer/render_view.h View 1 2 3 4 5 6 7 8 9 2 chunks +0 lines, -2 lines 0 comments Download
M content/renderer/render_view.cc View 1 2 3 4 5 6 7 8 9 5 chunks +1 line, -5 lines 0 comments Download
M content/renderer/render_widget.h View 1 2 3 4 5 6 7 8 9 4 chunks +2 lines, -12 lines 0 comments Download
M content/renderer/render_widget.cc View 1 2 3 4 5 6 7 8 9 3 chunks +3 lines, -7 lines 0 comments Download
M content/renderer/render_widget_fullscreen_pepper.cc View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -1 line 0 comments Download

Messages

Total messages: 8 (0 generated)
apatrick_chromium
backer: can you review this. jam: can you take a look at gpu_message_filter.cc and check ...
9 years, 6 months ago (2011-06-13 21:15:59 UTC) #1
jam
http://codereview.chromium.org/7136001/diff/9018/content/browser/renderer_host/gpu_message_filter.cc File content/browser/renderer_host/gpu_message_filter.cc (right): http://codereview.chromium.org/7136001/diff/9018/content/browser/renderer_host/gpu_message_filter.cc#newcode214 content/browser/renderer_host/gpu_message_filter.cc:214: // and if not, flush the tasks in the ...
9 years, 6 months ago (2011-06-13 22:09:47 UTC) #2
apatrick_chromium
http://codereview.chromium.org/7136001/diff/9018/content/browser/renderer_host/gpu_message_filter.cc File content/browser/renderer_host/gpu_message_filter.cc (right): http://codereview.chromium.org/7136001/diff/9018/content/browser/renderer_host/gpu_message_filter.cc#newcode214 content/browser/renderer_host/gpu_message_filter.cc:214: // and if not, flush the tasks in the ...
9 years, 6 months ago (2011-06-13 22:13:02 UTC) #3
jam
http://codereview.chromium.org/7136001/diff/9018/content/browser/renderer_host/gpu_message_filter.cc File content/browser/renderer_host/gpu_message_filter.cc (right): http://codereview.chromium.org/7136001/diff/9018/content/browser/renderer_host/gpu_message_filter.cc#newcode214 content/browser/renderer_host/gpu_message_filter.cc:214: // and if not, flush the tasks in the ...
9 years, 6 months ago (2011-06-13 23:45:12 UTC) #4
jonathan.backer
I took a look. Unfortunately, I don't have much to contribute here, other than the ...
9 years, 6 months ago (2011-06-14 14:51:06 UTC) #5
apatrick_chromium
Fixed potential deadlock. PTAL as before. The IO thread no longer "flushes" the UI thread ...
9 years, 6 months ago (2011-06-20 19:42:05 UTC) #6
jam
lgtm with nits http://codereview.chromium.org/7136001/diff/15001/content/browser/renderer_host/gpu_message_filter.h File content/browser/renderer_host/gpu_message_filter.h (right): http://codereview.chromium.org/7136001/diff/15001/content/browser/renderer_host/gpu_message_filter.h#newcode56 content/browser/renderer_host/gpu_message_filter.h:56: RenderWidgetHelper* render_widget_helper_; this should be a ...
9 years, 6 months ago (2011-06-21 21:49:03 UTC) #7
apatrick_chromium
9 years, 6 months ago (2011-06-23 01:24:28 UTC) #8
On 2011/06/21 21:49:03, John Abd-El-Malek wrote:
> lgtm with nits
> 
>
http://codereview.chromium.org/7136001/diff/15001/content/browser/renderer_ho...
> File content/browser/renderer_host/gpu_message_filter.h (right):
> 
>
http://codereview.chromium.org/7136001/diff/15001/content/browser/renderer_ho...
> content/browser/renderer_host/gpu_message_filter.h:56: RenderWidgetHelper*
> render_widget_helper_;
> this should be a scoped_refptr
> 
>
http://codereview.chromium.org/7136001/diff/15001/content/browser/renderer_ho...
> content/browser/renderer_host/gpu_message_filter.h:58:
> ScopedRunnableMethodFactory<GpuMessageFilter> method_factory_;
> nit: doesnt look like this is used anymore
> 
>
http://codereview.chromium.org/7136001/diff/15001/content/browser/renderer_ho...
> File content/browser/renderer_host/render_widget_helper.h (right):
> 
>
http://codereview.chromium.org/7136001/diff/15001/content/browser/renderer_ho...
> content/browser/renderer_host/render_widget_helper.h:17: #include
> "content/browser/browser_thread.h"
> nit: doesn't look like this is needed
> 
>
http://codereview.chromium.org/7136001/diff/15001/content/browser/renderer_ho...
> File content/browser/renderer_host/render_widget_host.h (right):
> 
>
http://codereview.chromium.org/7136001/diff/15001/content/browser/renderer_ho...
> content/browser/renderer_host/render_widget_host.h:147: void
> set_view(RenderWidgetHostView* view);
> nit: if you're doing work in this function, then it can't use unix_hacker
naming
> anymore

Done

Powered by Google App Engine
This is Rietveld 408576698