| 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;
|
|
|