| 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/browsing_data_remover.h" | 5 #include "chrome/browser/browsing_data/browsing_data_remover.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 343 DCHECK(observer); | 343 DCHECK(observer); |
| 344 RemoveInternal(time_range, remove_mask, origin_type_mask, | 344 RemoveInternal(time_range, remove_mask, origin_type_mask, |
| 345 std::unique_ptr<RegistrableDomainFilterBuilder>(), observer); | 345 std::unique_ptr<RegistrableDomainFilterBuilder>(), observer); |
| 346 } | 346 } |
| 347 | 347 |
| 348 void BrowsingDataRemover::RemoveWithFilter( | 348 void BrowsingDataRemover::RemoveWithFilter( |
| 349 const TimeRange& time_range, | 349 const TimeRange& time_range, |
| 350 int remove_mask, | 350 int remove_mask, |
| 351 int origin_type_mask, | 351 int origin_type_mask, |
| 352 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) { | 352 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) { |
| 353 DCHECK_EQ(0, remove_mask & ~FILTERABLE_DATATYPES); |
| 353 DCHECK(filter_builder); | 354 DCHECK(filter_builder); |
| 354 RemoveInternal(time_range, remove_mask, origin_type_mask, | 355 RemoveInternal(time_range, remove_mask, origin_type_mask, |
| 355 std::move(filter_builder), nullptr); | 356 std::move(filter_builder), nullptr); |
| 356 } | 357 } |
| 357 | 358 |
| 358 void BrowsingDataRemover::RemoveWithFilterAndReply( | 359 void BrowsingDataRemover::RemoveWithFilterAndReply( |
| 359 const TimeRange& time_range, | 360 const TimeRange& time_range, |
| 360 int remove_mask, | 361 int remove_mask, |
| 361 int origin_type_mask, | 362 int origin_type_mask, |
| 362 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder, | 363 std::unique_ptr<BrowsingDataFilterBuilder> filter_builder, |
| 363 Observer* observer) { | 364 Observer* observer) { |
| 365 DCHECK_EQ(0, remove_mask & ~FILTERABLE_DATATYPES); |
| 364 DCHECK(filter_builder); | 366 DCHECK(filter_builder); |
| 365 DCHECK(observer); | 367 DCHECK(observer); |
| 366 RemoveInternal(time_range, remove_mask, origin_type_mask, | 368 RemoveInternal(time_range, remove_mask, origin_type_mask, |
| 367 std::move(filter_builder), observer); | 369 std::move(filter_builder), observer); |
| 368 } | 370 } |
| 369 | 371 |
| 370 void BrowsingDataRemover::RemoveInternal( | 372 void BrowsingDataRemover::RemoveInternal( |
| 371 const TimeRange& time_range, | 373 const TimeRange& time_range, |
| 372 int remove_mask, | 374 int remove_mask, |
| 373 int origin_type_mask, | 375 int origin_type_mask, |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 409 removal_task.remove_mask, | 411 removal_task.remove_mask, |
| 410 *removal_task.filter_builder, | 412 *removal_task.filter_builder, |
| 411 removal_task.origin_type_mask); | 413 removal_task.origin_type_mask); |
| 412 } | 414 } |
| 413 | 415 |
| 414 void BrowsingDataRemover::RemoveImpl( | 416 void BrowsingDataRemover::RemoveImpl( |
| 415 const TimeRange& time_range, | 417 const TimeRange& time_range, |
| 416 int remove_mask, | 418 int remove_mask, |
| 417 const BrowsingDataFilterBuilder& filter_builder, | 419 const BrowsingDataFilterBuilder& filter_builder, |
| 418 int origin_type_mask) { | 420 int origin_type_mask) { |
| 421 // =============== README before adding more storage backends =============== |
| 422 // |
| 423 // If you're adding a data storage backend that is included among |
| 424 // RemoveDataMask::FILTERABLE_DATATYPES, you must do one of the following: |
| 425 // 1. Support one of the filters generated by |filter_builder|. |
| 426 // 2. Add a comment explaining why is it acceptable in your case to delete all |
| 427 // data without filtering URLs / origins / domains. |
| 428 // 3. Do not support partial deletion, i.e. only delete your data if |
| 429 // |filter_builder.IsEmptyBlacklist()|. Add a comment explaining why this |
| 430 // is acceptable. |
| 419 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 431 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 420 waiting_for_synchronous_clear_operations_ = true; | 432 waiting_for_synchronous_clear_operations_ = true; |
| 421 | 433 |
| 422 // crbug.com/140910: Many places were calling this with base::Time() as | 434 // crbug.com/140910: Many places were calling this with base::Time() as |
| 423 // delete_end, even though they should've used base::Time::Max(). | 435 // delete_end, even though they should've used base::Time::Max(). |
| 424 DCHECK_NE(base::Time(), time_range.end); | 436 DCHECK_NE(base::Time(), time_range.end); |
| 425 | 437 |
| 426 delete_begin_ = time_range.begin; | 438 delete_begin_ = time_range.begin; |
| 427 delete_end_ = time_range.end; | 439 delete_end_ = time_range.end; |
| 428 remove_mask_ = remove_mask; | 440 remove_mask_ = remove_mask; |
| (...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1015 cryptohome::Identification(user->GetAccountId()), | 1027 cryptohome::Identification(user->GetAccountId()), |
| 1016 chromeos::attestation::kContentProtectionKeyPrefix, | 1028 chromeos::attestation::kContentProtectionKeyPrefix, |
| 1017 base::Bind(&BrowsingDataRemover::OnClearPlatformKeys, | 1029 base::Bind(&BrowsingDataRemover::OnClearPlatformKeys, |
| 1018 weak_ptr_factory_.GetWeakPtr())); | 1030 weak_ptr_factory_.GetWeakPtr())); |
| 1019 waiting_for_clear_platform_keys_ = true; | 1031 waiting_for_clear_platform_keys_ = true; |
| 1020 } | 1032 } |
| 1021 #endif // defined(OS_CHROMEOS) | 1033 #endif // defined(OS_CHROMEOS) |
| 1022 #endif // defined(ENABLE_PLUGINS) | 1034 #endif // defined(ENABLE_PLUGINS) |
| 1023 } | 1035 } |
| 1024 | 1036 |
| 1025 // Remove omnibox zero-suggest cache results. | 1037 // Remove omnibox zero-suggest cache results. Filtering is not supported. |
| 1038 // This is not a problem, as deleting more data than necessary will just cause |
| 1039 // another server round-trip; no data is actually lost. |
| 1026 if ((remove_mask & (REMOVE_CACHE | REMOVE_COOKIES))) | 1040 if ((remove_mask & (REMOVE_CACHE | REMOVE_COOKIES))) |
| 1027 prefs->SetString(omnibox::kZeroSuggestCachedResults, std::string()); | 1041 prefs->SetString(omnibox::kZeroSuggestCachedResults, std::string()); |
| 1028 | 1042 |
| 1029 if (remove_mask & (REMOVE_COOKIES | REMOVE_HISTORY)) { | 1043 if (remove_mask & (REMOVE_COOKIES | REMOVE_HISTORY)) { |
| 1030 domain_reliability::DomainReliabilityService* service = | 1044 domain_reliability::DomainReliabilityService* service = |
| 1031 domain_reliability::DomainReliabilityServiceFactory:: | 1045 domain_reliability::DomainReliabilityServiceFactory:: |
| 1032 GetForBrowserContext(profile_); | 1046 GetForBrowserContext(profile_); |
| 1033 if (service) { | 1047 if (service) { |
| 1034 domain_reliability::DomainReliabilityClearMode mode; | 1048 domain_reliability::DomainReliabilityClearMode mode; |
| 1035 if (remove_mask & REMOVE_COOKIES) | 1049 if (remove_mask & REMOVE_COOKIES) |
| (...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1411 waiting_for_clear_offline_page_data_ = false; | 1425 waiting_for_clear_offline_page_data_ = false; |
| 1412 NotifyIfDone(); | 1426 NotifyIfDone(); |
| 1413 } | 1427 } |
| 1414 #endif | 1428 #endif |
| 1415 | 1429 |
| 1416 void BrowsingDataRemover::OnClearedDomainReliabilityMonitor() { | 1430 void BrowsingDataRemover::OnClearedDomainReliabilityMonitor() { |
| 1417 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 1431 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 1418 waiting_for_clear_domain_reliability_monitor_ = false; | 1432 waiting_for_clear_domain_reliability_monitor_ = false; |
| 1419 NotifyIfDone(); | 1433 NotifyIfDone(); |
| 1420 } | 1434 } |
| OLD | NEW |