| 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 2e75283fc889e4db1a12f5d559f03a14ff754044..9ab6a82b8a4ee984c856564d993b1146edc8695f 100644
|
| --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
| +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
| @@ -115,6 +115,7 @@ using base::UserMetricsAction;
|
| using content::BrowserContext;
|
| using content::BrowserThread;
|
| using content::BrowsingDataFilterBuilder;
|
| +using content::BrowsingDataType;
|
|
|
| namespace {
|
|
|
| @@ -231,6 +232,12 @@ void ClearHttpAuthCacheOnIOThread(
|
| http_session->CloseAllConnections();
|
| }
|
|
|
| +inline bool MaskContains(
|
| + const std::set<const BrowsingDataType*>& remove_mask,
|
| + const BrowsingDataType* data_type) {
|
| + return remove_mask.find(data_type) != remove_mask.end();
|
| +}
|
| +
|
| } // namespace
|
|
|
| ChromeBrowsingDataRemoverDelegate::SubTask::SubTask(
|
| @@ -310,7 +317,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) {
|
| @@ -340,13 +347,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)));
|
| + MaskContains(remove_mask, &kBrowsingDataTypeNoChecks) ||
|
| + (!MaskContains(remove_mask, &kBrowsingDataTypeHistory) &&
|
| + !MaskContains(remove_mask, &kBrowsingDataTypeDownloads)));
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| - // REMOVE_HISTORY
|
| - if ((remove_mask & BrowsingDataRemover::REMOVE_HISTORY) &&
|
| + // kBrowsingDataTypeHistory
|
| + if (MaskContains(remove_mask, &kBrowsingDataTypeHistory) &&
|
| may_delete_history) {
|
| history::HistoryService* history_service =
|
| HistoryServiceFactory::GetForProfile(
|
| @@ -571,8 +578,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| - // REMOVE_DOWNLOADS
|
| - if ((remove_mask & BrowsingDataRemover::REMOVE_DOWNLOADS) &&
|
| + // kBrowsingDataTypeDownloads
|
| + if (MaskContains(remove_mask, &kBrowsingDataTypeDownloads) &&
|
| may_delete_history) {
|
| DownloadPrefs* download_prefs = DownloadPrefs::FromDownloadManager(
|
| BrowserContext::GetDownloadManager(profile_));
|
| @@ -580,13 +587,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 (MaskContains(remove_mask, &kBrowsingDataTypeCookies) &&
|
| origin_type_mask & BrowsingDataHelper::UNPROTECTED_WEB) {
|
| content::RecordAction(UserMetricsAction("ClearBrowsingData_Cookies"));
|
|
|
| @@ -630,8 +637,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| - // REMOVE_DURABLE_PERMISSION
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_DURABLE_PERMISSION) {
|
| + // kRemoveDurablePermission
|
| + if (MaskContains(remove_mask, &kBrowsingDataTypeDurablePermission)) {
|
| HostContentSettingsMapFactory::GetForProfile(profile_)
|
| ->ClearSettingsForOneTypeWithPredicate(
|
| CONTENT_SETTINGS_TYPE_DURABLE_STORAGE,
|
| @@ -639,16 +646,16 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| - // REMOVE_SITE_USAGE_DATA
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_SITE_USAGE_DATA) {
|
| + // kRemoveSiteUsageData
|
| + if (MaskContains(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 (MaskContains(remove_mask, &kBrowsingDataTypeSiteUsageData) ||
|
| + MaskContains(remove_mask, &kBrowsingDataTypeHistory)) {
|
| HostContentSettingsMapFactory::GetForProfile(profile_)
|
| ->ClearSettingsForOneTypeWithPredicate(
|
| CONTENT_SETTINGS_TYPE_APP_BANNER,
|
| @@ -660,7 +667,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| // Password manager
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_PASSWORDS) {
|
| + if (MaskContains(remove_mask, &kBrowsingDataTypePasswords)) {
|
| content::RecordAction(UserMetricsAction("ClearBrowsingData_Passwords"));
|
| password_manager::PasswordStore* password_store =
|
| PasswordStoreFactory::GetForProfile(
|
| @@ -684,7 +691,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| clear_http_auth_cache_.GetCompletionCallback());
|
| }
|
|
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_COOKIES) {
|
| + if (MaskContains(remove_mask, &kBrowsingDataTypeCookies)) {
|
| password_manager::PasswordStore* password_store =
|
| PasswordStoreFactory::GetForProfile(profile_,
|
| ServiceAccessType::EXPLICIT_ACCESS)
|
| @@ -697,7 +704,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| }
|
| }
|
|
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_HISTORY) {
|
| + if (MaskContains(remove_mask, &kBrowsingDataTypeHistory)) {
|
| password_manager::PasswordStore* password_store =
|
| PasswordStoreFactory::GetForProfile(
|
| profile_, ServiceAccessType::EXPLICIT_ACCESS).get();
|
| @@ -711,9 +718,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 (MaskContains(remove_mask, &kBrowsingDataTypeFormData)) {
|
| content::RecordAction(UserMetricsAction("ClearBrowsingData_Autofill"));
|
| scoped_refptr<autofill::AutofillWebDataService> web_data_service =
|
| WebDataServiceFactory::GetAutofillWebDataForProfile(
|
| @@ -739,8 +746,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| - // REMOVE_CACHE
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_CACHE) {
|
| + // kRemoveCache
|
| + if (MaskContains(remove_mask, &kBrowsingDataTypeCache)) {
|
| #if !defined(DISABLE_NACL)
|
| clear_nacl_cache_.Start();
|
|
|
| @@ -796,7 +803,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 (MaskContains(remove_mask, &kBrowsingDataTypeCache)) {
|
| clear_offline_page_data_.Start();
|
| offline_pages::OfflinePageModelFactory::GetForBrowserContext(profile_)
|
| ->DeleteCachedPagesByURLPredicate(
|
| @@ -820,7 +827,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 (MaskContains(remove_mask, &kBrowsingDataTypePluginData) &&
|
| origin_type_mask & BrowsingDataHelper::UNPROTECTED_WEB) {
|
| content::RecordAction(UserMetricsAction("ClearBrowsingData_LSOData"));
|
| clear_plugin_data_count_ = 1;
|
| @@ -848,8 +855,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
| #endif
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| - // REMOVE_MEDIA_LICENSES
|
| - if (remove_mask & BrowsingDataRemover::REMOVE_MEDIA_LICENSES) {
|
| + // kBrowsingDataTypeMediaLicenses
|
| + if (MaskContains(remove_mask, &kBrowsingDataTypeMediaLicenses)) {
|
| // TODO(jrummell): This UMA should be renamed to indicate it is for Media
|
| // Licenses.
|
| content::RecordAction(
|
| @@ -890,21 +897,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 (MaskContains(remove_mask, &kBrowsingDataTypeCache) ||
|
| + MaskContains(remove_mask, &kBrowsingDataTypeCookies)) {
|
| prefs->SetString(omnibox::kZeroSuggestCachedResults, std::string());
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
| // Domain reliability service.
|
| - if (remove_mask & (BrowsingDataRemover::REMOVE_COOKIES |
|
| - BrowsingDataRemover::REMOVE_HISTORY)) {
|
| + if (MaskContains(remove_mask, &kBrowsingDataTypeCookies) ||
|
| + MaskContains(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 (MaskContains(remove_mask, &kBrowsingDataTypeCookies))
|
| mode = domain_reliability::CLEAR_CONTEXTS;
|
| else
|
| mode = domain_reliability::CLEAR_BEACONS;
|
| @@ -918,10 +925,10 @@ 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 (MaskContains(remove_mask, &kBrowsingDataTypeWebAppData))
|
| webapp_registry_->UnregisterWebappsForUrls(filter);
|
| #endif
|
|
|
|
|