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..a65446f37f6b00bf33e3c5967baad9ac1169d3b4 100644 |
--- a/chrome/browser/content_settings/content_settings_policy_provider.cc |
+++ b/chrome/browser/content_settings/content_settings_policy_provider.cc |
@@ -37,6 +37,7 @@ const char* kPrefToManageType[CONTENT_SETTINGS_NUM_TYPES] = { |
prefs::kManagedDefaultPopupsSetting, |
prefs::kManagedDefaultGeolocationSetting, |
prefs::kManagedDefaultNotificationsSetting, |
+ prefs::kManagedDefaultAutoSubmitCertificateSetting, |
}; |
struct PrefsForManagedContentSettingsMapEntry { |
@@ -48,6 +49,10 @@ struct PrefsForManagedContentSettingsMapEntry { |
const PrefsForManagedContentSettingsMapEntry |
kPrefsForManagedContentSettingsMap[] = { |
{ |
+ prefs::kManagedAutoSubmitCertificateForUrls, |
+ CONTENT_SETTINGS_TYPE_AUTO_SUBMIT_CERTIFICATE, |
+ CONTENT_SETTING_ALLOW |
+ }, { |
prefs::kManagedCookiesAllowedForUrls, |
CONTENT_SETTINGS_TYPE_COOKIES, |
CONTENT_SETTING_ALLOW |
@@ -120,6 +125,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::kManagedDefaultAutoSubmitCertificateSetting, this); |
} |
PolicyDefaultProvider::~PolicyDefaultProvider() { |
@@ -170,6 +177,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::kManagedDefaultAutoSubmitCertificateSetting) { |
+ UpdateManagedDefaultSetting( |
+ CONTENT_SETTINGS_TYPE_AUTO_SUBMIT_CERTIFICATE); |
} else { |
NOTREACHED() << "Unexpected preference observed"; |
return; |
@@ -241,6 +251,9 @@ void PolicyDefaultProvider::RegisterUserPrefs(PrefService* prefs) { |
prefs->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting, |
CONTENT_SETTING_DEFAULT, |
PrefService::UNSYNCABLE_PREF); |
+ prefs->RegisterIntegerPref(prefs::kManagedDefaultAutoSubmitCertificateSetting, |
+ CONTENT_SETTING_ASK, |
+ PrefService::UNSYNCABLE_PREF); |
} |
// //////////////////////////////////////////////////////////////////////////// |
@@ -248,6 +261,8 @@ void PolicyDefaultProvider::RegisterUserPrefs(PrefService* prefs) { |
// static |
void PolicyProvider::RegisterUserPrefs(PrefService* prefs) { |
+ prefs->RegisterListPref(prefs::kManagedAutoSubmitCertificateForUrls, |
+ PrefService::UNSYNCABLE_PREF); |
prefs->RegisterListPref(prefs::kManagedCookiesAllowedForUrls, |
PrefService::UNSYNCABLE_PREF); |
prefs->RegisterListPref(prefs::kManagedCookiesBlockedForUrls, |
@@ -279,6 +294,7 @@ PolicyProvider::PolicyProvider(PrefService* prefs, |
ReadManagedContentSettings(false); |
pref_change_registrar_.Init(prefs_); |
+ pref_change_registrar_.Add(prefs::kManagedAutoSubmitCertificateForUrls, this); |
pref_change_registrar_.Add(prefs::kManagedCookiesBlockedForUrls, this); |
pref_change_registrar_.Add(prefs::kManagedCookiesAllowedForUrls, this); |
pref_change_registrar_.Add(prefs::kManagedCookiesSessionOnlyForUrls, this); |
@@ -330,10 +346,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 +454,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::kManagedAutoSubmitCertificateForUrls || |
+ *name == prefs::kManagedCookiesAllowedForUrls || |
*name == prefs::kManagedCookiesBlockedForUrls || |
*name == prefs::kManagedCookiesSessionOnlyForUrls || |
*name == prefs::kManagedImagesAllowedForUrls || |