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

Issue 10798006: Implement WebCompositorOutputSurface (Closed)

Created:
8 years, 5 months ago by nduca
Modified:
8 years, 4 months ago
CC:
chromium-reviews, joi+watch-content_chromium.org, darin-cc_chromium.org, jam, apatrick_chromium, aelias_OOO_until_Jul13, brianderson, jbates
Visibility:
Public.

Description

Creates the WebCompositorOutputSurface, which is the new mechanism for rendering interactions between the compositor and RenderWidgetHost. As part of this, we plumb vsync information to the compositor. The new IPC::ForwardingMessageFilter is modified to have route-specific handlers rather than a global handler. This simplifies message routing considerably. BUG=129674 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=151387

Patch Set 1 #

Total comments: 1

Patch Set 2 : Add a filter rather than generalize #

Patch Set 3 : Add compositor message filter #

Patch Set 4 : Dispatch vsync message to compositor_thread #

Patch Set 5 : Use ForwardingMessageFilter #

Patch Set 6 : Use ForwardingMessageFilter but without IPC parts #

Patch Set 7 : Use ForwardingInputFilter #

Patch Set 8 : Nit fixes #

Total comments: 5

Patch Set 9 : WebCompositorOutputSurface-based approach with filter hack. #

Patch Set 10 : Ready for review, uses filters properly #

Total comments: 12

Patch Set 11 : Nit fixes #

Total comments: 1

Patch Set 12 : Use the handler directly and eliminate forward #

Total comments: 1

Patch Set 13 : fix handler ownership #

Patch Set 14 : rebase #

Patch Set 15 : more fixes #

Unified diffs Side-by-side diffs Delta from patch set Stats (+349 lines, -80 lines) Patch
M content/browser/renderer_host/render_widget_host_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +7 lines, -0 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 1 chunk +5 lines, -0 lines 0 comments Download
M content/common/view_messages.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +5 lines, -0 lines 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
A content/renderer/gpu/compositor_output_surface.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +60 lines, -0 lines 0 comments Download
A content/renderer/gpu/compositor_output_surface.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +100 lines, -0 lines 0 comments Download
M content/renderer/gpu/compositor_thread.h View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -0 lines 0 comments Download
M content/renderer/render_thread_impl.h View 1 2 3 4 5 6 7 8 9 10 3 chunks +10 lines, -0 lines 0 comments Download
M content/renderer/render_thread_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 4 chunks +13 lines, -0 lines 0 comments Download
M content/renderer/render_view_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +5 lines, -2 lines 0 comments Download
M content/renderer/render_view_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 4 chunks +67 lines, -41 lines 0 comments Download
M ipc/ipc_forwarding_message_filter.h View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +7 lines, -11 lines 0 comments Download
M ipc/ipc_forwarding_message_filter.cc View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +16 lines, -20 lines 0 comments Download
M ui/compositor/compositor.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +2 lines, -2 lines 0 comments Download
M ui/compositor/compositor.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +48 lines, -4 lines 0 comments Download

Messages

