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

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

Issue 2697123004: Convert RemoveDataMask from enum to pointers and split it between content and embedder (Closed)
Patch Set: Android compilation Created 3 years, 10 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/chrome_browsing_data_remover_delegate.h" 5 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 10
11 #include "base/callback.h" 11 #include "base/callback.h"
12 #include "base/stl_util.h"
12 #include "chrome/browser/autofill/personal_data_manager_factory.h" 13 #include "chrome/browser/autofill/personal_data_manager_factory.h"
13 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 14 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
14 #include "chrome/browser/browser_process.h" 15 #include "chrome/browser/browser_process.h"
15 #include "chrome/browser/browsing_data/browsing_data_helper.h" 16 #include "chrome/browser/browsing_data/browsing_data_helper.h"
16 #include "chrome/browser/chrome_notification_types.h" 17 #include "chrome/browser/chrome_notification_types.h"
17 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" 18 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
18 #include "chrome/browser/domain_reliability/service_factory.h" 19 #include "chrome/browser/domain_reliability/service_factory.h"
19 #include "chrome/browser/download/download_prefs.h" 20 #include "chrome/browser/download/download_prefs.h"
20 #include "chrome/browser/external_protocol/external_protocol_handler.h" 21 #include "chrome/browser/external_protocol/external_protocol_handler.h"
21 #include "chrome/browser/history/history_service_factory.h" 22 #include "chrome/browser/history/history_service_factory.h"
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 #endif 110 #endif
110 111
111 #if BUILDFLAG(ENABLE_PLUGINS) 112 #if BUILDFLAG(ENABLE_PLUGINS)
112 #include "chrome/browser/browsing_data/browsing_data_flash_lso_helper.h" 113 #include "chrome/browser/browsing_data/browsing_data_flash_lso_helper.h"
113 #endif 114 #endif
114 115
115 using base::UserMetricsAction; 116 using base::UserMetricsAction;
116 using content::BrowserContext; 117 using content::BrowserContext;
117 using content::BrowserThread; 118 using content::BrowserThread;
118 using content::BrowsingDataFilterBuilder; 119 using content::BrowsingDataFilterBuilder;
120 using content::BrowsingDataType;
119 121
120 namespace { 122 namespace {
121 123
122 void UIThreadTrampolineHelper(const base::Closure& callback) { 124 void UIThreadTrampolineHelper(const base::Closure& callback) {
123 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, callback); 125 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, callback);
124 } 126 }
125 127
126 // Convenience method to create a callback that can be run on any thread and 128 // Convenience method to create a callback that can be run on any thread and
127 // will post the given |callback| back to the UI thread. 129 // will post the given |callback| back to the UI thread.
128 base::Closure UIThreadTrampoline(const base::Closure& callback) { 130 base::Closure UIThreadTrampoline(const base::Closure& callback) {
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 weak_ptr_factory_(this) {} 306 weak_ptr_factory_(this) {}
305 307
306 ChromeBrowsingDataRemoverDelegate::~ChromeBrowsingDataRemoverDelegate() { 308 ChromeBrowsingDataRemoverDelegate::~ChromeBrowsingDataRemoverDelegate() {
307 history_task_tracker_.TryCancelAll(); 309 history_task_tracker_.TryCancelAll();
308 template_url_sub_.reset(); 310 template_url_sub_.reset();
309 } 311 }
310 312
311 void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( 313 void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
312 const base::Time& delete_begin, 314 const base::Time& delete_begin,
313 const base::Time& delete_end, 315 const base::Time& delete_end,
314 int remove_mask, 316 const std::set<const content::BrowsingDataType*>& remove_mask,
315 const BrowsingDataFilterBuilder& filter_builder, 317 const BrowsingDataFilterBuilder& filter_builder,
316 int origin_type_mask, 318 int origin_type_mask,
317 const base::Closure& callback) { 319 const base::Closure& callback) {
318 ////////////////////////////////////////////////////////////////////////////// 320 //////////////////////////////////////////////////////////////////////////////
319 // INITIALIZATION 321 // INITIALIZATION
320 synchronous_clear_operations_.Start(); 322 synchronous_clear_operations_.Start();
321 callback_ = callback; 323 callback_ = callback;
322 324
323 delete_begin_ = delete_begin; 325 delete_begin_ = delete_begin;
324 delete_end_ = delete_end; 326 delete_end_ = delete_end;
325 327
326 base::Callback<bool(const GURL& url)> filter = 328 base::Callback<bool(const GURL& url)> filter =
327 filter_builder.BuildGeneralFilter(); 329 filter_builder.BuildGeneralFilter();
328 330
329 // Some backends support a filter that |is_null()| to make complete deletion 331 // Some backends support a filter that |is_null()| to make complete deletion
330 // more efficient. 332 // more efficient.
331 base::Callback<bool(const GURL&)> nullable_filter = 333 base::Callback<bool(const GURL&)> nullable_filter =
332 filter_builder.IsEmptyBlacklist() ? base::Callback<bool(const GURL&)>() 334 filter_builder.IsEmptyBlacklist() ? base::Callback<bool(const GURL&)>()
333 : filter; 335 : filter;
334 336
335 // Managed devices and supervised users can have restrictions on history 337 // Managed devices and supervised users can have restrictions on history
336 // deletion. 338 // deletion.
337 PrefService* prefs = profile_->GetPrefs(); 339 PrefService* prefs = profile_->GetPrefs();
338 bool may_delete_history = prefs->GetBoolean( 340 bool may_delete_history = prefs->GetBoolean(
339 prefs::kAllowDeletingBrowserHistory); 341 prefs::kAllowDeletingBrowserHistory);
340 342
341 // All the UI entry points into the BrowsingDataRemoverImpl should be 343 // All the UI entry points into the BrowsingDataRemoverImpl should be
342 // disabled, but this will fire if something was missed or added. 344 // disabled, but this will fire if something was missed or added.
343 DCHECK(may_delete_history || 345 DCHECK(may_delete_history ||
344 (remove_mask & BrowsingDataRemover::REMOVE_NOCHECKS) || 346 base::ContainsValue(remove_mask, &kBrowsingDataTypeNoChecks) ||
345 (!(remove_mask & BrowsingDataRemover::REMOVE_HISTORY) && 347 (!base::ContainsValue(remove_mask, &kBrowsingDataTypeHistory) &&
346 !(remove_mask & BrowsingDataRemover::REMOVE_DOWNLOADS))); 348 !base::ContainsValue(remove_mask, &kBrowsingDataTypeDownloads)));
347 349
348 ////////////////////////////////////////////////////////////////////////////// 350 //////////////////////////////////////////////////////////////////////////////
349 // REMOVE_HISTORY 351 // kBrowsingDataTypeHistory
350 if ((remove_mask & BrowsingDataRemover::REMOVE_HISTORY) && 352 if (base::ContainsValue(remove_mask, &kBrowsingDataTypeHistory) &&
351 may_delete_history) { 353 may_delete_history) {
352 history::HistoryService* history_service = 354 history::HistoryService* history_service =
353 HistoryServiceFactory::GetForProfile( 355 HistoryServiceFactory::GetForProfile(
354 profile_, ServiceAccessType::EXPLICIT_ACCESS); 356 profile_, ServiceAccessType::EXPLICIT_ACCESS);
355 if (history_service) { 357 if (history_service) {
356 // TODO(dmurph): Support all backends with filter (crbug.com/113621). 358 // TODO(dmurph): Support all backends with filter (crbug.com/113621).
357 content::RecordAction(UserMetricsAction("ClearBrowsingData_History")); 359 content::RecordAction(UserMetricsAction("ClearBrowsingData_History"));
358 clear_history_.Start(); 360 clear_history_.Start();
359 history_service->ExpireLocalAndRemoteHistoryBetween( 361 history_service->ExpireLocalAndRemoteHistoryBetween(
360 WebHistoryServiceFactory::GetForProfile(profile_), std::set<GURL>(), 362 WebHistoryServiceFactory::GetForProfile(profile_), std::set<GURL>(),
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 // Rename the method to indicate its more general usage. 567 // Rename the method to indicate its more general usage.
566 if (profile_->GetSSLHostStateDelegate()) { 568 if (profile_->GetSSLHostStateDelegate()) {
567 profile_->GetSSLHostStateDelegate()->Clear( 569 profile_->GetSSLHostStateDelegate()->Clear(
568 filter_builder.IsEmptyBlacklist() 570 filter_builder.IsEmptyBlacklist()
569 ? base::Callback<bool(const std::string&)>() 571 ? base::Callback<bool(const std::string&)>()
570 : filter_builder.BuildPluginFilter()); 572 : filter_builder.BuildPluginFilter());
571 } 573 }
572 } 574 }
573 575
574 ////////////////////////////////////////////////////////////////////////////// 576 //////////////////////////////////////////////////////////////////////////////
575 // REMOVE_DOWNLOADS 577 // kBrowsingDataTypeDownloads
576 if ((remove_mask & BrowsingDataRemover::REMOVE_DOWNLOADS) && 578 if (base::ContainsValue(remove_mask, &kBrowsingDataTypeDownloads) &&
577 may_delete_history) { 579 may_delete_history) {
578 DownloadPrefs* download_prefs = DownloadPrefs::FromDownloadManager( 580 DownloadPrefs* download_prefs = DownloadPrefs::FromDownloadManager(
579 BrowserContext::GetDownloadManager(profile_)); 581 BrowserContext::GetDownloadManager(profile_));
580 download_prefs->SetSaveFilePath(download_prefs->DownloadPath()); 582 download_prefs->SetSaveFilePath(download_prefs->DownloadPath());
581 } 583 }
582 584
583 ////////////////////////////////////////////////////////////////////////////// 585 //////////////////////////////////////////////////////////////////////////////
584 // REMOVE_COOKIES 586 // kBrowsingDataTypeCookies
585 // We ignore the REMOVE_COOKIES request if UNPROTECTED_WEB is not set, 587 // We ignore the kBrowsingDataTypeCookies request if UNPROTECTED_WEB is not
586 // so that callers who request REMOVE_SITE_DATA with PROTECTED_WEB 588 // set, so that callers who request site data with PROTECTED_WEB
587 // don't accidentally remove the cookies that are associated with the 589 // don't accidentally remove the cookies that are associated with the
588 // UNPROTECTED_WEB origin. This is necessary because cookies are not separated 590 // UNPROTECTED_WEB origin. This is necessary because cookies are not separated
589 // between UNPROTECTED_WEB and PROTECTED_WEB. 591 // between UNPROTECTED_WEB and PROTECTED_WEB.
590 if (remove_mask & BrowsingDataRemover::REMOVE_COOKIES && 592 if (base::ContainsValue(remove_mask, &kBrowsingDataTypeCookies) &&
591 origin_type_mask & BrowsingDataHelper::UNPROTECTED_WEB) { 593 origin_type_mask & BrowsingDataHelper::UNPROTECTED_WEB) {
592 content::RecordAction(UserMetricsAction("ClearBrowsingData_Cookies")); 594 content::RecordAction(UserMetricsAction("ClearBrowsingData_Cookies"));
593 595
594 // Clear the safebrowsing cookies only if time period is for "all time". It 596 // Clear the safebrowsing cookies only if time period is for "all time". It
595 // doesn't make sense to apply the time period of deleting in the last X 597 // doesn't make sense to apply the time period of deleting in the last X
596 // hours/days to the safebrowsing cookies since they aren't the result of 598 // hours/days to the safebrowsing cookies since they aren't the result of
597 // any user action. 599 // any user action.
598 if (delete_begin_ == base::Time()) { 600 if (delete_begin_ == base::Time()) {
599 safe_browsing::SafeBrowsingService* sb_service = 601 safe_browsing::SafeBrowsingService* sb_service =
600 g_browser_process->safe_browsing_service(); 602 g_browser_process->safe_browsing_service();
(...skipping 23 matching lines...) Expand all
624 &ChromeBrowsingDataRemoverDelegate::OnClearedCookies, 626 &ChromeBrowsingDataRemoverDelegate::OnClearedCookies,
625 weak_ptr_factory_.GetWeakPtr())))); 627 weak_ptr_factory_.GetWeakPtr()))));
626 } 628 }
627 } 629 }
628 } 630 }
629 631
630 MediaDeviceIDSalt::Reset(profile_->GetPrefs()); 632 MediaDeviceIDSalt::Reset(profile_->GetPrefs());
631 } 633 }
632 634
633 ////////////////////////////////////////////////////////////////////////////// 635 //////////////////////////////////////////////////////////////////////////////
634 // REMOVE_DURABLE_PERMISSION 636 // kRemoveDurablePermission
635 if (remove_mask & BrowsingDataRemover::REMOVE_DURABLE_PERMISSION) { 637 if (base::ContainsValue(remove_mask, &kBrowsingDataTypeDurablePermission)) {
636 HostContentSettingsMapFactory::GetForProfile(profile_) 638 HostContentSettingsMapFactory::GetForProfile(profile_)
637 ->ClearSettingsForOneTypeWithPredicate( 639 ->ClearSettingsForOneTypeWithPredicate(
638 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, 640 CONTENT_SETTINGS_TYPE_DURABLE_STORAGE,
639 base::Bind(&WebsiteSettingsFilterAdapter, filter)); 641 base::Bind(&WebsiteSettingsFilterAdapter, filter));
640 } 642 }
641 643
642 ////////////////////////////////////////////////////////////////////////////// 644 //////////////////////////////////////////////////////////////////////////////
643 // REMOVE_SITE_USAGE_DATA 645 // kRemoveSiteUsageData
644 if (remove_mask & BrowsingDataRemover::REMOVE_SITE_USAGE_DATA) { 646 if (base::ContainsValue(remove_mask, &kBrowsingDataTypeSiteUsageData)) {
645 HostContentSettingsMapFactory::GetForProfile(profile_) 647 HostContentSettingsMapFactory::GetForProfile(profile_)
646 ->ClearSettingsForOneTypeWithPredicate( 648 ->ClearSettingsForOneTypeWithPredicate(
647 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, 649 CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT,
648 base::Bind(&WebsiteSettingsFilterAdapter, filter)); 650 base::Bind(&WebsiteSettingsFilterAdapter, filter));
649 } 651 }
650 652
651 if ((remove_mask & BrowsingDataRemover::REMOVE_SITE_USAGE_DATA) || 653 if (base::ContainsValue(remove_mask, &kBrowsingDataTypeSiteUsageData) ||
652 (remove_mask & BrowsingDataRemover::REMOVE_HISTORY)) { 654 base::ContainsValue(remove_mask, &kBrowsingDataTypeHistory)) {
653 HostContentSettingsMapFactory::GetForProfile(profile_) 655 HostContentSettingsMapFactory::GetForProfile(profile_)
654 ->ClearSettingsForOneTypeWithPredicate( 656 ->ClearSettingsForOneTypeWithPredicate(
655 CONTENT_SETTINGS_TYPE_APP_BANNER, 657 CONTENT_SETTINGS_TYPE_APP_BANNER,
656 base::Bind(&WebsiteSettingsFilterAdapter, filter)); 658 base::Bind(&WebsiteSettingsFilterAdapter, filter));
657 659
658 PermissionDecisionAutoBlocker::GetForProfile(profile_)->RemoveCountsByUrl( 660 PermissionDecisionAutoBlocker::GetForProfile(profile_)->RemoveCountsByUrl(
659 filter); 661 filter);
660 } 662 }
661 663
662 ////////////////////////////////////////////////////////////////////////////// 664 //////////////////////////////////////////////////////////////////////////////
663 // Password manager 665 // Password manager
664 if (remove_mask & BrowsingDataRemover::REMOVE_PASSWORDS) { 666 if (base::ContainsValue(remove_mask, &kBrowsingDataTypePasswords)) {
665 content::RecordAction(UserMetricsAction("ClearBrowsingData_Passwords")); 667 content::RecordAction(UserMetricsAction("ClearBrowsingData_Passwords"));
666 password_manager::PasswordStore* password_store = 668 password_manager::PasswordStore* password_store =
667 PasswordStoreFactory::GetForProfile( 669 PasswordStoreFactory::GetForProfile(
668 profile_, ServiceAccessType::EXPLICIT_ACCESS).get(); 670 profile_, ServiceAccessType::EXPLICIT_ACCESS).get();
669 671
670 if (password_store) { 672 if (password_store) {
671 clear_passwords_.Start(); 673 clear_passwords_.Start();
672 password_store->RemoveLoginsByURLAndTime( 674 password_store->RemoveLoginsByURLAndTime(
673 filter, delete_begin_, delete_end_, 675 filter, delete_begin_, delete_end_,
674 clear_passwords_.GetCompletionCallback()); 676 clear_passwords_.GetCompletionCallback());
675 } 677 }
676 678
677 scoped_refptr<net::URLRequestContextGetter> request_context = 679 scoped_refptr<net::URLRequestContextGetter> request_context =
678 BrowserContext::GetDefaultStoragePartition(profile_) 680 BrowserContext::GetDefaultStoragePartition(profile_)
679 ->GetURLRequestContext(); 681 ->GetURLRequestContext();
680 clear_http_auth_cache_.Start(); 682 clear_http_auth_cache_.Start();
681 BrowserThread::PostTaskAndReply( 683 BrowserThread::PostTaskAndReply(
682 BrowserThread::IO, FROM_HERE, 684 BrowserThread::IO, FROM_HERE,
683 base::Bind(&ClearHttpAuthCacheOnIOThread, std::move(request_context), 685 base::Bind(&ClearHttpAuthCacheOnIOThread, std::move(request_context),
684 delete_begin_), 686 delete_begin_),
685 clear_http_auth_cache_.GetCompletionCallback()); 687 clear_http_auth_cache_.GetCompletionCallback());
686 } 688 }
687 689
688 if (remove_mask & BrowsingDataRemover::REMOVE_COOKIES) { 690 if (base::ContainsValue(remove_mask, &kBrowsingDataTypeCookies)) {
689 password_manager::PasswordStore* password_store = 691 password_manager::PasswordStore* password_store =
690 PasswordStoreFactory::GetForProfile(profile_, 692 PasswordStoreFactory::GetForProfile(profile_,
691 ServiceAccessType::EXPLICIT_ACCESS) 693 ServiceAccessType::EXPLICIT_ACCESS)
692 .get(); 694 .get();
693 695
694 if (password_store) { 696 if (password_store) {
695 clear_auto_sign_in_.Start(); 697 clear_auto_sign_in_.Start();
696 password_store->DisableAutoSignInForOrigins( 698 password_store->DisableAutoSignInForOrigins(
697 filter, clear_auto_sign_in_.GetCompletionCallback()); 699 filter, clear_auto_sign_in_.GetCompletionCallback());
698 } 700 }
699 } 701 }
700 702
701 if (remove_mask & BrowsingDataRemover::REMOVE_HISTORY) { 703 if (base::ContainsValue(remove_mask, &kBrowsingDataTypeHistory)) {
702 password_manager::PasswordStore* password_store = 704 password_manager::PasswordStore* password_store =
703 PasswordStoreFactory::GetForProfile( 705 PasswordStoreFactory::GetForProfile(
704 profile_, ServiceAccessType::EXPLICIT_ACCESS).get(); 706 profile_, ServiceAccessType::EXPLICIT_ACCESS).get();
705 707
706 if (password_store) { 708 if (password_store) {
707 clear_passwords_stats_.Start(); 709 clear_passwords_stats_.Start();
708 password_store->RemoveStatisticsByOriginAndTime( 710 password_store->RemoveStatisticsByOriginAndTime(
709 nullable_filter, delete_begin_, delete_end_, 711 nullable_filter, delete_begin_, delete_end_,
710 clear_passwords_stats_.GetCompletionCallback()); 712 clear_passwords_stats_.GetCompletionCallback());
711 } 713 }
712 } 714 }
713 715
714 ////////////////////////////////////////////////////////////////////////////// 716 //////////////////////////////////////////////////////////////////////////////
715 // REMOVE_FORM_DATA 717 // kRemoveFormData
716 // TODO(dmurph): Support all backends with filter (crbug.com/113621). 718 // TODO(dmurph): Support all backends with filter (crbug.com/113621).
717 if (remove_mask & BrowsingDataRemover::REMOVE_FORM_DATA) { 719 if (base::ContainsValue(remove_mask, &kBrowsingDataTypeFormData)) {
718 content::RecordAction(UserMetricsAction("ClearBrowsingData_Autofill")); 720 content::RecordAction(UserMetricsAction("ClearBrowsingData_Autofill"));
719 scoped_refptr<autofill::AutofillWebDataService> web_data_service = 721 scoped_refptr<autofill::AutofillWebDataService> web_data_service =
720 WebDataServiceFactory::GetAutofillWebDataForProfile( 722 WebDataServiceFactory::GetAutofillWebDataForProfile(
721 profile_, ServiceAccessType::EXPLICIT_ACCESS); 723 profile_, ServiceAccessType::EXPLICIT_ACCESS);
722 724
723 if (web_data_service.get()) { 725 if (web_data_service.get()) {
724 clear_form_.Start(); 726 clear_form_.Start();
725 web_data_service->RemoveFormElementsAddedBetween(delete_begin_, 727 web_data_service->RemoveFormElementsAddedBetween(delete_begin_,
726 delete_end_); 728 delete_end_);
727 web_data_service->RemoveAutofillDataModifiedBetween( 729 web_data_service->RemoveAutofillDataModifiedBetween(
728 delete_begin_, delete_end_); 730 delete_begin_, delete_end_);
729 // The above calls are done on the UI thread but do their work on the DB 731 // The above calls are done on the UI thread but do their work on the DB
730 // thread. So wait for it. 732 // thread. So wait for it.
731 BrowserThread::PostTaskAndReply( 733 BrowserThread::PostTaskAndReply(
732 BrowserThread::DB, FROM_HERE, base::Bind(&base::DoNothing), 734 BrowserThread::DB, FROM_HERE, base::Bind(&base::DoNothing),
733 clear_form_.GetCompletionCallback()); 735 clear_form_.GetCompletionCallback());
734 736
735 autofill::PersonalDataManager* data_manager = 737 autofill::PersonalDataManager* data_manager =
736 autofill::PersonalDataManagerFactory::GetForProfile(profile_); 738 autofill::PersonalDataManagerFactory::GetForProfile(profile_);
737 if (data_manager) 739 if (data_manager)
738 data_manager->Refresh(); 740 data_manager->Refresh();
739 } 741 }
740 } 742 }
741 743
742 ////////////////////////////////////////////////////////////////////////////// 744 //////////////////////////////////////////////////////////////////////////////
743 // REMOVE_CACHE 745 // kRemoveCache
744 if (remove_mask & BrowsingDataRemover::REMOVE_CACHE) { 746 if (base::ContainsValue(remove_mask, &kBrowsingDataTypeCache)) {
745 #if !defined(DISABLE_NACL) 747 #if !defined(DISABLE_NACL)
746 clear_nacl_cache_.Start(); 748 clear_nacl_cache_.Start();
747 749
748 BrowserThread::PostTask( 750 BrowserThread::PostTask(
749 BrowserThread::IO, FROM_HERE, 751 BrowserThread::IO, FROM_HERE,
750 base::Bind(&ClearNaClCacheOnIOThread, 752 base::Bind(&ClearNaClCacheOnIOThread,
751 UIThreadTrampoline( 753 UIThreadTrampoline(
752 clear_nacl_cache_.GetCompletionCallback()))); 754 clear_nacl_cache_.GetCompletionCallback())));
753 755
754 clear_pnacl_cache_.Start(); 756 clear_pnacl_cache_.Start();
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
790 // Network Quality Estimator (NQE) stores the quality (RTT, bandwidth 792 // Network Quality Estimator (NQE) stores the quality (RTT, bandwidth
791 // etc.) of different networks in prefs. The stored quality is not 793 // etc.) of different networks in prefs. The stored quality is not
792 // broken down by URLs or timestamps, so clearing the cache should 794 // broken down by URLs or timestamps, so clearing the cache should
793 // completely clear the prefs. 795 // completely clear the prefs.
794 ui_nqe_service->ClearPrefs(); 796 ui_nqe_service->ClearPrefs();
795 } 797 }
796 798
797 #if defined(OS_ANDROID) 799 #if defined(OS_ANDROID)
798 // For now we're considering offline pages as cache, so if we're removing 800 // For now we're considering offline pages as cache, so if we're removing
799 // cache we should remove offline pages as well. 801 // cache we should remove offline pages as well.
800 if ((remove_mask & BrowsingDataRemover::REMOVE_CACHE)) { 802 if (base::ContainsValue(remove_mask, &kBrowsingDataTypeCache)) {
801 clear_offline_page_data_.Start(); 803 clear_offline_page_data_.Start();
802 offline_pages::OfflinePageModelFactory::GetForBrowserContext(profile_) 804 offline_pages::OfflinePageModelFactory::GetForBrowserContext(profile_)
803 ->DeleteCachedPagesByURLPredicate( 805 ->DeleteCachedPagesByURLPredicate(
804 filter, 806 filter,
805 IgnoreArgument<offline_pages::OfflinePageModel::DeletePageResult>( 807 IgnoreArgument<offline_pages::OfflinePageModel::DeletePageResult>(
806 clear_offline_page_data_.GetCompletionCallback())); 808 clear_offline_page_data_.GetCompletionCallback()));
807 } 809 }
808 #endif 810 #endif
809 } 811 }
810 812
811 ////////////////////////////////////////////////////////////////////////////// 813 //////////////////////////////////////////////////////////////////////////////
812 // REMOVE_PLUGINS 814 // REMOVE_PLUGINS
813 // Plugins are known to //content and their bulk deletion is implemented in 815 // Plugins are known to //content and their bulk deletion is implemented in
814 // PluginDataRemover. However, the filtered deletion uses 816 // PluginDataRemover. However, the filtered deletion uses
815 // BrowsingDataFlashLSOHelper which (currently) has strong dependencies 817 // BrowsingDataFlashLSOHelper which (currently) has strong dependencies
816 // on //chrome. 818 // on //chrome.
817 // TODO(msramek): Investigate these dependencies and move the plugin deletion 819 // TODO(msramek): Investigate these dependencies and move the plugin deletion
818 // to BrowsingDataRemoverImpl in //content. Note that code in //content 820 // to BrowsingDataRemoverImpl in //content. Note that code in //content
819 // can simply take advantage of PluginDataRemover directly to delete plugin 821 // can simply take advantage of PluginDataRemover directly to delete plugin
820 // data in bulk. 822 // data in bulk.
821 #if BUILDFLAG(ENABLE_PLUGINS) 823 #if BUILDFLAG(ENABLE_PLUGINS)
822 // Plugin is data not separated for protected and unprotected web origins. We 824 // Plugin is data not separated for protected and unprotected web origins. We
823 // check the origin_type_mask_ to prevent unintended deletion. 825 // check the origin_type_mask_ to prevent unintended deletion.
824 if (remove_mask & BrowsingDataRemover::REMOVE_PLUGIN_DATA && 826 if (base::ContainsValue(remove_mask, &kBrowsingDataTypePluginData) &&
825 origin_type_mask & BrowsingDataHelper::UNPROTECTED_WEB) { 827 origin_type_mask & BrowsingDataHelper::UNPROTECTED_WEB) {
826 content::RecordAction(UserMetricsAction("ClearBrowsingData_LSOData")); 828 content::RecordAction(UserMetricsAction("ClearBrowsingData_LSOData"));
827 clear_plugin_data_count_ = 1; 829 clear_plugin_data_count_ = 1;
828 830
829 if (filter_builder.IsEmptyBlacklist()) { 831 if (filter_builder.IsEmptyBlacklist()) {
830 DCHECK(!plugin_data_remover_); 832 DCHECK(!plugin_data_remover_);
831 plugin_data_remover_.reset( 833 plugin_data_remover_.reset(
832 content::PluginDataRemover::Create(profile_)); 834 content::PluginDataRemover::Create(profile_));
833 base::WaitableEvent* event = 835 base::WaitableEvent* event =
834 plugin_data_remover_->StartRemoving(delete_begin_); 836 plugin_data_remover_->StartRemoving(delete_begin_);
835 837
836 base::WaitableEventWatcher::EventCallback watcher_callback = base::Bind( 838 base::WaitableEventWatcher::EventCallback watcher_callback = base::Bind(
837 &ChromeBrowsingDataRemoverDelegate::OnWaitableEventSignaled, 839 &ChromeBrowsingDataRemoverDelegate::OnWaitableEventSignaled,
838 weak_ptr_factory_.GetWeakPtr()); 840 weak_ptr_factory_.GetWeakPtr());
839 watcher_.StartWatching(event, watcher_callback); 841 watcher_.StartWatching(event, watcher_callback);
840 } else { 842 } else {
841 // TODO(msramek): Store filters from the currently executed task on the 843 // TODO(msramek): Store filters from the currently executed task on the
842 // object to avoid having to copy them to callback methods. 844 // object to avoid having to copy them to callback methods.
843 flash_lso_helper_->StartFetching(base::Bind( 845 flash_lso_helper_->StartFetching(base::Bind(
844 &ChromeBrowsingDataRemoverDelegate::OnSitesWithFlashDataFetched, 846 &ChromeBrowsingDataRemoverDelegate::OnSitesWithFlashDataFetched,
845 weak_ptr_factory_.GetWeakPtr(), 847 weak_ptr_factory_.GetWeakPtr(),
846 filter_builder.BuildPluginFilter())); 848 filter_builder.BuildPluginFilter()));
847 } 849 }
848 } 850 }
849 #endif 851 #endif
850 852
851 ////////////////////////////////////////////////////////////////////////////// 853 //////////////////////////////////////////////////////////////////////////////
852 // REMOVE_MEDIA_LICENSES 854 // kBrowsingDataTypeMediaLicenses
853 if (remove_mask & BrowsingDataRemover::REMOVE_MEDIA_LICENSES) { 855 if (base::ContainsValue(remove_mask, &kBrowsingDataTypeMediaLicenses)) {
854 // TODO(jrummell): This UMA should be renamed to indicate it is for Media 856 // TODO(jrummell): This UMA should be renamed to indicate it is for Media
855 // Licenses. 857 // Licenses.
856 content::RecordAction( 858 content::RecordAction(
857 UserMetricsAction("ClearBrowsingData_ContentLicenses")); 859 UserMetricsAction("ClearBrowsingData_ContentLicenses"));
858 860
859 #if BUILDFLAG(ENABLE_PLUGINS) 861 #if BUILDFLAG(ENABLE_PLUGINS)
860 clear_flash_content_licenses_.Start(); 862 clear_flash_content_licenses_.Start();
861 if (!pepper_flash_settings_manager_.get()) { 863 if (!pepper_flash_settings_manager_.get()) {
862 pepper_flash_settings_manager_.reset( 864 pepper_flash_settings_manager_.reset(
863 new PepperFlashSettingsManager(this, profile_)); 865 new PepperFlashSettingsManager(this, profile_));
(...skipping 20 matching lines...) Expand all
884 } 886 }
885 #endif // defined(OS_CHROMEOS) 887 #endif // defined(OS_CHROMEOS)
886 #endif // BUILDFLAG(ENABLE_PLUGINS) 888 #endif // BUILDFLAG(ENABLE_PLUGINS)
887 } 889 }
888 890
889 ////////////////////////////////////////////////////////////////////////////// 891 //////////////////////////////////////////////////////////////////////////////
890 // Zero suggest. 892 // Zero suggest.
891 // Remove omnibox zero-suggest cache results. Filtering is not supported. 893 // Remove omnibox zero-suggest cache results. Filtering is not supported.
892 // This is not a problem, as deleting more data than necessary will just cause 894 // This is not a problem, as deleting more data than necessary will just cause
893 // another server round-trip; no data is actually lost. 895 // another server round-trip; no data is actually lost.
894 if ((remove_mask & (BrowsingDataRemover::REMOVE_CACHE | 896 if (base::ContainsValue(remove_mask, &kBrowsingDataTypeCache) ||
895 BrowsingDataRemover::REMOVE_COOKIES))) { 897 base::ContainsValue(remove_mask, &kBrowsingDataTypeCookies)) {
896 prefs->SetString(omnibox::kZeroSuggestCachedResults, std::string()); 898 prefs->SetString(omnibox::kZeroSuggestCachedResults, std::string());
897 } 899 }
898 900
899 ////////////////////////////////////////////////////////////////////////////// 901 //////////////////////////////////////////////////////////////////////////////
900 // Domain reliability service. 902 // Domain reliability service.
901 if (remove_mask & (BrowsingDataRemover::REMOVE_COOKIES | 903 if (base::ContainsValue(remove_mask, &kBrowsingDataTypeCookies) ||
902 BrowsingDataRemover::REMOVE_HISTORY)) { 904 base::ContainsValue(remove_mask, &kBrowsingDataTypeHistory)) {
903 domain_reliability::DomainReliabilityService* service = 905 domain_reliability::DomainReliabilityService* service =
904 domain_reliability::DomainReliabilityServiceFactory:: 906 domain_reliability::DomainReliabilityServiceFactory::
905 GetForBrowserContext(profile_); 907 GetForBrowserContext(profile_);
906 if (service) { 908 if (service) {
907 domain_reliability::DomainReliabilityClearMode mode; 909 domain_reliability::DomainReliabilityClearMode mode;
908 if (remove_mask & BrowsingDataRemover::REMOVE_COOKIES) 910 if (base::ContainsValue(remove_mask, &kBrowsingDataTypeCookies))
909 mode = domain_reliability::CLEAR_CONTEXTS; 911 mode = domain_reliability::CLEAR_CONTEXTS;
910 else 912 else
911 mode = domain_reliability::CLEAR_BEACONS; 913 mode = domain_reliability::CLEAR_BEACONS;
912 914
913 clear_domain_reliability_monitor_.Start(); 915 clear_domain_reliability_monitor_.Start();
914 service->ClearBrowsingData( 916 service->ClearBrowsingData(
915 mode, 917 mode,
916 filter, 918 filter,
917 clear_domain_reliability_monitor_.GetCompletionCallback()); 919 clear_domain_reliability_monitor_.GetCompletionCallback());
918 } 920 }
919 } 921 }
920 922
921 ////////////////////////////////////////////////////////////////////////////// 923 //////////////////////////////////////////////////////////////////////////////
922 // REMOVE_WEBAPP_DATA 924 // kBrowsingDataTypeWebappData
923 #if defined(OS_ANDROID) 925 #if defined(OS_ANDROID)
924 // Clear all data associated with registered webapps. 926 // Clear all data associated with registered webapps.
925 if (remove_mask & BrowsingDataRemover::REMOVE_WEBAPP_DATA) 927 if (base::ContainsValue(remove_mask, &kBrowsingDataTypeWebAppData))
926 webapp_registry_->UnregisterWebappsForUrls(filter); 928 webapp_registry_->UnregisterWebappsForUrls(filter);
927 #endif 929 #endif
928 930
929 ////////////////////////////////////////////////////////////////////////////// 931 //////////////////////////////////////////////////////////////////////////////
930 // Remove external protocol data. 932 // Remove external protocol data.
931 if (remove_mask & BrowsingDataRemover::REMOVE_EXTERNAL_PROTOCOL_DATA) 933 if (base::ContainsValue(remove_mask,
934 &kBrowsingDataTypeExternalProtocolData)) {
932 ExternalProtocolHandler::ClearData(profile_); 935 ExternalProtocolHandler::ClearData(profile_);
936 }
933 937
934 synchronous_clear_operations_.GetCompletionCallback().Run(); 938 synchronous_clear_operations_.GetCompletionCallback().Run();
935 } 939 }
936 940
937 void ChromeBrowsingDataRemoverDelegate::NotifyIfDone() { 941 void ChromeBrowsingDataRemoverDelegate::NotifyIfDone() {
938 if (!AllDone()) 942 if (!AllDone())
939 return; 943 return;
940 944
941 DCHECK(!callback_.is_null()); 945 DCHECK(!callback_.is_null());
942 callback_.Run(); 946 callback_.Run();
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
1056 } 1060 }
1057 1061
1058 void ChromeBrowsingDataRemoverDelegate:: 1062 void ChromeBrowsingDataRemoverDelegate::
1059 OnDeauthorizeFlashContentLicensesCompleted( 1063 OnDeauthorizeFlashContentLicensesCompleted(
1060 uint32_t request_id, 1064 uint32_t request_id,
1061 bool /* success */) { 1065 bool /* success */) {
1062 DCHECK_EQ(request_id, deauthorize_flash_content_licenses_request_id_); 1066 DCHECK_EQ(request_id, deauthorize_flash_content_licenses_request_id_);
1063 clear_flash_content_licenses_.GetCompletionCallback().Run(); 1067 clear_flash_content_licenses_.GetCompletionCallback().Run();
1064 } 1068 }
1065 #endif 1069 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698