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

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

Issue 6966036: Wrapping blocked filesystems into TabSpecificContentSettings (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Missed a string. Created 9 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) 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); 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); 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); 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); 201 NULL, NULL, local_storage_info_, NULL, NULL, NULL, NULL);
202 } 202 }
203 203
204 /////////////////////////////////////////////////////////////////////////////// 204 ///////////////////////////////////////////////////////////////////////////////
205 // CookieTreeSessionStorageNode, public: 205 // CookieTreeSessionStorageNode, public:
206 206
207 CookieTreeSessionStorageNode::CookieTreeSessionStorageNode( 207 CookieTreeSessionStorageNode::CookieTreeSessionStorageNode(
208 BrowsingDataLocalStorageHelper::LocalStorageInfo* session_storage_info) 208 BrowsingDataLocalStorageHelper::LocalStorageInfo* session_storage_info)
209 : CookieTreeNode(UTF8ToUTF16( 209 : CookieTreeNode(UTF8ToUTF16(
210 session_storage_info->origin.empty() ? 210 session_storage_info->origin.empty() ?
211 session_storage_info->database_identifier : 211 session_storage_info->database_identifier :
212 session_storage_info->origin)), 212 session_storage_info->origin)),
213 session_storage_info_(session_storage_info) { 213 session_storage_info_(session_storage_info) {
214 } 214 }
215 215
216 CookieTreeSessionStorageNode::~CookieTreeSessionStorageNode() {} 216 CookieTreeSessionStorageNode::~CookieTreeSessionStorageNode() {}
217 217
218 CookieTreeNode::DetailedInfo 218 CookieTreeNode::DetailedInfo
219 CookieTreeSessionStorageNode::GetDetailedInfo() const { 219 CookieTreeSessionStorageNode::GetDetailedInfo() const {
220 return DetailedInfo(parent()->parent()->GetTitle(), 220 return DetailedInfo(parent()->parent()->GetTitle(),
221 DetailedInfo::TYPE_SESSION_STORAGE, 221 DetailedInfo::TYPE_SESSION_STORAGE,
222 NULL, NULL, NULL, session_storage_info_, NULL, NULL); 222 NULL, NULL, NULL, session_storage_info_, NULL, NULL,
223 NULL);
223 } 224 }
224 225
225 /////////////////////////////////////////////////////////////////////////////// 226 ///////////////////////////////////////////////////////////////////////////////
226 // CookieTreeIndexedDBNode, public: 227 // CookieTreeIndexedDBNode, public:
227 228
228 CookieTreeIndexedDBNode::CookieTreeIndexedDBNode( 229 CookieTreeIndexedDBNode::CookieTreeIndexedDBNode(
229 BrowsingDataIndexedDBHelper::IndexedDBInfo* indexed_db_info) 230 BrowsingDataIndexedDBHelper::IndexedDBInfo* indexed_db_info)
230 : CookieTreeNode(UTF8ToUTF16( 231 : CookieTreeNode(UTF8ToUTF16(
231 indexed_db_info->origin.empty() ? 232 indexed_db_info->origin.empty() ?
232 indexed_db_info->database_identifier : 233 indexed_db_info->database_identifier :
233 indexed_db_info->origin)), 234 indexed_db_info->origin)),
234 indexed_db_info_(indexed_db_info) { 235 indexed_db_info_(indexed_db_info) {
235 } 236 }
236 237
237 CookieTreeIndexedDBNode::~CookieTreeIndexedDBNode() {} 238 CookieTreeIndexedDBNode::~CookieTreeIndexedDBNode() {}
238 239
239 void CookieTreeIndexedDBNode::DeleteStoredObjects() { 240 void CookieTreeIndexedDBNode::DeleteStoredObjects() {
240 GetModel()->indexed_db_helper_->DeleteIndexedDBFile( 241 GetModel()->indexed_db_helper_->DeleteIndexedDBFile(
241 indexed_db_info_->file_path); 242 indexed_db_info_->file_path);
242 } 243 }
243 244
244 CookieTreeNode::DetailedInfo CookieTreeIndexedDBNode::GetDetailedInfo() const { 245 CookieTreeNode::DetailedInfo CookieTreeIndexedDBNode::GetDetailedInfo() const {
245 return DetailedInfo(parent()->parent()->GetTitle(), 246 return DetailedInfo(parent()->parent()->GetTitle(),
246 DetailedInfo::TYPE_INDEXED_DB, 247 DetailedInfo::TYPE_INDEXED_DB,
247 NULL, NULL, NULL, NULL, NULL, indexed_db_info_); 248 NULL, NULL, NULL, NULL, NULL, indexed_db_info_, NULL);
248 } 249 }
249 250
250 /////////////////////////////////////////////////////////////////////////////// 251 ///////////////////////////////////////////////////////////////////////////////
252 // CookieTreeFileSystemNode, public:
253
254 CookieTreeFileSystemNode::CookieTreeFileSystemNode(
255 BrowsingDataFileSystemHelper::FileSystemInfo* file_system_info)
256 : CookieTreeNode(UTF8ToUTF16(
257 file_system_info->origin.spec())),
258 file_system_info_(file_system_info) {
259 }
260
261 CookieTreeFileSystemNode::~CookieTreeFileSystemNode() {}
262
263 void CookieTreeFileSystemNode::DeleteStoredObjects() {
264 GetModel()->file_system_helper_->DeleteFileSystemOrigin(
265 file_system_info_->origin);
266 }
267
268 CookieTreeNode::DetailedInfo CookieTreeFileSystemNode::GetDetailedInfo() const {
269 return DetailedInfo(parent()->parent()->GetTitle(),
270 DetailedInfo::TYPE_FILE_SYSTEM,
271 NULL, NULL, NULL, NULL, NULL, NULL, file_system_info_);
272 }
273
274 ///////////////////////////////////////////////////////////////////////////////
251 // CookieTreeRootNode, public: 275 // CookieTreeRootNode, public:
252 276
253 CookieTreeRootNode::CookieTreeRootNode(CookiesTreeModel* model) 277 CookieTreeRootNode::CookieTreeRootNode(CookiesTreeModel* model)
254 : model_(model) { 278 : model_(model) {
255 } 279 }
256 280
257 CookieTreeRootNode::~CookieTreeRootNode() {} 281 CookieTreeRootNode::~CookieTreeRootNode() {}
258 282
259 CookieTreeOriginNode* CookieTreeRootNode::GetOrCreateOriginNode( 283 CookieTreeOriginNode* CookieTreeRootNode::GetOrCreateOriginNode(
260 const GURL& url) { 284 const GURL& url) {
(...skipping 18 matching lines...) Expand all
279 return retval; 303 return retval;
280 } 304 }
281 305
282 CookiesTreeModel* CookieTreeRootNode::GetModel() const { 306 CookiesTreeModel* CookieTreeRootNode::GetModel() const {
283 return model_; 307 return model_;
284 } 308 }
285 309
286 CookieTreeNode::DetailedInfo CookieTreeRootNode::GetDetailedInfo() const { 310 CookieTreeNode::DetailedInfo CookieTreeRootNode::GetDetailedInfo() const {
287 return DetailedInfo(string16(), 311 return DetailedInfo(string16(),
288 DetailedInfo::TYPE_ROOT, 312 DetailedInfo::TYPE_ROOT,
289 NULL, NULL, NULL, NULL, NULL, NULL); 313 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
290 } 314 }
291 315
292 /////////////////////////////////////////////////////////////////////////////// 316 ///////////////////////////////////////////////////////////////////////////////
293 // CookieTreeOriginNode, public: 317 // CookieTreeOriginNode, public:
294 318
295 // static 319 // static
296 std::wstring CookieTreeOriginNode::TitleForUrl( 320 std::wstring CookieTreeOriginNode::TitleForUrl(
297 const GURL& url) { 321 const GURL& url) {
298 return UTF8ToWide(url.SchemeIsFile() ? kFileOriginNodeName : url.host()); 322 return UTF8ToWide(url.SchemeIsFile() ? kFileOriginNodeName : url.host());
299 } 323 }
300 324
301 CookieTreeOriginNode::CookieTreeOriginNode(const GURL& url) 325 CookieTreeOriginNode::CookieTreeOriginNode(const GURL& url)
302 : CookieTreeNode(WideToUTF16Hack(TitleForUrl(url))), 326 : CookieTreeNode(WideToUTF16Hack(TitleForUrl(url))),
303 cookies_child_(NULL), 327 cookies_child_(NULL),
304 databases_child_(NULL), 328 databases_child_(NULL),
305 local_storages_child_(NULL), 329 local_storages_child_(NULL),
306 session_storages_child_(NULL), 330 session_storages_child_(NULL),
307 appcaches_child_(NULL), 331 appcaches_child_(NULL),
308 indexed_dbs_child_(NULL), 332 indexed_dbs_child_(NULL),
333 file_systems_child_(NULL),
309 url_(url) {} 334 url_(url) {}
310 335
311 CookieTreeOriginNode::~CookieTreeOriginNode() {} 336 CookieTreeOriginNode::~CookieTreeOriginNode() {}
312 337
313 CookieTreeNode::DetailedInfo CookieTreeOriginNode::GetDetailedInfo() const { 338 CookieTreeNode::DetailedInfo CookieTreeOriginNode::GetDetailedInfo() const {
314 return DetailedInfo(GetTitle(), 339 return DetailedInfo(GetTitle(),
315 DetailedInfo::TYPE_ORIGIN, 340 DetailedInfo::TYPE_ORIGIN,
316 NULL, NULL, NULL, NULL, NULL, NULL); 341 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
317 } 342 }
318 343
319 CookieTreeCookiesNode* CookieTreeOriginNode::GetOrCreateCookiesNode() { 344 CookieTreeCookiesNode* CookieTreeOriginNode::GetOrCreateCookiesNode() {
320 if (cookies_child_) 345 if (cookies_child_)
321 return cookies_child_; 346 return cookies_child_;
322 cookies_child_ = new CookieTreeCookiesNode; 347 cookies_child_ = new CookieTreeCookiesNode;
323 AddChildSortedByTitle(cookies_child_); 348 AddChildSortedByTitle(cookies_child_);
324 return cookies_child_; 349 return cookies_child_;
325 } 350 }
326 351
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 } 384 }
360 385
361 CookieTreeIndexedDBsNode* CookieTreeOriginNode::GetOrCreateIndexedDBsNode() { 386 CookieTreeIndexedDBsNode* CookieTreeOriginNode::GetOrCreateIndexedDBsNode() {
362 if (indexed_dbs_child_) 387 if (indexed_dbs_child_)
363 return indexed_dbs_child_; 388 return indexed_dbs_child_;
364 indexed_dbs_child_ = new CookieTreeIndexedDBsNode; 389 indexed_dbs_child_ = new CookieTreeIndexedDBsNode;
365 AddChildSortedByTitle(indexed_dbs_child_); 390 AddChildSortedByTitle(indexed_dbs_child_);
366 return indexed_dbs_child_; 391 return indexed_dbs_child_;
367 } 392 }
368 393
394 CookieTreeFileSystemsNode* CookieTreeOriginNode::GetOrCreateFileSystemsNode() {
395 if (file_systems_child_)
396 return file_systems_child_;
397 file_systems_child_ = new CookieTreeFileSystemsNode;
398 AddChildSortedByTitle(file_systems_child_);
399 return file_systems_child_;
400 }
401
369 void CookieTreeOriginNode::CreateContentException( 402 void CookieTreeOriginNode::CreateContentException(
370 HostContentSettingsMap* content_settings, ContentSetting setting) const { 403 HostContentSettingsMap* content_settings, ContentSetting setting) const {
371 if (CanCreateContentException()) { 404 if (CanCreateContentException()) {
372 content_settings->AddExceptionForURL(url_, 405 content_settings->AddExceptionForURL(url_,
373 CONTENT_SETTINGS_TYPE_COOKIES, 406 CONTENT_SETTINGS_TYPE_COOKIES,
374 "", 407 "",
375 setting); 408 setting);
376 } 409 }
377 } 410 }
378 411
379 bool CookieTreeOriginNode::CanCreateContentException() const { 412 bool CookieTreeOriginNode::CanCreateContentException() const {
380 return !url_.SchemeIsFile(); 413 return !url_.SchemeIsFile();
381 } 414 }
382 415
383 /////////////////////////////////////////////////////////////////////////////// 416 ///////////////////////////////////////////////////////////////////////////////
384 // CookieTreeCookiesNode, public: 417 // CookieTreeCookiesNode, public:
385 418
386 CookieTreeCookiesNode::CookieTreeCookiesNode() 419 CookieTreeCookiesNode::CookieTreeCookiesNode()
387 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_COOKIES)) { 420 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_COOKIES)) {
388 } 421 }
389 422
390 CookieTreeCookiesNode::~CookieTreeCookiesNode() { 423 CookieTreeCookiesNode::~CookieTreeCookiesNode() {
391 } 424 }
392 425
393 CookieTreeNode::DetailedInfo CookieTreeCookiesNode::GetDetailedInfo() const { 426 CookieTreeNode::DetailedInfo CookieTreeCookiesNode::GetDetailedInfo() const {
394 return DetailedInfo(parent()->GetTitle(), 427 return DetailedInfo(parent()->GetTitle(),
395 DetailedInfo::TYPE_COOKIES, 428 DetailedInfo::TYPE_COOKIES,
396 NULL, NULL, NULL, NULL, NULL, NULL); 429 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
397 } 430 }
398 431
399 /////////////////////////////////////////////////////////////////////////////// 432 ///////////////////////////////////////////////////////////////////////////////
400 // CookieTreeAppCachesNode, public: 433 // CookieTreeAppCachesNode, public:
401 434
402 CookieTreeAppCachesNode::CookieTreeAppCachesNode() 435 CookieTreeAppCachesNode::CookieTreeAppCachesNode()
403 : CookieTreeNode(l10n_util::GetStringUTF16( 436 : CookieTreeNode(l10n_util::GetStringUTF16(
404 IDS_COOKIES_APPLICATION_CACHES)) { 437 IDS_COOKIES_APPLICATION_CACHES)) {
405 } 438 }
406 439
407 CookieTreeAppCachesNode::~CookieTreeAppCachesNode() {} 440 CookieTreeAppCachesNode::~CookieTreeAppCachesNode() {}
408 441
409 CookieTreeNode::DetailedInfo CookieTreeAppCachesNode::GetDetailedInfo() const { 442 CookieTreeNode::DetailedInfo CookieTreeAppCachesNode::GetDetailedInfo() const {
410 return DetailedInfo(parent()->GetTitle(), 443 return DetailedInfo(parent()->GetTitle(),
411 DetailedInfo::TYPE_APPCACHES, 444 DetailedInfo::TYPE_APPCACHES,
412 NULL, NULL, NULL, NULL, NULL, NULL); 445 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
413 } 446 }
414 447
415 /////////////////////////////////////////////////////////////////////////////// 448 ///////////////////////////////////////////////////////////////////////////////
416 // CookieTreeDatabasesNode, public: 449 // CookieTreeDatabasesNode, public:
417 450
418 CookieTreeDatabasesNode::CookieTreeDatabasesNode() 451 CookieTreeDatabasesNode::CookieTreeDatabasesNode()
419 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_WEB_DATABASES)) { 452 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_WEB_DATABASES)) {
420 } 453 }
421 454
422 CookieTreeDatabasesNode::~CookieTreeDatabasesNode() {} 455 CookieTreeDatabasesNode::~CookieTreeDatabasesNode() {}
423 456
424 CookieTreeNode::DetailedInfo CookieTreeDatabasesNode::GetDetailedInfo() const { 457 CookieTreeNode::DetailedInfo CookieTreeDatabasesNode::GetDetailedInfo() const {
425 return DetailedInfo(parent()->GetTitle(), 458 return DetailedInfo(parent()->GetTitle(),
426 DetailedInfo::TYPE_DATABASES, 459 DetailedInfo::TYPE_DATABASES,
427 NULL, NULL, NULL, NULL, NULL, NULL); 460 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
428 } 461 }
429 462
430 /////////////////////////////////////////////////////////////////////////////// 463 ///////////////////////////////////////////////////////////////////////////////
431 // CookieTreeLocalStoragesNode, public: 464 // CookieTreeLocalStoragesNode, public:
432 465
433 CookieTreeLocalStoragesNode::CookieTreeLocalStoragesNode() 466 CookieTreeLocalStoragesNode::CookieTreeLocalStoragesNode()
434 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_LOCAL_STORAGE)) { 467 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_LOCAL_STORAGE)) {
435 } 468 }
436 469
437 CookieTreeLocalStoragesNode::~CookieTreeLocalStoragesNode() {} 470 CookieTreeLocalStoragesNode::~CookieTreeLocalStoragesNode() {}
438 471
439 CookieTreeNode::DetailedInfo 472 CookieTreeNode::DetailedInfo
440 CookieTreeLocalStoragesNode::GetDetailedInfo() const { 473 CookieTreeLocalStoragesNode::GetDetailedInfo() const {
441 return DetailedInfo(parent()->GetTitle(), 474 return DetailedInfo(parent()->GetTitle(),
442 DetailedInfo::TYPE_LOCAL_STORAGES, 475 DetailedInfo::TYPE_LOCAL_STORAGES,
443 NULL, NULL, NULL, NULL, NULL, NULL); 476 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
444 } 477 }
445 478
446 /////////////////////////////////////////////////////////////////////////////// 479 ///////////////////////////////////////////////////////////////////////////////
447 // CookieTreeSessionStoragesNode, public: 480 // CookieTreeSessionStoragesNode, public:
448 481
449 CookieTreeSessionStoragesNode::CookieTreeSessionStoragesNode() 482 CookieTreeSessionStoragesNode::CookieTreeSessionStoragesNode()
450 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_SESSION_STORAGE)) { 483 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_SESSION_STORAGE)) {
451 } 484 }
452 485
453 CookieTreeSessionStoragesNode::~CookieTreeSessionStoragesNode() {} 486 CookieTreeSessionStoragesNode::~CookieTreeSessionStoragesNode() {}
454 487
455 CookieTreeNode::DetailedInfo 488 CookieTreeNode::DetailedInfo
456 CookieTreeSessionStoragesNode::GetDetailedInfo() const { 489 CookieTreeSessionStoragesNode::GetDetailedInfo() const {
457 return DetailedInfo(parent()->GetTitle(), 490 return DetailedInfo(parent()->GetTitle(),
458 DetailedInfo::TYPE_SESSION_STORAGES, 491 DetailedInfo::TYPE_SESSION_STORAGES,
459 NULL, NULL, NULL, NULL, NULL, NULL); 492 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
460 } 493 }
461 494
462 /////////////////////////////////////////////////////////////////////////////// 495 ///////////////////////////////////////////////////////////////////////////////
463 // CookieTreeIndexedDBsNode, public: 496 // CookieTreeIndexedDBsNode, public:
464 497
465 CookieTreeIndexedDBsNode::CookieTreeIndexedDBsNode() 498 CookieTreeIndexedDBsNode::CookieTreeIndexedDBsNode()
466 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_INDEXED_DBS)) { 499 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_INDEXED_DBS)) {
467 } 500 }
468 501
469 CookieTreeIndexedDBsNode::~CookieTreeIndexedDBsNode() {} 502 CookieTreeIndexedDBsNode::~CookieTreeIndexedDBsNode() {}
470 503
471 CookieTreeNode::DetailedInfo 504 CookieTreeNode::DetailedInfo
472 CookieTreeIndexedDBsNode::GetDetailedInfo() const { 505 CookieTreeIndexedDBsNode::GetDetailedInfo() const {
473 return DetailedInfo(parent()->GetTitle(), 506 return DetailedInfo(parent()->GetTitle(),
474 DetailedInfo::TYPE_INDEXED_DBS, 507 DetailedInfo::TYPE_INDEXED_DBS,
475 NULL, NULL, NULL, NULL, NULL, NULL); 508 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
476 } 509 }
477 510
478 /////////////////////////////////////////////////////////////////////////////// 511 ///////////////////////////////////////////////////////////////////////////////
512 // CookieTreeFileSystemsNode, public:
513
514 CookieTreeFileSystemsNode::CookieTreeFileSystemsNode()
515 : CookieTreeNode(l10n_util::GetStringUTF16(IDS_COOKIES_FILE_SYSTEMS)) {
516 }
517
518 CookieTreeFileSystemsNode::~CookieTreeFileSystemsNode() {}
519
520 CookieTreeNode::DetailedInfo
521 CookieTreeFileSystemsNode::GetDetailedInfo() const {
522 return DetailedInfo(parent()->GetTitle(),
523 DetailedInfo::TYPE_FILE_SYSTEMS,
524 NULL, NULL, NULL, NULL, NULL, NULL, NULL);
525 }
526
527 ///////////////////////////////////////////////////////////////////////////////
479 // CookieTreeNode, protected 528 // CookieTreeNode, protected
480 529
481 bool CookieTreeNode::NodeTitleComparator::operator() ( 530 bool CookieTreeNode::NodeTitleComparator::operator() (
482 const CookieTreeNode* lhs, const CookieTreeNode* rhs) { 531 const CookieTreeNode* lhs, const CookieTreeNode* rhs) {
483 const CookieTreeNode* left = 532 const CookieTreeNode* left =
484 static_cast<const CookieTreeNode*>(lhs); 533 static_cast<const CookieTreeNode*>(lhs);
485 const CookieTreeNode* right = 534 const CookieTreeNode* right =
486 static_cast<const CookieTreeNode*>(rhs); 535 static_cast<const CookieTreeNode*>(rhs);
487 return (left->GetTitle() < right->GetTitle()); 536 return (left->GetTitle() < right->GetTitle());
488 } 537 }
489 538
490 void CookieTreeNode::AddChildSortedByTitle(CookieTreeNode* new_child) { 539 void CookieTreeNode::AddChildSortedByTitle(CookieTreeNode* new_child) {
540 DCHECK(new_child);
491 std::vector<CookieTreeNode*>::iterator iter = 541 std::vector<CookieTreeNode*>::iterator iter =
492 lower_bound(children().begin(), 542 lower_bound(children().begin(),
493 children().end(), 543 children().end(),
494 new_child, 544 new_child,
495 NodeTitleComparator()); 545 NodeTitleComparator());
496 GetModel()->Add(this, new_child, iter - children().begin()); 546 GetModel()->Add(this, new_child, iter - children().begin());
497 } 547 }
498 548
499 /////////////////////////////////////////////////////////////////////////////// 549 ///////////////////////////////////////////////////////////////////////////////
500 // CookiesTreeModel, public: 550 // CookiesTreeModel, public:
501 551
502 CookiesTreeModel::CookiesTreeModel( 552 CookiesTreeModel::CookiesTreeModel(
503 net::CookieMonster* cookie_monster, 553 net::CookieMonster* cookie_monster,
504 BrowsingDataDatabaseHelper* database_helper, 554 BrowsingDataDatabaseHelper* database_helper,
505 BrowsingDataLocalStorageHelper* local_storage_helper, 555 BrowsingDataLocalStorageHelper* local_storage_helper,
506 BrowsingDataLocalStorageHelper* session_storage_helper, 556 BrowsingDataLocalStorageHelper* session_storage_helper,
507 BrowsingDataAppCacheHelper* appcache_helper, 557 BrowsingDataAppCacheHelper* appcache_helper,
508 BrowsingDataIndexedDBHelper* indexed_db_helper, 558 BrowsingDataIndexedDBHelper* indexed_db_helper,
559 BrowsingDataFileSystemHelper* file_system_helper,
509 bool use_cookie_source) 560 bool use_cookie_source)
510 : ALLOW_THIS_IN_INITIALIZER_LIST(ui::TreeNodeModel<CookieTreeNode>( 561 : ALLOW_THIS_IN_INITIALIZER_LIST(ui::TreeNodeModel<CookieTreeNode>(
511 new CookieTreeRootNode(this))), 562 new CookieTreeRootNode(this))),
512 cookie_monster_(cookie_monster), 563 cookie_monster_(cookie_monster),
513 appcache_helper_(appcache_helper), 564 appcache_helper_(appcache_helper),
514 database_helper_(database_helper), 565 database_helper_(database_helper),
515 local_storage_helper_(local_storage_helper), 566 local_storage_helper_(local_storage_helper),
516 session_storage_helper_(session_storage_helper), 567 session_storage_helper_(session_storage_helper),
517 indexed_db_helper_(indexed_db_helper), 568 indexed_db_helper_(indexed_db_helper),
569 file_system_helper_(file_system_helper),
518 batch_update_(0), 570 batch_update_(0),
519 use_cookie_source_(use_cookie_source) { 571 use_cookie_source_(use_cookie_source) {
520 LoadCookies(); 572 LoadCookies();
521 DCHECK(database_helper_); 573 DCHECK(database_helper_);
522 database_helper_->StartFetching(NewCallback( 574 database_helper_->StartFetching(NewCallback(
523 this, &CookiesTreeModel::OnDatabaseModelInfoLoaded)); 575 this, &CookiesTreeModel::OnDatabaseModelInfoLoaded));
524 DCHECK(local_storage_helper_); 576 DCHECK(local_storage_helper_);
525 local_storage_helper_->StartFetching(NewCallback( 577 local_storage_helper_->StartFetching(NewCallback(
526 this, &CookiesTreeModel::OnLocalStorageModelInfoLoaded)); 578 this, &CookiesTreeModel::OnLocalStorageModelInfoLoaded));
527 if (session_storage_helper_) { 579 if (session_storage_helper_) {
528 session_storage_helper_->StartFetching(NewCallback( 580 session_storage_helper_->StartFetching(NewCallback(
529 this, &CookiesTreeModel::OnSessionStorageModelInfoLoaded)); 581 this, &CookiesTreeModel::OnSessionStorageModelInfoLoaded));
530 } 582 }
531 583
532 // TODO(michaeln): when all of the ui impls have been updated, 584 // TODO(michaeln): when all of the ui impls have been updated,
533 // make this a required parameter. 585 // make this a required parameter.
534 if (appcache_helper_) { 586 if (appcache_helper_) {
535 appcache_helper_->StartFetching(NewCallback( 587 appcache_helper_->StartFetching(NewCallback(
536 this, &CookiesTreeModel::OnAppCacheModelInfoLoaded)); 588 this, &CookiesTreeModel::OnAppCacheModelInfoLoaded));
537 } 589 }
538 590
539 if (indexed_db_helper_) { 591 if (indexed_db_helper_) {
540 indexed_db_helper_->StartFetching(NewCallback( 592 indexed_db_helper_->StartFetching(NewCallback(
541 this, &CookiesTreeModel::OnIndexedDBModelInfoLoaded)); 593 this, &CookiesTreeModel::OnIndexedDBModelInfoLoaded));
542 } 594 }
595
596 if (file_system_helper_) {
597 file_system_helper_->StartFetching(NewCallback(
598 this, &CookiesTreeModel::OnFileSystemModelInfoLoaded));
599 }
543 } 600 }
544 601
545 CookiesTreeModel::~CookiesTreeModel() { 602 CookiesTreeModel::~CookiesTreeModel() {
546 database_helper_->CancelNotification(); 603 database_helper_->CancelNotification();
547 local_storage_helper_->CancelNotification(); 604 local_storage_helper_->CancelNotification();
548 if (session_storage_helper_) 605 if (session_storage_helper_)
549 session_storage_helper_->CancelNotification(); 606 session_storage_helper_->CancelNotification();
550 if (appcache_helper_) 607 if (appcache_helper_)
551 appcache_helper_->CancelNotification(); 608 appcache_helper_->CancelNotification();
552 if (indexed_db_helper_) 609 if (indexed_db_helper_)
553 indexed_db_helper_->CancelNotification(); 610 indexed_db_helper_->CancelNotification();
611 if (file_system_helper_)
612 file_system_helper_->CancelNotification();
554 } 613 }
555 614
556 /////////////////////////////////////////////////////////////////////////////// 615 ///////////////////////////////////////////////////////////////////////////////
557 // CookiesTreeModel, TreeModel methods (public): 616 // CookiesTreeModel, TreeModel methods (public):
558 617
559 // TreeModel methods: 618 // TreeModel methods:
560 // Returns the set of icons for the nodes in the tree. You only need override 619 // Returns the set of icons for the nodes in the tree. You only need override
561 // this if you don't want to use the default folder icons. 620 // this if you don't want to use the default folder icons.
562 void CookiesTreeModel::GetIcons(std::vector<SkBitmap>* icons) { 621 void CookiesTreeModel::GetIcons(std::vector<SkBitmap>* icons) {
563 icons->push_back(*ResourceBundle::GetSharedInstance().GetBitmapNamed( 622 icons->push_back(*ResourceBundle::GetSharedInstance().GetBitmapNamed(
(...skipping 17 matching lines...) Expand all
581 case CookieTreeNode::DetailedInfo::TYPE_DATABASE: 640 case CookieTreeNode::DetailedInfo::TYPE_DATABASE:
582 return DATABASE; 641 return DATABASE;
583 case CookieTreeNode::DetailedInfo::TYPE_LOCAL_STORAGE: 642 case CookieTreeNode::DetailedInfo::TYPE_LOCAL_STORAGE:
584 return DATABASE; // close enough 643 return DATABASE; // close enough
585 case CookieTreeNode::DetailedInfo::TYPE_SESSION_STORAGE: 644 case CookieTreeNode::DetailedInfo::TYPE_SESSION_STORAGE:
586 return DATABASE; // ditto 645 return DATABASE; // ditto
587 case CookieTreeNode::DetailedInfo::TYPE_APPCACHE: 646 case CookieTreeNode::DetailedInfo::TYPE_APPCACHE:
588 return DATABASE; // ditto 647 return DATABASE; // ditto
589 case CookieTreeNode::DetailedInfo::TYPE_INDEXED_DB: 648 case CookieTreeNode::DetailedInfo::TYPE_INDEXED_DB:
590 return DATABASE; // ditto 649 return DATABASE; // ditto
650 case CookieTreeNode::DetailedInfo::TYPE_FILE_SYSTEM:
651 return DATABASE; // ditto
591 default: 652 default:
592 break; 653 break;
593 } 654 }
594 return -1; 655 return -1;
595 } 656 }
596 657
597 void CookiesTreeModel::LoadCookies() { 658 void CookiesTreeModel::LoadCookies() {
598 LoadCookiesWithFilter(std::wstring()); 659 LoadCookiesWithFilter(std::wstring());
599 } 660 }
600 661
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
841 CookieTreeIndexedDBsNode* indexed_dbs_node = 902 CookieTreeIndexedDBsNode* indexed_dbs_node =
842 origin_node->GetOrCreateIndexedDBsNode(); 903 origin_node->GetOrCreateIndexedDBsNode();
843 indexed_dbs_node->AddIndexedDBNode( 904 indexed_dbs_node->AddIndexedDBNode(
844 new CookieTreeIndexedDBNode(&(*indexed_db_info))); 905 new CookieTreeIndexedDBNode(&(*indexed_db_info)));
845 } 906 }
846 } 907 }
847 NotifyObserverTreeNodeChanged(root); 908 NotifyObserverTreeNodeChanged(root);
848 NotifyObserverEndBatch(); 909 NotifyObserverEndBatch();
849 } 910 }
850 911
912 void CookiesTreeModel::OnFileSystemModelInfoLoaded(
913 const FileSystemInfoList& file_system_info) {
914 file_system_info_list_ = file_system_info;
915 PopulateFileSystemInfoWithFilter(std::wstring());
916 }
917
918 void CookiesTreeModel::PopulateFileSystemInfoWithFilter(
919 const std::wstring& filter) {
920 if (file_system_info_list_.empty())
921 return;
922 CookieTreeRootNode* root = static_cast<CookieTreeRootNode*>(GetRoot());
923 NotifyObserverBeginBatch();
924 for (FileSystemInfoList::iterator file_system_info =
925 file_system_info_list_.begin();
926 file_system_info != file_system_info_list_.end();
927 ++file_system_info) {
928 GURL origin(file_system_info->origin);
929
930 if (!filter.size() ||
931 (CookieTreeOriginNode::TitleForUrl(origin).find(filter) !=
932 std::wstring::npos)) {
933 CookieTreeOriginNode* origin_node =
934 root->GetOrCreateOriginNode(origin);
935 CookieTreeFileSystemsNode* file_systems_node =
936 origin_node->GetOrCreateFileSystemsNode();
937 file_systems_node->AddFileSystemNode(
938 new CookieTreeFileSystemNode(&(*file_system_info)));
939 }
940 }
941 NotifyObserverTreeNodeChanged(root);
942 NotifyObserverEndBatch();
943 }
944
851 void CookiesTreeModel::NotifyObserverBeginBatch() { 945 void CookiesTreeModel::NotifyObserverBeginBatch() {
852 // Only notify the model once if we're batching in a nested manner. 946 // Only notify the model once if we're batching in a nested manner.
853 if (batch_update_++ == 0) { 947 if (batch_update_++ == 0) {
854 FOR_EACH_OBSERVER(Observer, 948 FOR_EACH_OBSERVER(Observer,
855 cookies_observer_list_, 949 cookies_observer_list_,
856 TreeModelBeginBatch(this)); 950 TreeModelBeginBatch(this));
857 } 951 }
858 } 952 }
859 953
860 void CookiesTreeModel::NotifyObserverEndBatch() { 954 void CookiesTreeModel::NotifyObserverEndBatch() {
861 // Only notify the observers if this is the outermost call to EndBatch() if 955 // Only notify the observers if this is the outermost call to EndBatch() if
862 // called in a nested manner. 956 // called in a nested manner.
863 if (--batch_update_ == 0) { 957 if (--batch_update_ == 0) {
864 FOR_EACH_OBSERVER(Observer, 958 FOR_EACH_OBSERVER(Observer,
865 cookies_observer_list_, 959 cookies_observer_list_,
866 TreeModelEndBatch(this)); 960 TreeModelEndBatch(this));
867 } 961 }
868 } 962 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698