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

Issue 1094113003: Allow out-of-process iframes to render to compositing surfaces. (Closed)

Created:
5 years, 8 months ago by kenrb
Modified:
5 years, 6 months ago
Reviewers:
ncarter (slow), *jbauman, *nasko
CC:
cc-bugs_chromium.org, chromium-reviews, creis+watch_chromium.org, darin-cc_chromium.org, jam, mkwst+moarreviews-renderer_chromium.org, mlamouri+watch-content_chromium.org, nasko+codewatch_chromium.org, site-isolation-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Allow out-of-process iframes to render to compositing surfaces. When compositing surfaces are enabled, the browser process upon receiving a frame from an OOPIF will pass a surface identifier to the embedding renderer process rather than the frame itself. This prevents frames from having to be composited at an arbitrary number of levels when OOPIFs are chained. BUG=478802 TEST=RenderWidgetHostViewChildFrameTest.SwapCompositorFrame Committed: https://crrev.com/fc7c02c9d3358dbfc22d29badd4b475e77aee181 Cr-Commit-Position: refs/heads/master@{#332060}

Patch Set 1 #

Patch Set 2 : Working patch w/ test #

Patch Set 3 : Fix Android problem #

Patch Set 4 : Fixed typo #

Total comments: 6

Patch Set 5 : Addressing Android compile issues #

Patch Set 6 : CONTENT_EXPORT added #

Patch Set 7 : Forgot an include #

Patch Set 8 : Removing OpenGL include from RWHVBase #

Patch Set 9 : Return resources properly #

Patch Set 10 : Rebase #

Patch Set 11 : Rebase #

Patch Set 12 : RWHVChildFrame provide surface ID namespace to renderer process #

Total comments: 4

Patch Set 13 : Review comments addressed, some tests fixed #

Patch Set 14 : Rebase and fix SurfaceLayer::Create conflict #

Patch Set 15 : Moar test fixages #

Patch Set 16 : Another test fix #

Patch Set 17 : Another test fix #

Total comments: 2

Patch Set 18 : Recreate surface_id_ if size changes #

Total comments: 2

Patch Set 19 : Destroy Surface when resetting id #

Total comments: 38

Patch Set 20 : Address comments by nasko, dcheng, ncarter #

Patch Set 21 : Missed one #

Unified diffs Side-by-side diffs Delta from patch set Stats (+514 lines, -33 lines) Patch
M content/browser/frame_host/cross_process_frame_connector.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 4 chunks +19 lines, -5 lines 0 comments Download
M content/browser/frame_host/cross_process_frame_connector.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 3 chunks +40 lines, -0 lines 0 comments Download
M content/browser/frame_host/render_frame_host_manager_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 chunks +5 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 4 chunks +38 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 5 chunks +120 lines, -5 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 4 chunks +115 lines, -1 line 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 1 chunk +1 line, -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 1 chunk +5 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 2 chunks +6 lines, -0 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 1 chunk +0 lines, -4 lines 0 comments Download
M content/common/cc_messages.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 chunks +7 lines, -1 line 0 comments Download
M content/common/frame_messages.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 3 chunks +18 lines, -0 lines 0 comments Download
M content/renderer/child_frame_compositing_helper.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 4 chunks +22 lines, -0 lines 0 comments Download
M content/renderer/child_frame_compositing_helper.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 9 chunks +87 lines, -16 lines 0 comments Download
M content/renderer/render_frame_proxy.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +9 lines, -0 lines 0 comments Download
M content/renderer/render_frame_proxy.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +22 lines, -0 lines 0 comments Download

Messages

