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

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

Issue 2592793002: Revert of Change how the quota system computes the total poolsize for temporary storage (Closed)
Patch Set: Created 4 years 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
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 <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 content_capabilities_unlimited_extensions_.GrantsCapabilitiesTo( 107 content_capabilities_unlimited_extensions_.GrantsCapabilitiesTo(
108 origin); 108 origin);
109 } 109 }
110 110
111 bool ExtensionSpecialStoragePolicy::IsStorageSessionOnly(const GURL& origin) { 111 bool ExtensionSpecialStoragePolicy::IsStorageSessionOnly(const GURL& origin) {
112 if (cookie_settings_.get() == NULL) 112 if (cookie_settings_.get() == NULL)
113 return false; 113 return false;
114 return cookie_settings_->IsCookieSessionOnly(origin); 114 return cookie_settings_->IsCookieSessionOnly(origin);
115 } 115 }
116 116
117 bool ExtensionSpecialStoragePolicy::CanQueryDiskSize(const GURL& origin) {
118 base::AutoLock locker(lock_);
119 return installed_apps_.Contains(origin);
120 }
121
117 bool ExtensionSpecialStoragePolicy::HasSessionOnlyOrigins() { 122 bool ExtensionSpecialStoragePolicy::HasSessionOnlyOrigins() {
118 if (cookie_settings_.get() == NULL) 123 if (cookie_settings_.get() == NULL)
119 return false; 124 return false;
120 if (cookie_settings_->GetDefaultCookieSetting(NULL) == 125 if (cookie_settings_->GetDefaultCookieSetting(NULL) ==
121 CONTENT_SETTING_SESSION_ONLY) 126 CONTENT_SETTING_SESSION_ONLY)
122 return true; 127 return true;
123 ContentSettingsForOneType entries; 128 ContentSettingsForOneType entries;
124 cookie_settings_->GetCookieSettings(&entries); 129 cookie_settings_->GetCookieSettings(&entries);
125 for (size_t i = 0; i < entries.size(); ++i) { 130 for (size_t i = 0; i < entries.size(); ++i) {
126 if (entries[i].setting == CONTENT_SETTING_SESSION_ONLY) 131 if (entries[i].setting == CONTENT_SETTING_SESSION_ONLY)
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 170
166 if (NeedsProtection(extension) || 171 if (NeedsProtection(extension) ||
167 extension->permissions_data()->HasAPIPermission( 172 extension->permissions_data()->HasAPIPermission(
168 APIPermission::kUnlimitedStorage) || 173 APIPermission::kUnlimitedStorage) ||
169 extension->permissions_data()->HasAPIPermission( 174 extension->permissions_data()->HasAPIPermission(
170 APIPermission::kFileBrowserHandler) || 175 APIPermission::kFileBrowserHandler) ||
171 extensions::AppIsolationInfo::HasIsolatedStorage(extension) || 176 extensions::AppIsolationInfo::HasIsolatedStorage(extension) ||
172 extension->is_app()) { 177 extension->is_app()) {
173 if (NeedsProtection(extension) && protected_apps_.Add(extension)) 178 if (NeedsProtection(extension) && protected_apps_.Add(extension))
174 change_flags |= SpecialStoragePolicy::STORAGE_PROTECTED; 179 change_flags |= SpecialStoragePolicy::STORAGE_PROTECTED;
180 // FIXME: Does GrantRightsForExtension imply |extension| is installed?
181 if (extension->is_app())
182 installed_apps_.Add(extension);
175 183
176 if (extension->permissions_data()->HasAPIPermission( 184 if (extension->permissions_data()->HasAPIPermission(
177 APIPermission::kUnlimitedStorage) && 185 APIPermission::kUnlimitedStorage) &&
178 unlimited_extensions_.Add(extension)) { 186 unlimited_extensions_.Add(extension)) {
179 if (extension->is_hosted_app()) 187 if (extension->is_hosted_app())
180 LogHostedAppUnlimitedStorageUsage(extension, browser_context); 188 LogHostedAppUnlimitedStorageUsage(extension, browser_context);
181 change_flags |= SpecialStoragePolicy::STORAGE_UNLIMITED; 189 change_flags |= SpecialStoragePolicy::STORAGE_UNLIMITED;
182 } 190 }
183 191
184 if (extension->permissions_data()->HasAPIPermission( 192 if (extension->permissions_data()->HasAPIPermission(
(...skipping 25 matching lines...) Expand all
210 if (NeedsProtection(extension) || 218 if (NeedsProtection(extension) ||
211 extension->permissions_data()->HasAPIPermission( 219 extension->permissions_data()->HasAPIPermission(
212 APIPermission::kUnlimitedStorage) || 220 APIPermission::kUnlimitedStorage) ||
213 extension->permissions_data()->HasAPIPermission( 221 extension->permissions_data()->HasAPIPermission(
214 APIPermission::kFileBrowserHandler) || 222 APIPermission::kFileBrowserHandler) ||
215 extensions::AppIsolationInfo::HasIsolatedStorage(extension) || 223 extensions::AppIsolationInfo::HasIsolatedStorage(extension) ||
216 extension->is_app()) { 224 extension->is_app()) {
217 if (NeedsProtection(extension) && protected_apps_.Remove(extension)) 225 if (NeedsProtection(extension) && protected_apps_.Remove(extension))
218 change_flags |= SpecialStoragePolicy::STORAGE_PROTECTED; 226 change_flags |= SpecialStoragePolicy::STORAGE_PROTECTED;
219 227
228 if (extension->is_app())
229 installed_apps_.Remove(extension);
230
220 if (extension->permissions_data()->HasAPIPermission( 231 if (extension->permissions_data()->HasAPIPermission(
221 APIPermission::kUnlimitedStorage) && 232 APIPermission::kUnlimitedStorage) &&
222 unlimited_extensions_.Remove(extension)) 233 unlimited_extensions_.Remove(extension))
223 change_flags |= SpecialStoragePolicy::STORAGE_UNLIMITED; 234 change_flags |= SpecialStoragePolicy::STORAGE_UNLIMITED;
224 235
225 if (extension->permissions_data()->HasAPIPermission( 236 if (extension->permissions_data()->HasAPIPermission(
226 APIPermission::kFileBrowserHandler)) 237 APIPermission::kFileBrowserHandler))
227 file_handler_extensions_.Remove(extension); 238 file_handler_extensions_.Remove(extension);
228 239
229 if (extensions::AppIsolationInfo::HasIsolatedStorage(extension)) 240 if (extensions::AppIsolationInfo::HasIsolatedStorage(extension))
230 isolated_extensions_.Remove(extension); 241 isolated_extensions_.Remove(extension);
231 } 242 }
232 243
233 if (change_flags) { 244 if (change_flags) {
234 NotifyRevoked(Extension::GetBaseURLFromExtensionId(extension->id()), 245 NotifyRevoked(Extension::GetBaseURLFromExtensionId(extension->id()),
235 change_flags); 246 change_flags);
236 } 247 }
237 } 248 }
238 249
239 void ExtensionSpecialStoragePolicy::RevokeRightsForAllExtensions() { 250 void ExtensionSpecialStoragePolicy::RevokeRightsForAllExtensions() {
240 { 251 {
241 base::AutoLock locker(lock_); 252 base::AutoLock locker(lock_);
242 protected_apps_.Clear(); 253 protected_apps_.Clear();
254 installed_apps_.Clear();
243 unlimited_extensions_.Clear(); 255 unlimited_extensions_.Clear();
244 file_handler_extensions_.Clear(); 256 file_handler_extensions_.Clear();
245 isolated_extensions_.Clear(); 257 isolated_extensions_.Clear();
246 content_capabilities_unlimited_extensions_.Clear(); 258 content_capabilities_unlimited_extensions_.Clear();
247 } 259 }
248 260
249 NotifyCleared(); 261 NotifyCleared();
250 } 262 }
251 263
252 void ExtensionSpecialStoragePolicy::NotifyGranted( 264 void ExtensionSpecialStoragePolicy::NotifyGranted(
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 } 355 }
344 356
345 void ExtensionSpecialStoragePolicy::SpecialCollection::Clear() { 357 void ExtensionSpecialStoragePolicy::SpecialCollection::Clear() {
346 ClearCache(); 358 ClearCache();
347 extensions_.Clear(); 359 extensions_.Clear();
348 } 360 }
349 361
350 void ExtensionSpecialStoragePolicy::SpecialCollection::ClearCache() { 362 void ExtensionSpecialStoragePolicy::SpecialCollection::ClearCache() {
351 cached_results_.clear(); 363 cached_results_.clear();
352 } 364 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698