|
Make window.open() IPCs be frame-based.
- Two IPCs, CreateNewWindow and ShowCreatedWindow, are made to be routed via
the opener frame. Previously they were routed via the opener view.
- CreateNewWindow (which is mojofied) stays put but its parameters change
- ViewHostMsg_ShowView becomes FrameHostMsg_ShowCreatedWindow
- The corresponding delegate methods move from RenderViewHostDelegate to
RenderFrameHostDelegate, though the implementation stays in
WebContentsImpl, which implements both interfaces.
- Remove the RenderView opener_id parameter from the mojo CreateNewWindow
params, it can be inferred from the RenderFrame id. This fixes a possible
bad situation where an unrelated RV/RF route id pair could be supplied.
- The pending WebContents list is made to be indexed by the main frame
widget; this turns out to be cleaner than making it frame- based, since
show() is an operation on the created RenderWidget.
- The signature of ContentBrowserClient::CanCreateWindow changes to be
frame-based, which necessitates retooling the android
SingleTabModeTabHelper to be frame-based also.
- The ViewMsg_Close message, which cleans up after UI-thread failure of the
CreateNewWindow operation, is hoisted out to the outermost function where
failure is possible, RenderWidgetHelper::OnCreateNewWindowOnUI. This
addresses some possible RenderView leaks when e.g. window.open() races a
navigation that destroys the opener. These races would have become more
likely now that we're routing via the frame, since child frames can have a
shorter lifetime than their RenderViewHosts.
- The response to ShowCreatedWindow on the opener RenderFrame is a
ViewMsg_Move_ACK on the openee RenderWidget. This IPC moves to
WebContentsImpl::ShowCreatedWindow so that it can be sent via the openee
RenderWidgetHost's IPC::Sender, rather than via the opener RenderFrame.
BUG= 431769, 304341
TBR=alokp@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation
Review-Url: https://codereview.chromium.org/2506183002
Cr-Commit-Position: refs/heads/master@{#441781}
Committed: https://chromium.googlesource.com/chromium/src/+/5ae4d2d504ad44943b99835f1eb7cba724318a97
Total comments: 56
Total comments: 3
Total comments: 1
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+409 lines, -364 lines) |
Patch |
 |
M |
android_webview/browser/aw_content_browser_client.h
|
View
|
1
2
3
4
5
6
7
8
9
10
|
2 chunks |
+3 lines, -4 lines |
0 comments
|
Download
|
 |
M |
android_webview/browser/aw_content_browser_client.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
2 chunks |
+2 lines, -3 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/android/webapps/single_tab_mode_tab_helper.h
|
View
|
1
|
2 chunks |
+2 lines, -7 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/android/webapps/single_tab_mode_tab_helper.cc
|
View
|
1
2
3
4
5
|
2 chunks |
+28 lines, -27 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/chrome_content_browser_client.h
|
View
|
1
2
3
4
5
6
7
8
9
10
|
2 chunks |
+3 lines, -4 lines |
0 comments
|
Download
|
 |
M |
chrome/browser/chrome_content_browser_client.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
6 chunks |
+14 lines, -21 lines |
0 comments
|
Download
|
 |
M |
chromecast/browser/cast_content_browser_client.h
|
View
|
1
2
3
4
5
6
7
8
9
10
|
1 chunk |
+15 lines, -17 lines |
0 comments
|
Download
|
 |
M |
chromecast/browser/cast_content_browser_client.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
2 chunks |
+2 lines, -3 lines |
0 comments
|
Download
|
 |
M |
content/browser/frame_host/interstitial_page_impl.h
|
View
|
1
2
3
4
5
6
7
8
9
10
|
2 chunks |
+12 lines, -12 lines |
0 comments
|
Download
|
 |
M |
content/browser/frame_host/interstitial_page_impl.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
2 chunks |
+6 lines, -6 lines |
0 comments
|
Download
|
 |
M |
content/browser/frame_host/render_frame_host_delegate.h
|
View
|
1
2
3
4
5
6
7
8
9
10
|
3 chunks |
+44 lines, -0 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
|
4 chunks |
+23 lines, -0 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
|
4 chunks |
+37 lines, -0 lines |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/DEPS
|
View
|
1
2
3
4
5
6
7
8
9
10
|
1 chunk |
+4 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
|
2 chunks |
+8 lines, -19 lines |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/render_view_host_delegate.h
|
View
|
1
2
3
4
5
6
7
8
9
10
|
4 chunks |
+0 lines, -41 lines |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/render_view_host_impl.h
|
View
|
1
2
3
4
5
6
7
8
9
10
|
2 chunks |
+0 lines, -13 lines |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/render_view_host_impl.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
3 chunks |
+0 lines, -26 lines |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/render_widget_helper.h
|
View
|
1
|
2 chunks |
+7 lines, -7 lines |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/render_widget_helper.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
4 chunks |
+36 lines, -17 lines |
0 comments
|
Download
|
 |
M |
content/browser/security_exploit_browsertest.cc
|
View
|
1
|
1 chunk |
+5 lines, -4 lines |
0 comments
|
Download
|
 |
M |
content/browser/site_per_process_browsertest.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
5 chunks |
+16 lines, -15 lines |
0 comments
|
Download
|
 |
M |
content/browser/web_contents/web_contents_impl.h
|
View
|
1
2
3
4
5
6
7
8
9
10
|
4 chunks |
+19 lines, -17 lines |
0 comments
|
Download
|
 |
M |
content/browser/web_contents/web_contents_impl.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
9 chunks |
+40 lines, -39 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
|
1 chunk |
+22 lines, -4 lines |
0 comments
|
Download
|
 |
M |
content/common/frame_messages.h
|
View
|
1
2
3
4
5
6
7
8
9
10
|
1 chunk |
+10 lines, -0 lines |
0 comments
|
Download
|
 |
M |
content/common/render_message_filter.mojom
|
View
|
1
2
3
4
5
|
4 chunks |
+7 lines, -7 lines |
0 comments
|
Download
|
 |
M |
content/common/swapped_out_messages.cc
|
View
|
1
2
3
4
5
|
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
|
2 chunks |
+8 lines, -18 lines |
0 comments
|
Download
|
 |
M |
content/public/browser/content_browser_client.h
|
View
|
1
2
3
4
5
6
7
8
9
10
|
2 chunks |
+3 lines, -4 lines |
0 comments
|
Download
|
 |
M |
content/public/browser/content_browser_client.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
2 chunks |
+2 lines, -3 lines |
0 comments
|
Download
|
 |
M |
content/renderer/render_frame_impl.h
|
View
|
1
2
3
4
5
6
7
8
9
10
|
1 chunk |
+6 lines, -0 lines |
0 comments
|
Download
|
 |
M |
content/renderer/render_frame_impl.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
1 chunk |
+18 lines, -0 lines |
0 comments
|
Download
|
 |
M |
content/renderer/render_view_impl.h
|
View
|
1
2
3
4
5
6
7
8
9
10
|
1 chunk |
+0 lines, -5 lines |
0 comments
|
Download
|
 |
M |
content/renderer/render_view_impl.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
5 chunks |
+6 lines, -20 lines |
0 comments
|
Download
|
 |
M |
content/renderer/render_widget.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
Dependent Patchsets:
Total messages: 77 (57 generated)
|