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

Issue 2821473002: Service CreateNewWindow on the UI thread with a new mojo interface (Closed)

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

Description

Service CreateNewWindow on the UI thread with a new mojo interface This patch replaces the IO-thread handler for CreateNewWindow with a UI-thread version, using a new mojo interface called FrameHost. The existing FrameHost interface is renamed to FrameHostInterfaceBroker. This is an associated interface, so messages will remain ordered with respect to the traditional IPC pipe. There are a few changes that happened as a result of this approach: 1. ContentBrowserClient::CanCreateWindow is now on the UI thread. This means policy makers need some UI thread context. Since the UI thread is usually better at making policy decisions in general, most components were simplified here. This was the main impetus of this change, because we wanted an easy place to put window opening policy decisions. 2. Since the mojo interface is now frame-based, all window opening logic moved to RenderFrameHostImpl. 3. window.open() is a sync IPC. This change makes the sync wait longer because we create the UI thread objects before replying. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_site_isolation BUG=35980 TBR=slan@chromium.org,sgurun@chromium.org Review-Url: https://codereview.chromium.org/2821473002 Cr-Commit-Position: refs/heads/master@{#466700} Committed: https://chromium.googlesource.com/chromium/src/+/95f01e92e7147bee4e66ce629712fd1f50808936

Patch Set 1 #

Total comments: 3

Patch Set 2 : put CanCreateNewWindow on UI thread (no associated interface yet) #

Patch Set 3 : Add mocks and set up blink trybots #

Patch Set 4 : fix AW and Chromecast #

Patch Set 5 : associated with IPC channel #

Total comments: 16

Patch Set 6 : fix up logic errors #

Total comments: 8

Patch Set 7 : Move over to render frame (but not WebFrameClient yet) + a bunch of cleanups #

Total comments: 2

Patch Set 8 : fix refactoring bug #

Patch Set 9 : rebase on #465379 #

Patch Set 10 : tweaks #

Total comments: 4

Patch Set 11 : devlin review #

Total comments: 14

Patch Set 12 : alexmos review #

Patch Set 13 : rebase on #465869 #

Total comments: 2

Patch Set 14 : dcheng fixes + security exploit browsertest nerfing #

Total comments: 39

Patch Set 15 : re-do tests, dependent PS, etc. #

Patch Set 16 : early return fix #

Patch Set 17 : security exploit test passes a non null callback #

Total comments: 5

Patch Set 18 : s/FrameHostIPC/FrameHost and s/FrameHost/FrameInterfaceBroker/ and fix up tests #

Total comments: 1

Patch Set 19 : s/FrameInterfaceBroker/FrameHostInterfaceBroker and s/frame_interface_broker/frame_host_interface_b… #

Total comments: 11

Patch Set 20 : bauerb review #

