Index: components/content_settings/core/browser/content_settings_default_provider.cc |
diff --git a/components/content_settings/core/browser/content_settings_default_provider.cc b/components/content_settings/core/browser/content_settings_default_provider.cc |
index bd0f474d9dc42205340c8cd696214e68598e4cf4..0f7d98f1694eceed0b4c13aedc89ce390a1634da 100644 |
--- a/components/content_settings/core/browser/content_settings_default_provider.cc |
+++ b/components/content_settings/core/browser/content_settings_default_provider.cc |
@@ -99,6 +99,10 @@ void DefaultProvider::RegisterProfilePrefs( |
prefs::kDefaultContentSettings, |
default_content_settings, |
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); |
+ registry->RegisterBooleanPref( |
+ prefs::kMigratedDefaultMediaStreamSetting, |
+ false, |
+ user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
} |
DefaultProvider::DefaultProvider(PrefService* prefs, bool incognito) |
@@ -110,6 +114,11 @@ DefaultProvider::DefaultProvider(PrefService* prefs, bool incognito) |
// Read global defaults. |
ReadDefaultSettings(true); |
+ // Migrate the obsolete media stream default setting into the new microphone |
+ // and camera settings. |
+ if (!is_incognito_) |
+ MigrateObsoleteMediaContentSetting(); |
+ |
UMA_HISTOGRAM_ENUMERATION( |
"ContentSettings.DefaultCookiesSetting", |
ValueToContentSetting( |
@@ -336,4 +345,30 @@ void DefaultProvider::GetSettingsFromDictionary( |
} |
} |
+void DefaultProvider::MigrateObsoleteMediaContentSetting() { |
+ // We only do the migration once. |
+ if (prefs_->GetBoolean(prefs::kMigratedDefaultMediaStreamSetting)) |
+ return; |
+ |
+ int old_value; |
+ default_settings_[CONTENT_SETTINGS_TYPE_MEDIASTREAM]->GetAsInteger( |
markusheintz_
2015/03/06 16:05:33
Do the default_settings_ contain values for settin
msramek
2015/03/06 17:47:33
Hm, you're right. I was under incorrect impression
|
+ &old_value); |
+ |
+ SetWebsiteSetting( |
+ ContentSettingsPattern::Wildcard(), |
+ ContentSettingsPattern::Wildcard(), |
+ CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, |
+ std::string(), |
+ new base::FundamentalValue(old_value)); |
+ |
+ SetWebsiteSetting( |
+ ContentSettingsPattern::Wildcard(), |
+ ContentSettingsPattern::Wildcard(), |
+ CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, |
+ std::string(), |
+ new base::FundamentalValue(old_value)); |
+ |
+ prefs_->SetBoolean(prefs::kMigratedDefaultMediaStreamSetting, true); |
+} |
+ |
} // namespace content_settings |