Index: chrome/browser/ui/webui/options/clear_browser_data_handler.cc |
diff --git a/chrome/browser/ui/webui/options/clear_browser_data_handler.cc b/chrome/browser/ui/webui/options/clear_browser_data_handler.cc |
index e159a35149a771adab1bb97e9cf3217f2f57b843..6724f53404900140ccae5a9c0d7a92e00d101baa 100644 |
--- a/chrome/browser/ui/webui/options/clear_browser_data_handler.cc |
+++ b/chrome/browser/ui/webui/options/clear_browser_data_handler.cc |
@@ -7,6 +7,7 @@ |
#include <stddef.h> |
#include <memory> |
+#include <set> |
#include <utility> |
#include "base/bind.h" |
@@ -26,6 +27,7 @@ |
#include "chrome/browser/browsing_data/browsing_data_helper.h" |
#include "chrome/browser/browsing_data/browsing_data_remover.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/prefs/incognito_mode_prefs.h" |
#include "chrome/browser/profiles/profile.h" |
@@ -248,38 +250,39 @@ void ClearBrowserDataHandler::HandleClearBrowserData( |
Profile* profile = Profile::FromWebUI(web_ui()); |
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 (!*clear_plugin_lso_data_enabled_) |
- site_data_mask &= ~BrowsingDataRemover::REMOVE_PLUGIN_DATA; |
- |
- int remove_mask = 0; |
+ std::set<const content::BrowsingDataType*> remove_mask; |
int origin_mask = 0; |
if (prefs->GetBoolean(browsing_data::prefs::kDeleteBrowsingHistory) && |
*allow_deleting_browser_history_) { |
- remove_mask |= BrowsingDataRemover::REMOVE_HISTORY; |
+ remove_mask.insert(&kBrowsingDataTypeHistory); |
} |
if (prefs->GetBoolean(browsing_data::prefs::kDeleteDownloadHistory) && |
*allow_deleting_browser_history_) { |
- 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); |
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 (!*clear_plugin_lso_data_enabled_) |
+ remove_mask.erase(&kBrowsingDataTypePluginData); |
+ |
// Record the deletion of cookies and cache. |
BrowsingDataRemover::CookieOrCacheDeletionChoice choice = |
BrowsingDataRemover::NEITHER_COOKIES_NOR_CACHE; |