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

Side by Side Diff: chrome/browser/cookies_tree_model.cc

Issue 7491085: Revert 95607 - Adding usage entry to chrome://settings/cookies. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 4 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
« no previous file with comments | « chrome/browser/cookies_tree_model.h ('k') | chrome/browser/cookies_tree_model_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/cookies_tree_model.h" 5 #include "chrome/browser/cookies_tree_model.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <functional> 8 #include <functional>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 // model, and tell CookieMonster to delete the cookies. We can keep the 61 // model, and tell CookieMonster to delete the cookies. We can keep the
62 // vector storing the cookies in-tact and not delete from there (that would 62 // vector storing the cookies in-tact and not delete from there (that would
63 // invalidate our pointers), and the fact that it contains semi out-of-date 63 // invalidate our pointers), and the fact that it contains semi out-of-date
64 // data is not problematic as we don't re-build the model based on that. 64 // data is not problematic as we don't re-build the model based on that.
65 GetModel()->cookie_monster_->DeleteCanonicalCookie(*cookie_); 65 GetModel()->cookie_monster_->DeleteCanonicalCookie(*cookie_);
66 } 66 }
67 67
68 CookieTreeNode::DetailedInfo CookieTreeCookieNode::GetDetailedInfo() const { 68 CookieTreeNode::DetailedInfo CookieTreeCookieNode::GetDetailedInfo() const {
69 return DetailedInfo(parent()->parent()->GetTitle(), 69 return DetailedInfo(parent()->parent()->GetTitle(),
70 DetailedInfo::TYPE_COOKIE, 70 DetailedInfo::TYPE_COOKIE,
71 cookie_, NULL, NULL, NULL, NULL, NULL, NULL, NULL); 71 cookie_, NULL, NULL, NULL, NULL, NULL, NULL);
72 } 72 }
73 73
74 namespace { 74 namespace {
75 // comparison functor, for use in CookieTreeRootNode 75 // comparison functor, for use in CookieTreeRootNode
76 class OriginNodeComparator { 76 class OriginNodeComparator {
77 public: 77 public:
78 bool operator() (const CookieTreeNode* lhs, 78 bool operator() (const CookieTreeNode* lhs,
79 const CookieTreeNode* rhs) { 79 const CookieTreeNode* rhs) {
80 // We want to order by registry controlled domain, so we would get 80 // We want to order by registry controlled domain, so we would get
81 // google.com, ad.google.com, www.google.com, 81 // google.com, ad.google.com, www.google.com,
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 141
142 void CookieTreeAppCacheNode::DeleteStoredObjects() { 142 void CookieTreeAppCacheNode::DeleteStoredObjects() {
143 DCHECK(GetModel()->appcache_helper_); 143 DCHECK(GetModel()->appcache_helper_);
144 GetModel()->appcache_helper_->DeleteAppCacheGroup( 144 GetModel()->appcache_helper_->DeleteAppCacheGroup(
145 appcache_info_->manifest_url); 145 appcache_info_->manifest_url);
146 } 146 }
147 147
148 CookieTreeNode::DetailedInfo CookieTreeAppCacheNode::GetDetailedInfo() const { 148 CookieTreeNode::DetailedInfo CookieTreeAppCacheNode::GetDetailedInfo() const {
149 return DetailedInfo(parent()->parent()->GetTitle(), 149 return DetailedInfo(parent()->parent()->GetTitle(),
150 DetailedInfo::TYPE_APPCACHE, 150 DetailedInfo::TYPE_APPCACHE,
151 NULL, NULL, NULL, NULL, appcache_info_, NULL, NULL, NULL); 151 NULL, NULL, NULL, NULL, appcache_info_, NULL, NULL);
152 } 152 }
153 153
154 /////////////////////////////////////////////////////////////////////////////// 154 ///////////////////////////////////////////////////////////////////////////////
155 // CookieTreeDatabaseNode, public: 155 // CookieTreeDatabaseNode, public:
156 156
157 CookieTreeDatabaseNode::CookieTreeDatabaseNode( 157 CookieTreeDatabaseNode::CookieTreeDatabaseNode(
158 BrowsingDataDatabaseHelper::DatabaseInfo* database_info) 158 BrowsingDataDatabaseHelper::DatabaseInfo* database_info)
159 : CookieTreeNode(database_info->database_name.empty() ? 159 : CookieTreeNode(database_info->database_name.empty() ?
160 l10n_util::GetStringUTF16(IDS_COOKIES_WEB_DATABASE_UNNAMED_NAME) : 160 l10n_util::GetStringUTF16(IDS_COOKIES_WEB_DATABASE_UNNAMED_NAME) :
161 UTF8ToUTF16(database_info->database_name)), 161 UTF8ToUTF16(database_info->database_name)),
162 database_info_(database_info) { 162 database_info_(database_info) {
163 } 163 }
164 164
165 CookieTreeDatabaseNode::~CookieTreeDatabaseNode() {} 165 CookieTreeDatabaseNode::~CookieTreeDatabaseNode() {}
166 166
167 void CookieTreeDatabaseNode::DeleteStoredObjects() { 167 void CookieTreeDatabaseNode::DeleteStoredObjects() {
168 GetModel()->database_helper_->DeleteDatabase( 168 GetModel()->database_helper_->DeleteDatabase(
169 database_info_->origin_identifier, database_info_->database_name); 169 database_info_->origin_identifier, database_info_->database_name);
170 } 170 }
171 171
172 CookieTreeNode::DetailedInfo CookieTreeDatabaseNode::GetDetailedInfo() const { 172 CookieTreeNode::DetailedInfo CookieTreeDatabaseNode::GetDetailedInfo() const {
173 return DetailedInfo(parent()->parent()->GetTitle(), 173 return DetailedInfo(parent()->parent()->GetTitle(),
174 DetailedInfo::TYPE_DATABASE, 174 DetailedInfo::TYPE_DATABASE,
175 NULL, database_info_, NULL, NULL, NULL, NULL, NULL, NULL); 175 NULL, database_info_, NULL, NULL, NULL, NULL, NULL);
176 } 176 }
177 177
178 /////////////////////////////////////////////////////////////////////////////// 178 ///////////////////////////////////////////////////////////////////////////////
179 // CookieTreeLocalStorageNode, public: 179 // CookieTreeLocalStorageNode, public:
180 180
181 CookieTreeLocalStorageNode::CookieTreeLocalStorageNode( 181 CookieTreeLocalStorageNode::CookieTreeLocalStorageNode(
182 BrowsingDataLocalStorageHelper::LocalStorageInfo* local_storage_info) 182 BrowsingDataLocalStorageHelper::LocalStorageInfo* local_storage_info)
183 : CookieTreeNode(UTF8ToUTF16( 183 : CookieTreeNode(UTF8ToUTF16(
184 local_storage_info->origin.empty() ? 184 local_storage_info->origin.empty() ?
185 local_storage_info->database_identifier : 185 local_storage_info->database_identifier :
186 local_storage_info->origin)), 186 local_storage_info->origin)),
187 local_storage_info_(local_storage_info) { 187 local_storage_info_(local_storage_info) {
188 } 188 }
189 189
190 CookieTreeLocalStorageNode::~CookieTreeLocalStorageNode() {} 190 CookieTreeLocalStorageNode::~CookieTreeLocalStorageNode() {}
191 191
192 void CookieTreeLocalStorageNode::DeleteStoredObjects() { 192 void CookieTreeLocalStorageNode::DeleteStoredObjects() {
193 GetModel()->local_storage_helper_->DeleteLocalStorageFile( 193 GetModel()->local_storage_helper_->DeleteLocalStorageFile(
194 local_storage_info_->file_path); 194 local_storage_info_->file_path);
195 } 195 }
196 196
197 CookieTreeNode::DetailedInfo 197 CookieTreeNode::DetailedInfo
198 CookieTreeLocalStorageNode::GetDetailedInfo() const { 198 CookieTreeLocalStorageNode::GetDetailedInfo() const {
199 return DetailedInfo(parent()->parent()->GetTitle(), 199 return DetailedInfo(parent()->parent()->GetTitle(),
200 DetailedInfo::TYPE_LOCAL_STORAGE, 200 DetailedInfo::TYPE_LOCAL_STORAGE,
201 NULL, NULL, local_storage_info_, NULL, NULL, NULL, NULL, 201 NULL, NULL, local_storage_info_, NULL, NULL, NULL, NULL);
202 NULL);
203 } 202 }
204 203
205 /////////////////////////////////////////////////////////////////////////////// 204 ///////////////////////////////////////////////////////////////////////////////
206 // CookieTreeSessionStorageNode, public: 205 // CookieTreeSessionStorageNode, public:
207 206
208 CookieTreeSessionStorageNode::CookieTreeSessionStorageNode( 207 CookieTreeSessionStorageNode::CookieTreeSessionStorageNode(
209 BrowsingDataLocalStorageHelper::LocalStorageInfo* session_storage_info) 208 BrowsingDataLocalStorageHelper::LocalStorageInfo* session_storage_info)
210 : CookieTreeNode(UTF8ToUTF16( 209 : CookieTreeNode(UTF8ToUTF16(
211 session_storage_info->origin.empty() ? 210 session_storage_info->origin.empty() ?
212 session_storage_info->database_identifier : 211 session_storage_info->database_identifier :
213 session_storage_info->origin)), 212 session_storage_info->origin)),
214 session_storage_info_(session_storage_info) { 213 session_storage_info_(session_storage_info) {
215 } 214 }
216 215
217 CookieTreeSessionStorageNode::~CookieTreeSessionStorageNode() {} 216 CookieTreeSessionStorageNode::~CookieTreeSessionStorageNode() {}
218 217
219 CookieTreeNode::DetailedInfo 218 CookieTreeNode::DetailedInfo
220 CookieTreeSessionStorageNode::GetDetailedInfo() const { 219 CookieTreeSessionStorageNode::GetDetailedInfo() const {
221 return DetailedInfo(parent()->parent()->GetTitle(), 220 return DetailedInfo(parent()->parent()->GetTitle(),
222 DetailedInfo::TYPE_SESSION_STORAGE, 221 DetailedInfo::TYPE_SESSION_STORAGE,
223 NULL, NULL, NULL, session_storage_info_, NULL, NULL, 222 NULL, NULL, NULL, session_storage_info_, NULL, NULL,
224 NULL, NULL); 223 NULL);
225 } 224 }
226 225
227 /////////////////////////////////////////////////////////////////////////////// 226 ///////////////////////////////////////////////////////////////////////////////
228 // CookieTreeIndexedDBNode, public: 227 // CookieTreeIndexedDBNode, public:
229 228
230 CookieTreeIndexedDBNode::CookieTreeIndexedDBNode( 229 CookieTreeIndexedDBNode::CookieTreeIndexedDBNode(
231 BrowsingDataIndexedDBHelper::IndexedDBInfo* indexed_db_info) 230 BrowsingDataIndexedDBHelper::IndexedDBInfo* indexed_db_info)
232 : CookieTreeNode(UTF8ToUTF16( 231 : CookieTreeNode(UTF8ToUTF16(
233 indexed_db_info->origin.empty() ? 232 indexed_db_info->origin.empty() ?
234 indexed_db_info->database_identifier : 233 indexed_db_info->database_identifier :
235 indexed_db_info->origin)), 234 indexed_db_info->origin)),
236 indexed_db_info_(indexed_db_info) { 235 indexed_db_info_(indexed_db_info) {
237 } 236 }
238 237
239 CookieTreeIndexedDBNode::~CookieTreeIndexedDBNode() {} 238 CookieTreeIndexedDBNode::~CookieTreeIndexedDBNode() {}
240 239
241 void CookieTreeIndexedDBNode::DeleteStoredObjects() { 240 void CookieTreeIndexedDBNode::DeleteStoredObjects() {
242 GetModel()->indexed_db_helper_->DeleteIndexedDBFile( 241 GetModel()->indexed_db_helper_->DeleteIndexedDBFile(
243 indexed_db_info_->file_path); 242 indexed_db_info_->file_path);
244 } 243 }
245 244
246 CookieTreeNode::DetailedInfo CookieTreeIndexedDBNode::GetDetailedInfo() const { 245 CookieTreeNode::DetailedInfo CookieTreeIndexedDBNode::GetDetailedInfo() const {
247 return DetailedInfo(parent()->parent()->GetTitle(), 246 return DetailedInfo(parent()->parent()->GetTitle(),
248 DetailedInfo::TYPE_INDEXED_DB, 247 DetailedInfo::TYPE_INDEXED_DB,
249 NULL, NULL, NULL, NULL, NULL, indexed_db_info_, NULL, 248 NULL, NULL, NULL, NULL, NULL, indexed_db_info_, NULL);
250 NULL);
251 } 249 }
252 250
253 /////////////////////////////////////////////////////////////////////////////// 251 ///////////////////////////////////////////////////////////////////////////////
254 // CookieTreeFileSystemNode, public: 252 // CookieTreeFileSystemNode, public:
255 253
256 CookieTreeFileSystemNode::CookieTreeFileSystemNode( 254 CookieTreeFileSystemNode::CookieTreeFileSystemNode(
257 BrowsingDataFileSystemHelper::FileSystemInfo* file_system_info) 255 BrowsingDataFileSystemHelper::FileSystemInfo* file_system_info)
258 : CookieTreeNode(UTF8ToUTF16( 256 : CookieTreeNode(UTF8ToUTF16(
259 file_system_info->origin.spec())), 257 file_system_info->origin.spec())),
260 file_system_info_(file_system_info) { 258 file_system_info_(file_system_info) {
261 } 259 }
262 260
263 CookieTreeFileSystemNode::~CookieTreeFileSystemNode() {} 261 CookieTreeFileSystemNode::~CookieTreeFileSystemNode() {}
264 262
265 void CookieTreeFileSystemNode::DeleteStoredObjects() { 263 void CookieTreeFileSystemNode::DeleteStoredObjects() {
266 GetModel()->file_system_helper_->DeleteFileSystemOrigin( 264 GetModel()->file_system_helper_->DeleteFileSystemOrigin(
267 file_system_info_->origin); 265 file_system_info_->origin);
268 } 266 }
269 267
270 CookieTreeNode::DetailedInfo CookieTreeFileSystemNode::GetDetailedInfo() const { 268 CookieTreeNode::DetailedInfo CookieTreeFileSystemNode::GetDetailedInfo() const {
271 return DetailedInfo(parent()->parent()->GetTitle(), 269 return DetailedInfo(parent()->parent()->GetTitle(),
272 DetailedInfo::TYPE_FILE_SYSTEM, 270 DetailedInfo::TYPE_FILE_SYSTEM,
273 NULL, NULL, NULL, NULL, NULL, NULL, file_system_info_, 271 NULL, NULL, NULL, NULL, NULL, NULL, file_system_info_);
274 NULL);
275 }
276
277 ///////////////////////////////////////////////////////////////////////////////
278 // CookieTreeQuotaNode, public:
279
280 CookieTreeQuotaNode::CookieTreeQuotaNode(
281 BrowsingDataQuotaHelper::QuotaInfo* quota_info)
282 : CookieTreeNode(UTF8ToUTF16(quota_info->host)),
283 quota_info_(quota_info) {
284 }
285
286 CookieTreeQuotaNode::~CookieTreeQuotaNode() {}
287
288 void CookieTreeQuotaNode::DeleteStoredObjects() {
289 GetModel()->quota_helper_->DeleteQuotaHost(quota_info_->host);
290 }
291
292 CookieTreeNode::DetailedInfo CookieTreeQuotaNode::GetDetailedInfo() const {
293 return DetailedInfo(parent()->parent()->GetTitle(),
294 DetailedInfo::TYPE_QUOTA,
295 NULL, NULL, NULL, NULL, NULL, NULL, NULL, quota_info_);
296 } 272 }
297 273
298 /////////////////////////////////////////////////////////////////////////////// 274 ///////////////////////////////////////////////////////////////////////////////
299 // CookieTreeRootNode, public: 275 // CookieTreeRootNode, public:
300 276
301 CookieTreeRootNode::CookieTreeRootNode(CookiesTreeModel* model) 277 CookieTreeRootNode::CookieTreeRootNode(CookiesTreeModel* model)
302 : model_(model) { 278 : model_(model) {
303 } 279 }
304 280
305 CookieTreeRootNode::~CookieTreeRootNode() {} 281 CookieTreeRootNode::~CookieTreeRootNode() {}
(...skipping 21 matching lines...) Expand all
327 return retval; 303 return retval;
328 } 304 }
329 305
330 CookiesTreeModel* CookieTreeRootNode::GetModel() const { 306 CookiesTreeModel* CookieTreeRootNode::GetModel() const {
331 return model_; 307 return model_;
332 } 308 }
333 309
334 CookieTreeNode::DetailedInfo CookieTreeRootNode::GetDetailedInfo() const { 310 CookieTreeNode::DetailedInfo CookieTreeRootNode::GetDetailedInfo() const {
335 return DetailedInfo(string16(), 311 return DetailedInfo(string16(),
336 DetailedInfo::TYPE_ROOT, 312 DetailedInfo::TYPE_ROOT,
337 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); 313 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
338 } 314 }
339 315
340 /////////////////////////////////////////////////////////////////////////////// 316 ///////////////////////////////////////////////////////////////////////////////
341 // CookieTreeOriginNode, public: 317 // CookieTreeOriginNode, public:
342 318
343 // static 319 // static
344 std::wstring CookieTreeOriginNode::TitleForUrl( 320 std::wstring CookieTreeOriginNode::TitleForUrl(
345 const GURL& url) { 321 const GURL& url) {
346 return UTF8ToWide(url.SchemeIsFile() ? kFileOriginNodeName : url.host()); 322 return UTF8ToWide(url.SchemeIsFile() ? kFileOriginNodeName : url.host());
347 } 323 }
348 324
349 CookieTreeOriginNode::CookieTreeOriginNode(const GURL& url) 325 CookieTreeOriginNode::CookieTreeOriginNode(const GURL& url)
350 : CookieTreeNode(WideToUTF16Hack(TitleForUrl(url))), 326 : CookieTreeNode(WideToUTF16Hack(TitleForUrl(url))),
351 cookies_child_(NULL), 327 cookies_child_(NULL),
352 databases_child_(NULL), 328 databases_child_(NULL),
353 local_storages_child_(NULL), 329 local_storages_child_(NULL),
354 session_storages_child_(NULL), 330 session_storages_child_(NULL),
355 appcaches_child_(NULL), 331 appcaches_child_(NULL),
356 indexed_dbs_child_(NULL), 332 indexed_dbs_child_(NULL),
357 file_systems_child_(NULL), 333 file_systems_child_(NULL),
358 quota_child_(NULL),
359 url_(url) {} 334 url_(url) {}
360 335
361 CookieTreeOriginNode::~CookieTreeOriginNode() {} 336 CookieTreeOriginNode::~CookieTreeOriginNode() {}
362 337
363 CookieTreeNode::DetailedInfo CookieTreeOriginNode::GetDetailedInfo() const { 338 CookieTreeNode::DetailedInfo CookieTreeOriginNode::GetDetailedInfo() const {
364 return DetailedInfo(GetTitle(), 339 return DetailedInfo(GetTitle(),
365 DetailedInfo::TYPE_ORIGIN, 340 DetailedInfo::TYPE_ORIGIN,
366 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); 341 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
367 } 342 }
368 343
369 CookieTreeCookiesNode* CookieTreeOriginNode::GetOrCreateCookiesNode() { 344 CookieTreeCookiesNode* CookieTreeOriginNode::GetOrCreateCookiesNode() {
370 if (cookies_child_) 345 if (cookies_child_)
371 return cookies_child_; 346 return cookies_child_;
372 cookies_child_ = new CookieTreeCookiesNode; 347 cookies_child_ = new CookieTreeCookiesNode;
373 AddChildSortedByTitle(cookies_child_); 348 AddChildSortedByTitle(cookies_child_);
374 return cookies_child_; 349 return cookies_child_;
375 } 350 }
376 351
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 } 392 }
418 393
419 CookieTreeFileSystemsNode* CookieTreeOriginNode::GetOrCreateFileSystemsNode() { 394 CookieTreeFileSystemsNode* CookieTreeOriginNode::GetOrCreateFileSystemsNode() {
420 if (file_systems_child_) 395 if (file_systems_child_)
421 return file_systems_child_; 396 return file_systems_child_;
422 file_systems_child_ = new CookieTreeFileSystemsNode; 397 file_systems_child_ = new CookieTreeFileSystemsNode;
423 AddChildSortedByTitle(file_systems_child_); 398 AddChildSortedByTitle(file_systems_child_);
424 return file_systems_child_; 399 return file_systems_child_;
425 } 400 }
426 401
427 CookieTreeQuotaNode* CookieTreeOriginNode::UpdateOrCreateQuotaNode(
428 BrowsingDataQuotaHelper::QuotaInfo* quota_info) {
429 if (quota_child_)
430 return quota_child_;
431 quota_child_ = new CookieTreeQuotaNode(quota_info);
432 AddChildSortedByTitle(quota_child_);
433 return quota_child_;
434 }
435
436 void CookieTreeOriginNode::CreateContentException( 402 void CookieTreeOriginNode::CreateContentException(
437 HostContentSettingsMap* content_settings, ContentSetting setting) const { 403 HostContentSettingsMap* content_settings, ContentSetting setting) const {
438 if (CanCreateContentException()) { 404 if (CanCreateContentException()) {
439 content_settings->AddExceptionForURL(url_, 405 content_settings->AddExceptionForURL(url_,
440 url_, 406 url_,
441 CONTENT_SETTINGS_TYPE_COOKIES, 407 CONTENT_SETTINGS_TYPE_COOKIES,
442 "", 408 "",
443 setting); 409 setting);
444 } 410 }
445 } 411 }
446 412
447 bool CookieTreeOriginNode::CanCreateContentException() const { 413 bool CookieTreeOriginNode::CanCreateContentException() const {
448 return !url_.SchemeIsFile(); 414 return !url_.SchemeIsFile();
449 } 415 }
450 416
451 /////////////////////////////////////////////////////////////////////////////// 417 ///////////////////////////////////////////////////////////////////////////////
452 // CookieTreeCookiesNode, public: 418 // CookieTreeCookiesNode, public:
453 419
454 CookieTreeCookiesNode::CookieTreeCookiesNode() 420 CookieTreeCookiesNode::CookieTreeCookiesNode()
455 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_COOKIES)) { 421 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_COOKIES)) {
456 } 422 }
457 423
458 CookieTreeCookiesNode::~CookieTreeCookiesNode() { 424 CookieTreeCookiesNode::~CookieTreeCookiesNode() {
459 } 425 }
460 426
461 CookieTreeNode::DetailedInfo CookieTreeCookiesNode::GetDetailedInfo() const { 427 CookieTreeNode::DetailedInfo CookieTreeCookiesNode::GetDetailedInfo() const {
462 return DetailedInfo(parent()->GetTitle(), 428 return DetailedInfo(parent()->GetTitle(),
463 DetailedInfo::TYPE_COOKIES, 429 DetailedInfo::TYPE_COOKIES,
464 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); 430 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
465 } 431 }
466 432
467 /////////////////////////////////////////////////////////////////////////////// 433 ///////////////////////////////////////////////////////////////////////////////
468 // CookieTreeAppCachesNode, public: 434 // CookieTreeAppCachesNode, public:
469 435
470 CookieTreeAppCachesNode::CookieTreeAppCachesNode() 436 CookieTreeAppCachesNode::CookieTreeAppCachesNode()
471 : CookieTreeNode(l10n_util::GetStringUTF16( 437 : CookieTreeNode(l10n_util::GetStringUTF16(
472 IDS_COOKIES_APPLICATION_CACHES)) { 438 IDS_COOKIES_APPLICATION_CACHES)) {
473 } 439 }
474 440
475 CookieTreeAppCachesNode::~CookieTreeAppCachesNode() {} 441 CookieTreeAppCachesNode::~CookieTreeAppCachesNode() {}
476 442
477 CookieTreeNode::DetailedInfo CookieTreeAppCachesNode::GetDetailedInfo() const { 443 CookieTreeNode::DetailedInfo CookieTreeAppCachesNode::GetDetailedInfo() const {
478 return DetailedInfo(parent()->GetTitle(), 444 return DetailedInfo(parent()->GetTitle(),
479 DetailedInfo::TYPE_APPCACHES, 445 DetailedInfo::TYPE_APPCACHES,
480 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); 446 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
481 } 447 }
482 448
483 /////////////////////////////////////////////////////////////////////////////// 449 ///////////////////////////////////////////////////////////////////////////////
484 // CookieTreeDatabasesNode, public: 450 // CookieTreeDatabasesNode, public:
485 451
486 CookieTreeDatabasesNode::CookieTreeDatabasesNode() 452 CookieTreeDatabasesNode::CookieTreeDatabasesNode()
487 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_WEB_DATABASES)) { 453 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_WEB_DATABASES)) {
488 } 454 }
489 455
490 CookieTreeDatabasesNode::~CookieTreeDatabasesNode() {} 456 CookieTreeDatabasesNode::~CookieTreeDatabasesNode() {}
491 457
492 CookieTreeNode::DetailedInfo CookieTreeDatabasesNode::GetDetailedInfo() const { 458 CookieTreeNode::DetailedInfo CookieTreeDatabasesNode::GetDetailedInfo() const {
493 return DetailedInfo(parent()->GetTitle(), 459 return DetailedInfo(parent()->GetTitle(),
494 DetailedInfo::TYPE_DATABASES, 460 DetailedInfo::TYPE_DATABASES,
495 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); 461 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
496 } 462 }
497 463
498 /////////////////////////////////////////////////////////////////////////////// 464 ///////////////////////////////////////////////////////////////////////////////
499 // CookieTreeLocalStoragesNode, public: 465 // CookieTreeLocalStoragesNode, public:
500 466
501 CookieTreeLocalStoragesNode::CookieTreeLocalStoragesNode() 467 CookieTreeLocalStoragesNode::CookieTreeLocalStoragesNode()
502 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_LOCAL_STORAGE)) { 468 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_LOCAL_STORAGE)) {
503 } 469 }
504 470
505 CookieTreeLocalStoragesNode::~CookieTreeLocalStoragesNode() {} 471 CookieTreeLocalStoragesNode::~CookieTreeLocalStoragesNode() {}
506 472
507 CookieTreeNode::DetailedInfo 473 CookieTreeNode::DetailedInfo
508 CookieTreeLocalStoragesNode::GetDetailedInfo() const { 474 CookieTreeLocalStoragesNode::GetDetailedInfo() const {
509 return DetailedInfo(parent()->GetTitle(), 475 return DetailedInfo(parent()->GetTitle(),
510 DetailedInfo::TYPE_LOCAL_STORAGES, 476 DetailedInfo::TYPE_LOCAL_STORAGES,
511 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); 477 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
512 } 478 }
513 479
514 /////////////////////////////////////////////////////////////////////////////// 480 ///////////////////////////////////////////////////////////////////////////////
515 // CookieTreeSessionStoragesNode, public: 481 // CookieTreeSessionStoragesNode, public:
516 482
517 CookieTreeSessionStoragesNode::CookieTreeSessionStoragesNode() 483 CookieTreeSessionStoragesNode::CookieTreeSessionStoragesNode()
518 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_SESSION_STORAGE)) { 484 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_SESSION_STORAGE)) {
519 } 485 }
520 486
521 CookieTreeSessionStoragesNode::~CookieTreeSessionStoragesNode() {} 487 CookieTreeSessionStoragesNode::~CookieTreeSessionStoragesNode() {}
522 488
523 CookieTreeNode::DetailedInfo 489 CookieTreeNode::DetailedInfo
524 CookieTreeSessionStoragesNode::GetDetailedInfo() const { 490 CookieTreeSessionStoragesNode::GetDetailedInfo() const {
525 return DetailedInfo(parent()->GetTitle(), 491 return DetailedInfo(parent()->GetTitle(),
526 DetailedInfo::TYPE_SESSION_STORAGES, 492 DetailedInfo::TYPE_SESSION_STORAGES,
527 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); 493 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
528 } 494 }
529 495
530 /////////////////////////////////////////////////////////////////////////////// 496 ///////////////////////////////////////////////////////////////////////////////
531 // CookieTreeIndexedDBsNode, public: 497 // CookieTreeIndexedDBsNode, public:
532 498
533 CookieTreeIndexedDBsNode::CookieTreeIndexedDBsNode() 499 CookieTreeIndexedDBsNode::CookieTreeIndexedDBsNode()
534 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_INDEXED_DBS)) { 500 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_INDEXED_DBS)) {
535 } 501 }
536 502
537 CookieTreeIndexedDBsNode::~CookieTreeIndexedDBsNode() {} 503 CookieTreeIndexedDBsNode::~CookieTreeIndexedDBsNode() {}
538 504
539 CookieTreeNode::DetailedInfo 505 CookieTreeNode::DetailedInfo
540 CookieTreeIndexedDBsNode::GetDetailedInfo() const { 506 CookieTreeIndexedDBsNode::GetDetailedInfo() const {
541 return DetailedInfo(parent()->GetTitle(), 507 return DetailedInfo(parent()->GetTitle(),
542 DetailedInfo::TYPE_INDEXED_DBS, 508 DetailedInfo::TYPE_INDEXED_DBS,
543 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); 509 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
544 } 510 }
545 511
546 /////////////////////////////////////////////////////////////////////////////// 512 ///////////////////////////////////////////////////////////////////////////////
547 // CookieTreeFileSystemsNode, public: 513 // CookieTreeFileSystemsNode, public:
548 514
549 CookieTreeFileSystemsNode::CookieTreeFileSystemsNode() 515 CookieTreeFileSystemsNode::CookieTreeFileSystemsNode()
550 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_FILE_SYSTEMS)) { 516 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_FILE_SYSTEMS)) {
551 } 517 }
552 518
553 CookieTreeFileSystemsNode::~CookieTreeFileSystemsNode() {} 519 CookieTreeFileSystemsNode::~CookieTreeFileSystemsNode() {}
554 520
555 CookieTreeNode::DetailedInfo 521 CookieTreeNode::DetailedInfo
556 CookieTreeFileSystemsNode::GetDetailedInfo() const { 522 CookieTreeFileSystemsNode::GetDetailedInfo() const {
557 return DetailedInfo(parent()->GetTitle(), 523 return DetailedInfo(parent()->GetTitle(),
558 DetailedInfo::TYPE_FILE_SYSTEMS, 524 DetailedInfo::TYPE_FILE_SYSTEMS,
559 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); 525 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
560 } 526 }
561 527
562 /////////////////////////////////////////////////////////////////////////////// 528 ///////////////////////////////////////////////////////////////////////////////
563 // CookieTreeNode, protected 529 // CookieTreeNode, protected
564 530
565 bool CookieTreeNode::NodeTitleComparator::operator() ( 531 bool CookieTreeNode::NodeTitleComparator::operator() (
566 const CookieTreeNode* lhs, const CookieTreeNode* rhs) { 532 const CookieTreeNode* lhs, const CookieTreeNode* rhs) {
567 const CookieTreeNode* left = 533 const CookieTreeNode* left =
568 static_cast<const CookieTreeNode*>(lhs); 534 static_cast<const CookieTreeNode*>(lhs);
569 const CookieTreeNode* right = 535 const CookieTreeNode* right =
(...skipping 15 matching lines...) Expand all
585 // CookiesTreeModel, public: 551 // CookiesTreeModel, public:
586 552
587 CookiesTreeModel::CookiesTreeModel( 553 CookiesTreeModel::CookiesTreeModel(
588 net::CookieMonster* cookie_monster, 554 net::CookieMonster* cookie_monster,
589 BrowsingDataDatabaseHelper* database_helper, 555 BrowsingDataDatabaseHelper* database_helper,
590 BrowsingDataLocalStorageHelper* local_storage_helper, 556 BrowsingDataLocalStorageHelper* local_storage_helper,
591 BrowsingDataLocalStorageHelper* session_storage_helper, 557 BrowsingDataLocalStorageHelper* session_storage_helper,
592 BrowsingDataAppCacheHelper* appcache_helper, 558 BrowsingDataAppCacheHelper* appcache_helper,
593 BrowsingDataIndexedDBHelper* indexed_db_helper, 559 BrowsingDataIndexedDBHelper* indexed_db_helper,
594 BrowsingDataFileSystemHelper* file_system_helper, 560 BrowsingDataFileSystemHelper* file_system_helper,
595 BrowsingDataQuotaHelper* quota_helper,
596 bool use_cookie_source) 561 bool use_cookie_source)
597 : ALLOW_THIS_IN_INITIALIZER_LIST(ui::TreeNodeModel<CookieTreeNode>( 562 : ALLOW_THIS_IN_INITIALIZER_LIST(ui::TreeNodeModel<CookieTreeNode>(
598 new CookieTreeRootNode(this))), 563 new CookieTreeRootNode(this))),
599 cookie_monster_(cookie_monster), 564 cookie_monster_(cookie_monster),
600 appcache_helper_(appcache_helper), 565 appcache_helper_(appcache_helper),
601 database_helper_(database_helper), 566 database_helper_(database_helper),
602 local_storage_helper_(local_storage_helper), 567 local_storage_helper_(local_storage_helper),
603 session_storage_helper_(session_storage_helper), 568 session_storage_helper_(session_storage_helper),
604 indexed_db_helper_(indexed_db_helper), 569 indexed_db_helper_(indexed_db_helper),
605 file_system_helper_(file_system_helper), 570 file_system_helper_(file_system_helper),
606 quota_helper_(quota_helper),
607 batch_update_(0), 571 batch_update_(0),
608 use_cookie_source_(use_cookie_source) { 572 use_cookie_source_(use_cookie_source) {
609 LoadCookies(); 573 LoadCookies();
610 DCHECK(database_helper_); 574 DCHECK(database_helper_);
611 database_helper_->StartFetching(NewCallback( 575 database_helper_->StartFetching(NewCallback(
612 this, &CookiesTreeModel::OnDatabaseModelInfoLoaded)); 576 this, &CookiesTreeModel::OnDatabaseModelInfoLoaded));
613 DCHECK(local_storage_helper_); 577 DCHECK(local_storage_helper_);
614 local_storage_helper_->StartFetching(NewCallback( 578 local_storage_helper_->StartFetching(NewCallback(
615 this, &CookiesTreeModel::OnLocalStorageModelInfoLoaded)); 579 this, &CookiesTreeModel::OnLocalStorageModelInfoLoaded));
616 if (session_storage_helper_) { 580 if (session_storage_helper_) {
(...skipping 10 matching lines...) Expand all
627 591
628 if (indexed_db_helper_) { 592 if (indexed_db_helper_) {
629 indexed_db_helper_->StartFetching(NewCallback( 593 indexed_db_helper_->StartFetching(NewCallback(
630 this, &CookiesTreeModel::OnIndexedDBModelInfoLoaded)); 594 this, &CookiesTreeModel::OnIndexedDBModelInfoLoaded));
631 } 595 }
632 596
633 if (file_system_helper_) { 597 if (file_system_helper_) {
634 file_system_helper_->StartFetching(NewCallback( 598 file_system_helper_->StartFetching(NewCallback(
635 this, &CookiesTreeModel::OnFileSystemModelInfoLoaded)); 599 this, &CookiesTreeModel::OnFileSystemModelInfoLoaded));
636 } 600 }
637
638 if (quota_helper_) {
639 quota_helper_->StartFetching(NewCallback(
640 this, &CookiesTreeModel::OnQuotaModelInfoLoaded));
641 }
642 } 601 }
643 602
644 CookiesTreeModel::~CookiesTreeModel() { 603 CookiesTreeModel::~CookiesTreeModel() {
645 database_helper_->CancelNotification(); 604 database_helper_->CancelNotification();
646 local_storage_helper_->CancelNotification(); 605 local_storage_helper_->CancelNotification();
647 if (session_storage_helper_) 606 if (session_storage_helper_)
648 session_storage_helper_->CancelNotification(); 607 session_storage_helper_->CancelNotification();
649 if (appcache_helper_) 608 if (appcache_helper_)
650 appcache_helper_->CancelNotification(); 609 appcache_helper_->CancelNotification();
651 if (indexed_db_helper_) 610 if (indexed_db_helper_)
652 indexed_db_helper_->CancelNotification(); 611 indexed_db_helper_->CancelNotification();
653 if (file_system_helper_) 612 if (file_system_helper_)
654 file_system_helper_->CancelNotification(); 613 file_system_helper_->CancelNotification();
655 if (quota_helper_)
656 quota_helper_->CancelNotification();
657 } 614 }
658 615
659 /////////////////////////////////////////////////////////////////////////////// 616 ///////////////////////////////////////////////////////////////////////////////
660 // CookiesTreeModel, TreeModel methods (public): 617 // CookiesTreeModel, TreeModel methods (public):
661 618
662 // TreeModel methods: 619 // TreeModel methods:
663 // Returns the set of icons for the nodes in the tree. You only need override 620 // Returns the set of icons for the nodes in the tree. You only need override
664 // this if you don't want to use the default folder icons. 621 // this if you don't want to use the default folder icons.
665 void CookiesTreeModel::GetIcons(std::vector<SkBitmap>* icons) { 622 void CookiesTreeModel::GetIcons(std::vector<SkBitmap>* icons) {
666 icons->push_back(*ResourceBundle::GetSharedInstance().GetBitmapNamed( 623 icons->push_back(*ResourceBundle::GetSharedInstance().GetBitmapNamed(
(...skipping 19 matching lines...) Expand all
686 case CookieTreeNode::DetailedInfo::TYPE_LOCAL_STORAGE: 643 case CookieTreeNode::DetailedInfo::TYPE_LOCAL_STORAGE:
687 return DATABASE; // close enough 644 return DATABASE; // close enough
688 case CookieTreeNode::DetailedInfo::TYPE_SESSION_STORAGE: 645 case CookieTreeNode::DetailedInfo::TYPE_SESSION_STORAGE:
689 return DATABASE; // ditto 646 return DATABASE; // ditto
690 case CookieTreeNode::DetailedInfo::TYPE_APPCACHE: 647 case CookieTreeNode::DetailedInfo::TYPE_APPCACHE:
691 return DATABASE; // ditto 648 return DATABASE; // ditto
692 case CookieTreeNode::DetailedInfo::TYPE_INDEXED_DB: 649 case CookieTreeNode::DetailedInfo::TYPE_INDEXED_DB:
693 return DATABASE; // ditto 650 return DATABASE; // ditto
694 case CookieTreeNode::DetailedInfo::TYPE_FILE_SYSTEM: 651 case CookieTreeNode::DetailedInfo::TYPE_FILE_SYSTEM:
695 return DATABASE; // ditto 652 return DATABASE; // ditto
696 case CookieTreeNode::DetailedInfo::TYPE_QUOTA:
697 return -1;
698 default: 653 default:
699 break; 654 break;
700 } 655 }
701 return -1; 656 return -1;
702 } 657 }
703 658
704 void CookiesTreeModel::LoadCookies() { 659 void CookiesTreeModel::LoadCookies() {
705 LoadCookiesWithFilter(std::wstring()); 660 LoadCookiesWithFilter(std::wstring());
706 } 661 }
707 662
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
764 NotifyObserverBeginBatch(); 719 NotifyObserverBeginBatch();
765 for (int i = num_children - 1; i >= 0; --i) 720 for (int i = num_children - 1; i >= 0; --i)
766 delete Remove(root, root->GetChild(i)); 721 delete Remove(root, root->GetChild(i));
767 LoadCookiesWithFilter(filter); 722 LoadCookiesWithFilter(filter);
768 PopulateDatabaseInfoWithFilter(filter); 723 PopulateDatabaseInfoWithFilter(filter);
769 PopulateLocalStorageInfoWithFilter(filter); 724 PopulateLocalStorageInfoWithFilter(filter);
770 PopulateSessionStorageInfoWithFilter(filter); 725 PopulateSessionStorageInfoWithFilter(filter);
771 PopulateAppCacheInfoWithFilter(filter); 726 PopulateAppCacheInfoWithFilter(filter);
772 PopulateIndexedDBInfoWithFilter(filter); 727 PopulateIndexedDBInfoWithFilter(filter);
773 PopulateFileSystemInfoWithFilter(filter); 728 PopulateFileSystemInfoWithFilter(filter);
774 PopulateQuotaInfoWithFilter(filter);
775 NotifyObserverTreeNodeChanged(root); 729 NotifyObserverTreeNodeChanged(root);
776 NotifyObserverEndBatch(); 730 NotifyObserverEndBatch();
777 } 731 }
778 732
779 void CookiesTreeModel::AddCookiesTreeObserver(Observer* observer) { 733 void CookiesTreeModel::AddCookiesTreeObserver(Observer* observer) {
780 cookies_observer_list_.AddObserver(observer); 734 cookies_observer_list_.AddObserver(observer);
781 // Call super so that TreeNodeModel can notify, too. 735 // Call super so that TreeNodeModel can notify, too.
782 ui::TreeNodeModel<CookieTreeNode>::AddObserver(observer); 736 ui::TreeNodeModel<CookieTreeNode>::AddObserver(observer);
783 } 737 }
784 738
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
983 CookieTreeFileSystemsNode* file_systems_node = 937 CookieTreeFileSystemsNode* file_systems_node =
984 origin_node->GetOrCreateFileSystemsNode(); 938 origin_node->GetOrCreateFileSystemsNode();
985 file_systems_node->AddFileSystemNode( 939 file_systems_node->AddFileSystemNode(
986 new CookieTreeFileSystemNode(&(*file_system_info))); 940 new CookieTreeFileSystemNode(&(*file_system_info)));
987 } 941 }
988 } 942 }
989 NotifyObserverTreeNodeChanged(root); 943 NotifyObserverTreeNodeChanged(root);
990 NotifyObserverEndBatch(); 944 NotifyObserverEndBatch();
991 } 945 }
992 946
993 void CookiesTreeModel::OnQuotaModelInfoLoaded(
994 const QuotaInfoArray& quota_info) {
995 quota_info_list_ = quota_info;
996 PopulateQuotaInfoWithFilter(std::wstring());
997 }
998
999 void CookiesTreeModel::PopulateQuotaInfoWithFilter(
1000 const std::wstring& filter) {
1001 if (quota_info_list_.empty())
1002 return;
1003 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot());
1004 NotifyObserverBeginBatch();
1005 for (QuotaInfoArray::iterator quota_info = quota_info_list_.begin();
1006 quota_info != quota_info_list_.end();
1007 ++quota_info) {
1008 if (!filter.size() ||
1009 (UTF8ToWide(quota_info->host).find(filter) != std::wstring::npos)) {
1010 CookieTreeOriginNode* origin_node =
1011 root->GetOrCreateOriginNode(GURL("http://" + quota_info->host));
1012 origin_node->UpdateOrCreateQuotaNode(&*quota_info);
1013 }
1014 }
1015 NotifyObserverTreeNodeChanged(root);
1016 NotifyObserverEndBatch();
1017 }
1018
1019 void CookiesTreeModel::NotifyObserverBeginBatch() { 947 void CookiesTreeModel::NotifyObserverBeginBatch() {
1020 // Only notify the model once if we're batching in a nested manner. 948 // Only notify the model once if we're batching in a nested manner.
1021 if (batch_update_++ == 0) { 949 if (batch_update_++ == 0) {
1022 FOR_EACH_OBSERVER(Observer, 950 FOR_EACH_OBSERVER(Observer,
1023 cookies_observer_list_, 951 cookies_observer_list_,
1024 TreeModelBeginBatch(this)); 952 TreeModelBeginBatch(this));
1025 } 953 }
1026 } 954 }
1027 955
1028 void CookiesTreeModel::NotifyObserverEndBatch() { 956 void CookiesTreeModel::NotifyObserverEndBatch() {
1029 // Only notify the observers if this is the outermost call to EndBatch() if 957 // Only notify the observers if this is the outermost call to EndBatch() if
1030 // called in a nested manner. 958 // called in a nested manner.
1031 if (--batch_update_ == 0) { 959 if (--batch_update_ == 0) {
1032 FOR_EACH_OBSERVER(Observer, 960 FOR_EACH_OBSERVER(Observer,
1033 cookies_observer_list_, 961 cookies_observer_list_,
1034 TreeModelEndBatch(this)); 962 TreeModelEndBatch(this));
1035 } 963 }
1036 } 964 }
OLDNEW
« no previous file with comments | « chrome/browser/cookies_tree_model.h ('k') | chrome/browser/cookies_tree_model_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698