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

Issue 616133002: Make RenderFrame(Host) own a RenderWidget(Host). (Closed)

Created:
6 years, 2 months ago by kenrb
Modified:
5 years, 11 months ago
CC:
chromium-reviews, creis+watch_chromium.org, darin-cc_chromium.org, jam, mkwst+moarreviews-renderer_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

Make RenderFrame(Host) own a RenderWidget(Host). When a RenderFrameHost is created for an out-of-process iframe, it will create a RenderWidgetHost to manage rendering and input events for the iframe and its same-process frame descendants. A corresponding RenderWidget is created in the renderer process. BUG=419087 Committed: https://crrev.com/2dfb76d84f4ebde602c1c3cde700dcf71b4d1bd6 Cr-Commit-Position: refs/heads/master@{#312451} Committed: https://crrev.com/a719983b5525a477724350ee9eba20e574d0eb3b Cr-Commit-Position: refs/heads/master@{#312702}

Patch Set 1 #

Total comments: 47

Patch Set 2 : Comments addressed #

Total comments: 6

Patch Set 3 : Fixed output surface problems, combined RenderFrame and RenderWidget creation #

Total comments: 4

Patch Set 4 : Comment changed #

Patch Set 5 : Help RFHM get access to RenderWidgetHostView #

Patch Set 6 : Rebase #

Total comments: 1

Patch Set 7 : Added missing bits on renderer side #

Patch Set 8 : Bug fixes #

Patch Set 9 : Rebase #

Patch Set 10 : Fixed a conflict with the RF creation flag word #

Total comments: 1

Patch Set 11 : git cl format, changed WebWidget creation #

Total comments: 47

Patch Set 12 : Review comments addressed + a bug fix #

Patch Set 13 : Review comments addressed #

Patch Set 14 : Rebase #

Total comments: 14

Patch Set 15 : Test update, RWH lifetime fix #

Total comments: 23

Patch Set 16 : Moved InitForFrame call, addressed other comments #

Total comments: 8

Patch Set 17 : Moar review #

Patch Set 18 : Rebase, but still buggy #

Patch Set 19 : Rebase #

Patch Set 20 : Fix unit test compile problem #

Patch Set 21 : Re-applying same patch #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+313 lines, -63 lines) Patch
M content/browser/frame_host/frame_tree_node.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +1 line, -1 line 0 comments Download
M content/browser/frame_host/render_frame_host_factory.h View 1 2 3 4 5 6 7 8 3 chunks +3 lines, -0 lines 0 comments Download
M content/browser/frame_host/render_frame_host_factory.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +7 lines, -6 lines 0 comments Download
M content/browser/frame_host/render_frame_host_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 6 chunks +26 lines, -6 lines 0 comments Download
M content/browser/frame_host/render_frame_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 8 chunks +63 lines, -4 lines 1 comment Download
M content/browser/frame_host/render_frame_host_manager.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +3 lines, -1 line 0 comments Download
M content/browser/frame_host/render_frame_host_manager.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 12 chunks +35 lines, -24 lines 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 1 chunk +1 line, -1 line 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 2 chunks +16 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 14 15 16 17 18 5 chunks +26 lines, -5 lines 0 comments Download
M content/browser/site_per_process_browsertest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +6 lines, -2 lines 0 comments Download
M content/browser/web_contents/web_contents_impl_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +1 line, -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 2 chunks +16 lines, -2 lines 0 comments Download
M content/renderer/render_frame_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 4 chunks +12 lines, -1 line 0 comments Download
M content/renderer/render_frame_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 4 chunks +25 lines, -1 line 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 2 chunks +3 lines, -1 line 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 1 chunk +4 lines, -2 lines 0 comments Download
M content/renderer/render_widget.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 3 chunks +17 lines, -0 lines 0 comments Download
M content/renderer/render_widget.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 4 chunks +40 lines, -2 lines 0 comments Download
M content/test/test_render_frame_host.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -0 lines 0 comments Download
M content/test/test_render_frame_host.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +2 lines, -0 lines 0 comments Download
M content/test/test_render_frame_host_factory.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -0 lines 0 comments Download
M content/test/test_render_frame_host_factory.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +4 lines, -3 lines 0 comments Download

