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 |