| OLD | NEW | 
|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "chrome/browser/extensions/extension_special_storage_policy.h" | 5 #include "chrome/browser/extensions/extension_special_storage_policy.h" | 
| 6 | 6 | 
| 7 #include "base/logging.h" | 7 #include "base/logging.h" | 
| 8 #include "chrome/common/extensions/extension.h" | 8 #include "chrome/common/extensions/extension.h" | 
| 9 #include "chrome/common/url_constants.h" | 9 #include "chrome/common/url_constants.h" | 
| 10 | 10 | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 27 bool ExtensionSpecialStoragePolicy::IsFileHandler( | 27 bool ExtensionSpecialStoragePolicy::IsFileHandler( | 
| 28     const std::string& extension_id) { | 28     const std::string& extension_id) { | 
| 29   base::AutoLock locker(lock_); | 29   base::AutoLock locker(lock_); | 
| 30   return file_handler_extensions_.ContainsExtension(extension_id); | 30   return file_handler_extensions_.ContainsExtension(extension_id); | 
| 31 } | 31 } | 
| 32 | 32 | 
| 33 void ExtensionSpecialStoragePolicy::GrantRightsForExtension( | 33 void ExtensionSpecialStoragePolicy::GrantRightsForExtension( | 
| 34     const Extension* extension) { | 34     const Extension* extension) { | 
| 35   DCHECK(extension); | 35   DCHECK(extension); | 
| 36   if (!extension->is_hosted_app() && | 36   if (!extension->is_hosted_app() && | 
| 37       !extension->HasApiPermission(Extension::kUnlimitedStoragePermission) && | 37       !extension->HasAPIPermission( | 
| 38       !extension->HasApiPermission(Extension::kFileBrowserHandlerPermission)) { | 38           ExtensionAPIPermission::kUnlimitedStorage) && | 
|  | 39       !extension->HasAPIPermission( | 
|  | 40           ExtensionAPIPermission::kFileBrowserHandler)) { | 
| 39     return; | 41     return; | 
| 40   } | 42   } | 
| 41   base::AutoLock locker(lock_); | 43   base::AutoLock locker(lock_); | 
| 42   if (extension->is_hosted_app()) | 44   if (extension->is_hosted_app()) | 
| 43     protected_apps_.Add(extension); | 45     protected_apps_.Add(extension); | 
| 44   if (extension->HasApiPermission(Extension::kUnlimitedStoragePermission)) | 46   if (extension->HasAPIPermission(ExtensionAPIPermission::kUnlimitedStorage)) | 
| 45     unlimited_extensions_.Add(extension); | 47     unlimited_extensions_.Add(extension); | 
| 46   if (extension->HasApiPermission(Extension::kFileBrowserHandlerPermission)) | 48   if (extension->HasAPIPermission(ExtensionAPIPermission::kFileBrowserHandler)) | 
| 47     file_handler_extensions_.Add(extension); | 49     file_handler_extensions_.Add(extension); | 
| 48 } | 50 } | 
| 49 | 51 | 
| 50 void ExtensionSpecialStoragePolicy::RevokeRightsForExtension( | 52 void ExtensionSpecialStoragePolicy::RevokeRightsForExtension( | 
| 51     const Extension* extension) { | 53     const Extension* extension) { | 
| 52   DCHECK(extension); | 54   DCHECK(extension); | 
| 53   if (!extension->is_hosted_app() && | 55   if (!extension->is_hosted_app() && | 
| 54       !extension->HasApiPermission(Extension::kUnlimitedStoragePermission) && | 56       !extension->HasAPIPermission( | 
| 55       !extension->HasApiPermission(Extension::kFileBrowserHandlerPermission)) { | 57           ExtensionAPIPermission::kUnlimitedStorage) && | 
|  | 58       !extension->HasAPIPermission( | 
|  | 59           ExtensionAPIPermission::kFileBrowserHandler)) { | 
| 56     return; | 60     return; | 
| 57   } | 61   } | 
| 58   base::AutoLock locker(lock_); | 62   base::AutoLock locker(lock_); | 
| 59   if (extension->is_hosted_app()) | 63   if (extension->is_hosted_app()) | 
| 60     protected_apps_.Remove(extension); | 64     protected_apps_.Remove(extension); | 
| 61   if (extension->HasApiPermission(Extension::kUnlimitedStoragePermission)) | 65   if (extension->HasAPIPermission(ExtensionAPIPermission::kUnlimitedStorage)) | 
| 62     unlimited_extensions_.Remove(extension); | 66     unlimited_extensions_.Remove(extension); | 
| 63   if (extension->HasApiPermission(Extension::kFileBrowserHandlerPermission)) | 67   if (extension->HasAPIPermission(ExtensionAPIPermission::kFileBrowserHandler)) | 
| 64     file_handler_extensions_.Remove(extension); | 68     file_handler_extensions_.Remove(extension); | 
| 65 } | 69 } | 
| 66 | 70 | 
| 67 void ExtensionSpecialStoragePolicy::RevokeRightsForAllExtensions() { | 71 void ExtensionSpecialStoragePolicy::RevokeRightsForAllExtensions() { | 
| 68   base::AutoLock locker(lock_); | 72   base::AutoLock locker(lock_); | 
| 69   protected_apps_.Clear(); | 73   protected_apps_.Clear(); | 
| 70   unlimited_extensions_.Clear(); | 74   unlimited_extensions_.Clear(); | 
| 71   file_handler_extensions_.Clear(); | 75   file_handler_extensions_.Clear(); | 
| 72 } | 76 } | 
| 73 | 77 | 
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 110 void ExtensionSpecialStoragePolicy::SpecialCollection::Remove( | 114 void ExtensionSpecialStoragePolicy::SpecialCollection::Remove( | 
| 111     const Extension* extension) { | 115     const Extension* extension) { | 
| 112   cached_results_.clear(); | 116   cached_results_.clear(); | 
| 113   extensions_.erase(extension->id()); | 117   extensions_.erase(extension->id()); | 
| 114 } | 118 } | 
| 115 | 119 | 
| 116 void ExtensionSpecialStoragePolicy::SpecialCollection::Clear() { | 120 void ExtensionSpecialStoragePolicy::SpecialCollection::Clear() { | 
| 117   cached_results_.clear(); | 121   cached_results_.clear(); | 
| 118   extensions_.clear(); | 122   extensions_.clear(); | 
| 119 } | 123 } | 
| OLD | NEW | 
|---|