| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |