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

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

Issue 102103005: Move c/c/e/extension_set to top-level extensions/ (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 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 "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 "extensions/common/constants.h" 19 #include "extensions/common/constants.h"
20 #include "extensions/common/extension.h" 20 #include "extensions/common/extension.h"
21 #include "extensions/common/extension_set.h"
21 22
22 using content::BrowserThread; 23 using content::BrowserThread;
23 using extensions::APIPermission; 24 using extensions::APIPermission;
24 using extensions::Extension; 25 using extensions::Extension;
25 using quota::SpecialStoragePolicy; 26 using quota::SpecialStoragePolicy;
26 27
27 ExtensionSpecialStoragePolicy::ExtensionSpecialStoragePolicy( 28 ExtensionSpecialStoragePolicy::ExtensionSpecialStoragePolicy(
28 CookieSettings* cookie_settings) 29 CookieSettings* cookie_settings)
29 : cookie_settings_(cookie_settings) {} 30 : cookie_settings_(cookie_settings) {}
30 31
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 bool ExtensionSpecialStoragePolicy::HasIsolatedStorage(const GURL& origin) { 80 bool ExtensionSpecialStoragePolicy::HasIsolatedStorage(const GURL& origin) {
80 base::AutoLock locker(lock_); 81 base::AutoLock locker(lock_);
81 return isolated_extensions_.Contains(origin); 82 return isolated_extensions_.Contains(origin);
82 } 83 }
83 84
84 bool ExtensionSpecialStoragePolicy::NeedsProtection( 85 bool ExtensionSpecialStoragePolicy::NeedsProtection(
85 const extensions::Extension* extension) { 86 const extensions::Extension* extension) {
86 return extension->is_hosted_app() && !extension->from_bookmark(); 87 return extension->is_hosted_app() && !extension->from_bookmark();
87 } 88 }
88 89
89 const ExtensionSet* ExtensionSpecialStoragePolicy::ExtensionsProtectingOrigin( 90 const extensions::ExtensionSet*
91 ExtensionSpecialStoragePolicy::ExtensionsProtectingOrigin(
90 const GURL& origin) { 92 const GURL& origin) {
91 base::AutoLock locker(lock_); 93 base::AutoLock locker(lock_);
92 return protected_apps_.ExtensionsContaining(origin); 94 return protected_apps_.ExtensionsContaining(origin);
93 } 95 }
94 96
95 void ExtensionSpecialStoragePolicy::GrantRightsForExtension( 97 void ExtensionSpecialStoragePolicy::GrantRightsForExtension(
96 const extensions::Extension* extension) { 98 const extensions::Extension* extension) {
97 DCHECK(extension); 99 DCHECK(extension);
98 if (!(NeedsProtection(extension) || 100 if (!(NeedsProtection(extension) ||
99 extension->HasAPIPermission(APIPermission::kUnlimitedStorage) || 101 extension->HasAPIPermission(APIPermission::kUnlimitedStorage) ||
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 224
223 ExtensionSpecialStoragePolicy::SpecialCollection::~SpecialCollection() { 225 ExtensionSpecialStoragePolicy::SpecialCollection::~SpecialCollection() {
224 STLDeleteValues(&cached_results_); 226 STLDeleteValues(&cached_results_);
225 } 227 }
226 228
227 bool ExtensionSpecialStoragePolicy::SpecialCollection::Contains( 229 bool ExtensionSpecialStoragePolicy::SpecialCollection::Contains(
228 const GURL& origin) { 230 const GURL& origin) {
229 return !ExtensionsContaining(origin)->is_empty(); 231 return !ExtensionsContaining(origin)->is_empty();
230 } 232 }
231 233
232 const ExtensionSet* 234 const extensions::ExtensionSet*
233 ExtensionSpecialStoragePolicy::SpecialCollection::ExtensionsContaining( 235 ExtensionSpecialStoragePolicy::SpecialCollection::ExtensionsContaining(
234 const GURL& origin) { 236 const GURL& origin) {
235 CachedResults::const_iterator found = cached_results_.find(origin); 237 CachedResults::const_iterator found = cached_results_.find(origin);
236 if (found != cached_results_.end()) 238 if (found != cached_results_.end())
237 return found->second; 239 return found->second;
238 240
239 ExtensionSet* result = new ExtensionSet(); 241 extensions::ExtensionSet* result = new extensions::ExtensionSet();
240 for (ExtensionSet::const_iterator iter = extensions_.begin(); 242 for (extensions::ExtensionSet::const_iterator iter = extensions_.begin();
241 iter != extensions_.end(); ++iter) { 243 iter != extensions_.end(); ++iter) {
242 if ((*iter)->OverlapsWithOrigin(origin)) 244 if ((*iter)->OverlapsWithOrigin(origin))
243 result->Insert(*iter); 245 result->Insert(*iter);
244 } 246 }
245 cached_results_[origin] = result; 247 cached_results_[origin] = result;
246 return result; 248 return result;
247 } 249 }
248 250
249 bool ExtensionSpecialStoragePolicy::SpecialCollection::ContainsExtension( 251 bool ExtensionSpecialStoragePolicy::SpecialCollection::ContainsExtension(
250 const std::string& extension_id) { 252 const std::string& extension_id) {
(...skipping 14 matching lines...) Expand all
265 267
266 void ExtensionSpecialStoragePolicy::SpecialCollection::Clear() { 268 void ExtensionSpecialStoragePolicy::SpecialCollection::Clear() {
267 ClearCache(); 269 ClearCache();
268 extensions_.Clear(); 270 extensions_.Clear();
269 } 271 }
270 272
271 void ExtensionSpecialStoragePolicy::SpecialCollection::ClearCache() { 273 void ExtensionSpecialStoragePolicy::SpecialCollection::ClearCache() {
272 STLDeleteValues(&cached_results_); 274 STLDeleteValues(&cached_results_);
273 cached_results_.clear(); 275 cached_results_.clear();
274 } 276 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698