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

Issue 10735010: 3D Compositing in <browser>, first draft. (Closed)

Created:
8 years, 5 months ago by scshunt
Modified:
8 years, 2 months ago
Reviewers:
CC:
chromium-reviews, yusukes+watch_chromium.org, erikwright (departed), jam, penghuang+watch_chromium.org, apatrick_chromium, joi+watch-content_chromium.org, darin-cc_chromium.org, brettw-cc_chromium.org, James Su, scottmg, lazyboy, fsamatis, rjkroege, Fady Samuel, alexst (slow to review)
Base URL:
http://git.chromium.org/chromium/src.git@master
Visibility:
Public.

Description

3D Compositing in <browser>, first draft. BUG=141137 TEST=

Patch Set 1 #

Total comments: 33

Patch Set 2 : Clean up a lot; remove debugging statements and old code changes. #

Patch Set 3 : Defer update only during a render cycle #

Patch Set 4 : Bring to ToT; diff against browser plugin #

Patch Set 5 : -> ToT #

Patch Set 6 : Fix style issues #

Patch Set 7 : #

Patch Set 8 : Fix build problems #

Patch Set 9 : Bring forward along; diff against correct patchset #

Patch Set 10 : Factor out CompositingDelegate changes #

Patch Set 11 : s/Crappy/BrowserPlugin/ #

Patch Set 12 : Move things onto the compositor thread #

Patch Set 13 : Major changes to clean up deadlock & other issues #

Total comments: 33

Patch Set 14 : Lots of fixes, upgrades, and testing! #

Patch Set 15 : Use the correct baseline #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1072 lines, -91 lines) Patch
M content/browser/browser_plugin/browser_plugin_host.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 5 chunks +15 lines, -1 line 0 comments Download
M content/browser/browser_plugin/browser_plugin_host.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 9 chunks +25 lines, -11 lines 0 comments Download
M content/browser/browser_plugin/browser_plugin_host_helper.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 4 chunks +13 lines, -4 lines 0 comments Download
M content/browser/browser_plugin/browser_plugin_host_helper.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 4 chunks +98 lines, -4 lines 0 comments Download
M content/browser/gpu/gpu_process_host.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +13 lines, -10 lines 0 comments Download
M content/browser/gpu/gpu_process_host_ui_shim.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -1 line 0 comments Download
M content/browser/renderer_host/gpu_message_filter.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +2 lines, -4 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M content/browser/renderer_host/test_render_view_host.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +0 lines, -14 lines 0 comments Download
M content/browser/renderer_host/test_render_view_host.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 4 chunks +25 lines, -15 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +5 lines, -0 lines 0 comments Download
A content/common/browser_plugin_info.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +19 lines, -0 lines 0 comments Download
M content/common/browser_plugin_messages.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 5 chunks +34 lines, -2 lines 0 comments Download
M content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -1 line 0 comments Download
M content/content_renderer.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +2 lines, -0 lines 0 comments Download
M content/content_tests.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -0 lines 0 comments Download
M content/public/browser/notification_types.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +5 lines, -0 lines 0 comments Download
M content/renderer/browser_plugin/browser_plugin.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 4 chunks +20 lines, -0 lines 0 comments Download
M content/renderer/browser_plugin/browser_plugin.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 10 chunks +89 lines, -13 lines 0 comments Download
M content/renderer/browser_plugin/browser_plugin_browsertest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 4 chunks +173 lines, -6 lines 0 comments Download
M content/renderer/browser_plugin/browser_plugin_manager.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +2 lines, -0 lines 0 comments Download
M content/renderer/browser_plugin/browser_plugin_manager_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +11 lines, -0 lines 0 comments Download
M content/renderer/browser_plugin/browser_plugin_manager_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +23 lines, -0 lines 0 comments Download
A content/renderer/browser_plugin/browser_plugin_texture_provider.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +117 lines, -0 lines 0 comments Download
A content/renderer/browser_plugin/browser_plugin_texture_provider.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +277 lines, -0 lines 0 comments Download
M content/renderer/browser_plugin/mock_browser_plugin.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +15 lines, -0 lines 0 comments Download
M content/renderer/browser_plugin/mock_browser_plugin_manager.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M content/renderer/browser_plugin/mock_browser_plugin_manager.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +3 lines, -0 lines 0 comments Download
A content/renderer/browser_plugin/mock_browser_plugin_texture_provider.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +28 lines, -0 lines 0 comments Download
A content/renderer/browser_plugin/mock_browser_plugin_texture_provider.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +23 lines, -0 lines 0 comments Download
M ipc/ipc_forwarding_message_filter.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3 chunks +16 lines, -1 line 0 comments Download
M ipc/ipc_forwarding_message_filter.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +11 lines, -3 lines 0 comments Download
M ipc/ipc_sync_channel.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
Fady Samuel
Hey Sean, I added some comments. Some of it is confusion over various bits and ...
8 years, 5 months ago (2012-07-06 15:14:43 UTC) #1
scshunt
I've gone over the comments. There are a few other things that are in need ...
8 years, 5 months ago (2012-07-06 16:39:03 UTC) #2
Fady Samuel
+rjkroege for a look.
8 years, 5 months ago (2012-07-09 15:49:33 UTC) #3
scshunt
This is a self-review for things that I need to clean up. With the exception ...
8 years, 4 months ago (2012-08-12 01:42:45 UTC) #4
scshunt
8 years, 4 months ago (2012-08-17 17:30:28 UTC) #5
http://codereview.chromium.org/10735010/diff/36001/content/browser/browser_pl...
File content/browser/browser_plugin/browser_plugin_host.cc (right):

