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

Unified Diff: content/browser/site_instance_impl.cc

Issue 1377933004: Modify --isolate-extensions to not isolate hosted apps. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@no_isolate_apps3
Patch Set: Fixes from charlie Created 5 years, 2 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 | « content/browser/site_instance_impl.h ('k') | content/common/site_isolation_policy.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/site_instance_impl.cc
diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc
index cd5ac038b4b1dee1e26d64fc0b0a1996ec8b9e97..46751c2963e7a5666c1ab9dc82798e2d5085db0f 100644
--- a/content/browser/site_instance_impl.cc
+++ b/content/browser/site_instance_impl.cc
@@ -213,7 +213,8 @@ bool SiteInstanceImpl::HasWrongProcessForURL(const GURL& url) {
bool SiteInstanceImpl::RequiresDedicatedProcess() {
if (!has_site_)
return false;
- return SiteIsolationPolicy::DoesSiteRequireDedicatedProcess(site_);
+ return SiteInstanceImpl::DoesSiteRequireDedicatedProcess(GetBrowserContext(),
+ site_);
}
void SiteInstanceImpl::IncrementRelatedActiveContentsCount() {
@@ -233,12 +234,12 @@ BrowserContext* SiteInstanceImpl::GetBrowserContext() const {
return browsing_instance_->browser_context();
}
-/*static*/
+// static
SiteInstance* SiteInstance::Create(BrowserContext* browser_context) {
return new SiteInstanceImpl(new BrowsingInstance(browser_context));
}
-/*static*/
+// static
SiteInstance* SiteInstance::CreateForURL(BrowserContext* browser_context,
const GURL& url) {
// This will create a new SiteInstance and BrowsingInstance.
@@ -247,7 +248,7 @@ SiteInstance* SiteInstance::CreateForURL(BrowserContext* browser_context,
return instance->GetSiteInstanceForURL(url);
}
-/*static*/
+// static
bool SiteInstance::IsSameWebSite(BrowserContext* browser_context,
const GURL& real_src_url,
const GURL& real_dest_url) {
@@ -287,7 +288,7 @@ bool SiteInstance::IsSameWebSite(BrowserContext* browser_context,
net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES);
}
-/*static*/
+// static
GURL SiteInstance::GetSiteForURL(BrowserContext* browser_context,
const GURL& real_url) {
// TODO(fsamuel, creis): For some reason appID is not recognized as a host.
@@ -332,13 +333,31 @@ GURL SiteInstance::GetSiteForURL(BrowserContext* browser_context,
return GURL();
}
-/*static*/
+// static
GURL SiteInstanceImpl::GetEffectiveURL(BrowserContext* browser_context,
const GURL& url) {
return GetContentClient()->browser()->
GetEffectiveURL(browser_context, url);
}
+// static
+bool SiteInstanceImpl::DoesSiteRequireDedicatedProcess(
+ BrowserContext* browser_context,
+ const GURL& effective_url) {
+ // If --site-per-process is enabled, site isolation is enabled everywhere.
+ if (SiteIsolationPolicy::UseDedicatedProcessesForAllSites())
+ return true;
+
+ // Let the content embedder enable site isolation for specific URLs.
+ if (GetContentClient()->IsSupplementarySiteIsolationModeEnabled() &&
+ GetContentClient()->browser()->DoesSiteRequireDedicatedProcess(
+ browser_context, effective_url)) {
+ return true;
+ }
+
+ return false;
+}
+
void SiteInstanceImpl::RenderProcessHostDestroyed(RenderProcessHost* host) {
DCHECK_EQ(process_, host);
process_->RemoveObserver(this);
@@ -350,7 +369,7 @@ void SiteInstanceImpl::LockToOrigin() {
// protection. If only some sites are isolated, we need additional logic to
// prevent the non-isolated sites from requesting resources for isolated
// sites. https://crbug.com/509125
- if (SiteIsolationPolicy::DoesSiteRequireDedicatedProcess(site_)) {
+ if (RequiresDedicatedProcess()) {
// Guest processes cannot be locked to its site because guests always have
// a fixed SiteInstance. The site of GURLs a guest loads doesn't match that
// SiteInstance. So we skip locking the guest process to the site.
« no previous file with comments | « content/browser/site_instance_impl.h ('k') | content/common/site_isolation_policy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698