| Index: chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
| diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
| index ceb6cd335a27e2023b052235c74274fd24f05e4e..0bed805f82d29e9b9ef63a94044a9069129d86f9 100644
|
| --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
| +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
| @@ -9,6 +9,7 @@
|
| #include <utility>
|
|
|
| #include "base/callback.h"
|
| +#include "base/stl_util.h"
|
| #include "chrome/browser/autofill/personal_data_manager_factory.h"
|
| #include "chrome/browser/bookmarks/bookmark_model_factory.h"
|
| #include "chrome/browser/browser_process.h"
|
| @@ -116,6 +117,7 @@ using base::UserMetricsAction;
|
| using content::BrowserContext;
|
| using content::BrowserThread;
|
| using content::BrowsingDataFilterBuilder;
|
| +using content::BrowsingDataType;
|
|
|
| namespace {
|
|
|
| @@ -311,7 +313,7 @@ ChromeBrowsingDataRemoverDelegate::~ChromeBrowsingDataRemoverDelegate() {
|
| void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| const base::Time& delete_begin,
|
| const base::Time& delete_end,
|
| - int remove_mask,
|
| + const std::set<const content::BrowsingDataType*>& remove_mask,
|
| const BrowsingDataFilterBuilder& filter_builder,
|
| int origin_type_mask,
|
| const base::Closure& callback) {
|
| @@ -341,13 +343,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| // All the UI entry points into the BrowsingDataRemoverImpl should be
|
| // disabled, but this will fire if something was missed or added.
|
| DCHECK(may_delete_history ||
|
| - (remove_mask & BrowsingDataRemover::REMOVE_NOCHECKS) ||
|
| - (!(remove_mask & BrowsingDataRemover::REMOVE_HISTORY) &&
|
| - !(remove_mask & BrowsingDataRemover::REMOVE_DOWNLOADS)));
|
| + base::ContainsValue(remove_mask, &kBrowsingDataTypeNoChecks) ||
|
| + (!base::ContainsValue(remove_mask, &kBrowsingDataTypeHistory) &&
|
| + !base::ContainsValue(remove_mask, &kBrowsingDataTypeDownloads)));
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| - // REMOVE_HISTORY
|
| - if ((remove_mask & BrowsingDataRemover::REMOVE_HISTORY) &&
|
| + // kBrowsingDataTypeHistory
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypeHistory) &&
|
| may_delete_history) {
|
| history::HistoryService* history_service =
|
| HistoryServiceFactory::GetForProfile(
|
| @@ -572,8 +574,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| - // REMOVE_DOWNLOADS
|
| - if ((remove_mask & BrowsingDataRemover::REMOVE_DOWNLOADS) &&
|
| + // kBrowsingDataTypeDownloads
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypeDownloads) &&
|
| may_delete_history) {
|
| DownloadPrefs* download_prefs = DownloadPrefs::FromDownloadManager(
|
| BrowserContext::GetDownloadManager(profile_));
|
| @@ -581,13 +583,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| - // REMOVE_COOKIES
|
| - // We ignore the REMOVE_COOKIES request if UNPROTECTED_WEB is not set,
|
| - // so that callers who request REMOVE_SITE_DATA with PROTECTED_WEB
|
| + // kBrowsingDataTypeCookies
|
| + // We ignore the kBrowsingDataTypeCookies request if UNPROTECTED_WEB is not
|
| + // set, so that callers who request site data with PROTECTED_WEB
|
| // don't accidentally remove the cookies that are associated with the
|
| // UNPROTECTED_WEB origin. This is necessary because cookies are not separated
|
| // between UNPROTECTED_WEB and PROTECTED_WEB.
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_COOKIES &&
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypeCookies) &&
|
| origin_type_mask & BrowsingDataHelper::UNPROTECTED_WEB) {
|
| content::RecordAction(UserMetricsAction("ClearBrowsingData_Cookies"));
|
|
|
| @@ -631,8 +633,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| - // REMOVE_DURABLE_PERMISSION
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_DURABLE_PERMISSION) {
|
| + // kRemoveDurablePermission
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypeDurablePermission)) {
|
| HostContentSettingsMapFactory::GetForProfile(profile_)
|
| ->ClearSettingsForOneTypeWithPredicate(
|
| CONTENT_SETTINGS_TYPE_DURABLE_STORAGE,
|
| @@ -640,16 +642,16 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| - // REMOVE_SITE_USAGE_DATA
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_SITE_USAGE_DATA) {
|
| + // kRemoveSiteUsageData
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypeSiteUsageData)) {
|
| HostContentSettingsMapFactory::GetForProfile(profile_)
|
| ->ClearSettingsForOneTypeWithPredicate(
|
| CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT,
|
| base::Bind(&WebsiteSettingsFilterAdapter, filter));
|
| }
|
|
|
| - if ((remove_mask & BrowsingDataRemover::REMOVE_SITE_USAGE_DATA) ||
|
| - (remove_mask & BrowsingDataRemover::REMOVE_HISTORY)) {
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypeSiteUsageData) ||
|
| + base::ContainsValue(remove_mask, &kBrowsingDataTypeHistory)) {
|
| HostContentSettingsMapFactory::GetForProfile(profile_)
|
| ->ClearSettingsForOneTypeWithPredicate(
|
| CONTENT_SETTINGS_TYPE_APP_BANNER,
|
| @@ -661,7 +663,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| // Password manager
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_PASSWORDS) {
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypePasswords)) {
|
| content::RecordAction(UserMetricsAction("ClearBrowsingData_Passwords"));
|
| password_manager::PasswordStore* password_store =
|
| PasswordStoreFactory::GetForProfile(
|
| @@ -685,7 +687,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| clear_http_auth_cache_.GetCompletionCallback());
|
| }
|
|
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_COOKIES) {
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypeCookies)) {
|
| password_manager::PasswordStore* password_store =
|
| PasswordStoreFactory::GetForProfile(profile_,
|
| ServiceAccessType::EXPLICIT_ACCESS)
|
| @@ -698,7 +700,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| }
|
| }
|
|
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_HISTORY) {
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypeHistory)) {
|
| password_manager::PasswordStore* password_store =
|
| PasswordStoreFactory::GetForProfile(
|
| profile_, ServiceAccessType::EXPLICIT_ACCESS).get();
|
| @@ -712,9 +714,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| - // REMOVE_FORM_DATA
|
| + // kRemoveFormData
|
| // TODO(dmurph): Support all backends with filter (crbug.com/113621).
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_FORM_DATA) {
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypeFormData)) {
|
| content::RecordAction(UserMetricsAction("ClearBrowsingData_Autofill"));
|
| scoped_refptr<autofill::AutofillWebDataService> web_data_service =
|
| WebDataServiceFactory::GetAutofillWebDataForProfile(
|
| @@ -740,8 +742,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| - // REMOVE_CACHE
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_CACHE) {
|
| + // kRemoveCache
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypeCache)) {
|
| #if !defined(DISABLE_NACL)
|
| clear_nacl_cache_.Start();
|
|
|
| @@ -797,7 +799,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| #if defined(OS_ANDROID)
|
| // For now we're considering offline pages as cache, so if we're removing
|
| // cache we should remove offline pages as well.
|
| - if ((remove_mask & BrowsingDataRemover::REMOVE_CACHE)) {
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypeCache)) {
|
| clear_offline_page_data_.Start();
|
| offline_pages::OfflinePageModelFactory::GetForBrowserContext(profile_)
|
| ->DeleteCachedPagesByURLPredicate(
|
| @@ -821,7 +823,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| #if BUILDFLAG(ENABLE_PLUGINS)
|
| // Plugin is data not separated for protected and unprotected web origins. We
|
| // check the origin_type_mask_ to prevent unintended deletion.
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_PLUGIN_DATA &&
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypePluginData) &&
|
| origin_type_mask & BrowsingDataHelper::UNPROTECTED_WEB) {
|
| content::RecordAction(UserMetricsAction("ClearBrowsingData_LSOData"));
|
| clear_plugin_data_count_ = 1;
|
| @@ -849,8 +851,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| #endif
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| - // REMOVE_MEDIA_LICENSES
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_MEDIA_LICENSES) {
|
| + // kBrowsingDataTypeMediaLicenses
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypeMediaLicenses)) {
|
| // TODO(jrummell): This UMA should be renamed to indicate it is for Media
|
| // Licenses.
|
| content::RecordAction(
|
| @@ -891,21 +893,21 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| // Remove omnibox zero-suggest cache results. Filtering is not supported.
|
| // This is not a problem, as deleting more data than necessary will just cause
|
| // another server round-trip; no data is actually lost.
|
| - if ((remove_mask & (BrowsingDataRemover::REMOVE_CACHE |
|
| - BrowsingDataRemover::REMOVE_COOKIES))) {
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypeCache) ||
|
| + base::ContainsValue(remove_mask, &kBrowsingDataTypeCookies)) {
|
| prefs->SetString(omnibox::kZeroSuggestCachedResults, std::string());
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| // Domain reliability service.
|
| - if (remove_mask & (BrowsingDataRemover::REMOVE_COOKIES |
|
| - BrowsingDataRemover::REMOVE_HISTORY)) {
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypeCookies) ||
|
| + base::ContainsValue(remove_mask, &kBrowsingDataTypeHistory)) {
|
| domain_reliability::DomainReliabilityService* service =
|
| domain_reliability::DomainReliabilityServiceFactory::
|
| GetForBrowserContext(profile_);
|
| if (service) {
|
| domain_reliability::DomainReliabilityClearMode mode;
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_COOKIES)
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypeCookies))
|
| mode = domain_reliability::CLEAR_CONTEXTS;
|
| else
|
| mode = domain_reliability::CLEAR_BEACONS;
|
| @@ -919,17 +921,19 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| - // REMOVE_WEBAPP_DATA
|
| +// kBrowsingDataTypeWebappData
|
| #if defined(OS_ANDROID)
|
| // Clear all data associated with registered webapps.
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_WEBAPP_DATA)
|
| + if (base::ContainsValue(remove_mask, &kBrowsingDataTypeWebAppData))
|
| webapp_registry_->UnregisterWebappsForUrls(filter);
|
| #endif
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| // Remove external protocol data.
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_EXTERNAL_PROTOCOL_DATA)
|
| + if (base::ContainsValue(remove_mask,
|
| + &kBrowsingDataTypeExternalProtocolData)) {
|
| ExternalProtocolHandler::ClearData(profile_);
|
| + }
|
|
|
| synchronous_clear_operations_.GetCompletionCallback().Run();
|
| }
|
|
|