http://codereview.chromium.org/10735010/diff/36001/content/browser/browser_pl...
content/browser/browser_plugin/browser_plugin_host.cc:259: if
(guest_rvh->decrement_in_flight_event_count() == 0) {
On 2012/08/12 01:42:45, scshunt1 wrote:
> Unnecessary.

Done.

http://codereview.chromium.org/10735010/diff/36001/content/browser/browser_pl...
File content/browser/browser_plugin/browser_plugin_host_helper.cc (right):

http://codereview.chromium.org/10735010/diff/36001/content/browser/browser_pl...
content/browser/browser_plugin/browser_plugin_host_helper.cc:59: // invalidate
the whole thing.
On 2012/08/12 01:42:45, scshunt1 wrote:
> Verify that these are the correct semantics for a PostSubBuffer. If not, can
we
> turn PostSubBuffer off?

They are not and not easily. Made a TODO since I haven't encountered this method
actually being called.

http://codereview.chromium.org/10735010/diff/36001/content/browser/browser_pl...
File content/browser/browser_plugin/browser_plugin_host_helper.h (right):

http://codereview.chromium.org/10735010/diff/36001/content/browser/browser_pl...
content/browser/browser_plugin/browser_plugin_host_helper.h:74:
BrowserPluginHostMsg_Surface_Params surface_params_;
On 2012/08/12 01:42:45, scshunt1 wrote:
> Why are these being stored on both the Host and the Helper?

Answer: Because the host needs to store them to give to the helper, and the
helper needs to store them since otherwise bad things may happen if the host
updates them during nav at the same time that the plugin requests a surface,
namely that the old RenderView could possibly end up rendering to the same
surface before it dies.

http://codereview.chromium.org/10735010/diff/36001/content/browser/web_conten...
File content/browser/web_contents/web_contents_impl.cc (right):

http://codereview.chromium.org/10735010/diff/36001/content/browser/web_conten...
content/browser/web_contents/web_contents_impl.cc:3072: &embedder_container_id);
On 2012/08/12 01:42:45, scshunt1 wrote:
> The indentation is off, here. And this seems /really/ fragile, since the
> ordering is important. A comment should be here at the very least, explaining
> why the notification must go through first.
In retrospect, I don't know what I was talking about.

