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