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

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

Issue 8383004: Adding CookieSettings for storing cookie content settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixing the rebase. Created 9 years, 1 month 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) 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/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "chrome/browser/content_settings/host_content_settings_map.h" 9 #include "chrome/browser/content_settings/cookie_settings.h"
10 #include "chrome/common/content_settings.h" 10 #include "chrome/common/content_settings.h"
11 #include "chrome/common/content_settings_types.h" 11 #include "chrome/common/content_settings_types.h"
12 #include "chrome/common/extensions/extension.h" 12 #include "chrome/common/extensions/extension.h"
13 #include "chrome/common/url_constants.h" 13 #include "chrome/common/url_constants.h"
14 #include "content/browser/browser_thread.h" 14 #include "content/browser/browser_thread.h"
15 15
16 ExtensionSpecialStoragePolicy::ExtensionSpecialStoragePolicy( 16 ExtensionSpecialStoragePolicy::ExtensionSpecialStoragePolicy(
17 HostContentSettingsMap* host_content_settings_map) 17 CookieSettings* cookie_settings)
18 : host_content_settings_map_(host_content_settings_map) {} 18 : cookie_settings_(cookie_settings) {}
19 19
20 ExtensionSpecialStoragePolicy::~ExtensionSpecialStoragePolicy() {} 20 ExtensionSpecialStoragePolicy::~ExtensionSpecialStoragePolicy() {}
21 21
22 bool ExtensionSpecialStoragePolicy::IsStorageProtected(const GURL& origin) { 22 bool ExtensionSpecialStoragePolicy::IsStorageProtected(const GURL& origin) {
23 if (origin.SchemeIs(chrome::kExtensionScheme)) 23 if (origin.SchemeIs(chrome::kExtensionScheme))
24 return true; 24 return true;
25 base::AutoLock locker(lock_); 25 base::AutoLock locker(lock_);
26 return protected_apps_.Contains(origin); 26 return protected_apps_.Contains(origin);
27 } 27 }
28 28
29 bool ExtensionSpecialStoragePolicy::IsStorageUnlimited(const GURL& origin) { 29 bool ExtensionSpecialStoragePolicy::IsStorageUnlimited(const GURL& origin) {
30 base::AutoLock locker(lock_); 30 base::AutoLock locker(lock_);
31 return unlimited_extensions_.Contains(origin); 31 return unlimited_extensions_.Contains(origin);
32 } 32 }
33 33
34 bool ExtensionSpecialStoragePolicy::IsStorageSessionOnly(const GURL& origin) { 34 bool ExtensionSpecialStoragePolicy::IsStorageSessionOnly(const GURL& origin) {
35 if (host_content_settings_map_ == NULL) 35 if (cookie_settings_ == NULL)
36 return false; 36 return false;
37 ContentSetting content_setting = host_content_settings_map_-> 37 return cookie_settings_->IsCookieSessionOnly(origin);
38 GetCookieContentSetting(origin, origin, true);
39 return (content_setting == CONTENT_SETTING_SESSION_ONLY);
40 } 38 }
41 39
42 bool ExtensionSpecialStoragePolicy::HasSessionOnlyOrigins() { 40 bool ExtensionSpecialStoragePolicy::HasSessionOnlyOrigins() {
43 if (host_content_settings_map_ == NULL) 41 if (cookie_settings_ == NULL)
44 return false; 42 return false;
45 if (host_content_settings_map_->GetDefaultContentSetting( 43 if (cookie_settings_->GetDefaultCookieSetting(NULL) ==
46 CONTENT_SETTINGS_TYPE_COOKIES, NULL) == CONTENT_SETTING_SESSION_ONLY) 44 CONTENT_SETTING_SESSION_ONLY)
47 return true; 45 return true;
48 ContentSettingsForOneType entries; 46 ContentSettingsForOneType entries;
49 host_content_settings_map_->GetSettingsForOneType( 47 cookie_settings_->GetCookieSettings(&entries);
50 CONTENT_SETTINGS_TYPE_COOKIES, "", &entries);
51 for (size_t i = 0; i < entries.size(); ++i) { 48 for (size_t i = 0; i < entries.size(); ++i) {
52 if (entries[i].setting == CONTENT_SETTING_SESSION_ONLY) 49 if (entries[i].setting == CONTENT_SETTING_SESSION_ONLY)
53 return true; 50 return true;
54 } 51 }
55 return false; 52 return false;
56 } 53 }
57 54
58 bool ExtensionSpecialStoragePolicy::IsFileHandler( 55 bool ExtensionSpecialStoragePolicy::IsFileHandler(
59 const std::string& extension_id) { 56 const std::string& extension_id) {
60 base::AutoLock locker(lock_); 57 base::AutoLock locker(lock_);
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 void ExtensionSpecialStoragePolicy::SpecialCollection::Remove( 164 void ExtensionSpecialStoragePolicy::SpecialCollection::Remove(
168 const Extension* extension) { 165 const Extension* extension) {
169 cached_results_.clear(); 166 cached_results_.clear();
170 extensions_.erase(extension->id()); 167 extensions_.erase(extension->id());
171 } 168 }
172 169
173 void ExtensionSpecialStoragePolicy::SpecialCollection::Clear() { 170 void ExtensionSpecialStoragePolicy::SpecialCollection::Clear() {
174 cached_results_.clear(); 171 cached_results_.clear();
175 extensions_.clear(); 172 extensions_.clear();
176 } 173 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698