http://codereview.chromium.org/10735010/diff/36001/content/common/browser_plu...
File content/common/browser_plugin_messages.h (right):

http://codereview.chromium.org/10735010/diff/36001/content/common/browser_plu...
content/common/browser_plugin_messages.h:76: BrowserPluginHostMsg_Surface_Params
/* surface params */)
On 2012/08/12 01:42:45, scshunt1 wrote:
> Do we need to send surface parameters with every go? Does having this message
be
> transparent as to the presence of a guest preclude there from being a
> distinction?

A: Yes we do, since we want a new surface for cross-process nav so that we don't
have two renderers fighting on the same textures.

http://codereview.chromium.org/10735010/diff/36001/content/public/browser/not...
File content/public/browser/notification_types.h (right):

http://codereview.chromium.org/10735010/diff/36001/content/public/browser/not...
content/public/browser/notification_types.h:214:
NOTIFICATION_WILL_CREATE_RENDER_VIEW,
On 2012/08/12 01:42:45, scshunt1 wrote:
> This should probably be NOTIFICATION_WEB_CONTENTS_WILL_CREATE_RENDER_VIEW

Done.

http://codereview.chromium.org/10735010/diff/36001/content/public/browser/not...
content/public/browser/notification_types.h:217: // previous one, this is now
really confusing.
On 2012/08/12 01:42:45, scshunt1 wrote:
> This TODO needs to be done or left in?
In retrospect it seems fine as is.

http://codereview.chromium.org/10735010/diff/36001/content/renderer/browser_p...
File content/renderer/browser_plugin/browser_plugin.h (right):

http://codereview.chromium.org/10735010/diff/36001/content/renderer/browser_p...
content/renderer/browser_plugin/browser_plugin.h:24: }
On 2012/08/12 01:42:45, scshunt1 wrote:
> Is the style to have spaces around the inner class declarations or not?

Done.

http://codereview.chromium.org/10735010/diff/36001/content/renderer/browser_p...
File content/renderer/browser_plugin/browser_plugin_manager.h (right):

http://codereview.chromium.org/10735010/diff/36001/content/renderer/browser_p...
content/renderer/browser_plugin/browser_plugin_manager.h:14: struct
BrowserPluginMsg_UpdateRect_Params;
On 2012/08/12 01:42:45, scshunt1 wrote:
> Unnecessary now that their use has been moved to the Impl.

Done.

http://codereview.chromium.org/10735010/diff/36001/content/renderer/browser_p...
content/renderer/browser_plugin/browser_plugin_manager.h:48: virtual void
TextureProviderIsReady(int instance_id) = 0;
On 2012/08/12 01:42:45, scshunt1 wrote:
> This isn't the best name. I wonder if I can improve this.

Done.

http://codereview.chromium.org/10735010/diff/36001/content/renderer/browser_p...
File content/renderer/browser_plugin/browser_plugin_texture_provider.h (right):

http://codereview.chromium.org/10735010/diff/36001/content/renderer/browser_p...
content/renderer/browser_plugin/browser_plugin_texture_provider.h:77: base::Lock
lock_;
On 2012/08/12 01:42:45, scshunt1 wrote:
> Some whitespace here would be nice.

Done.

http://codereview.chromium.org/10735010/diff/36001/ipc/ipc_forwarding_message...
File ipc/ipc_forwarding_message_filter.h (right):

http://codereview.chromium.org/10735010/diff/36001/ipc/ipc_forwarding_message...
ipc/ipc_forwarding_message_filter.h:48: void
SetPredicate(base::Callback<bool(const Message&)> predicate);
On 2012/08/12 01:42:45, scshunt1 wrote:
> Need to switch to the virtual design suggested by Nat.

Done, except I didn't actually use virtual functions because a callback was far
cleaner.

Powered by Google App Engine
This is Rietveld 408576698