Index: chrome/browser/chrome_content_browser_client.cc |
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc |
index e3fb74583388c20305aa42c789b44905fffa4ff9..fa6961f9af154b276db4684987566bebc1aa7e3c 100644 |
--- a/chrome/browser/chrome_content_browser_client.cc |
+++ b/chrome/browser/chrome_content_browser_client.cc |
@@ -491,6 +491,9 @@ std::string ChromeContentBrowserClient::GetStoragePartitionIdForChildProcess( |
std::string ChromeContentBrowserClient::GetStoragePartitionIdForSite( |
content::BrowserContext* browser_context, |
const GURL& site) { |
+ if (site.SchemeIs(chrome::kGuestScheme)) |
+ return "guest-" + site.host(); |
+ |
const Extension* extension = NULL; |
Profile* profile = Profile::FromBrowserContext(browser_context); |
ExtensionService* extension_service = |
@@ -1603,10 +1606,14 @@ void ChromeContentBrowserClient::OverrideWebkitPrefs( |
chrome::ViewType view_type = chrome::GetViewType(web_contents); |
ExtensionService* service = profile->GetExtensionService(); |
if (service) { |
- const Extension* extension = service->extensions()->GetByID( |
- rvh->GetSiteInstance()->GetSiteURL().host()); |
- extension_webkit_preferences::SetPreferences( |
- extension, view_type, web_prefs); |
+ const GURL& url = rvh->GetSiteInstance()->GetSiteURL(); |
+ const Extension* extension = service->extensions()->GetByID(url.host()); |
+ // Guests are not extensions, so they should not be given any extra |
+ // privileges. |
+ if (!url.SchemeIs(chrome::kGuestScheme)) { |
+ extension_webkit_preferences::SetPreferences( |
+ extension, view_type, web_prefs); |
+ } |
} |
if (content::IsForceCompositingModeEnabled()) |