Messages

Total messages: 62 (16 generated)
kenrb
It's too early for formal review but I wouldn't mind a sanity check on what ...
6 years, 2 months ago (2014-09-30 19:49:30 UTC) #2
nasko
Thanks for taking this on Ken! First pass has some high level questions and a ...
6 years, 2 months ago (2014-10-01 16:37:14 UTC) #3
Charlie Reis
Great-- I'm excited to see frames starting to have their own widgets. A few questions ...
6 years, 2 months ago (2014-10-01 17:01:09 UTC) #4
kenrb
https://codereview.chromium.org/616133002/diff/1/content/browser/frame_host/render_frame_host_impl.cc File content/browser/frame_host/render_frame_host_impl.cc (right): https://codereview.chromium.org/616133002/diff/1/content/browser/frame_host/render_frame_host_impl.cc#newcode721 content/browser/frame_host/render_frame_host_impl.cc:721: // will no longer need its own routing_id, and ...
6 years, 2 months ago (2014-10-01 19:27:52 UTC) #5
Charlie Reis
Thanks for the update! Some more thoughts and questions below. Side note: please try to ...
6 years, 2 months ago (2014-10-02 00:06:57 UTC) #6
kenrb
https://codereview.chromium.org/616133002/diff/1/content/browser/frame_host/render_frame_host_impl.cc File content/browser/frame_host/render_frame_host_impl.cc (right): https://codereview.chromium.org/616133002/diff/1/content/browser/frame_host/render_frame_host_impl.cc#newcode730 content/browser/frame_host/render_frame_host_impl.cc:730: new RenderWidgetHostViewChildFrame(render_widget_host_impl_.get()); On 2014/10/02 00:06:57, Charlie Reis wrote: > ...
6 years, 2 months ago (2014-10-02 20:20:48 UTC) #7
nasko
I think this is mostly ready to go. It will be good to check this ...
6 years, 2 months ago (2014-10-02 20:41:44 UTC) #8
kenrb
I still need to add tests and I will have to land the Blink portion ...
6 years, 2 months ago (2014-10-03 17:23:32 UTC) #9
Charlie Reis
Great. (Sorry for the delay.) This looks good, once we add tests and land the ...
6 years, 2 months ago (2014-10-08 21:21:13 UTC) #10
ncarter (slow)
https://codereview.chromium.org/616133002/diff/180001/content/browser/frame_host/render_frame_host_manager.cc File content/browser/frame_host/render_frame_host_manager.cc (right): https://codereview.chromium.org/616133002/diff/180001/content/browser/frame_host/render_frame_host_manager.cc#newcode119 content/browser/frame_host/render_frame_host_manager.cc:119: render_view_host()->GetMainFrame())->GetView(); In the browser_test TaskManagerOOPIFBrowserTest.KillSubframe/1, we crash here because ...
6 years ago (2014-12-15 19:53:07 UTC) #12
kenrb
Charlie, Nasko: PTAL? Only a few updates since last time.
6 years ago (2014-12-17 22:32:23 UTC) #13
nasko
It is shaping nicely! I have a few comments, mostly minor. https://codereview.chromium.org/616133002/diff/200001/content/browser/frame_host/render_frame_host_impl.cc File content/browser/frame_host/render_frame_host_impl.cc (right): ...
6 years ago (2014-12-17 22:51:31 UTC) #14
Charlie Reis
Nice. And you mentioned that you're working on a test, right? I'm excited to see ...
6 years ago (2014-12-18 18:04:14 UTC) #15
kenrb
Yes, working on tests, and also trying to get the pre-requisite Blink CL in. GetRenderWidgetHost() ...
5 years, 11 months ago (2015-01-05 21:15:31 UTC) #16
Charlie Reis
Just a few followup comments, but I think this is getting close. I'm excited that ...
5 years, 11 months ago (2015-01-06 00:04:57 UTC) #17
kenrb
https://codereview.chromium.org/616133002/diff/200001/content/browser/frame_host/render_frame_host_impl.h File content/browser/frame_host/render_frame_host_impl.h (right): https://codereview.chromium.org/616133002/diff/200001/content/browser/frame_host/render_frame_host_impl.h#newcode203 content/browser/frame_host/render_frame_host_impl.h:203: // or else it returns a pointer to the ...
5 years, 11 months ago (2015-01-06 17:39:04 UTC) #18
Charlie Reis
A few more thoughts while you're working on the test. It's looking good, though! https://codereview.chromium.org/616133002/diff/260001/content/browser/frame_host/render_frame_host_impl.cc ...
5 years, 11 months ago (2015-01-07 23:58:42 UTC) #19
kenrb
I updated an existing test to make sure RenderWidgetHosts are correct. After looking at it, ...
5 years, 11 months ago (2015-01-14 18:13:57 UTC) #20
nasko
Just a few comments, overall nothing major. Also, the CL description can be updated, since ...
5 years, 11 months ago (2015-01-14 20:08:05 UTC) #21
dcheng
https://codereview.chromium.org/616133002/diff/280001/content/browser/frame_host/render_frame_host_factory.cc File content/browser/frame_host/render_frame_host_factory.cc (right): https://codereview.chromium.org/616133002/diff/280001/content/browser/frame_host/render_frame_host_factory.cc#newcode28 content/browser/frame_host/render_frame_host_factory.cc:28: frame_tree_node, routing_id, flags).Pass(); Drive-by: Pass() should not be needed ...
5 years, 11 months ago (2015-01-14 20:49:02 UTC) #22
Charlie Reis
https://codereview.chromium.org/616133002/diff/260001/content/browser/frame_host/render_frame_host_impl.cc File content/browser/frame_host/render_frame_host_impl.cc (right): https://codereview.chromium.org/616133002/diff/260001/content/browser/frame_host/render_frame_host_impl.cc#newcode164 content/browser/frame_host/render_frame_host_impl.cc:164: render_widget_host_->InitForFrame(); On 2015/01/14 18:13:56, kenrb wrote: > On 2015/01/07 ...
5 years, 11 months ago (2015-01-14 20:56:59 UTC) #23
kenrb
https://codereview.chromium.org/616133002/diff/260001/content/browser/frame_host/render_frame_host_impl.cc File content/browser/frame_host/render_frame_host_impl.cc (right): https://codereview.chromium.org/616133002/diff/260001/content/browser/frame_host/render_frame_host_impl.cc#newcode164 content/browser/frame_host/render_frame_host_impl.cc:164: render_widget_host_->InitForFrame(); On 2015/01/14 20:56:58, Charlie Reis wrote: > On ...
5 years, 11 months ago (2015-01-15 22:41:46 UTC) #24
Charlie Reis
Thanks! LGTM with nits, assuming the one question I have about renderer_initialized_ gets answered. Let's ...
5 years, 11 months ago (2015-01-15 23:06:27 UTC) #25
nasko
The two comments in render_widget.cc weren't addressed. Otherwise it looks good once the compile error ...
5 years, 11 months ago (2015-01-15 23:11:15 UTC) #26
kenrb
Nasko: sorry for missing those earlier comments. I think everything should be addressed now. :) ...
5 years, 11 months ago (2015-01-16 17:44:00 UTC) #27
nasko
LGTM!
5 years, 11 months ago (2015-01-16 17:58:41 UTC) #28
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/616133002/340001
5 years, 11 months ago (2015-01-21 15:42:51 UTC) #30
commit-bot: I haz the power
Try jobs failed on following builders: android_aosp on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/android_aosp/builds/50439) android_arm64_dbg_recipe on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/android_arm64_dbg_recipe/builds/39045) android_chromium_gn_compile_rel ...
5 years, 11 months ago (2015-01-21 15:46:13 UTC) #32
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/616133002/360001
5 years, 11 months ago (2015-01-21 17:25:42 UTC) #34
commit-bot: I haz the power
Try jobs failed on following builders: android_dbg_tests_recipe on tryserver.chromium.linux (http://build.chromium.org/p/tryserver.chromium.linux/builders/android_dbg_tests_recipe/builds/47146) Try jobs failed on following ...
5 years, 11 months ago (2015-01-21 17:40:34 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/616133002/380001
5 years, 11 months ago (2015-01-21 18:40:39 UTC) #38
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/616133002/380001
5 years, 11 months ago (2015-01-21 19:40:15 UTC) #41
commit-bot: I haz the power
Committed patchset #20 (id:380001)
5 years, 11 months ago (2015-01-21 20:52:48 UTC) #42
commit-bot: I haz the power
Patchset 20 (id:??) landed as https://crrev.com/2dfb76d84f4ebde602c1c3cde700dcf71b4d1bd6 Cr-Commit-Position: refs/heads/master@{#312451}
5 years, 11 months ago (2015-01-21 20:54:24 UTC) #43
cmumford
A revert of this CL (patchset #20 id:380001) has been created in https://codereview.chromium.org/851333005/ by cmumford@chromium.org. ...
5 years, 11 months ago (2015-01-21 22:03:35 UTC) #44
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/616133002/400001
5 years, 11 months ago (2015-01-22 16:46:50 UTC) #46
commit-bot: I haz the power
Try jobs failed on following builders: linux_gpu on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/linux_gpu/builds/116629) linux_gpu_triggered_tests on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/linux_gpu_triggered_tests/builds/102429) Try ...
5 years, 11 months ago (2015-01-22 18:36:52 UTC) #48
dmazzoni
Is it possible this caused http://crbug.com/450923 ?
5 years, 11 months ago (2015-01-22 19:10:46 UTC) #50
kenrb
On 2015/01/22 19:10:46, dmazzoni wrote: > Is it possible this caused http://crbug.com/450923 ? It is ...
5 years, 11 months ago (2015-01-22 19:18:51 UTC) #51
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/616133002/400001
5 years, 11 months ago (2015-01-22 20:44:27 UTC) #53
commit-bot: I haz the power
Try jobs failed on following builders: linux_gpu on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/linux_gpu/builds/116629) linux_gpu_triggered_tests on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/linux_gpu_triggered_tests/builds/102429)
5 years, 11 months ago (2015-01-22 20:45:21 UTC) #55
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/616133002/400001
5 years, 11 months ago (2015-01-22 21:46:09 UTC) #57
commit-bot: I haz the power
Committed patchset #21 (id:400001)
5 years, 11 months ago (2015-01-22 23:45:30 UTC) #58
commit-bot: I haz the power
Patchset 21 (id:??) landed as https://crrev.com/a719983b5525a477724350ee9eba20e574d0eb3b Cr-Commit-Position: refs/heads/master@{#312702}
5 years, 11 months ago (2015-01-22 23:46:43 UTC) #59
Peter Kasting
A revert of this CL (patchset #21 id:400001) has been created in https://codereview.chromium.org/867843002/ by pkasting@chromium.org. ...
5 years, 11 months ago (2015-01-23 00:26:47 UTC) #60
mlamouri (slow - plz ping)
5 years, 11 months ago (2015-01-23 12:16:30 UTC) #62
Message was sent while issue was closed.
https://codereview.chromium.org/616133002/diff/400001/content/browser/frame_h...
File content/browser/frame_host/render_frame_host_impl.cc (right):

https://codereview.chromium.org/616133002/diff/400001/content/browser/frame_h...
content/browser/frame_host/render_frame_host_impl.cc:783: return nullptr;
Why is that not:
  return GetParent()->GetRenderWidgetHost()
or a non-recursive equivalent.

It seems that same process frames can no longer access the RWHI which breaks two
of my CLs:
https://codereview.chromium.org/860393004
https://codereview.chromium.org/871443004

Powered by Google App Engine
This is Rietveld 408576698