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

Side by Side Diff: chrome/browser/content_settings/local_shared_objects_container.cc

Issue 15140003: Add support for split Public Suffix List distinctions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased again Created 7 years, 7 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/content_settings/local_shared_objects_container.h" 5 #include "chrome/browser/content_settings/local_shared_objects_container.h"
6 6
7 #include "chrome/browser/browsing_data/browsing_data_appcache_helper.h" 7 #include "chrome/browser/browsing_data/browsing_data_appcache_helper.h"
8 #include "chrome/browser/browsing_data/browsing_data_cookie_helper.h" 8 #include "chrome/browser/browsing_data/browsing_data_cookie_helper.h"
9 #include "chrome/browser/browsing_data/browsing_data_database_helper.h" 9 #include "chrome/browser/browsing_data/browsing_data_database_helper.h"
10 #include "chrome/browser/browsing_data/browsing_data_file_system_helper.h" 10 #include "chrome/browser/browsing_data/browsing_data_file_system_helper.h"
11 #include "chrome/browser/browsing_data/browsing_data_indexed_db_helper.h" 11 #include "chrome/browser/browsing_data/browsing_data_indexed_db_helper.h"
12 #include "chrome/browser/browsing_data/browsing_data_local_storage_helper.h" 12 #include "chrome/browser/browsing_data/browsing_data_local_storage_helper.h"
13 #include "chrome/browser/browsing_data/browsing_data_server_bound_cert_helper.h" 13 #include "chrome/browser/browsing_data/browsing_data_server_bound_cert_helper.h"
14 #include "chrome/browser/browsing_data/cookies_tree_model.h" 14 #include "chrome/browser/browsing_data/cookies_tree_model.h"
15 #include "chrome/browser/profiles/profile.h" 15 #include "chrome/browser/profiles/profile.h"
16 #include "content/public/common/url_constants.h" 16 #include "content/public/common/url_constants.h"
17 #include "googleurl/src/gurl.h" 17 #include "googleurl/src/gurl.h"
18 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" 18 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
19 #include "net/cookies/canonical_cookie.h" 19 #include "net/cookies/canonical_cookie.h"
20 20
21 namespace {
22
23 // Helper wrapper for net::registry_controlled_domains::SameDomainOrHost
24 // which always excludes private registries.
25 bool SamePublicDomainOrHost(const GURL& gurl1, const GURL& gurl2) {
26 return net::registry_controlled_domains::SameDomainOrHost(
27 gurl1,
28 gurl2,
29 net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES);
30 }
31
32 }
33
21 LocalSharedObjectsContainer::LocalSharedObjectsContainer(Profile* profile) 34 LocalSharedObjectsContainer::LocalSharedObjectsContainer(Profile* profile)
22 : appcaches_(new CannedBrowsingDataAppCacheHelper(profile)), 35 : appcaches_(new CannedBrowsingDataAppCacheHelper(profile)),
23 cookies_(new CannedBrowsingDataCookieHelper( 36 cookies_(new CannedBrowsingDataCookieHelper(
24 profile->GetRequestContext())), 37 profile->GetRequestContext())),
25 databases_(new CannedBrowsingDataDatabaseHelper(profile)), 38 databases_(new CannedBrowsingDataDatabaseHelper(profile)),
26 file_systems_(new CannedBrowsingDataFileSystemHelper(profile)), 39 file_systems_(new CannedBrowsingDataFileSystemHelper(profile)),
27 indexed_dbs_(new CannedBrowsingDataIndexedDBHelper()), 40 indexed_dbs_(new CannedBrowsingDataIndexedDBHelper()),
28 local_storages_(new CannedBrowsingDataLocalStorageHelper(profile)), 41 local_storages_(new CannedBrowsingDataLocalStorageHelper(profile)),
29 server_bound_certs_(new CannedBrowsingDataServerBoundCertHelper()), 42 server_bound_certs_(new CannedBrowsingDataServerBoundCertHelper()),
30 session_storages_(new CannedBrowsingDataLocalStorageHelper(profile)) { 43 session_storages_(new CannedBrowsingDataLocalStorageHelper(profile)) {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 it != origin_cookies_list_map.end(); 88 it != origin_cookies_list_map.end();
76 ++it) { 89 ++it) {
77 const net::CookieList* cookie_list = it->second; 90 const net::CookieList* cookie_list = it->second;
78 for (net::CookieList::const_iterator cookie = cookie_list->begin(); 91 for (net::CookieList::const_iterator cookie = cookie_list->begin();
79 cookie != cookie_list->end(); 92 cookie != cookie_list->end();
80 ++cookie) { 93 ++cookie) {
81 // Strip leading '.'s. 94 // Strip leading '.'s.
82 std::string cookie_domain = cookie->Domain(); 95 std::string cookie_domain = cookie->Domain();
83 if (cookie_domain[0] == '.') 96 if (cookie_domain[0] == '.')
84 cookie_domain = cookie_domain.substr(1); 97 cookie_domain = cookie_domain.substr(1);
85 // The |domain_url| is only created in order to use the SameDomainOrHost 98 // The |domain_url| is only created in order to use the
86 // method below. It does not matter which scheme is used as the scheme is 99 // SamePublicDomainOrHost method below. It does not matter which scheme is
87 // ignored by the SameDomainOrHost method. 100 // used as the scheme is ignored by the SamePublicDomainOrHost method.
88 GURL domain_url(std::string(chrome::kHttpScheme) + 101 GURL domain_url(std::string(chrome::kHttpScheme) +
89 content::kStandardSchemeSeparator + cookie_domain); 102 content::kStandardSchemeSeparator + cookie_domain);
90 if (net::RegistryControlledDomainService::SameDomainOrHost( 103 if (SamePublicDomainOrHost(origin, domain_url))
91 origin, domain_url)) {
92 ++count; 104 ++count;
93 }
94 } 105 }
95 } 106 }
96 107
97 // Count local storages for the domain of the given |origin|. 108 // Count local storages for the domain of the given |origin|.
98 const std::set<GURL> local_storage_info = 109 const std::set<GURL> local_storage_info =
99 local_storages()->GetLocalStorageInfo(); 110 local_storages()->GetLocalStorageInfo();
100 for (std::set<GURL>::const_iterator it = local_storage_info.begin(); 111 for (std::set<GURL>::const_iterator it = local_storage_info.begin();
101 it != local_storage_info.end(); 112 it != local_storage_info.end();
102 ++it) { 113 ++it) {
103 if (net::RegistryControlledDomainService::SameDomainOrHost( 114 if (SamePublicDomainOrHost(origin, *it))
104 origin, *it)) {
105 ++count; 115 ++count;
106 }
107 } 116 }
108 117
109 // Count session storages for the domain of the given |origin|. 118 // Count session storages for the domain of the given |origin|.
110 const std::set<GURL> urls = session_storages()->GetLocalStorageInfo(); 119 const std::set<GURL> urls = session_storages()->GetLocalStorageInfo();
111 for (std::set<GURL>::const_iterator it = urls.begin(); 120 for (std::set<GURL>::const_iterator it = urls.begin();
112 it != urls.end(); 121 it != urls.end();
113 ++it) { 122 ++it) {
114 if (net::RegistryControlledDomainService::SameDomainOrHost( 123 if (SamePublicDomainOrHost(origin, *it))
115 origin, *it)) {
116 ++count; 124 ++count;
117 }
118 } 125 }
119 126
120 // Count indexed dbs for the domain of the given |origin|. 127 // Count indexed dbs for the domain of the given |origin|.
121 typedef CannedBrowsingDataIndexedDBHelper::PendingIndexedDBInfo IndexedDBInfo; 128 typedef CannedBrowsingDataIndexedDBHelper::PendingIndexedDBInfo IndexedDBInfo;
122 const std::set<IndexedDBInfo>& indexed_db_info = 129 const std::set<IndexedDBInfo>& indexed_db_info =
123 indexed_dbs()->GetIndexedDBInfo(); 130 indexed_dbs()->GetIndexedDBInfo();
124 for (std::set<IndexedDBInfo>::const_iterator it = 131 for (std::set<IndexedDBInfo>::const_iterator it =
125 indexed_db_info.begin(); 132 indexed_db_info.begin();
126 it != indexed_db_info.end(); 133 it != indexed_db_info.end();
127 ++it) { 134 ++it) {
128 if (net::RegistryControlledDomainService::SameDomainOrHost( 135 if (SamePublicDomainOrHost(origin, it->origin))
129 origin, it->origin)) {
130 ++count; 136 ++count;
131 }
132 } 137 }
133 138
134 // Count filesystems for the domain of the given |origin|. 139 // Count filesystems for the domain of the given |origin|.
135 typedef BrowsingDataFileSystemHelper::FileSystemInfo FileSystemInfo; 140 typedef BrowsingDataFileSystemHelper::FileSystemInfo FileSystemInfo;
136 typedef std::list<FileSystemInfo> FileSystemInfoList; 141 typedef std::list<FileSystemInfo> FileSystemInfoList;
137 const FileSystemInfoList& file_system_info = 142 const FileSystemInfoList& file_system_info =
138 file_systems()->GetFileSystemInfo(); 143 file_systems()->GetFileSystemInfo();
139 for (FileSystemInfoList::const_iterator it = file_system_info.begin(); 144 for (FileSystemInfoList::const_iterator it = file_system_info.begin();
140 it != file_system_info.end(); 145 it != file_system_info.end();
141 ++it) { 146 ++it) {
142 if (net::RegistryControlledDomainService::SameDomainOrHost( 147 if (SamePublicDomainOrHost(origin, it->origin))
143 origin, it->origin)) {
144 ++count; 148 ++count;
145 }
146 } 149 }
147 150
148 // Count databases for the domain of the given |origin|. 151 // Count databases for the domain of the given |origin|.
149 typedef CannedBrowsingDataDatabaseHelper::PendingDatabaseInfo DatabaseInfo; 152 typedef CannedBrowsingDataDatabaseHelper::PendingDatabaseInfo DatabaseInfo;
150 const std::set<DatabaseInfo>& database_list = 153 const std::set<DatabaseInfo>& database_list =
151 databases()->GetPendingDatabaseInfo(); 154 databases()->GetPendingDatabaseInfo();
152 for (std::set<DatabaseInfo>::const_iterator it = 155 for (std::set<DatabaseInfo>::const_iterator it =
153 database_list.begin(); 156 database_list.begin();
154 it != database_list.end(); 157 it != database_list.end();
155 ++it) { 158 ++it) {
156 if (net::RegistryControlledDomainService::SameDomainOrHost( 159 if (SamePublicDomainOrHost(origin, it->origin))
157 origin, it->origin)) {
158 ++count; 160 ++count;
159 }
160 } 161 }
161 162
162 // Count the AppCache manifest files for the domain of the given |origin|. 163 // Count the AppCache manifest files for the domain of the given |origin|.
163 typedef BrowsingDataAppCacheHelper::OriginAppCacheInfoMap 164 typedef BrowsingDataAppCacheHelper::OriginAppCacheInfoMap
164 OriginAppCacheInfoMap; 165 OriginAppCacheInfoMap;
165 const OriginAppCacheInfoMap& map = appcaches()->GetOriginAppCacheInfoMap(); 166 const OriginAppCacheInfoMap& map = appcaches()->GetOriginAppCacheInfoMap();
166 for (OriginAppCacheInfoMap::const_iterator it = map.begin(); 167 for (OriginAppCacheInfoMap::const_iterator it = map.begin();
167 it != map.end(); 168 it != map.end();
168 ++it) { 169 ++it) {
169 const appcache::AppCacheInfoVector& info_vector = it->second; 170 const appcache::AppCacheInfoVector& info_vector = it->second;
170 for (appcache::AppCacheInfoVector::const_iterator info = 171 for (appcache::AppCacheInfoVector::const_iterator info =
171 info_vector.begin(); 172 info_vector.begin();
172 info != info_vector.end(); 173 info != info_vector.end();
173 ++info) { 174 ++info) {
174 if (net::RegistryControlledDomainService::SameDomainOrHost( 175 if (SamePublicDomainOrHost(origin, info->manifest_url))
175 origin, info->manifest_url)) {
176 ++count; 176 ++count;
177 }
178 } 177 }
179 } 178 }
180 179
181 return count; 180 return count;
182 } 181 }
183 182
184 scoped_ptr<CookiesTreeModel> 183 scoped_ptr<CookiesTreeModel>
185 LocalSharedObjectsContainer::CreateCookiesTreeModel() const { 184 LocalSharedObjectsContainer::CreateCookiesTreeModel() const {
186 LocalDataContainer* container = new LocalDataContainer( 185 LocalDataContainer* container = new LocalDataContainer(
187 cookies()->Clone(), 186 cookies()->Clone(),
188 databases()->Clone(), 187 databases()->Clone(),
189 local_storages()->Clone(), 188 local_storages()->Clone(),
190 session_storages()->Clone(), 189 session_storages()->Clone(),
191 appcaches()->Clone(), 190 appcaches()->Clone(),
192 indexed_dbs()->Clone(), 191 indexed_dbs()->Clone(),
193 file_systems()->Clone(), 192 file_systems()->Clone(),
194 NULL, 193 NULL,
195 server_bound_certs()->Clone(), 194 server_bound_certs()->Clone(),
196 NULL); 195 NULL);
197 196
198 return make_scoped_ptr(new CookiesTreeModel(container, NULL, true)); 197 return make_scoped_ptr(new CookiesTreeModel(container, NULL, true));
199 } 198 }
OLDNEW
« no previous file with comments | « chrome/browser/browsing_data/cookies_tree_model.cc ('k') | chrome/browser/google/google_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698