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

Side by Side Diff: chrome/browser/extensions/extension_special_storage_policy.cc

Issue 314113010: Remove deprecated permissions functions from Extension (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
11 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
12 #include "chrome/browser/content_settings/cookie_settings.h" 12 #include "chrome/browser/content_settings/cookie_settings.h"
13 #include "chrome/common/chrome_switches.h" 13 #include "chrome/common/chrome_switches.h"
14 #include "chrome/common/content_settings.h" 14 #include "chrome/common/content_settings.h"
15 #include "chrome/common/content_settings_types.h" 15 #include "chrome/common/content_settings_types.h"
16 #include "chrome/common/extensions/manifest_handlers/app_isolation_info.h" 16 #include "chrome/common/extensions/manifest_handlers/app_isolation_info.h"
17 #include "chrome/common/url_constants.h" 17 #include "chrome/common/url_constants.h"
18 #include "content/public/browser/browser_thread.h" 18 #include "content/public/browser/browser_thread.h"
19 #include "content/public/common/url_constants.h" 19 #include "content/public/common/url_constants.h"
20 #include "extensions/common/constants.h" 20 #include "extensions/common/constants.h"
21 #include "extensions/common/extension.h" 21 #include "extensions/common/extension.h"
22 #include "extensions/common/extension_set.h" 22 #include "extensions/common/extension_set.h"
23 #include "extensions/common/permissions/permissions_data.h"
23 24
24 using content::BrowserThread; 25 using content::BrowserThread;
25 using extensions::APIPermission; 26 using extensions::APIPermission;
26 using extensions::Extension; 27 using extensions::Extension;
27 using quota::SpecialStoragePolicy; 28 using quota::SpecialStoragePolicy;
28 29
29 ExtensionSpecialStoragePolicy::ExtensionSpecialStoragePolicy( 30 ExtensionSpecialStoragePolicy::ExtensionSpecialStoragePolicy(
30 CookieSettings* cookie_settings) 31 CookieSettings* cookie_settings)
31 : cookie_settings_(cookie_settings) {} 32 : cookie_settings_(cookie_settings) {}
32 33
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 ExtensionSpecialStoragePolicy::ExtensionsProtectingOrigin( 97 ExtensionSpecialStoragePolicy::ExtensionsProtectingOrigin(
97 const GURL& origin) { 98 const GURL& origin) {
98 base::AutoLock locker(lock_); 99 base::AutoLock locker(lock_);
99 return protected_apps_.ExtensionsContaining(origin); 100 return protected_apps_.ExtensionsContaining(origin);
100 } 101 }
101 102
102 void ExtensionSpecialStoragePolicy::GrantRightsForExtension( 103 void ExtensionSpecialStoragePolicy::GrantRightsForExtension(
103 const extensions::Extension* extension) { 104 const extensions::Extension* extension) {
104 DCHECK(extension); 105 DCHECK(extension);
105 if (!(NeedsProtection(extension) || 106 if (!(NeedsProtection(extension) ||
106 extension->HasAPIPermission(APIPermission::kUnlimitedStorage) || 107 extension->permissions_data()->HasAPIPermission(
107 extension->HasAPIPermission(APIPermission::kFileBrowserHandler) || 108 APIPermission::kUnlimitedStorage) ||
109 extension->permissions_data()->HasAPIPermission(
110 APIPermission::kFileBrowserHandler) ||
108 extensions::AppIsolationInfo::HasIsolatedStorage(extension) || 111 extensions::AppIsolationInfo::HasIsolatedStorage(extension) ||
109 extension->is_app())) { 112 extension->is_app())) {
110 return; 113 return;
111 } 114 }
112 115
113 int change_flags = 0; 116 int change_flags = 0;
114 { 117 {
115 base::AutoLock locker(lock_); 118 base::AutoLock locker(lock_);
116 if (NeedsProtection(extension) && protected_apps_.Add(extension)) 119 if (NeedsProtection(extension) && protected_apps_.Add(extension))
117 change_flags |= SpecialStoragePolicy::STORAGE_PROTECTED; 120 change_flags |= SpecialStoragePolicy::STORAGE_PROTECTED;
118 // FIXME: Does GrantRightsForExtension imply |extension| is installed? 121 // FIXME: Does GrantRightsForExtension imply |extension| is installed?
119 if (extension->is_app()) 122 if (extension->is_app())
120 installed_apps_.Add(extension); 123 installed_apps_.Add(extension);
121 124
122 if (extension->HasAPIPermission(APIPermission::kUnlimitedStorage) && 125 if (extension->permissions_data()->HasAPIPermission(
126 APIPermission::kUnlimitedStorage) &&
123 unlimited_extensions_.Add(extension)) 127 unlimited_extensions_.Add(extension))
124 change_flags |= SpecialStoragePolicy::STORAGE_UNLIMITED; 128 change_flags |= SpecialStoragePolicy::STORAGE_UNLIMITED;
125 129
126 if (extension->HasAPIPermission(APIPermission::kFileBrowserHandler)) 130 if (extension->permissions_data()->HasAPIPermission(
131 APIPermission::kFileBrowserHandler))
127 file_handler_extensions_.Add(extension); 132 file_handler_extensions_.Add(extension);
128 133
129 if (extensions::AppIsolationInfo::HasIsolatedStorage(extension)) 134 if (extensions::AppIsolationInfo::HasIsolatedStorage(extension))
130 isolated_extensions_.Add(extension); 135 isolated_extensions_.Add(extension);
131 } 136 }
132 137
133 if (change_flags) { 138 if (change_flags) {
134 NotifyGranted(Extension::GetBaseURLFromExtensionId(extension->id()), 139 NotifyGranted(Extension::GetBaseURLFromExtensionId(extension->id()),
135 change_flags); 140 change_flags);
136 } 141 }
137 } 142 }
138 143
139 void ExtensionSpecialStoragePolicy::RevokeRightsForExtension( 144 void ExtensionSpecialStoragePolicy::RevokeRightsForExtension(
140 const extensions::Extension* extension) { 145 const extensions::Extension* extension) {
141 DCHECK(extension); 146 DCHECK(extension);
142 if (!(NeedsProtection(extension) || 147 if (!(NeedsProtection(extension) ||
143 extension->HasAPIPermission(APIPermission::kUnlimitedStorage) || 148 extension->permissions_data()->HasAPIPermission(
144 extension->HasAPIPermission(APIPermission::kFileBrowserHandler) || 149 APIPermission::kUnlimitedStorage) ||
150 extension->permissions_data()->HasAPIPermission(
151 APIPermission::kFileBrowserHandler) ||
145 extensions::AppIsolationInfo::HasIsolatedStorage(extension) || 152 extensions::AppIsolationInfo::HasIsolatedStorage(extension) ||
146 extension->is_app())) { 153 extension->is_app())) {
147 return; 154 return;
148 } 155 }
149 int change_flags = 0; 156 int change_flags = 0;
150 { 157 {
151 base::AutoLock locker(lock_); 158 base::AutoLock locker(lock_);
152 if (NeedsProtection(extension) && protected_apps_.Remove(extension)) 159 if (NeedsProtection(extension) && protected_apps_.Remove(extension))
153 change_flags |= SpecialStoragePolicy::STORAGE_PROTECTED; 160 change_flags |= SpecialStoragePolicy::STORAGE_PROTECTED;
154 161
155 if (extension->is_app()) 162 if (extension->is_app())
156 installed_apps_.Remove(extension); 163 installed_apps_.Remove(extension);
157 164
158 if (extension->HasAPIPermission(APIPermission::kUnlimitedStorage) && 165 if (extension->permissions_data()->HasAPIPermission(
166 APIPermission::kUnlimitedStorage) &&
159 unlimited_extensions_.Remove(extension)) 167 unlimited_extensions_.Remove(extension))
160 change_flags |= SpecialStoragePolicy::STORAGE_UNLIMITED; 168 change_flags |= SpecialStoragePolicy::STORAGE_UNLIMITED;
161 169
162 if (extension->HasAPIPermission(APIPermission::kFileBrowserHandler)) 170 if (extension->permissions_data()->HasAPIPermission(
171 APIPermission::kFileBrowserHandler))
163 file_handler_extensions_.Remove(extension); 172 file_handler_extensions_.Remove(extension);
164 173
165 if (extensions::AppIsolationInfo::HasIsolatedStorage(extension)) 174 if (extensions::AppIsolationInfo::HasIsolatedStorage(extension))
166 isolated_extensions_.Remove(extension); 175 isolated_extensions_.Remove(extension);
167 } 176 }
168 177
169 if (change_flags) { 178 if (change_flags) {
170 NotifyRevoked(Extension::GetBaseURLFromExtensionId(extension->id()), 179 NotifyRevoked(Extension::GetBaseURLFromExtensionId(extension->id()),
171 change_flags); 180 change_flags);
172 } 181 }
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 281
273 void ExtensionSpecialStoragePolicy::SpecialCollection::Clear() { 282 void ExtensionSpecialStoragePolicy::SpecialCollection::Clear() {
274 ClearCache(); 283 ClearCache();
275 extensions_.Clear(); 284 extensions_.Clear();
276 } 285 }
277 286
278 void ExtensionSpecialStoragePolicy::SpecialCollection::ClearCache() { 287 void ExtensionSpecialStoragePolicy::SpecialCollection::ClearCache() {
279 STLDeleteValues(&cached_results_); 288 STLDeleteValues(&cached_results_);
280 cached_results_.clear(); 289 cached_results_.clear();
281 } 290 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_service_unittest.cc ('k') | chrome/browser/extensions/extension_storage_monitor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698