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

Issue 2774373002: Use MojoCompositorFrameSink in RendererCompositorFrameSink (Closed)

Created:
3 years, 9 months ago by Saman Sami
Modified:
3 years, 8 months ago
CC:
Aaron Boodman, abarth-chromium, chromium-reviews, creis+watch_chromium.org, darin (slow to review), darin-cc_chromium.org, jam, kylechar, mlamouri+watch-content_chromium.org, nasko+codewatch_chromium.org, piman+watch_chromium.org, qsr+mojo_chromium.org, viettrungluu+watch_chromium.org, yzshen+watch_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Use MojoCompositorFrameSink in RendererCompositorFrameSink It's essential for MUS that all clients submit frames using Mojo. This CL gets rid of legacy IPC in RendererCompositorFrameSink and uses Mojo instead. To this end, I introduced content::mojom::FrameSinkProvider, an interface that takes the widget id (= legacy IPC routing id) and provides a MojoCompositorFrameSinkPtr to be used in RendererCompositorFrameSink. The frames go to RenderWidgetHostImpl and are processed the same way they used to be. Note: Due to crbug.com/709689, we keep sending BeginFrames using Chrome IPC. We have some performance numbers available for smoothness.top_25_smooth at Patch Set 35. There is no metric that is consistently better than or worse than ToT. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_site_isolation Review-Url: https://codereview.chromium.org/2774373002 Cr-Commit-Position: refs/heads/master@{#463845} Committed: https://chromium.googlesource.com/chromium/src/+/2040988b1345e6ce738bd03ab7ccd5f4b73a956b

Patch Set 1 #

Patch Set 2 : client #

Patch Set 3 : Mojo for ack + resources #

Patch Set 4 : begin frame (broken) #

Patch Set 5 : everything mojo #

Patch Set 6 : c #

Patch Set 7 : rebased #

Patch Set 8 : c #

Patch Set 9 : c #

Patch Set 10 : c #

Patch Set 11 : Mac works #

Patch Set 12 : Mac resize #

Patch Set 13 : Cleanup #

Patch Set 14 : rename #

Patch Set 15 : fixed manifest #

Patch Set 16 : content unittests compile #

Patch Set 17 : content unittests passes #

Patch Set 18 : c #

Patch Set 19 : mac compile #

Patch Set 20 : android #

Patch Set 21 : c #

Patch Set 22 : Fix guest #

Patch Set 23 : rebase #

Patch Set 24 : c #

Patch Set 25 : rebase #

Patch Set 26 : Add switch #

Patch Set 27 : Fixed mac #

Patch Set 28 : fixed compiles #

Patch Set 29 : fixed android #

Patch Set 30 : Fixed mac #

Total comments: 24

Patch Set 31 : addressed comments #

Patch Set 32 : Remove switches to avoid confusion for now #

Patch Set 33 : updated tests #

Patch Set 34 : c #

Patch Set 35 : Send BeginFrames using Chrome IPC. #

Patch Set 36 : Fixed tests #

Patch Set 37 : Clean-up #

Patch Set 38 : Survive renderer crash #

Total comments: 4

Patch Set 39 : addressed comments #

Total comments: 14

Patch Set 40 : rebased #

Patch Set 41 : c #

Patch Set 42 : Rebased, dedup IPC #

