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 |