Patch Set 21 : MakeShared goodness #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+480 lines, -624 lines) Patch
M android_webview/browser/aw_content_browser_client.h View 1 2 3 4 5 6 2 chunks +1 line, -3 lines 0 comments Download
M android_webview/browser/aw_content_browser_client.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 2 chunks +1 line, -3 lines 0 comments Download
M chrome/browser/android/webapps/single_tab_mode_tab_helper.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +9 lines, -21 lines 0 comments Download
M chrome/browser/android/webapps/single_tab_mode_tab_helper.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +2 lines, -92 lines 0 comments Download
M chrome/browser/chrome_content_browser_client.h View 1 2 3 4 5 6 2 chunks +1 line, -3 lines 0 comments Download
M chrome/browser/chrome_content_browser_client.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 9 chunks +65 lines, -79 lines 0 comments Download
M chrome/browser/ui/blocked_content/blocked_window_params.h View 1 2 3 4 5 6 3 chunks +1 line, -17 lines 0 comments Download
M chrome/browser/ui/blocked_content/blocked_window_params.cc View 1 2 3 4 5 6 1 chunk +2 lines, -6 lines 0 comments Download
M chromecast/browser/cast_content_browser_client.h View 1 2 3 4 5 6 2 chunks +1 line, -3 lines 0 comments Download
M chromecast/browser/cast_content_browser_client.cc View 1 2 3 4 5 6 2 chunks +1 line, -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 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M content/browser/frame_host/interstitial_page_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M content/browser/frame_host/render_frame_host_delegate.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +10 lines, -8 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 8 chunks +21 lines, -16 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 19 20 9 chunks +147 lines, -33 lines 0 comments Download
M content/browser/renderer_host/DEPS View 1 2 3 4 5 6 1 chunk +0 lines, -4 lines 0 comments Download
M content/browser/renderer_host/render_message_filter.h View 1 chunk +0 lines, -2 lines 0 comments Download
M content/browser/renderer_host/render_message_filter.cc View 1 2 3 4 1 chunk +0 lines, -34 lines 0 comments Download
M content/browser/renderer_host/render_widget_helper.h View 1 2 3 4 5 6 3 chunks +1 line, -16 lines 0 comments Download
M content/browser/renderer_host/render_widget_helper.cc View 1 2 3 4 5 6 2 chunks +0 lines, -76 lines 0 comments Download
M content/browser/security_exploit_browsertest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 2 chunks +6 lines, -21 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M content/browser/web_contents/web_contents_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 4 chunks +15 lines, -15 lines 0 comments Download
M content/common/associated_interface_provider_impl.cc 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/common/frame.mojom View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 2 chunks +80 lines, -2 lines 0 comments Download
M content/common/render_message_filter.mojom View 1 2 3 4 5 6 1 chunk +0 lines, -75 lines 0 comments Download
M content/public/browser/content_browser_client.h View 1 2 3 4 5 6 2 chunks +2 lines, -4 lines 0 comments Download
M content/public/browser/content_browser_client.cc View 1 2 3 4 5 6 2 chunks +1 line, -3 lines 0 comments Download
M content/public/test/mock_render_thread.cc View 3 4 5 6 1 chunk +0 lines, -16 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 19 20 2 chunks +6 lines, -2 lines 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 19 20 2 chunks +11 lines, -4 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 3 chunks +10 lines, -8 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 5 chunks +20 lines, -16 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 14 15 16 17 18 4 chunks +5 lines, -3 lines 0 comments Download
M content/test/test_render_frame.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 3 chunks +11 lines, -0 lines 0 comments Download
M content/test/test_render_frame.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 3 chunks +42 lines, -1 line 2 comments Download
M content/test/test_web_contents.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M content/test/test_web_contents.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M extensions/browser/info_map.h View 1 1 chunk +0 lines, -7 lines 0 comments Download
M extensions/browser/info_map.cc View 1 1 chunk +0 lines, -22 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 158 (100 generated)
Charlie Harrison
dcheng: Would you PTAL high level at this WIP? I'd like some quick feedback before ...
3 years, 8 months ago (2017-04-13 19:27:58 UTC) #6
dcheng
On 2017/04/13 19:27:58, Charlie Harrison wrote: > dcheng: Would you PTAL high level at this ...
3 years, 8 months ago (2017-04-13 21:00:14 UTC) #7
Charlie Harrison
https://codereview.chromium.org/2821473002/diff/1/content/renderer/render_thread_impl.cc File content/renderer/render_thread_impl.cc (right): https://codereview.chromium.org/2821473002/diff/1/content/renderer/render_thread_impl.cc#newcode2067 content/renderer/render_thread_impl.cc:2067: blink_platform_impl_->GetInterfaceProvider()->GetInterface( On 2017/04/13 21:00:14, dcheng wrote: > On 2017/04/13 ...
3 years, 8 months ago (2017-04-13 21:48:13 UTC) #8
dcheng
On 2017/04/13 21:48:13, Charlie Harrison wrote: > https://codereview.chromium.org/2821473002/diff/1/content/renderer/render_thread_impl.cc > File content/renderer/render_thread_impl.cc (right): > > https://codereview.chromium.org/2821473002/diff/1/content/renderer/render_thread_impl.cc#newcode2067 ...
3 years, 8 months ago (2017-04-14 01:17:30 UTC) #9
Charlie Harrison
On 2017/04/14 01:17:30, dcheng wrote: > On 2017/04/13 21:48:13, Charlie Harrison wrote: > > > ...
3 years, 8 months ago (2017-04-14 03:21:11 UTC) #10
dcheng
On 2017/04/14 03:21:11, Charlie Harrison wrote: > On 2017/04/14 01:17:30, dcheng wrote: > > On ...
3 years, 8 months ago (2017-04-14 03:35:29 UTC) #11
Charlie Harrison
dcheng: trybots seemed happy in PS4 but the latest one uses an associated interface. I'm ...
3 years, 8 months ago (2017-04-14 18:16:54 UTC) #29
Devlin
oooh, fun! :) I'll need to take a closer look at this on Monday. Alex ...
3 years, 8 months ago (2017-04-15 02:07:02 UTC) #34
alexmos
Exciting! Nick has recently refactored a lot of this plumbing as part of making these ...
3 years, 8 months ago (2017-04-17 19:41:08 UTC) #36
ncarter (slow)
https://codereview.chromium.org/2821473002/diff/80001/content/common/render_message_filter.mojom File content/common/render_message_filter.mojom (right): https://codereview.chromium.org/2821473002/diff/80001/content/common/render_message_filter.mojom#newcode96 content/common/render_message_filter.mojom:96: interface RenderMessageFilterUI { Did you consider just routing this ...
3 years, 8 months ago (2017-04-17 19:56:38 UTC) #37
Charlie Harrison
Thanks for the quick review, alexmos. https://codereview.chromium.org/2821473002/diff/80001/chrome/browser/chrome_content_browser_client.cc File chrome/browser/chrome_content_browser_client.cc (right): https://codereview.chromium.org/2821473002/diff/80001/chrome/browser/chrome_content_browser_client.cc#newcode2436 chrome/browser/chrome_content_browser_client.cc:2436: const GURL& opener_top_level_frame_url, ...
3 years, 8 months ago (2017-04-17 20:10:52 UTC) #39
ncarter (slow)
https://codereview.chromium.org/2821473002/diff/80001/chrome/browser/android/webapps/single_tab_mode_tab_helper.cc File chrome/browser/android/webapps/single_tab_mode_tab_helper.cc (right): https://codereview.chromium.org/2821473002/diff/80001/chrome/browser/android/webapps/single_tab_mode_tab_helper.cc#newcode80 chrome/browser/android/webapps/single_tab_mode_tab_helper.cc:80: return itr != g_blocked_ids.Get().end(); On the UI thread, I ...
3 years, 8 months ago (2017-04-17 20:44:26 UTC) #41
dcheng
https://codereview.chromium.org/2821473002/diff/80001/content/common/render_message_filter.mojom File content/common/render_message_filter.mojom (right): https://codereview.chromium.org/2821473002/diff/80001/content/common/render_message_filter.mojom#newcode96 content/common/render_message_filter.mojom:96: interface RenderMessageFilterUI { On 2017/04/17 20:44:26, ncarter wrote: > ...
3 years, 8 months ago (2017-04-17 20:50:41 UTC) #42
ncarter (slow)
https://codereview.chromium.org/2821473002/diff/100001/content/renderer/render_view_impl.cc File content/renderer/render_view_impl.cc (right): https://codereview.chromium.org/2821473002/diff/100001/content/renderer/render_view_impl.cc#newcode1398 content/renderer/render_view_impl.cc:1398: WebView* RenderViewImpl::CreateView(WebLocalFrame* creator, FYI: dcheng and I had discussed ...
3 years, 8 months ago (2017-04-17 20:52:15 UTC) #43
Devlin
A few nits, but nothing overly glaring in the latest patch set https://codereview.chromium.org/2821473002/diff/100001/chrome/browser/chrome_content_browser_client.cc File chrome/browser/chrome_content_browser_client.cc ...
3 years, 8 months ago (2017-04-17 21:45:42 UTC) #46
Charlie Harrison
Thanks everyone, I appreciate the reviews. Current CL routes through the opener and applies some ...
3 years, 8 months ago (2017-04-18 20:38:53 UTC) #50
Charlie Harrison
I again had trouble with naming. This is a FrameHost interface (which already exists). Is ...
3 years, 8 months ago (2017-04-18 20:39:49 UTC) #51
ncarter (slow)
https://codereview.chromium.org/2821473002/diff/120001/content/browser/frame_host/render_frame_host_impl.cc File content/browser/frame_host/render_frame_host_impl.cc (right): https://codereview.chromium.org/2821473002/diff/120001/content/browser/frame_host/render_frame_host_impl.cc#newcode2524 content/browser/frame_host/render_frame_host_impl.cc:2524: if (main_frame_route_id != MSG_ROUTING_NONE && On 2017/04/18 20:38:53, Charlie ...
3 years, 8 months ago (2017-04-18 21:28:18 UTC) #58
Charlie Harrison
Looks like folks are going OOO, so adding nasko@ for IPC OWNERS and for another ...
3 years, 8 months ago (2017-04-19 13:44:13 UTC) #68
Devlin
extensions related lgtm https://codereview.chromium.org/2821473002/diff/180001/chrome/browser/chrome_content_browser_client.cc File chrome/browser/chrome_content_browser_client.cc (right): https://codereview.chromium.org/2821473002/diff/180001/chrome/browser/chrome_content_browser_client.cc#newcode975 chrome/browser/chrome_content_browser_client.cc:975: // Returns true if there is ...
3 years, 8 months ago (2017-04-19 15:20:10 UTC) #69
Charlie Harrison
https://codereview.chromium.org/2821473002/diff/180001/chrome/browser/chrome_content_browser_client.cc File chrome/browser/chrome_content_browser_client.cc (right): https://codereview.chromium.org/2821473002/diff/180001/chrome/browser/chrome_content_browser_client.cc#newcode975 chrome/browser/chrome_content_browser_client.cc:975: // Returns true if there is exists an extension ...
3 years, 8 months ago (2017-04-19 17:04:20 UTC) #72
alexmos
I made another pass through this before heading out on vacation - overall LGTM with ...
3 years, 8 months ago (2017-04-19 22:28:03 UTC) #75
dcheng
https://codereview.chromium.org/2821473002/diff/200001/chrome/browser/android/webapps/single_tab_mode_tab_helper.h File chrome/browser/android/webapps/single_tab_mode_tab_helper.h (right): https://codereview.chromium.org/2821473002/diff/200001/chrome/browser/android/webapps/single_tab_mode_tab_helper.h#newcode20 chrome/browser/android/webapps/single_tab_mode_tab_helper.h:20: bool block_all_new_windows() { return block_all_new_windows_; } Nit: const https://codereview.chromium.org/2821473002/diff/240001/content/browser/frame_host/render_frame_host_impl.cc ...
3 years, 8 months ago (2017-04-20 12:04:13 UTC) #84
Charlie Harrison
Thanks dcheng. Nick, I think your previous change to move these IPCs to be frame-based ...
3 years, 8 months ago (2017-04-20 14:02:24 UTC) #87
nasko
Thanks for doing this! I'm mostly curious why we need a new interface instead of ...
3 years, 8 months ago (2017-04-20 18:58:41 UTC) #90
Charlie Harrison
+rockot Nasko: The way I see it there are two solutions to your concern: 1. ...
3 years, 8 months ago (2017-04-20 19:10:59 UTC) #91
ncarter (slow)
https://codereview.chromium.org/2821473002/diff/260001/chrome/browser/android/webapps/single_tab_mode_tab_helper.h File chrome/browser/android/webapps/single_tab_mode_tab_helper.h (right): https://codereview.chromium.org/2821473002/diff/260001/chrome/browser/android/webapps/single_tab_mode_tab_helper.h#newcode12 chrome/browser/android/webapps/single_tab_mode_tab_helper.h:12: // Registers and unregisters the IDs of renderers in ...
3 years, 8 months ago (2017-04-20 21:30:36 UTC) #92
Charlie Harrison
Tried to address most comments. The current PS still has FrameHostIPC though. https://codereview.chromium.org/2821473002/diff/260001/chrome/browser/android/webapps/single_tab_mode_tab_helper.h File chrome/browser/android/webapps/single_tab_mode_tab_helper.h ...
3 years, 8 months ago (2017-04-21 15:30:08 UTC) #95
Charlie Harrison
Ken, I am promoting you to reviewer of this CL! The two things I want ...
3 years, 8 months ago (2017-04-21 17:49:08 UTC) #105
Ken Rockot(use gerrit already)
Re: FrameHost stuff. I agree that we should avoid using Channel-associated interfaces when not necessary. ...
3 years, 8 months ago (2017-04-21 18:26:58 UTC) #106
Charlie Harrison
Your points make sense to me, thanks! I'll send up a revised change with the ...
3 years, 8 months ago (2017-04-21 18:46:10 UTC) #109
Charlie Harrison
Ok the current PS adds a virtual RenderFrameImpl::GetFrameHost() which is overriden by TestRenderFrame whose job ...
3 years, 8 months ago (2017-04-21 19:49:13 UTC) #112
ncarter (slow)
I'm happy with this; lgtm modulo the open "how to style the mojo magic" question, ...
3 years, 8 months ago (2017-04-21 20:42:13 UTC) #113
Ken Rockot(use gerrit already)
On 2017/04/21 at 20:42:13, nick wrote: > I'm happy with this; lgtm modulo the open ...
3 years, 8 months ago (2017-04-21 20:44:59 UTC) #114
Charlie Harrison
https://codereview.chromium.org/2821473002/diff/320001/content/common/associated_interface_provider_impl.cc File content/common/associated_interface_provider_impl.cc (right): https://codereview.chromium.org/2821473002/diff/320001/content/common/associated_interface_provider_impl.cc#newcode29 content/common/associated_interface_provider_impl.cc:29: void WaitForBinding(const std::string& name) { On 2017/04/21 20:42:13, ncarter ...
3 years, 8 months ago (2017-04-21 20:48:02 UTC) #115
Charlie Harrison
bauerb: PTAL at single_tab_mode_tab_helper and blocked_window_params sgurun: TBR for trivial changes to aw_content_browser_client slan: TBR ...
3 years, 8 months ago (2017-04-21 21:05:19 UTC) #117
sgurun-gerrit only
lgtm
3 years, 8 months ago (2017-04-21 21:11:22 UTC) #119
ncarter (slow)
https://codereview.chromium.org/2821473002/diff/340001/content/common/frame.mojom File content/common/frame.mojom (right): https://codereview.chromium.org/2821473002/diff/340001/content/common/frame.mojom#newcode34 content/common/frame.mojom:34: interface FrameInterfaceBroker { Oooh, I really like this solution. ...
3 years, 8 months ago (2017-04-21 21:45:25 UTC) #122
Ken Rockot(use gerrit already)
FHIB seems reasonable to me. I was really just grasping for a naming scheme anyway ...
3 years, 8 months ago (2017-04-21 21:46:47 UTC) #123
slan
cast lgtm
3 years, 8 months ago (2017-04-21 21:52:36 UTC) #124
Charlie Harrison
Cool, I s/FrameInterfaceBroker/FrameHostInterfaceBroker/
3 years, 8 months ago (2017-04-21 22:41:17 UTC) #127
Bernhard Bauer
LGTM with a suggestion: https://codereview.chromium.org/2821473002/diff/360001/chrome/browser/android/webapps/single_tab_mode_tab_helper.cc File chrome/browser/android/webapps/single_tab_mode_tab_helper.cc (right): https://codereview.chromium.org/2821473002/diff/360001/chrome/browser/android/webapps/single_tab_mode_tab_helper.cc#newcode22 chrome/browser/android/webapps/single_tab_mode_tab_helper.cc:22: void SingleTabModeTabHelper::HandleOpenUrl(const BlockedWindowParams& params) { ...
3 years, 8 months ago (2017-04-24 13:05:30 UTC) #130
dcheng
https://codereview.chromium.org/2821473002/diff/360001/content/browser/frame_host/render_frame_host_impl.cc File content/browser/frame_host/render_frame_host_impl.cc (right): https://codereview.chromium.org/2821473002/diff/360001/content/browser/frame_host/render_frame_host_impl.cc#newcode2450 content/browser/frame_host/render_frame_host_impl.cc:2450: frame_tree_node_->current_frame_host() == this && render_frame_created_ && Out of curiosity, ...
3 years, 8 months ago (2017-04-24 14:00:40 UTC) #133
Charlie Harrison
Thanks! Nasko: WDYT? https://codereview.chromium.org/2821473002/diff/360001/chrome/browser/android/webapps/single_tab_mode_tab_helper.cc File chrome/browser/android/webapps/single_tab_mode_tab_helper.cc (right): https://codereview.chromium.org/2821473002/diff/360001/chrome/browser/android/webapps/single_tab_mode_tab_helper.cc#newcode22 chrome/browser/android/webapps/single_tab_mode_tab_helper.cc:22: void SingleTabModeTabHelper::HandleOpenUrl(const BlockedWindowParams& params) { On ...
3 years, 8 months ago (2017-04-24 14:04:03 UTC) #134
Charlie Harrison
https://codereview.chromium.org/2821473002/diff/360001/content/browser/frame_host/render_frame_host_impl.cc File content/browser/frame_host/render_frame_host_impl.cc (right): https://codereview.chromium.org/2821473002/diff/360001/content/browser/frame_host/render_frame_host_impl.cc#newcode2450 content/browser/frame_host/render_frame_host_impl.cc:2450: frame_tree_node_->current_frame_host() == this && render_frame_created_ && On 2017/04/24 14:00:39, ...
3 years, 8 months ago (2017-04-24 14:26:37 UTC) #136
Bernhard Bauer
https://codereview.chromium.org/2821473002/diff/360001/chrome/browser/android/webapps/single_tab_mode_tab_helper.cc File chrome/browser/android/webapps/single_tab_mode_tab_helper.cc (right): https://codereview.chromium.org/2821473002/diff/360001/chrome/browser/android/webapps/single_tab_mode_tab_helper.cc#newcode22 chrome/browser/android/webapps/single_tab_mode_tab_helper.cc:22: void SingleTabModeTabHelper::HandleOpenUrl(const BlockedWindowParams& params) { On 2017/04/24 14:04:03, Charlie ...
3 years, 8 months ago (2017-04-24 14:31:35 UTC) #138
dcheng
lgtm https://codereview.chromium.org/2821473002/diff/360001/content/browser/frame_host/render_frame_host_impl.cc File content/browser/frame_host/render_frame_host_impl.cc (right): https://codereview.chromium.org/2821473002/diff/360001/content/browser/frame_host/render_frame_host_impl.cc#newcode2450 content/browser/frame_host/render_frame_host_impl.cc:2450: frame_tree_node_->current_frame_host() == this && render_frame_created_ && On 2017/04/24 ...
3 years, 8 months ago (2017-04-24 14:43:44 UTC) #139
Charlie Harrison
Thanks Daniel! Nasko I know you have opinions about this CL so I'll still wait ...
3 years, 8 months ago (2017-04-24 14:49:07 UTC) #140
nasko
Thanks a bunch for doing this conversion! LGTM
3 years, 8 months ago (2017-04-24 18:32:54 UTC) #143
Charlie Harrison
Thank you everyone for the help with this CL, especially since it touches code I ...
3 years, 8 months ago (2017-04-24 18:37:42 UTC) #144
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/2821473002/400001
3 years, 8 months ago (2017-04-24 18:44:13 UTC) #149
commit-bot: I haz the power
Committed patchset #21 (id:400001) as https://chromium.googlesource.com/chromium/src/+/95f01e92e7147bee4e66ce629712fd1f50808936
3 years, 8 months ago (2017-04-24 18:53:01 UTC) #152
lijeffrey
On 2017/04/24 18:53:01, commit-bot: I haz the power wrote: > Committed patchset #21 (id:400001) as ...
3 years, 8 months ago (2017-04-25 09:21:46 UTC) #153
Charlie Harrison
On 2017/04/25 09:21:46, lijeffrey wrote: > On 2017/04/24 18:53:01, commit-bot: I haz the power wrote: ...
3 years, 8 months ago (2017-04-25 12:35:11 UTC) #154
Ken Rockot(use gerrit already)
https://codereview.chromium.org/2821473002/diff/400001/content/test/test_render_frame.cc File content/test/test_render_frame.cc (right): https://codereview.chromium.org/2821473002/diff/400001/content/test/test_render_frame.cc#newcode129 content/test/test_render_frame.cc:129: ptr.FlushForTesting(); Can you please remind me exactly why this ...
3 years, 6 months ago (2017-05-31 23:58:02 UTC) #155
Charlie Harrison
https://codereview.chromium.org/2821473002/diff/400001/content/test/test_render_frame.cc File content/test/test_render_frame.cc (right): https://codereview.chromium.org/2821473002/diff/400001/content/test/test_render_frame.cc#newcode129 content/test/test_render_frame.cc:129: ptr.FlushForTesting(); On 2017/05/31 23:58:02, Ken Rockot(use gerrit already) wrote: ...
3 years, 6 months ago (2017-06-01 01:35:12 UTC) #156
Ken Rockot(use gerrit already)
Thanks, that all makes sense. I'm going to make the following changes in a CL ...
3 years, 6 months ago (2017-06-01 05:43:08 UTC) #157
Charlie Harrison
3 years, 6 months ago (2017-06-01 12:03:28 UTC) #158
Message was sent while issue was closed.
On 2017/06/01 05:43:08, Ken Rockot(use gerrit already) wrote:
> Thanks, that all makes sense. I'm going to make the following changes in a
> CL I have which needs this to be fixed:
> 
> - Change the signature of GetFrameHost to return a mojom::FrameHost*
> - Cache a FrameHostAssociatedPtr in RFI, initialized lazily and returned by
> GetFrameHost
> - Have TestRenderFrame return its mock_frame_host_ directly instead of
> using an associated interface + override to get to it
> 
> I see no downside to avoiding the extra complexity of using Mojo when we
> could just return a direct pointer to the mock impl.
SGTM. The downside there is that the GetFrameHost method is still needed when
ideally we could just OverrideBinderForTesting once and use
GetRemoteAssociatedInterfaces()->GetInterface directly. Still, I agree it's
better than what we have today, and I'm fine with your proposal.
> 
> On Wed, May 31, 2017 at 6:35 PM, <mailto:csharrison@chromium.org> wrote:
> 
> >
> > https://codereview.chromium.org/2821473002/diff/400001/conte
> > nt/test/test_render_frame.cc
> > File content/test/test_render_frame.cc (right):
> >
> > https://codereview.chromium.org/2821473002/diff/400001/conte
> > nt/test/test_render_frame.cc#newcode129
> > content/test/test_render_frame.cc:129: ptr.FlushForTesting();
> > On 2017/05/31 23:58:02, Ken Rockot(use gerrit already) wrote:
> > > Can you please remind me exactly why this flush was necessary? i.e.
> > how the sync
> > > CreateNewWindow IPC be sent at a time where it would cause the main
> > thread to
> > > deadlock? And how wasn't this a problem before the IPC was converted
> > to mojom,
> > > given that the ordering and threading behavior should be exactly the
> > same as
> > > before? Any specific tests that were failing?
> > >
> > > I'm asking because this turns out to be quite problematic: we
> > effectively can't
> > > use the FrameHost interface for all kinds of things now, because
> > calling
> > > GetFrameHost() from various points in production code will deadlock
> > browser
> > > tests on this FlushForTesting().
> >
> > Hey Ken, agreed this is not ideal especially if it is making testing
> > harder in general. I've filed crbug.com/728463 to track this with some
> > extra context for how we got here.
> >
> > Thanks for bringing this up
> >
> > https://codereview.chromium.org/2821473002/
> >
> 
> -- 
> You received this message because you are subscribed to the Google Groups
> "Chromium-reviews" group.
> To unsubscribe from this group and stop receiving emails from it, send an
email
> to mailto:chromium-reviews+unsubscribe@chromium.org.

Powered by Google App Engine
This is Rietveld 408576698