OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/content_settings/content_settings_policy_provider.h" | 5 #include "chrome/browser/content_settings/content_settings_policy_provider.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 "profile.managed_default_content_settings"; | 29 "profile.managed_default_content_settings"; |
30 | 30 |
31 // The preferences used to manage ContentSettingsTypes. | 31 // The preferences used to manage ContentSettingsTypes. |
32 const char* kPrefToManageType[CONTENT_SETTINGS_NUM_TYPES] = { | 32 const char* kPrefToManageType[CONTENT_SETTINGS_NUM_TYPES] = { |
33 prefs::kManagedDefaultCookiesSetting, | 33 prefs::kManagedDefaultCookiesSetting, |
34 prefs::kManagedDefaultImagesSetting, | 34 prefs::kManagedDefaultImagesSetting, |
35 prefs::kManagedDefaultJavaScriptSetting, | 35 prefs::kManagedDefaultJavaScriptSetting, |
36 prefs::kManagedDefaultPluginsSetting, | 36 prefs::kManagedDefaultPluginsSetting, |
37 prefs::kManagedDefaultPopupsSetting, | 37 prefs::kManagedDefaultPopupsSetting, |
38 prefs::kManagedDefaultGeolocationSetting, | 38 prefs::kManagedDefaultGeolocationSetting, |
39 NULL, // Not used for Notifications | 39 prefs::kManagedDefaultNotificationsSetting, |
40 }; | 40 }; |
41 | 41 |
42 struct PrefsForManagedContentSettingsMapEntry { | 42 struct PrefsForManagedContentSettingsMapEntry { |
43 const char* pref_name; | 43 const char* pref_name; |
44 ContentSettingsType content_type; | 44 ContentSettingsType content_type; |
45 ContentSetting setting; | 45 ContentSetting setting; |
46 }; | 46 }; |
47 | 47 |
48 const PrefsForManagedContentSettingsMapEntry | 48 const PrefsForManagedContentSettingsMapEntry |
49 kPrefsForManagedContentSettingsMap[] = { | 49 kPrefsForManagedContentSettingsMap[] = { |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 // corresponding default-content-setting is managed. These preferences exist | 112 // corresponding default-content-setting is managed. These preferences exist |
113 // in parallel to the preference default-content-settings. If a | 113 // in parallel to the preference default-content-settings. If a |
114 // default-content-settings-type is managed any user defined excpetions | 114 // default-content-settings-type is managed any user defined excpetions |
115 // (patterns) for this type are ignored. | 115 // (patterns) for this type are ignored. |
116 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, this); | 116 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, this); |
117 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, this); | 117 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, this); |
118 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, this); | 118 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, this); |
119 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, this); | 119 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, this); |
120 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, this); | 120 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, this); |
121 pref_change_registrar_.Add(prefs::kManagedDefaultGeolocationSetting, this); | 121 pref_change_registrar_.Add(prefs::kManagedDefaultGeolocationSetting, this); |
| 122 pref_change_registrar_.Add(prefs::kManagedDefaultNotificationsSetting, this); |
122 } | 123 } |
123 | 124 |
124 PolicyDefaultProvider::~PolicyDefaultProvider() { | 125 PolicyDefaultProvider::~PolicyDefaultProvider() { |
125 DCHECK(!prefs_); | 126 DCHECK(!prefs_); |
126 } | 127 } |
127 | 128 |
128 ContentSetting PolicyDefaultProvider::ProvideDefaultSetting( | 129 ContentSetting PolicyDefaultProvider::ProvideDefaultSetting( |
129 ContentSettingsType content_type) const { | 130 ContentSettingsType content_type) const { |
130 base::AutoLock auto_lock(lock_); | 131 base::AutoLock auto_lock(lock_); |
131 return managed_default_content_settings_.settings[content_type]; | 132 return managed_default_content_settings_.settings[content_type]; |
(...skipping 28 matching lines...) Expand all Loading... |
160 } else if (*name == prefs::kManagedDefaultImagesSetting) { | 161 } else if (*name == prefs::kManagedDefaultImagesSetting) { |
161 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_IMAGES); | 162 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_IMAGES); |
162 } else if (*name == prefs::kManagedDefaultJavaScriptSetting) { | 163 } else if (*name == prefs::kManagedDefaultJavaScriptSetting) { |
163 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT); | 164 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT); |
164 } else if (*name == prefs::kManagedDefaultPluginsSetting) { | 165 } else if (*name == prefs::kManagedDefaultPluginsSetting) { |
165 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS); | 166 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS); |
166 } else if (*name == prefs::kManagedDefaultPopupsSetting) { | 167 } else if (*name == prefs::kManagedDefaultPopupsSetting) { |
167 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_POPUPS); | 168 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_POPUPS); |
168 } else if (*name == prefs::kManagedDefaultGeolocationSetting) { | 169 } else if (*name == prefs::kManagedDefaultGeolocationSetting) { |
169 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION); | 170 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION); |
| 171 } else if (*name == prefs::kManagedDefaultNotificationsSetting) { |
| 172 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
170 } else { | 173 } else { |
171 NOTREACHED() << "Unexpected preference observed"; | 174 NOTREACHED() << "Unexpected preference observed"; |
172 return; | 175 return; |
173 } | 176 } |
174 | 177 |
175 NotifyObservers(ContentSettingsPattern(), | 178 NotifyObservers(ContentSettingsPattern(), |
176 ContentSettingsPattern(), | 179 ContentSettingsPattern(), |
177 CONTENT_SETTINGS_TYPE_DEFAULT, | 180 CONTENT_SETTINGS_TYPE_DEFAULT, |
178 std::string()); | 181 std::string()); |
179 } else { | 182 } else { |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 PrefService::UNSYNCABLE_PREF); | 231 PrefService::UNSYNCABLE_PREF); |
229 prefs->RegisterIntegerPref(prefs::kManagedDefaultPluginsSetting, | 232 prefs->RegisterIntegerPref(prefs::kManagedDefaultPluginsSetting, |
230 CONTENT_SETTING_DEFAULT, | 233 CONTENT_SETTING_DEFAULT, |
231 PrefService::UNSYNCABLE_PREF); | 234 PrefService::UNSYNCABLE_PREF); |
232 prefs->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting, | 235 prefs->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting, |
233 CONTENT_SETTING_DEFAULT, | 236 CONTENT_SETTING_DEFAULT, |
234 PrefService::UNSYNCABLE_PREF); | 237 PrefService::UNSYNCABLE_PREF); |
235 prefs->RegisterIntegerPref(prefs::kManagedDefaultGeolocationSetting, | 238 prefs->RegisterIntegerPref(prefs::kManagedDefaultGeolocationSetting, |
236 CONTENT_SETTING_DEFAULT, | 239 CONTENT_SETTING_DEFAULT, |
237 PrefService::UNSYNCABLE_PREF); | 240 PrefService::UNSYNCABLE_PREF); |
| 241 prefs->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting, |
| 242 CONTENT_SETTING_DEFAULT, |
| 243 PrefService::UNSYNCABLE_PREF); |
238 } | 244 } |
239 | 245 |
240 // //////////////////////////////////////////////////////////////////////////// | 246 // //////////////////////////////////////////////////////////////////////////// |
241 // PolicyProvider | 247 // PolicyProvider |
242 | 248 |
243 // static | 249 // static |
244 void PolicyProvider::RegisterUserPrefs(PrefService* prefs) { | 250 void PolicyProvider::RegisterUserPrefs(PrefService* prefs) { |
245 prefs->RegisterListPref(prefs::kManagedCookiesAllowedForUrls, | 251 prefs->RegisterListPref(prefs::kManagedCookiesAllowedForUrls, |
246 PrefService::UNSYNCABLE_PREF); | 252 PrefService::UNSYNCABLE_PREF); |
247 prefs->RegisterListPref(prefs::kManagedCookiesBlockedForUrls, | 253 prefs->RegisterListPref(prefs::kManagedCookiesBlockedForUrls, |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
446 ContentSettingsPattern(), | 452 ContentSettingsPattern(), |
447 CONTENT_SETTINGS_TYPE_DEFAULT, | 453 CONTENT_SETTINGS_TYPE_DEFAULT, |
448 std::string()); | 454 std::string()); |
449 } | 455 } |
450 } else { | 456 } else { |
451 NOTREACHED() << "Unexpected notification"; | 457 NOTREACHED() << "Unexpected notification"; |
452 } | 458 } |
453 } | 459 } |
454 | 460 |
455 } // namespace content_settings | 461 } // namespace content_settings |
OLD | NEW |