Index: chrome/browser/extensions/extension_special_storage_policy.cc |
diff --git a/chrome/browser/extensions/extension_special_storage_policy.cc b/chrome/browser/extensions/extension_special_storage_policy.cc |
index 940a53ce0c986776b59da4b762007a83c2ef0b23..bf263a40a161d1ad8b307ec1cd334cc339d0a679 100644 |
--- a/chrome/browser/extensions/extension_special_storage_policy.cc |
+++ b/chrome/browser/extensions/extension_special_storage_policy.cc |
@@ -41,6 +41,10 @@ bool ExtensionSpecialStoragePolicy::IsStorageSessionOnly(const GURL& origin) { |
return cookie_settings_->IsCookieSessionOnly(origin); |
} |
+bool ExtensionSpecialStoragePolicy::IsInstalledApp(const GURL& origin) { |
+ return installed_apps_.Contains(origin); |
+} |
+ |
bool ExtensionSpecialStoragePolicy::HasSessionOnlyOrigins() { |
if (cookie_settings_ == NULL) |
return false; |
@@ -87,6 +91,9 @@ void ExtensionSpecialStoragePolicy::GrantRightsForExtension( |
base::AutoLock locker(lock_); |
if (NeedsProtection(extension)) |
protected_apps_.Add(extension); |
+ // FIXME: Does GrantRightsForExtension imply |extension| is installed? |
+ if (extension->is_app()) |
+ installed_apps_.Add(extension); |
if (extension->HasAPIPermission(APIPermission::kUnlimitedStorage)) |
unlimited_extensions_.Add(extension); |
if (extension->HasAPIPermission( |
@@ -111,6 +118,8 @@ void ExtensionSpecialStoragePolicy::RevokeRightsForExtension( |
base::AutoLock locker(lock_); |
if (NeedsProtection(extension)) |
protected_apps_.Remove(extension); |
+ if (extension->is_app()) |
+ installed_apps_.Remove(extension); |
if (extension->HasAPIPermission(APIPermission::kUnlimitedStorage)) |
unlimited_extensions_.Remove(extension); |
if (extension->HasAPIPermission(APIPermission::kFileBrowserHandler)) |