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

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

Issue 2221143003: Formalize the restrictions of BrowsingDataRemover::RemoveWithFilter() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Explicit task count. Created 4 years, 4 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
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/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
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698