Chromium Code Reviews| Index: chrome/browser/content_settings/content_settings_policy_provider.cc |
| diff --git a/chrome/browser/content_settings/content_settings_policy_provider.cc b/chrome/browser/content_settings/content_settings_policy_provider.cc |
| index 3ee93954aad38f0c941091c35f707aae9e8255f3..22b2dae19f65b74688c3380a57655fb80def01bc 100644 |
| --- a/chrome/browser/content_settings/content_settings_policy_provider.cc |
| +++ b/chrome/browser/content_settings/content_settings_policy_provider.cc |
| @@ -37,6 +37,8 @@ const char* kPrefToManageType[CONTENT_SETTINGS_NUM_TYPES] = { |
| prefs::kManagedDefaultPopupsSetting, |
| prefs::kManagedDefaultGeolocationSetting, |
| prefs::kManagedDefaultNotificationsSetting, |
| + NULL, |
|
wtc
2011/08/22 23:58:53
IMPORTANT: why is there a NULL here? I guess it i
|
| + prefs::kManagedDefaultAutoSelectCertificateSetting, |
| }; |
| struct PrefsForManagedContentSettingsMapEntry { |
| @@ -48,6 +50,10 @@ struct PrefsForManagedContentSettingsMapEntry { |
| const PrefsForManagedContentSettingsMapEntry |
| kPrefsForManagedContentSettingsMap[] = { |
| { |
| + prefs::kManagedAutoSelectCertificateForUrls, |
| + CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE, |
| + CONTENT_SETTING_ALLOW |
| + }, { |
| prefs::kManagedCookiesAllowedForUrls, |
| CONTENT_SETTINGS_TYPE_COOKIES, |
| CONTENT_SETTING_ALLOW |
| @@ -120,6 +126,8 @@ PolicyDefaultProvider::PolicyDefaultProvider(PrefService* prefs) |
| pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, this); |
| pref_change_registrar_.Add(prefs::kManagedDefaultGeolocationSetting, this); |
| pref_change_registrar_.Add(prefs::kManagedDefaultNotificationsSetting, this); |
| + pref_change_registrar_.Add( |
| + prefs::kManagedDefaultAutoSelectCertificateSetting, this); |
| } |
| PolicyDefaultProvider::~PolicyDefaultProvider() { |
| @@ -170,6 +178,9 @@ void PolicyDefaultProvider::Observe(int type, |
| UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION); |
| } else if (*name == prefs::kManagedDefaultNotificationsSetting) { |
| UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
| + } else if (*name == prefs::kManagedDefaultAutoSelectCertificateSetting) { |
| + UpdateManagedDefaultSetting( |
| + CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE); |
| } else { |
| NOTREACHED() << "Unexpected preference observed"; |
| return; |
| @@ -241,6 +252,9 @@ void PolicyDefaultProvider::RegisterUserPrefs(PrefService* prefs) { |
| prefs->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting, |
| CONTENT_SETTING_DEFAULT, |
| PrefService::UNSYNCABLE_PREF); |
| + prefs->RegisterIntegerPref(prefs::kManagedDefaultAutoSelectCertificateSetting, |
| + CONTENT_SETTING_ASK, |
| + PrefService::UNSYNCABLE_PREF); |
| } |
| // //////////////////////////////////////////////////////////////////////////// |
| @@ -248,6 +262,8 @@ void PolicyDefaultProvider::RegisterUserPrefs(PrefService* prefs) { |
| // static |
| void PolicyProvider::RegisterUserPrefs(PrefService* prefs) { |
| + prefs->RegisterListPref(prefs::kManagedAutoSelectCertificateForUrls, |
| + PrefService::UNSYNCABLE_PREF); |
| prefs->RegisterListPref(prefs::kManagedCookiesAllowedForUrls, |
| PrefService::UNSYNCABLE_PREF); |
| prefs->RegisterListPref(prefs::kManagedCookiesBlockedForUrls, |
| @@ -279,6 +295,7 @@ PolicyProvider::PolicyProvider(PrefService* prefs, |
| ReadManagedContentSettings(false); |
| pref_change_registrar_.Init(prefs_); |
| + pref_change_registrar_.Add(prefs::kManagedAutoSelectCertificateForUrls, this); |
| pref_change_registrar_.Add(prefs::kManagedCookiesBlockedForUrls, this); |
| pref_change_registrar_.Add(prefs::kManagedCookiesAllowedForUrls, this); |
| pref_change_registrar_.Add(prefs::kManagedCookiesSessionOnlyForUrls, this); |
| @@ -330,10 +347,12 @@ void PolicyProvider::GetContentSettingsFromPreferences( |
| ContentSettingsType content_type = |
| kPrefsForManagedContentSettingsMap[i].content_type; |
| // If only one pattern was defined auto expand it to a pattern pair. |
| + ContentSettingsPattern secondary_pattern = |
| + !pattern_pair.second.IsValid() ? ContentSettingsPattern::Wildcard() |
| + : pattern_pair.second; |
| rules->push_back(MakeTuple( |
| pattern_pair.first, |
| - !pattern_pair.second.IsValid() ? ContentSettingsPattern::Wildcard() |
| - : pattern_pair.second, |
| + secondary_pattern, |
| content_type, |
| ResourceIdentifier(NO_RESOURCE_IDENTIFIER), |
| kPrefsForManagedContentSettingsMap[i].setting)); |
| @@ -436,7 +455,8 @@ void PolicyProvider::Observe(int type, |
| if (type == chrome::NOTIFICATION_PREF_CHANGED) { |
| DCHECK_EQ(prefs_, Source<PrefService>(source).ptr()); |
| std::string* name = Details<std::string>(details).ptr(); |
| - if (*name == prefs::kManagedCookiesAllowedForUrls || |
| + if (*name == prefs::kManagedAutoSelectCertificateForUrls || |
| + *name == prefs::kManagedCookiesAllowedForUrls || |
| *name == prefs::kManagedCookiesBlockedForUrls || |
| *name == prefs::kManagedCookiesSessionOnlyForUrls || |
| *name == prefs::kManagedImagesAllowedForUrls || |