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

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

Issue 2650473002: Don't swap processes for chrome:// subframes. (Closed)
Patch Set: Fix check correctness and add a test. 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
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 1dc50e79c0d7f1b3b0a266f8493823f1367d18e1..f22b83157efcc87a607166da383f4949366dbcf1 100644
--- a/content/browser/frame_host/render_frame_host_manager.cc
+++ b/content/browser/frame_host/render_frame_host_manager.cc
@@ -1320,6 +1320,22 @@ RenderFrameHostManager::DetermineSiteInstanceForURL(
return SiteInstanceDescriptor(current_instance_impl);
}
+ // In the site-per-process model, process changes are skipped for chrome://
+ // subframes for now, since e.g. chrome://settings has multiple "cross-site"
Charlie Reis 2017/01/20 23:32:11 Let's rephrase this a bit to more closely match wh
nasko 2017/01/20 23:51:58 Done.
+ // chrome:// frames, and that doesn't yet work cross-process.
+ if (SiteIsolationPolicy::AreCrossProcessFramesPossible() &&
+ !frame_tree_node_->IsMainFrame()) {
+ GURL parent_site_url = frame_tree_node_->parent()
Charlie Reis 2017/01/20 23:32:11 nit: const ref
nasko 2017/01/20 23:51:57 No longer present.
+ ->current_frame_host()
+ ->GetSiteInstance()
Charlie Reis 2017/01/20 23:32:11 Let's define parent_site_instance as a local varia
nasko 2017/01/20 23:51:57 Done.
+ ->GetSiteURL();
+ if (parent_site_url.SchemeIs(kChromeUIScheme) &&
+ dest_url.SchemeIs(kChromeUIScheme)) {
+ return SiteInstanceDescriptor(
+ frame_tree_node_->parent()->current_frame_host()->GetSiteInstance());
+ }
+ }
+
// If we haven't used our SiteInstance (and thus RVH) yet, then we can use it
// for this entry. We won't commit the SiteInstance to this site until the
// navigation commits (in DidNavigate), unless the navigation entry was

Powered by Google App Engine
This is Rietveld 408576698