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

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

Issue 10806034: Ability to clear old history Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 5 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
« no previous file with comments | « chrome/browser/browsing_data_remover.h ('k') | chrome/browser/chrome_content_browser_client.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) 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/browsing_data_remover.h" 5 #include "chrome/browser/browsing_data_remover.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 waiting_for_clear_plugin_data_(false), 122 waiting_for_clear_plugin_data_(false),
123 waiting_for_clear_quota_managed_data_(false), 123 waiting_for_clear_quota_managed_data_(false),
124 waiting_for_clear_content_licenses_(false), 124 waiting_for_clear_content_licenses_(false),
125 remove_mask_(0), 125 remove_mask_(0),
126 remove_origin_(GURL()), 126 remove_origin_(GURL()),
127 origin_set_mask_(0) { 127 origin_set_mask_(0) {
128 DCHECK(profile); 128 DCHECK(profile);
129 } 129 }
130 130
131 BrowsingDataRemover::BrowsingDataRemover(Profile* profile, 131 BrowsingDataRemover::BrowsingDataRemover(Profile* profile,
132 TimePeriod time_period, 132 TimePeriod time_period)
133 base::Time delete_end)
134 : profile_(profile), 133 : profile_(profile),
135 quota_manager_(NULL), 134 quota_manager_(NULL),
136 dom_storage_context_(NULL), 135 dom_storage_context_(NULL),
137 special_storage_policy_(profile->GetExtensionSpecialStoragePolicy()), 136 special_storage_policy_(profile->GetExtensionSpecialStoragePolicy()),
138 delete_begin_(CalculateBeginDeleteTime(time_period)), 137 delete_begin_(CalculateBeginDeleteTime(time_period)),
139 delete_end_(delete_end), 138 delete_end_(CalculateEndDeleteTime(time_period)),
140 next_cache_state_(STATE_NONE), 139 next_cache_state_(STATE_NONE),
141 cache_(NULL), 140 cache_(NULL),
142 main_context_getter_(profile->GetRequestContext()), 141 main_context_getter_(profile->GetRequestContext()),
143 media_context_getter_(profile->GetRequestContextForMedia()), 142 media_context_getter_(profile->GetRequestContextForMedia()),
144 deauthorize_content_licenses_request_id_(0), 143 deauthorize_content_licenses_request_id_(0),
145 waiting_for_clear_cache_(false), 144 waiting_for_clear_cache_(false),
146 waiting_for_clear_nacl_cache_(false), 145 waiting_for_clear_nacl_cache_(false),
147 waiting_for_clear_cookies_count_(0), 146 waiting_for_clear_cookies_count_(0),
148 waiting_for_clear_history_(false), 147 waiting_for_clear_history_(false),
149 waiting_for_clear_local_storage_(false), 148 waiting_for_clear_local_storage_(false),
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 NotifyAndDeleteIfDone(); 477 NotifyAndDeleteIfDone();
479 } 478 }
480 479
481 void BrowsingDataRemover::OverrideQuotaManagerForTesting( 480 void BrowsingDataRemover::OverrideQuotaManagerForTesting(
482 quota::QuotaManager* quota_manager) { 481 quota::QuotaManager* quota_manager) {
483 quota_manager_ = quota_manager; 482 quota_manager_ = quota_manager;
484 } 483 }
485 484
486 base::Time BrowsingDataRemover::CalculateBeginDeleteTime( 485 base::Time BrowsingDataRemover::CalculateBeginDeleteTime(
487 TimePeriod time_period) { 486 TimePeriod time_period) {
488 base::TimeDelta diff; 487 const base::Time now = base::Time::Now();
489 base::Time delete_begin_time = base::Time::Now(); 488 base::Time delete_begin_time;
490 switch (time_period) { 489 switch (time_period) {
491 case LAST_HOUR: 490 case LAST_HOUR:
492 diff = base::TimeDelta::FromHours(1); 491 delete_begin_time = now - base::TimeDelta::FromHours(1);
493 break; 492 break;
494 case LAST_DAY: 493 case LAST_DAY:
495 diff = base::TimeDelta::FromHours(24); 494 delete_begin_time = now - base::TimeDelta::FromDays(1);
496 break; 495 break;
497 case LAST_WEEK: 496 case LAST_WEEK:
498 diff = base::TimeDelta::FromHours(7*24); 497 delete_begin_time = now - base::TimeDelta::FromDays(7);
499 break; 498 break;
500 case FOUR_WEEKS: 499 case FOUR_WEEKS:
501 diff = base::TimeDelta::FromHours(4*7*24); 500 delete_begin_time = now - base::TimeDelta::FromDays(7 * 4);
501 break;
502 case EXCEPT_LAST_HOUR:
503 case EXCEPT_LAST_DAY:
504 case EXCEPT_LAST_WEEK:
505 case EXCEPT_FOUR_WEEKS:
506 delete_begin_time = base::Time();
502 break; 507 break;
503 case EVERYTHING: 508 case EVERYTHING:
504 delete_begin_time = base::Time(); 509 delete_begin_time = base::Time();
505 break; 510 break;
506 default: 511 default:
507 NOTREACHED() << L"Missing item"; 512 NOTREACHED() << L"Missing item";
508 break; 513 break;
509 } 514 }
510 return delete_begin_time - diff; 515 return delete_begin_time;
516 }
517
518 base::Time BrowsingDataRemover::CalculateEndDeleteTime(
519 TimePeriod time_period) {
520 const base::Time now = base::Time::Now();
521 base::Time delete_end_time;
522 switch (time_period) {
523 case LAST_HOUR:
524 case LAST_DAY:
525 case LAST_WEEK:
526 case FOUR_WEEKS:
527 delete_end_time = base::Time();
528 break;
529 case EXCEPT_LAST_HOUR:
530 delete_end_time = now - base::TimeDelta::FromHours(1);
531 break;
532 case EXCEPT_LAST_DAY:
533 delete_end_time = now - base::TimeDelta::FromDays(1);
534 break;
535 case EXCEPT_LAST_WEEK:
536 delete_end_time = now - base::TimeDelta::FromDays(7);
537 break;
538 case EXCEPT_FOUR_WEEKS:
539 delete_end_time = now - base::TimeDelta::FromDays(7 * 4);
540 break;
541 case EVERYTHING:
542 delete_end_time = base::Time();
543 break;
544 default:
545 NOTREACHED() << L"Missing item";
546 break;
547 }
548 return delete_end_time;
511 } 549 }
512 550
513 bool BrowsingDataRemover::AllDone() { 551 bool BrowsingDataRemover::AllDone() {
514 return registrar_.IsEmpty() && 552 return registrar_.IsEmpty() &&
515 !waiting_for_clear_cache_ && 553 !waiting_for_clear_cache_ &&
516 !waiting_for_clear_nacl_cache_ && 554 !waiting_for_clear_nacl_cache_ &&
517 !waiting_for_clear_cookies_count_&& 555 !waiting_for_clear_cookies_count_&&
518 !waiting_for_clear_history_ && 556 !waiting_for_clear_history_ &&
519 !waiting_for_clear_local_storage_ && 557 !waiting_for_clear_local_storage_ &&
520 !waiting_for_clear_networking_history_ && 558 !waiting_for_clear_networking_history_ &&
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after
876 BrowserThread::UI, FROM_HERE, 914 BrowserThread::UI, FROM_HERE,
877 base::Bind(&BrowsingDataRemover::OnClearedServerBoundCerts, 915 base::Bind(&BrowsingDataRemover::OnClearedServerBoundCerts,
878 base::Unretained(this))); 916 base::Unretained(this)));
879 } 917 }
880 918
881 void BrowsingDataRemover::OnClearedServerBoundCerts() { 919 void BrowsingDataRemover::OnClearedServerBoundCerts() {
882 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 920 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
883 waiting_for_clear_server_bound_certs_ = false; 921 waiting_for_clear_server_bound_certs_ = false;
884 NotifyAndDeleteIfDone(); 922 NotifyAndDeleteIfDone();
885 } 923 }
OLDNEW
« no previous file with comments | « chrome/browser/browsing_data_remover.h ('k') | chrome/browser/chrome_content_browser_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698