Total messages: 42 (10 generated)
kenrb
John: I'm not sure I have worked out all the compile issues in the test ...
5 years, 7 months ago (2015-04-30 20:30:02 UTC) #3
jbauman
https://codereview.chromium.org/1094113003/diff/60001/content/browser/frame_host/render_widget_host_view_child_frame.cc File content/browser/frame_host/render_widget_host_view_child_frame.cc (right): https://codereview.chromium.org/1094113003/diff/60001/content/browser/frame_host/render_widget_host_view_child_frame.cc#newcode268 content/browser/frame_host/render_widget_host_view_child_frame.cc:268: ->AddDestructionDependency(sequence); I guess we'll also need to figure out ...
5 years, 7 months ago (2015-05-01 23:58:11 UTC) #4
jamesr
If we make sure everything render prices is using its proper id namespace then when ...
5 years, 7 months ago (2015-05-02 00:05:13 UTC) #6
kenrb
https://codereview.chromium.org/1094113003/diff/60001/content/browser/frame_host/render_widget_host_view_child_frame.cc File content/browser/frame_host/render_widget_host_view_child_frame.cc (right): https://codereview.chromium.org/1094113003/diff/60001/content/browser/frame_host/render_widget_host_view_child_frame.cc#newcode268 content/browser/frame_host/render_widget_host_view_child_frame.cc:268: ->AddDestructionDependency(sequence); On 2015/05/01 23:58:10, jbauman wrote: > I guess ...
5 years, 7 months ago (2015-05-05 16:24:38 UTC) #7
jbauman
On 2015/05/05 16:24:38, kenrb wrote: > https://codereview.chromium.org/1094113003/diff/60001/content/browser/frame_host/render_widget_host_view_child_frame.cc > File content/browser/frame_host/render_widget_host_view_child_frame.cc (right): > > https://codereview.chromium.org/1094113003/diff/60001/content/browser/frame_host/render_widget_host_view_child_frame.cc#newcode268 > ...
5 years, 7 months ago (2015-05-06 00:48:37 UTC) #8
kenrb
On 2015/05/06 00:48:37, jbauman wrote: > On 2015/05/05 16:24:38, kenrb wrote: > We'll probably need ...
5 years, 7 months ago (2015-05-06 14:48:56 UTC) #9
kenrb
On 2015/05/02 00:05:13, jamesr wrote: > If we make sure everything render prices is using ...
5 years, 7 months ago (2015-05-11 21:17:52 UTC) #10
jamesr
On 2015/05/11 21:17:52, kenrb wrote: > On 2015/05/02 00:05:13, jamesr wrote: > > If we ...
5 years, 7 months ago (2015-05-11 21:22:31 UTC) #11
kenrb
On 2015/05/11 21:22:31, jamesr wrote: > > When being notified of a namespace going away ...
5 years, 7 months ago (2015-05-11 21:28:54 UTC) #12
jamesr
Let's say you have renderers [A] and [B]. [B] wants to have a dependency on ...
5 years, 7 months ago (2015-05-11 21:40:29 UTC) #13
jbauman
On 2015/05/11 21:17:52, kenrb wrote: > On 2015/05/02 00:05:13, jamesr wrote: > > If we ...
5 years, 7 months ago (2015-05-11 21:42:47 UTC) #14
jamesr
On 2015/05/11 21:42:47, jbauman wrote: > On 2015/05/11 21:17:52, kenrb wrote: > > On 2015/05/02 ...
5 years, 7 months ago (2015-05-12 00:03:38 UTC) #15
kenrb
John: PTAL? The two issues discussed above have been fixed in other CLs. I have ...
5 years, 7 months ago (2015-05-22 20:21:08 UTC) #16
jbauman
Seems like some of the unit tests are red for some reason. https://codereview.chromium.org/1094113003/diff/220001/content/browser/frame_host/render_widget_host_view_child_frame.cc File content/browser/frame_host/render_widget_host_view_child_frame.cc ...
5 years, 7 months ago (2015-05-23 01:14:34 UTC) #17
kenrb
John: Another look? https://codereview.chromium.org/1094113003/diff/220001/content/browser/frame_host/render_widget_host_view_child_frame.cc File content/browser/frame_host/render_widget_host_view_child_frame.cc (right): https://codereview.chromium.org/1094113003/diff/220001/content/browser/frame_host/render_widget_host_view_child_frame.cc#newcode257 content/browser/frame_host/render_widget_host_view_child_frame.cc:257: surface_factory_.reset(); On 2015/05/23 01:14:34, jbauman wrote: ...
5 years, 6 months ago (2015-05-28 19:21:46 UTC) #18
jbauman
https://codereview.chromium.org/1094113003/diff/320001/content/browser/frame_host/render_widget_host_view_child_frame.cc File content/browser/frame_host/render_widget_host_view_child_frame.cc (right): https://codereview.chromium.org/1094113003/diff/320001/content/browser/frame_host/render_widget_host_view_child_frame.cc#newcode262 content/browser/frame_host/render_widget_host_view_child_frame.cc:262: if (surface_id_.is_null()) { You need to create a new ...
5 years, 6 months ago (2015-05-28 19:32:49 UTC) #19
kenrb
https://codereview.chromium.org/1094113003/diff/320001/content/browser/frame_host/render_widget_host_view_child_frame.cc File content/browser/frame_host/render_widget_host_view_child_frame.cc (right): https://codereview.chromium.org/1094113003/diff/320001/content/browser/frame_host/render_widget_host_view_child_frame.cc#newcode262 content/browser/frame_host/render_widget_host_view_child_frame.cc:262: if (surface_id_.is_null()) { On 2015/05/28 19:32:49, jbauman wrote: > ...
5 years, 6 months ago (2015-05-28 19:59:39 UTC) #20
jbauman
https://codereview.chromium.org/1094113003/diff/340001/content/browser/frame_host/render_widget_host_view_child_frame.cc File content/browser/frame_host/render_widget_host_view_child_frame.cc (right): https://codereview.chromium.org/1094113003/diff/340001/content/browser/frame_host/render_widget_host_view_child_frame.cc#newcode255 content/browser/frame_host/render_widget_host_view_child_frame.cc:255: surface_id_ = cc::SurfaceId(); if (surface_factory_ && !surface_id_.is_null()) surface_factory_->Destroy(surface_id_) in ...
5 years, 6 months ago (2015-05-28 20:09:00 UTC) #21
kenrb
https://codereview.chromium.org/1094113003/diff/340001/content/browser/frame_host/render_widget_host_view_child_frame.cc File content/browser/frame_host/render_widget_host_view_child_frame.cc (right): https://codereview.chromium.org/1094113003/diff/340001/content/browser/frame_host/render_widget_host_view_child_frame.cc#newcode255 content/browser/frame_host/render_widget_host_view_child_frame.cc:255: surface_id_ = cc::SurfaceId(); On 2015/05/28 20:08:59, jbauman wrote: > ...
5 years, 6 months ago (2015-05-28 20:17:53 UTC) #22
jbauman
lgtm
5 years, 6 months ago (2015-05-28 20:20:17 UTC) #23
kenrb
Nasko: Can you please review as a content owner?
5 years, 6 months ago (2015-05-28 20:29:45 UTC) #26
nasko
Mostly nits, though I think Nick can do much better review on this CL. Adding ...
5 years, 6 months ago (2015-05-28 20:42:36 UTC) #28
dcheng
Some random drive-by comments. https://codereview.chromium.org/1094113003/diff/360001/content/browser/frame_host/cross_process_frame_connector.h File content/browser/frame_host/cross_process_frame_connector.h (right): https://codereview.chromium.org/1094113003/diff/360001/content/browser/frame_host/cross_process_frame_connector.h#newcode90 content/browser/frame_host/cross_process_frame_connector.h:90: virtual void SetChildFrameSurface(cc::SurfaceId& surface_id, No ...
5 years, 6 months ago (2015-05-28 22:16:30 UTC) #29
dcheng
https://codereview.chromium.org/1094113003/diff/360001/content/browser/frame_host/render_widget_host_view_child_frame.h File content/browser/frame_host/render_widget_host_view_child_frame.h (right): https://codereview.chromium.org/1094113003/diff/360001/content/browser/frame_host/render_widget_host_view_child_frame.h#newcode42 content/browser/frame_host/render_widget_host_view_child_frame.h:42: public base::SupportsWeakPtr<RenderWidgetHostViewChildFrame> { Prefer to embed a WeakPtrFactory rather ...
5 years, 6 months ago (2015-05-28 22:24:55 UTC) #31
ncarter (slow)
Amazing CL. https://codereview.chromium.org/1094113003/diff/360001/content/browser/frame_host/render_widget_host_view_child_frame.cc File content/browser/frame_host/render_widget_host_view_child_frame.cc (right): https://codereview.chromium.org/1094113003/diff/360001/content/browser/frame_host/render_widget_host_view_child_frame.cc#newcode40 content/browser/frame_host/render_widget_host_view_child_frame.cc:40: RenderWidgetHostViewChildFrame::~RenderWidgetHostViewChildFrame() { If there are still entries ...
5 years, 6 months ago (2015-05-28 22:32:52 UTC) #33
jbauman
On 2015/05/28 22:32:52, ncarter wrote: > Amazing CL. > > https://codereview.chromium.org/1094113003/diff/360001/content/browser/frame_host/render_widget_host_view_child_frame.cc > File content/browser/frame_host/render_widget_host_view_child_frame.cc (right): ...
5 years, 6 months ago (2015-05-28 22:43:38 UTC) #34
kenrb
Updated. https://codereview.chromium.org/1094113003/diff/360001/content/browser/frame_host/cross_process_frame_connector.h File content/browser/frame_host/cross_process_frame_connector.h (right): https://codereview.chromium.org/1094113003/diff/360001/content/browser/frame_host/cross_process_frame_connector.h#newcode90 content/browser/frame_host/cross_process_frame_connector.h:90: virtual void SetChildFrameSurface(cc::SurfaceId& surface_id, On 2015/05/28 22:16:30, dcheng ...
5 years, 6 months ago (2015-05-29 19:29:37 UTC) #35
ncarter (slow)
lgtm
5 years, 6 months ago (2015-05-29 20:23:38 UTC) #36
nasko
lgtm
5 years, 6 months ago (2015-05-29 20:48:51 UTC) #37
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1094113003/400001
5 years, 6 months ago (2015-05-29 21:13:26 UTC) #40
commit-bot: I haz the power
Committed patchset #21 (id:400001)
5 years, 6 months ago (2015-05-29 22:21:05 UTC) #41
commit-bot: I haz the power
5 years, 6 months ago (2015-05-29 22:22:09 UTC) #42
Message was sent while issue was closed.
Patchset 21 (id:??) landed as
https://crrev.com/fc7c02c9d3358dbfc22d29badd4b475e77aee181
Cr-Commit-Position: refs/heads/master@{#332060}

Powered by Google App Engine
This is Rietveld 408576698