Index: chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc |
diff --git a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc |
index 6d263d8ca56762c400a4828244b9a1e76c2a838c..0c4ef1398d244054f22bb1d4893ea09f6ccdcf25 100644 |
--- a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc |
+++ b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc |
@@ -6,6 +6,8 @@ |
#include <stddef.h> |
+#include <set> |
+ |
#include "base/macros.h" |
#include "base/memory/ptr_util.h" |
#include "base/metrics/histogram_macros.h" |
@@ -14,6 +16,7 @@ |
#include "chrome/browser/browsing_data/browsing_data_counter_utils.h" |
#include "chrome/browser/browsing_data/browsing_data_helper.h" |
#include "chrome/browser/browsing_data/browsing_data_remover_factory.h" |
+#include "chrome/browser/browsing_data/chrome_browsing_data_types.h" |
#include "chrome/browser/history/web_history_service_factory.h" |
#include "chrome/browser/sync/profile_sync_service_factory.h" |
#include "chrome/common/channel_info.h" |
@@ -122,42 +125,43 @@ void ClearBrowsingDataHandler::HandleClearBrowsingData( |
PrefService* prefs = profile_->GetPrefs(); |
- int site_data_mask = BrowsingDataRemover::REMOVE_SITE_DATA; |
- // Don't try to clear LSO data if it's not supported. |
- if (!prefs->GetBoolean(prefs::kClearPluginLSODataEnabled)) |
- site_data_mask &= ~BrowsingDataRemover::REMOVE_PLUGIN_DATA; |
- |
- int remove_mask = 0; |
+ std::set<const content::BrowsingDataType*> remove_mask; |
if (prefs->GetBoolean(prefs::kAllowDeletingBrowserHistory)) { |
if (prefs->GetBoolean(browsing_data::prefs::kDeleteBrowsingHistory)) |
- remove_mask |= BrowsingDataRemover::REMOVE_HISTORY; |
+ remove_mask.insert(&kBrowsingDataTypeHistory); |
if (prefs->GetBoolean(browsing_data::prefs::kDeleteDownloadHistory)) |
- remove_mask |= BrowsingDataRemover::REMOVE_DOWNLOADS; |
+ remove_mask.insert(&kBrowsingDataTypeDownloads); |
} |
if (prefs->GetBoolean(browsing_data::prefs::kDeleteCache)) |
- remove_mask |= BrowsingDataRemover::REMOVE_CACHE; |
+ remove_mask.insert(&kBrowsingDataTypeCache); |
int origin_mask = 0; |
if (prefs->GetBoolean(browsing_data::prefs::kDeleteCookies)) { |
- remove_mask |= site_data_mask; |
+ remove_mask.insert(BrowsingDataTypeSetSiteData().begin(), |
+ BrowsingDataTypeSetSiteData().end()); |
origin_mask |= BrowsingDataHelper::UNPROTECTED_WEB; |
} |
if (prefs->GetBoolean(browsing_data::prefs::kDeletePasswords)) |
- remove_mask |= BrowsingDataRemover::REMOVE_PASSWORDS; |
+ remove_mask.insert(&kBrowsingDataTypePasswords); |
if (prefs->GetBoolean(browsing_data::prefs::kDeleteFormData)) |
- remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA; |
+ remove_mask.insert(&kBrowsingDataTypeFormData); |
if (prefs->GetBoolean(browsing_data::prefs::kDeleteMediaLicenses)) |
- remove_mask |= BrowsingDataRemover::REMOVE_MEDIA_LICENSES; |
+ remove_mask.insert(&kBrowsingDataTypeMediaLicenses); |
if (prefs->GetBoolean(browsing_data::prefs::kDeleteHostedAppsData)) { |
- remove_mask |= site_data_mask; |
+ remove_mask.insert(BrowsingDataTypeSetSiteData().begin(), |
+ BrowsingDataTypeSetSiteData().end()); |
origin_mask |= BrowsingDataHelper::PROTECTED_WEB; |
} |
+ // Don't try to clear LSO data if it's not supported. |
+ if (!prefs->GetBoolean(prefs::kClearPluginLSODataEnabled)) |
+ remove_mask.erase(&kBrowsingDataTypePluginData); |
+ |
// Record the deletion of cookies and cache. |
BrowsingDataRemover::CookieOrCacheDeletionChoice choice = |
BrowsingDataRemover::NEITHER_COOKIES_NOR_CACHE; |