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

Issue 1715993002: OOPIF: Fix remote frame navigations from extension pages. (Closed)

Created:
4 years, 10 months ago by alexmos
Modified:
4 years, 10 months ago
Reviewers:
Charlie Reis
CC:
chromium-reviews, extensions-reviews_chromium.org, creis+watch_chromium.org, nasko+codewatch_chromium.org, jam, darin-cc_chromium.org, chromium-apps-reviews_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

OOPIF: Fix remote frame navigations from extension pages. Navigating a remote frame currently ends up in RenderFrameProxyHost::OnOpenURL, which initiates the navigation via RenderFrameHostImpl::OpenURL and then NavigatorImpl::RequestOpenURL. This is problematic in the case where an extension background page navigates a remote frame, since in this case the plumbing will reach WebContentsDelegate::OpenURLFromTab, which will drop the navigation on the floor. This is because the WebContents's delegate in this case will be ExtensionHost which doesn't implement OpenURLFromTab, and the default implementation in WebContentsDelegate::OpenURLFromTab has been removed in https://codereview.chromium.org/1563593002. See issues 562389 and 560510 for some more context. This CL changes navigations via RenderFrameProxies to instead use NavigatorImpl::RequestTransferURL to avoid hitting the path above. BUG=588096 TEST=Added coverage to ExtensionApiTest.ContentScriptExtensionProcess, which should pass with --isolate-extensions. CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation Committed: https://crrev.com/9ab970c98034692afa06d7f4bb1ff813d2ffd3f2 Cr-Commit-Position: refs/heads/master@{#377832}

Patch Set 1 #

Patch Set 2 : #

Total comments: 4

Patch Set 3 : Add a TODO about user_gesture #

Patch Set 4 : Rebase #

Patch Set 5 : Pass v8::Isolate directly (meant for another branch, removed in PS6) #

Patch Set 6 : Undo change meant for another branch #

Patch Set 7 : Rebase #

Patch Set 8 : Update layout test expectations #

Patch Set 9 : Resolve mid-air collision in FlagExpectations/site-per-process #

Unified diffs Side-by-side diffs Delta from patch set Stats (+44 lines, -20 lines) Patch
M chrome/test/data/extensions/api_test/content_scripts/extension_process/background.js View 1 chunk +11 lines, -2 lines 0 comments Download
M content/browser/frame_host/navigator.h View 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/frame_host/navigator_impl.h View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/frame_host/navigator_impl.cc View 1 2 3 4 5 6 7 8 3 chunks +3 lines, -4 lines 0 comments Download
M content/browser/frame_host/render_frame_host_manager.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M content/browser/frame_host/render_frame_proxy_host.cc View 1 2 2 chunks +17 lines, -3 lines 0 comments Download
M third_party/WebKit/LayoutTests/FlagExpectations/site-per-process View 1 2 3 4 5 6 7 8 1 chunk +10 lines, -10 lines 0 comments Download

Messages

Total messages: 23 (10 generated)
alexmos
Charlie, can you please take a look when you get a chance? https://codereview.chromium.org/1715993002/diff/20001/content/browser/frame_host/navigator_impl.cc File content/browser/frame_host/navigator_impl.cc ...
4 years, 10 months ago (2016-02-20 02:42:47 UTC) #3
Charlie Reis
Thanks! LGTM, though it looks like there might be some layout test failures? https://codereview.chromium.org/1715993002/diff/20001/content/browser/frame_host/navigator_impl.cc File ...
4 years, 10 months ago (2016-02-21 05:47:23 UTC) #4
alexmos
Thanks! Digging into those layout test failures actually revealed a couple of interesting separate issues: ...
4 years, 10 months ago (2016-02-23 00:32:11 UTC) #5
Charlie Reis
On 2016/02/23 00:32:11, alexmos wrote: > Thanks! Digging into those layout test failures actually revealed ...
4 years, 10 months ago (2016-02-25 00:27:37 UTC) #6
alexmos
On 2016/02/25 00:27:37, Charlie Reis (slow til Mar 7) wrote: > On 2016/02/23 00:32:11, alexmos ...
4 years, 10 months ago (2016-02-25 23:07:40 UTC) #7
Charlie Reis
Thanks, LGTM.
4 years, 10 months ago (2016-02-25 23:17:32 UTC) #8
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1715993002/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1715993002/140001
4 years, 10 months ago (2016-02-26 00:54:23 UTC) #10
commit-bot: I haz the power
Try jobs failed on following builders: mac_chromium_rel_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/186262)
4 years, 10 months ago (2016-02-26 01:24:08 UTC) #12
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1715993002/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1715993002/140001
4 years, 10 months ago (2016-02-26 01:31:12 UTC) #14
commit-bot: I haz the power
Failed to apply patch for third_party/WebKit/LayoutTests/FlagExpectations/site-per-process: While running git apply --index -3 -p1; error: patch ...
4 years, 10 months ago (2016-02-26 03:37:13 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1715993002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1715993002/160001
4 years, 10 months ago (2016-02-26 04:53:07 UTC) #20
commit-bot: I haz the power
Committed patchset #9 (id:160001)
4 years, 10 months ago (2016-02-26 06:40:58 UTC) #21
commit-bot: I haz the power
4 years, 10 months ago (2016-02-26 06:42:09 UTC) #23
Message was sent while issue was closed.
Patchset 9 (id:??) landed as
https://crrev.com/9ab970c98034692afa06d7f4bb1ff813d2ffd3f2
Cr-Commit-Position: refs/heads/master@{#377832}

Powered by Google App Engine
This is Rietveld 408576698