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

Unified Diff: content/browser/frame_host/navigation_handle_impl.cc

Issue 2650473002: Don't swap processes for chrome:// subframes. (Closed)
Patch Set: Remove old code from transfer path. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | content/browser/frame_host/render_frame_host_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/frame_host/navigation_handle_impl.cc
diff --git a/content/browser/frame_host/navigation_handle_impl.cc b/content/browser/frame_host/navigation_handle_impl.cc
index 30536bd306c76c4da490f9ea142210612c907d0c..5258833bd734acd9bb8176eebcf3bf6f1b57ab40 100644
--- a/content/browser/frame_host/navigation_handle_impl.cc
+++ b/content/browser/frame_host/navigation_handle_impl.cc
@@ -736,34 +736,17 @@ bool NavigationHandleImpl::MaybeTransferAndProceedInternal() {
}
// The content embedder can decide that a transfer to a different process is
- // required for this URL.
- bool should_transfer =
- GetContentClient()->browser()->ShouldSwapProcessesForRedirect(
+ // required for this URL. Start the transfer if needed.
+ if (GetContentClient()->browser()->ShouldSwapProcessesForRedirect(
frame_tree_node_->navigator()->GetController()->GetBrowserContext(),
- original_url_, url_);
-
- RenderFrameHostManager* manager =
- render_frame_host_->frame_tree_node()->render_manager();
-
- // In the site-per-process model, the RenderFrameHostManager may also decide
- // (independently from the content embedder's ShouldSwapProcessesForRedirect
- // above) that a process transfer is needed. Process transfers are skipped for
- // WebUI processes for now, since e.g. chrome://settings has multiple
- // "cross-site" chrome:// frames, and that doesn't yet work cross-process.
- if (SiteIsolationPolicy::AreCrossProcessFramesPossible() &&
- !ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings(
Charlie Reis 2017/01/21 00:46:44 Removing this whole block looks wrong to me. I ex
nasko 2017/01/23 16:51:49 Yes, you are correct. I thought I ran successfully
- render_frame_host_->GetProcess()->GetID())) {
- should_transfer |= manager->IsRendererTransferNeededForNavigation(
- render_frame_host_, url_);
- }
-
- // Start the transfer if needed.
- if (should_transfer) {
+ original_url_, url_)) {
// This may destroy the NavigationHandle if the transfer fails.
base::WeakPtr<NavigationHandleImpl> weak_self = weak_factory_.GetWeakPtr();
- manager->OnCrossSiteResponse(render_frame_host_, request_id_,
- redirect_chain_, sanitized_referrer_,
- transition_, should_replace_current_entry_);
+ render_frame_host_->frame_tree_node()
+ ->render_manager()
+ ->OnCrossSiteResponse(render_frame_host_, request_id_, redirect_chain_,
+ sanitized_referrer_, transition_,
+ should_replace_current_entry_);
if (!weak_self)
return false;
}
« no previous file with comments | « no previous file | content/browser/frame_host/render_frame_host_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698