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

Unified Diff: chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc

Issue 2400523002: Isolating Chrome Web Store app in the transfer (i.e. non-OpenURL) path. (Closed)
Patch Set: Addressed CR feedback from lazyboy@ (removed one more unneeded #include). Created 4 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 | « no previous file | chrome/browser/extensions/process_management_browsertest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc
diff --git a/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc b/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc
index ca0879d192fed96008233ff83eb019cbf965ead5..9f61513cc4d3f95a71c42d71b169184b06dc6ed2 100644
--- a/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc
+++ b/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc
@@ -268,24 +268,30 @@ bool ChromeContentBrowserClientExtensionsPart::ShouldUseProcessPerSite(
bool ChromeContentBrowserClientExtensionsPart::DoesSiteRequireDedicatedProcess(
content::BrowserContext* browser_context,
const GURL& effective_site_url) {
- if (effective_site_url.SchemeIs(extensions::kExtensionScheme)) {
- // --isolate-extensions should isolate extensions, except for a) hosted
- // apps, b) platform apps.
- // a) Isolating hosted apps is a good idea, but ought to be a separate knob.
- // b) Sandbox pages in platform app can load web content in iframes;
- // isolating the app and the iframe leads to StoragePartition mismatch in
- // the two processes.
- // TODO(lazyboy): We should deprecate this behaviour and not let web
- // content load in platform app's process; see http://crbug.com/615585.
- if (IsIsolateExtensionsEnabled()) {
- const Extension* extension =
- ExtensionRegistry::Get(browser_context)
- ->enabled_extensions()
- .GetExtensionOrAppByURL(effective_site_url);
- if (extension && !extension->is_hosted_app() &&
- !extension->is_platform_app()) {
+ if (IsIsolateExtensionsEnabled()) {
+ const Extension* extension =
+ ExtensionRegistry::Get(browser_context)
+ ->enabled_extensions()
+ .GetExtensionOrAppByURL(effective_site_url);
+ if (extension) {
+ // Always isolate Chrome Web Store.
+ if (extension->id() == kWebStoreAppId)
return true;
- }
+
+ // --isolate-extensions should isolate extensions, except for a) hosted
+ // apps, b) platform apps.
+ // a) Isolating hosted apps is a good idea, but ought to be a separate
+ // knob.
+ // b) Sandbox pages in platform app can load web content in iframes;
+ // isolating the app and the iframe leads to StoragePartition mismatch
+ // in the two processes.
+ // TODO(lazyboy): We should deprecate this behaviour and not let web
+ // content load in platform app's process; see http://crbug.com/615585.
+ if (extension->is_hosted_app() || extension->is_platform_app())
+ return false;
+
+ // Isolate all extensions.
+ return true;
}
}
return false;
« no previous file with comments | « no previous file | chrome/browser/extensions/process_management_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698