Add preference for managed notifications setting.

BUG=63190
TEST=host_content_settings_map_unittest.cc,
     content_settings_policy_provider_unittest.cc
     desktop_notification_service_unittest.cc

Review URL: http://codereview.chromium.org/7623006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96548 0039d316-1c4b-4281-b951-d872f2087c98
parent b0874af3
......@@ -1218,7 +1218,7 @@
'desc': '''Allows you to set whether websites are allowed to show pop-ups. Showing popups can be either allowed for all websites or denied for all websites.''',
},
{
'name': 'DefaultNotificationSetting',
'name': 'DefaultNotificationsSetting',
'type': 'int-enum',
'items': [
{
......
......@@ -176,8 +176,6 @@ void NotificationProvider::Observe(int type,
void NotificationProvider::StartObserving() {
if (!profile_->IsOffTheRecord()) {
prefs_registrar_.Add(prefs::kDesktopNotificationDefaultContentSetting,
this);
prefs_registrar_.Add(prefs::kDesktopNotificationAllowedOrigins, this);
prefs_registrar_.Add(prefs::kDesktopNotificationDeniedOrigins, this);
......
......@@ -36,7 +36,7 @@ const char* kPrefToManageType[CONTENT_SETTINGS_NUM_TYPES] = {
prefs::kManagedDefaultPluginsSetting,
prefs::kManagedDefaultPopupsSetting,
prefs::kManagedDefaultGeolocationSetting,
NULL, // Not used for Notifications
prefs::kManagedDefaultNotificationsSetting,
};
struct PrefsForManagedContentSettingsMapEntry {
......@@ -119,6 +119,7 @@ PolicyDefaultProvider::PolicyDefaultProvider(PrefService* prefs)
pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, this);
pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, this);
pref_change_registrar_.Add(prefs::kManagedDefaultGeolocationSetting, this);
pref_change_registrar_.Add(prefs::kManagedDefaultNotificationsSetting, this);
}
PolicyDefaultProvider::~PolicyDefaultProvider() {
......@@ -167,6 +168,8 @@ void PolicyDefaultProvider::Observe(int type,
UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_POPUPS);
} else if (*name == prefs::kManagedDefaultGeolocationSetting) {
UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION);
} else if (*name == prefs::kManagedDefaultNotificationsSetting) {
UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
} else {
NOTREACHED() << "Unexpected preference observed";
return;
......@@ -235,6 +238,9 @@ void PolicyDefaultProvider::RegisterUserPrefs(PrefService* prefs) {
prefs->RegisterIntegerPref(prefs::kManagedDefaultGeolocationSetting,
CONTENT_SETTING_DEFAULT,
PrefService::UNSYNCABLE_PREF);
prefs->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting,
CONTENT_SETTING_DEFAULT,
PrefService::UNSYNCABLE_PREF);
}
// ////////////////////////////////////////////////////////////////////////////
......
......@@ -251,8 +251,8 @@ const ConfigurationPolicyPrefKeeper::PolicyToPreferenceMapEntry
prefs::kManagedPopupsAllowedForUrls },
{ Value::TYPE_LIST, kPolicyPopupsBlockedForUrls,
prefs::kManagedPopupsBlockedForUrls },
{ Value::TYPE_INTEGER, kPolicyDefaultNotificationSetting,
prefs::kDesktopNotificationDefaultContentSetting },
{ Value::TYPE_INTEGER, kPolicyDefaultNotificationsSetting,
prefs::kManagedDefaultNotificationsSetting },
{ Value::TYPE_INTEGER, kPolicyDefaultGeolocationSetting,
prefs::kManagedDefaultGeolocationSetting },
{ Value::TYPE_STRING, kPolicyAuthSchemes,
......@@ -1088,8 +1088,8 @@ ConfigurationPolicyPrefStore::GetChromePolicyDefinitionList() {
key::kDefaultPluginsSetting },
{ kPolicyDefaultPopupsSetting, Value::TYPE_INTEGER,
key::kDefaultPopupsSetting },
{ kPolicyDefaultNotificationSetting, Value::TYPE_INTEGER,
key::kDefaultNotificationSetting },
{ kPolicyDefaultNotificationsSetting, Value::TYPE_INTEGER,
key::kDefaultNotificationsSetting },
{ kPolicyDefaultGeolocationSetting, Value::TYPE_INTEGER,
key::kDefaultGeolocationSetting },
{ kPolicyCookiesAllowedForUrls, Value::TYPE_LIST,
......
......@@ -1418,6 +1418,8 @@ const char kManagedDefaultPopupsSetting[] =
"profile.managed_default_content_settings.popups";
const char kManagedDefaultGeolocationSetting[] =
"profile.managed_default_content_settings.geolocation";
const char kManagedDefaultNotificationsSetting[] =
"profile.managed_default_content_settings.notifications";
// Preferences that are exclusively used to store managed
// content settings patterns.
......
......@@ -490,6 +490,7 @@ extern const char kManagedDefaultJavaScriptSetting[];
extern const char kManagedDefaultPluginsSetting[];
extern const char kManagedDefaultPopupsSetting[];
extern const char kManagedDefaultGeolocationSetting[];
extern const char kManagedDefaultNotificationsSetting[];
extern const char kManagedCookiesAllowedForUrls[];
extern const char kManagedCookiesBlockedForUrls[];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment