Chromium Code Reviews| Index: content/browser/frame_host/render_frame_host_manager.cc |
| diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc |
| index 25940df91acb23e7939d2f95815b8117cc0a5fa7..a8d1b5ac33124565bb065d57d3cb91126766b05b 100644 |
| --- a/content/browser/frame_host/render_frame_host_manager.cc |
| +++ b/content/browser/frame_host/render_frame_host_manager.cc |
| @@ -987,9 +987,9 @@ void RenderFrameHostManager::RenderProcessGone(SiteInstanceImpl* instance) { |
| void RenderFrameHostManager::CancelPendingIfNecessary( |
| RenderFrameHostImpl* render_frame_host) { |
| - if (render_frame_host == pending_render_frame_host_.get()) |
| + if (render_frame_host == pending_render_frame_host_.get()) { |
| CancelPending(); |
| - else if (render_frame_host == speculative_render_frame_host_.get()) { |
| + } else if (render_frame_host == speculative_render_frame_host_.get()) { |
| // TODO(nasko, clamy): This should just clean up the speculative RFH |
| // without canceling the request. See https://crbug.com/636119. |
| if (frame_tree_node_->navigation_request() && |
| @@ -1448,18 +1448,21 @@ RenderFrameHostManager::DetermineSiteInstanceForURL( |
| SiteIsolationPolicy::IsTopDocumentIsolationEnabled() && |
| !SiteInstanceImpl::DoesSiteRequireDedicatedProcess(browser_context, |
| dest_url)) { |
| + RenderFrameHostImpl* main_frame = |
| + frame_tree_node_->frame_tree()->root()->current_frame_host(); |
| if (GetContentClient() |
| ->browser() |
| - ->ShouldFrameShareParentSiteInstanceDespiteTopDocumentIsolation( |
| - dest_url, current_instance)) { |
| + ->ShouldIsolateFrameForTopDocumentIsolation( |
| + frame_tree_node_->current_frame_host(), dest_url, |
| + main_frame->GetSiteInstance())) { |
| + // This is a cross-site subframe of a non-isolated origin, so place this |
| + // frame in the default subframe site instance. |
| + return SiteInstanceDescriptor( |
| + browser_context, dest_url, |
| + SiteInstanceRelation::RELATED_DEFAULT_SUBFRAME); |
| + } else { |
|
Alexei Svitkine (slow)
2017/07/07 16:55:05
Nit: No need for else if there's a return above. J
Łukasz Anforowicz
2017/07/07 20:41:42
Done.
|
| return SiteInstanceDescriptor(render_frame_host_->GetSiteInstance()); |
| } |
| - |
| - // This is a cross-site subframe of a non-isolated origin, so place this |
| - // frame in the default subframe site instance. |
| - return SiteInstanceDescriptor( |
| - browser_context, dest_url, |
| - SiteInstanceRelation::RELATED_DEFAULT_SUBFRAME); |
| } |
| // Keep subframes in the parent's SiteInstance unless a dedicated process is |