Chromium Code Reviews| Index: chrome/browser/extensions/extension_special_storage_policy.cc |
| =================================================================== |
| --- chrome/browser/extensions/extension_special_storage_policy.cc (revision 81576) |
| +++ chrome/browser/extensions/extension_special_storage_policy.cc (working copy) |
| @@ -4,7 +4,9 @@ |
| #include "chrome/browser/extensions/extension_special_storage_policy.h" |
| +#include "base/command_line.h" |
|
michaeln
2011/04/14 21:25:34
still needed?
zel
2011/04/14 21:46:20
Done.
|
| #include "base/logging.h" |
| +#include "chrome/common/chrome_switches.h" |
|
michaeln
2011/04/14 21:25:34
still needed?
zel
2011/04/14 21:46:20
Done.
|
| #include "chrome/common/extensions/extension.h" |
| #include "chrome/common/url_constants.h" |
| @@ -24,10 +26,10 @@ |
| return unlimited_extensions_.Contains(origin); |
| } |
| -bool ExtensionSpecialStoragePolicy::IsLocalFileSystemAccessAllowed( |
| - const GURL& origin) { |
| +bool ExtensionSpecialStoragePolicy::IsFileHanlder( |
| + const std::string& extension_id) { |
| base::AutoLock locker(lock_); |
| - return local_filesystem_extensions_.Contains(origin); |
| + return file_handler_extensions_.ContainsExtension(extension_id); |
| } |
| void ExtensionSpecialStoragePolicy::GrantRightsForExtension( |
| @@ -35,7 +37,7 @@ |
| DCHECK(extension); |
| if (!extension->is_hosted_app() && |
| !extension->HasApiPermission(Extension::kUnlimitedStoragePermission) && |
| - !extension->HasApiPermission(Extension::kFileSystemPermission)) { |
| + !extension->HasApiPermission(Extension::kFileBrowserHandlerPermission)) { |
| return; |
| } |
| base::AutoLock locker(lock_); |
| @@ -43,8 +45,8 @@ |
| protected_apps_.Add(extension); |
| if (extension->HasApiPermission(Extension::kUnlimitedStoragePermission)) |
| unlimited_extensions_.Add(extension); |
| - if (extension->HasApiPermission(Extension::kFileSystemPermission)) |
| - local_filesystem_extensions_.Add(extension); |
| + if (extension->HasApiPermission(Extension::kFileBrowserHandlerPermission)) |
| + file_handler_extensions_.Add(extension); |
| } |
| void ExtensionSpecialStoragePolicy::RevokeRightsForExtension( |
| @@ -52,7 +54,7 @@ |
| DCHECK(extension); |
| if (!extension->is_hosted_app() && |
| !extension->HasApiPermission(Extension::kUnlimitedStoragePermission) && |
| - !extension->HasApiPermission(Extension::kFileSystemPermission)) { |
| + !extension->HasApiPermission(Extension::kFileBrowserHandlerPermission)) { |
| return; |
| } |
| base::AutoLock locker(lock_); |
| @@ -60,15 +62,15 @@ |
| protected_apps_.Remove(extension); |
| if (extension->HasApiPermission(Extension::kUnlimitedStoragePermission)) |
| unlimited_extensions_.Remove(extension); |
| - if (extension->HasApiPermission(Extension::kFileSystemPermission)) |
| - local_filesystem_extensions_.Remove(extension); |
| + if (extension->HasApiPermission(Extension::kFileBrowserHandlerPermission)) |
| + file_handler_extensions_.Remove(extension); |
| } |
| void ExtensionSpecialStoragePolicy::RevokeRightsForAllExtensions() { |
| base::AutoLock locker(lock_); |
| protected_apps_.Clear(); |
| unlimited_extensions_.Clear(); |
| - local_filesystem_extensions_.Clear(); |
| + file_handler_extensions_.Clear(); |
| } |
| //----------------------------------------------------------------------------- |
| @@ -81,34 +83,39 @@ |
| bool ExtensionSpecialStoragePolicy::SpecialCollection::Contains( |
| const GURL& origin) { |
| - CachedResults::const_iterator found = cached_resuts_.find(origin); |
| - if (found != cached_resuts_.end()) |
| + CachedResults::const_iterator found = cached_results_.find(origin); |
| + if (found != cached_results_.end()) |
| return found->second; |
| for (Extensions::const_iterator iter = extensions_.begin(); |
| iter != extensions_.end(); ++iter) { |
| if (iter->second->OverlapsWithOrigin(origin)) { |
| - cached_resuts_[origin] = true; |
| + cached_results_[origin] = true; |
| return true; |
| } |
| } |
| - cached_resuts_[origin] = false; |
| + cached_results_[origin] = false; |
| return false; |
| } |
| +bool ExtensionSpecialStoragePolicy::SpecialCollection::ContainsExtension( |
| + const std::string& extension_id) { |
| + return extensions_.find(extension_id) != extensions_.end(); |
| +} |
| + |
| void ExtensionSpecialStoragePolicy::SpecialCollection::Add( |
| const Extension* extension) { |
| - cached_resuts_.clear(); |
| + cached_results_.clear(); |
| extensions_[extension->id()] = extension; |
| } |
| void ExtensionSpecialStoragePolicy::SpecialCollection::Remove( |
| const Extension* extension) { |
| - cached_resuts_.clear(); |
| + cached_results_.clear(); |
| extensions_.erase(extension->id()); |
| } |
| void ExtensionSpecialStoragePolicy::SpecialCollection::Clear() { |
| - cached_resuts_.clear(); |
| + cached_results_.clear(); |
| extensions_.clear(); |
| } |