DescriptionOOPIF: 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 #
Messages
Total messages: 23 (10 generated)
|