Chromium Code Reviews| 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 |