Unified diffs Side-by-side diffs Delta from patch set Stats (+527 lines, -292 lines) Patch
M content/browser/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 1 chunk +2 lines, -0 lines 0 comments Download
M content/browser/frame_host/render_widget_host_view_child_frame.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 2 chunks +5 lines, -1 line 0 comments Download
M content/browser/frame_host/render_widget_host_view_child_frame.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 2 chunks +5 lines, -7 lines 0 comments Download
M content/browser/frame_host/render_widget_host_view_child_frame_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 3 chunks +17 lines, -0 lines 0 comments Download
M content/browser/frame_host/render_widget_host_view_guest.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 chunk +3 lines, -0 lines 0 comments Download
M content/browser/frame_host/render_widget_host_view_guest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 1 chunk +8 lines, -0 lines 0 comments Download
M content/browser/frame_host/render_widget_host_view_guest_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 3 chunks +15 lines, -0 lines 0 comments Download
M content/browser/renderer_host/browser_compositor_view_mac.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 4 chunks +4 lines, -7 lines 0 comments Download
M content/browser/renderer_host/browser_compositor_view_mac.mm View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 chunks +5 lines, -9 lines 0 comments Download
M content/browser/renderer_host/delegated_frame_host.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 3 chunks +4 lines, -5 lines 0 comments Download
M content/browser/renderer_host/delegated_frame_host.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 3 chunks +7 lines, -7 lines 0 comments Download
M content/browser/renderer_host/delegated_frame_host_client_aura.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +0 lines, -3 lines 0 comments Download
M content/browser/renderer_host/delegated_frame_host_client_aura.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +0 lines, -8 lines 0 comments Download
A content/browser/renderer_host/frame_sink_provider_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 1 chunk +39 lines, -0 lines 0 comments Download
A content/browser/renderer_host/frame_sink_provider_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 1 chunk +42 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_message_filter.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 1 chunk +2 lines, -9 lines 0 comments Download
M content/browser/renderer_host/render_process_host_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 3 chunks +4 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_process_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 4 chunks +15 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 7 chunks +22 lines, -18 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 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 8 chunks +36 lines, -38 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 4 chunks +18 lines, -50 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_android.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 chunks +6 lines, -1 line 0 comments Download
M content/browser/renderer_host/render_widget_host_view_android.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 2 chunks +10 lines, -3 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_aura.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 2 chunks +6 lines, -1 line 0 comments Download
M content/browser/renderer_host/render_widget_host_view_aura.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 2 chunks +11 lines, -3 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_aura_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 11 chunks +39 lines, -28 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_base.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 2 chunks +4 lines, -1 line 0 comments Download
M content/browser/renderer_host/render_widget_host_view_mac.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 2 chunks +3 lines, -4 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_view_mac.mm View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 2 chunks +4 lines, -9 lines 0 comments Download
M content/common/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 1 chunk +1 line, -0 lines 0 comments Download
A content/common/frame_sink_provider.mojom View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 chunk +10 lines, -0 lines 0 comments Download
M content/common/swapped_out_messages.cc View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -1 line 0 comments Download
M content/common/view_messages.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 2 chunks +0 lines, -13 lines 0 comments Download
M content/public/app/mojo/content_browser_manifest.json View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 chunk +1 line, -0 lines 0 comments Download
M content/renderer/gpu/compositor_forwarding_message_filter.cc View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -1 line 0 comments Download
M content/renderer/gpu/renderer_compositor_frame_sink.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 7 chunks +18 lines, -11 lines 0 comments Download
M content/renderer/gpu/renderer_compositor_frame_sink.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 11 chunks +47 lines, -41 lines 0 comments Download
M content/renderer/render_thread_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 3 chunks +7 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 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 5 chunks +12 lines, -11 lines 0 comments Download
M content/test/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 2 chunks +3 lines, -0 lines 0 comments Download
A content/test/fake_renderer_compositor_frame_sink.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 1 chunk +51 lines, -0 lines 0 comments Download
A content/test/fake_renderer_compositor_frame_sink.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 1 chunk +36 lines, -0 lines 0 comments Download
M content/test/test_render_view_host.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 chunk +3 lines, -1 line 0 comments Download
M content/test/test_render_view_host.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 1 chunk +2 lines, -1 line 0 comments Download

Messages

