| Index: chrome/browser/chrome_content_browser_client.cc | 
| diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc | 
| index 5912d5771b59d834fabdce9579bd1da893d845e1..1c11987d2c75475c7c7c3d76e62b1fd64f6f6feb 100644 | 
| --- a/chrome/browser/chrome_content_browser_client.cc | 
| +++ b/chrome/browser/chrome_content_browser_client.cc | 
| @@ -37,6 +37,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/budget_service/budget_service_impl.h" | 
| #include "chrome/browser/chrome_content_browser_client_parts.h" | 
| #include "chrome/browser/chrome_quota_permission_context.h" | 
| @@ -2713,8 +2714,7 @@ void ChromeContentBrowserClient::ClearCache(RenderFrameHost* rfh) { | 
| rfh->GetSiteInstance()->GetProcess()->GetBrowserContext()); | 
| BrowsingDataRemover* remover = | 
| BrowsingDataRemoverFactory::GetForBrowserContext(profile); | 
| -  remover->Remove(base::Time(), base::Time::Max(), | 
| -                  BrowsingDataRemover::REMOVE_CACHE, | 
| +  remover->Remove(base::Time(), base::Time::Max(), {&kBrowsingDataTypeCache}, | 
| BrowsingDataHelper::UNPROTECTED_WEB); | 
| } | 
|  | 
| @@ -2723,8 +2723,8 @@ void ChromeContentBrowserClient::ClearCookies(RenderFrameHost* rfh) { | 
| rfh->GetSiteInstance()->GetProcess()->GetBrowserContext()); | 
| BrowsingDataRemover* remover = | 
| BrowsingDataRemoverFactory::GetForBrowserContext(profile); | 
| -  int remove_mask = BrowsingDataRemover::REMOVE_SITE_DATA; | 
| -  remover->Remove(base::Time(), base::Time::Max(), remove_mask, | 
| +  remover->Remove(base::Time(), base::Time::Max(), | 
| +                  BrowsingDataTypeSetSiteData(), | 
| BrowsingDataHelper::UNPROTECTED_WEB); | 
| } | 
|  | 
| @@ -2761,29 +2761,30 @@ void ChromeContentBrowserClient::ClearSiteData( | 
| BrowsingDataFilterBuilder::WHITELIST)); | 
| domain_filter_builder->AddRegisterableDomain(domain); | 
|  | 
| +    std::set<const content::BrowsingDataType*> remove_mask; | 
| +    remove_mask.insert(&kBrowsingDataTypeCookies); | 
| +    remove_mask.insert(&kBrowsingDataTypeChannelIDs); | 
| +    remove_mask.insert(&kBrowsingDataTypePluginData); | 
| remover->RemoveWithFilterAndReply( | 
| -        base::Time(), base::Time::Max(), | 
| -        BrowsingDataRemover::REMOVE_COOKIES | | 
| -            BrowsingDataRemover::REMOVE_CHANNEL_IDS | | 
| -            BrowsingDataRemover::REMOVE_PLUGIN_DATA, | 
| -        BrowsingDataHelper::ALL, std::move(domain_filter_builder), observer); | 
| +        base::Time(), base::Time::Max(), remove_mask, BrowsingDataHelper::ALL, | 
| +        std::move(domain_filter_builder), observer); | 
| } else { | 
| // The first removal task is a no-op. | 
| observer->OnBrowsingDataRemoverDone(); | 
| } | 
|  | 
| // Delete origin-scoped data. | 
| -  int remove_mask = 0; | 
| +  std::set<const content::BrowsingDataType*> remove_mask; | 
| if (remove_storage) { | 
| -    remove_mask |= BrowsingDataRemover::REMOVE_SITE_DATA & | 
| -                   ~BrowsingDataRemover::REMOVE_COOKIES & | 
| -                   ~BrowsingDataRemover::REMOVE_CHANNEL_IDS & | 
| -                   ~BrowsingDataRemover::REMOVE_PLUGIN_DATA; | 
| +    remove_mask = BrowsingDataTypeSetSiteData(); | 
| +    remove_mask.erase(&kBrowsingDataTypeCookies); | 
| +    remove_mask.erase(&kBrowsingDataTypeChannelIDs); | 
| +    remove_mask.erase(&kBrowsingDataTypePluginData); | 
| } | 
| if (remove_cache) | 
| -    remove_mask |= BrowsingDataRemover::REMOVE_CACHE; | 
| +    remove_mask.insert(&kBrowsingDataTypeCache); | 
|  | 
| -  if (remove_mask) { | 
| +  if (!remove_mask.empty()) { | 
| std::unique_ptr<BrowsingDataFilterBuilder> origin_filter_builder( | 
| BrowsingDataFilterBuilder::Create( | 
| BrowsingDataFilterBuilder::WHITELIST)); | 
|  |