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 1805e9cd1b74760f6b71f821e12adf3522e6d18c..4ef44935b9d47291121a9cb5d07db2f9f3c86a9a 100644 |
--- a/components/content_settings/core/browser/host_content_settings_map.cc |
+++ b/components/content_settings/core/browser/host_content_settings_map.cc |
@@ -187,7 +187,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, |
MigrateKeygenSettings(); |
MigrateDomainScopedSettings(false); |
- RecordNumberOfExceptions(); |
+ RecordExceptionMetrics(); |
} |
// static |
@@ -600,7 +600,7 @@ base::WeakPtr<HostContentSettingsMap> HostContentSettingsMap::GetWeakPtr() { |
return weak_ptr_factory_.GetWeakPtr(); |
} |
-void HostContentSettingsMap::RecordNumberOfExceptions() { |
+void HostContentSettingsMap::RecordExceptionMetrics() { |
for (const content_settings::WebsiteSettingsInfo* info : |
*content_settings::WebsiteSettingsRegistry::GetInstance()) { |
ContentSettingsType content_type = info->type(); |
@@ -610,6 +610,17 @@ void HostContentSettingsMap::RecordNumberOfExceptions() { |
GetSettingsForOneType(content_type, std::string(), &settings); |
size_t num_exceptions = 0; |
for (const ContentSettingPatternSource& setting_entry : settings) { |
+ // Skip default settings. |
+ if (setting_entry.primary_pattern == ContentSettingsPattern::Wildcard() && |
+ setting_entry.secondary_pattern == |
+ ContentSettingsPattern::Wildcard()) { |
+ continue; |
+ } |
+ |
+ UMA_HISTOGRAM_ENUMERATION("ContentSettings.ExceptionScheme", |
+ setting_entry.primary_pattern.GetScheme(), |
+ ContentSettingsPattern::SCHEME_MAX); |
+ |
if (setting_entry.source == "preference") |
++num_exceptions; |
} |