Total messages: 131 (108 generated)
Saman Sami
rockot@: I still have some work to do, mostly fixing crbug.com/709689, but this CL seems ...
3 years, 8 months ago (2017-04-10 02:16:19 UTC) #54
Saman Sami
fsamuel@ PTAL
3 years, 8 months ago (2017-04-10 02:18:01 UTC) #56
Fady Samuel
This is a big change. Please add an indepth description of what you're doing here. ...
3 years, 8 months ago (2017-04-10 02:21:03 UTC) #57
Saman Sami
I might actually not land behind a flag. I think if we keep sending BeginFrames ...
3 years, 8 months ago (2017-04-10 02:24:58 UTC) #59
Fady Samuel
I haven't reviewed everything but it looks like you're not actually using the switch you ...
3 years, 8 months ago (2017-04-10 02:28:38 UTC) #60
Saman Sami
I think it makes sense to get rid of Chrome IPC if I can fix ...
3 years, 8 months ago (2017-04-10 02:37:48 UTC) #61
Saman Sami
https://codereview.chromium.org/2774373002/diff/580001/content/browser/frame_sink_provider_impl.h File content/browser/frame_sink_provider_impl.h (right): https://codereview.chromium.org/2774373002/diff/580001/content/browser/frame_sink_provider_impl.h#newcode13 content/browser/frame_sink_provider_impl.h:13: class FrameSinkProviderImpl : public mojom::FrameSinkProvider { On 2017/04/10 02:28:38, ...
3 years, 8 months ago (2017-04-10 15:05:51 UTC) #64
Fady Samuel
lgtm + nits. This is awesome! I'm excited to see the progress on this front! ...
3 years, 8 months ago (2017-04-10 20:01:07 UTC) #89
Saman Sami
Thanks for the LGTM! piman@ PTAL https://codereview.chromium.org/2774373002/diff/740001/content/renderer/gpu/renderer_compositor_frame_sink.cc File content/renderer/gpu/renderer_compositor_frame_sink.cc (right): https://codereview.chromium.org/2774373002/diff/740001/content/renderer/gpu/renderer_compositor_frame_sink.cc#newcode164 content/renderer/gpu/renderer_compositor_frame_sink.cc:164: IPC_MESSAGE_HANDLER(ViewMsg_BeginFrame, OnBeginFrameIPC) On ...
3 years, 8 months ago (2017-04-10 20:15:01 UTC) #94
Ken Rockot(use gerrit already)
lgtm https://codereview.chromium.org/2774373002/diff/760001/content/browser/frame_sink_provider_impl.cc File content/browser/frame_sink_provider_impl.cc (right): https://codereview.chromium.org/2774373002/diff/760001/content/browser/frame_sink_provider_impl.cc#newcode15 content/browser/frame_sink_provider_impl.cc:15: if (binding_.is_bound()) Some surprising and unexpected behavior could ...
3 years, 8 months ago (2017-04-10 23:31:11 UTC) #106
piman
https://codereview.chromium.org/2774373002/diff/760001/content/browser/frame_sink_provider_impl.h File content/browser/frame_sink_provider_impl.h (right): https://codereview.chromium.org/2774373002/diff/760001/content/browser/frame_sink_provider_impl.h#newcode16 content/browser/frame_sink_provider_impl.h:16: class FrameSinkProviderImpl : public mojom::FrameSinkProvider { nit: should this ...
3 years, 8 months ago (2017-04-10 23:35:58 UTC) #107
Saman Sami
https://codereview.chromium.org/2774373002/diff/760001/content/browser/frame_sink_provider_impl.cc File content/browser/frame_sink_provider_impl.cc (right): https://codereview.chromium.org/2774373002/diff/760001/content/browser/frame_sink_provider_impl.cc#newcode15 content/browser/frame_sink_provider_impl.cc:15: if (binding_.is_bound()) On 2017/04/10 23:31:11, Ken Rockot wrote: > ...
3 years, 8 months ago (2017-04-11 00:09:52 UTC) #108
Ken Rockot(use gerrit already)
On 2017/04/11 at 00:09:52, samans wrote: > https://codereview.chromium.org/2774373002/diff/760001/content/browser/frame_sink_provider_impl.cc > File content/browser/frame_sink_provider_impl.cc (right): > > https://codereview.chromium.org/2774373002/diff/760001/content/browser/frame_sink_provider_impl.cc#newcode15 ...
3 years, 8 months ago (2017-04-11 04:07:53 UTC) #113
Saman Sami
tsepez Please review IPC for security
3 years, 8 months ago (2017-04-11 16:09:34 UTC) #115
Saman Sami
piman PTAL https://codereview.chromium.org/2774373002/diff/760001/content/browser/renderer_host/render_widget_host_view_android.cc File content/browser/renderer_host/render_widget_host_view_android.cc (right): https://codereview.chromium.org/2774373002/diff/760001/content/browser/renderer_host/render_widget_host_view_android.cc#newcode1117 content/browser/renderer_host/render_widget_host_view_android.cc:1117: renderer_compositor_frame_sink_->DidReceiveCompositorFrameAck(); On 2017/04/11 00:09:52, Saman Sami wrote: ...
3 years, 8 months ago (2017-04-11 16:13:45 UTC) #116
Tom Sepez
On 2017/04/11 16:09:34, Saman Sami wrote: > tsepez Please review IPC for security Sounds like ...
3 years, 8 months ago (2017-04-11 17:21:53 UTC) #117
Saman Sami
On 2017/04/11 17:21:53, Tom Sepez wrote: > On 2017/04/11 16:09:34, Saman Sami wrote: > > ...
3 years, 8 months ago (2017-04-11 17:34:10 UTC) #118
Saman Sami
piman PTAL I merged IPCs.
3 years, 8 months ago (2017-04-11 22:40:04 UTC) #121
piman
LGTM, thanks!
3 years, 8 months ago (2017-04-11 22:50:21 UTC) #122
Tom Sepez
messages LGTM
3 years, 8 months ago (2017-04-11 22:58:11 UTC) #123
Fady Samuel
On 2017/04/10 20:15:01, Saman Sami wrote: > Thanks for the LGTM! > > piman@ PTAL ...
3 years, 8 months ago (2017-04-11 23:13:17 UTC) #124
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2774373002/820001
3 years, 8 months ago (2017-04-11 23:17:26 UTC) #128
commit-bot: I haz the power
3 years, 8 months ago (2017-04-11 23:59:38 UTC) #131
Message was sent while issue was closed.
Committed patchset #42 (id:820001) as
https://chromium.googlesource.com/chromium/src/+/2040988b1345e6ce738bd03ab7cc...

Powered by Google App Engine
This is Rietveld 408576698