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

Unified 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 side-by-side diff with in-line comments
Download patch
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();
}

Powered by Google App Engine
This is Rietveld 408576698