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