Index: components/content_settings/core/browser/host_content_settings_map.cc |
diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc |
index 303ec9855df7551c4c7d78eabbf5190e8278c968..f3e73cb655d126a38a52da65dfbc585cc0c8198d 100644 |
--- a/components/content_settings/core/browser/host_content_settings_map.cc |
+++ b/components/content_settings/core/browser/host_content_settings_map.cc |
@@ -525,6 +525,24 @@ void HostContentSettingsMap::ClearSettingsForOneType( |
FlushLossyWebsiteSettings(); |
} |
+void HostContentSettingsMap::ClearSettingsForOneTypeWithPredicate( |
+ ContentSettingsType content_type, |
+ const base::Callback< |
+ bool(const ContentSettingsPattern& primary_pattern, |
+ const ContentSettingsPattern& secondary_pattern)> predicate) { |
+ UsedContentSettingsProviders(); |
+ ContentSettingsForOneType settings; |
+ GetSettingsForOneType(content_type, std::string(), &settings); |
+ for (const ContentSettingPatternSource& setting : settings) { |
+ if (predicate.Run(setting.primary_pattern, setting.secondary_pattern)) { |
+ SetWebsiteSettingCustomScope(setting.primary_pattern, |
+ setting.secondary_pattern, content_type, |
+ std::string(), nullptr); |
+ } |
+ } |
+ FlushLossyWebsiteSettings(); |
+} |
+ |
// TODO(raymes): Remove this function. Consider making it a property of |
// ContentSettingsInfo or removing it altogether (it's unclear whether we should |
// be restricting allowed default values at this layer). |