Total messages: 28 (0 generated)
nduca
8 years, 5 months ago (2012-07-18 08:02:34 UTC) #1
darin (slow to review)
It is hard to review this change without seeing what the other IPC messages are ...
8 years, 5 months ago (2012-07-18 17:56:45 UTC) #2
darin (slow to review)
Also, notice how the InputEventFilter has nothing really to do with the compositor. Another system ...
8 years, 5 months ago (2012-07-18 17:59:43 UTC) #3
nduca
That sounds harmless. I'll give it a try, thanks!
8 years, 5 months ago (2012-07-18 22:59:55 UTC) #4
nduca
Hey darin, is this more the direction that you were thinking? I'm still wrapping my ...
8 years, 5 months ago (2012-07-19 08:14:53 UTC) #5
darin (slow to review)
Could you add compositor_message_filter.{h,cc} to this CL so I can see what they do?
8 years, 5 months ago (2012-07-19 17:00:59 UTC) #6
nduca
8 years, 5 months ago (2012-07-24 05:45:55 UTC) #7
piman
LGTM, nice. I'm pretty sure we'll use that filter for ÜC.
8 years, 5 months ago (2012-07-24 06:30:36 UTC) #8
darin (slow to review)
http://codereview.chromium.org/10798006/diff/5004/content/browser/renderer_host/render_widget_host_impl.cc File content/browser/renderer_host/render_widget_host_impl.cc (right): http://codereview.chromium.org/10798006/diff/5004/content/browser/renderer_host/render_widget_host_impl.cc#newcode1002 content/browser/renderer_host/render_widget_host_impl.cc:1002: void RenderWidgetHostImpl::UpdateVSyncParameters(base::TimeTicks timebase, Does it make sense to pass ...
8 years, 5 months ago (2012-07-24 23:56:43 UTC) #9
jbates
http://codereview.chromium.org/10798006/diff/5004/content/browser/renderer_host/render_widget_host_impl.h File content/browser/renderer_host/render_widget_host_impl.h (right): http://codereview.chromium.org/10798006/diff/5004/content/browser/renderer_host/render_widget_host_impl.h#newcode363 content/browser/renderer_host/render_widget_host_impl.h:363: base::TimeDelta interval); If the interval is TimeDelta, it's limited ...
8 years, 4 months ago (2012-07-27 18:42:25 UTC) #10
piman
I just have nits. http://codereview.chromium.org/10798006/diff/23001/content/renderer/gpu/compositor_output_surface.cc File content/renderer/gpu/compositor_output_surface.cc (right): http://codereview.chromium.org/10798006/diff/23001/content/renderer/gpu/compositor_output_surface.cc#newcode34 content/renderer/gpu/compositor_output_surface.cc:34: , client_(NULL) nit: initializer style ...
8 years, 4 months ago (2012-08-08 16:47:43 UTC) #11
jbates
Nice work, looks like it will now be easy to add new browser->renderer messages for ...
8 years, 4 months ago (2012-08-08 16:55:08 UTC) #12
nduca
> qq, is that the current behavior from what webkit requests (disable AA)? Yep, think ...
8 years, 4 months ago (2012-08-09 06:29:58 UTC) #13
piman
On Wed, Aug 8, 2012 at 11:29 PM, <nduca@chromium.org> wrote: > qq, is that the ...
8 years, 4 months ago (2012-08-09 06:44:45 UTC) #14
jbates
lgtm
8 years, 4 months ago (2012-08-09 16:17:24 UTC) #15
darin (slow to review)
http://codereview.chromium.org/10798006/diff/31003/ipc/ipc_forwarding_message_filter.cc File ipc/ipc_forwarding_message_filter.cc (right): http://codereview.chromium.org/10798006/diff/31003/ipc/ipc_forwarding_message_filter.cc#newcode40 ipc/ipc_forwarding_message_filter.cc:40: if (handlers_.find(message.routing_id()) == handlers_.end()) would it make sense to ...
8 years, 4 months ago (2012-08-09 20:13:45 UTC) #16
nduca
Updated. @darin, just need your LG for ipc/OWNERS
8 years, 4 months ago (2012-08-10 01:43:16 UTC) #17
darin (slow to review)
https://chromiumcodereview.appspot.com/10798006/diff/32002/ipc/ipc_forwarding_message_filter.cc File ipc/ipc_forwarding_message_filter.cc (right): https://chromiumcodereview.appspot.com/10798006/diff/32002/ipc/ipc_forwarding_message_filter.cc#newcode39 ipc/ipc_forwarding_message_filter.cc:39: std::map<int, Handler>::iterator it; this doesn't look safe to me. ...
8 years, 4 months ago (2012-08-10 16:32:57 UTC) #18
piman
On 2012/08/10 16:32:57, darin wrote: > https://chromiumcodereview.appspot.com/10798006/diff/32002/ipc/ipc_forwarding_message_filter.cc > File ipc/ipc_forwarding_message_filter.cc (right): > > https://chromiumcodereview.appspot.com/10798006/diff/32002/ipc/ipc_forwarding_message_filter.cc#newcode39 > ...
8 years, 4 months ago (2012-08-11 01:43:32 UTC) #19
nduca
I think I got it fixed in the latest patch. I just pulled the handle ...
8 years, 4 months ago (2012-08-11 02:07:10 UTC) #20
piman
lgtm
8 years, 4 months ago (2012-08-11 04:46:03 UTC) #21
darin (slow to review)
LGTM
8 years, 4 months ago (2012-08-11 06:14:43 UTC) #22
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/nduca@chromium.org/10798006/21010
8 years, 4 months ago (2012-08-13 16:33:26 UTC) #23
commit-bot: I haz the power
Failed to apply patch for ui/compositor/compositor.cc: While running patch -p1 --forward --force; patching file ui/compositor/compositor.cc ...
8 years, 4 months ago (2012-08-13 16:33:30 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/nduca@chromium.org/10798006/24016
8 years, 4 months ago (2012-08-13 19:12:20 UTC) #25
commit-bot: I haz the power
Try job failure for 10798006-24016 (retry) on linux_rel for step "content_unittests". It's a second try, ...
8 years, 4 months ago (2012-08-13 20:01:50 UTC) #26
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/nduca@chromium.org/10798006/24016
8 years, 4 months ago (2012-08-13 21:10:46 UTC) #27
commit-bot: I haz the power
8 years, 4 months ago (2012-08-13 22:03:54 UTC) #28
Try job failure for 10798006-24016 (retry) on mac_rel for step
"content_unittests".
It's a second try, previously, step "content_unittests" failed.
http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=mac_rel&nu...

Powered by Google App Engine
This is Rietveld 408576698