OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
(...skipping 17 matching lines...) Expand all Loading... |
28 prefs::kManagedDefaultCookiesSetting, | 28 prefs::kManagedDefaultCookiesSetting, |
29 prefs::kManagedDefaultImagesSetting, | 29 prefs::kManagedDefaultImagesSetting, |
30 prefs::kManagedDefaultJavaScriptSetting, | 30 prefs::kManagedDefaultJavaScriptSetting, |
31 prefs::kManagedDefaultPluginsSetting, | 31 prefs::kManagedDefaultPluginsSetting, |
32 prefs::kManagedDefaultPopupsSetting, | 32 prefs::kManagedDefaultPopupsSetting, |
33 prefs::kManagedDefaultGeolocationSetting, | 33 prefs::kManagedDefaultGeolocationSetting, |
34 prefs::kManagedDefaultNotificationsSetting, | 34 prefs::kManagedDefaultNotificationsSetting, |
35 NULL, // No policy for default value of content type intents | 35 NULL, // No policy for default value of content type intents |
36 NULL, // No policy for default value of content type auto-select-certificate | 36 NULL, // No policy for default value of content type auto-select-certificate |
37 NULL, // No policy for default value of fullscreen requests | 37 NULL, // No policy for default value of fullscreen requests |
| 38 prefs::kManagedDefaultMediaStreamSetting, |
38 }; | 39 }; |
39 | 40 |
40 struct PrefsForManagedContentSettingsMapEntry { | 41 struct PrefsForManagedContentSettingsMapEntry { |
41 const char* pref_name; | 42 const char* pref_name; |
42 ContentSettingsType content_type; | 43 ContentSettingsType content_type; |
43 ContentSetting setting; | 44 ContentSetting setting; |
44 }; | 45 }; |
45 | 46 |
46 const PrefsForManagedContentSettingsMapEntry | 47 const PrefsForManagedContentSettingsMapEntry |
47 kPrefsForManagedContentSettingsMap[] = { | 48 kPrefsForManagedContentSettingsMap[] = { |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 PrefService::UNSYNCABLE_PREF); | 151 PrefService::UNSYNCABLE_PREF); |
151 prefs->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting, | 152 prefs->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting, |
152 CONTENT_SETTING_DEFAULT, | 153 CONTENT_SETTING_DEFAULT, |
153 PrefService::UNSYNCABLE_PREF); | 154 PrefService::UNSYNCABLE_PREF); |
154 prefs->RegisterIntegerPref(prefs::kManagedDefaultGeolocationSetting, | 155 prefs->RegisterIntegerPref(prefs::kManagedDefaultGeolocationSetting, |
155 CONTENT_SETTING_DEFAULT, | 156 CONTENT_SETTING_DEFAULT, |
156 PrefService::UNSYNCABLE_PREF); | 157 PrefService::UNSYNCABLE_PREF); |
157 prefs->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting, | 158 prefs->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting, |
158 CONTENT_SETTING_DEFAULT, | 159 CONTENT_SETTING_DEFAULT, |
159 PrefService::UNSYNCABLE_PREF); | 160 PrefService::UNSYNCABLE_PREF); |
| 161 prefs->RegisterIntegerPref(prefs::kManagedDefaultMediaStreamSetting, |
| 162 CONTENT_SETTING_DEFAULT, |
| 163 PrefService::UNSYNCABLE_PREF); |
160 } | 164 } |
161 | 165 |
162 PolicyProvider::PolicyProvider(PrefService* prefs) : prefs_(prefs) { | 166 PolicyProvider::PolicyProvider(PrefService* prefs) : prefs_(prefs) { |
163 DCHECK_EQ(arraysize(kPrefToManageType), | 167 DCHECK_EQ(arraysize(kPrefToManageType), |
164 static_cast<size_t>(CONTENT_SETTINGS_NUM_TYPES)); | 168 static_cast<size_t>(CONTENT_SETTINGS_NUM_TYPES)); |
165 ReadManagedDefaultSettings(); | 169 ReadManagedDefaultSettings(); |
166 ReadManagedContentSettings(false); | 170 ReadManagedContentSettings(false); |
167 | 171 |
168 pref_change_registrar_.Init(prefs_); | 172 pref_change_registrar_.Init(prefs_); |
169 pref_change_registrar_.Add(prefs::kManagedAutoSelectCertificateForUrls, this); | 173 pref_change_registrar_.Add(prefs::kManagedAutoSelectCertificateForUrls, this); |
(...skipping 17 matching lines...) Expand all Loading... |
187 // in parallel to the preference default content settings. If a | 191 // in parallel to the preference default content settings. If a |
188 // default content settings type is managed any user defined excpetions | 192 // default content settings type is managed any user defined excpetions |
189 // (patterns) for this type are ignored. | 193 // (patterns) for this type are ignored. |
190 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, this); | 194 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, this); |
191 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, this); | 195 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, this); |
192 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, this); | 196 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, this); |
193 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, this); | 197 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, this); |
194 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, this); | 198 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, this); |
195 pref_change_registrar_.Add(prefs::kManagedDefaultGeolocationSetting, this); | 199 pref_change_registrar_.Add(prefs::kManagedDefaultGeolocationSetting, this); |
196 pref_change_registrar_.Add(prefs::kManagedDefaultNotificationsSetting, this); | 200 pref_change_registrar_.Add(prefs::kManagedDefaultNotificationsSetting, this); |
| 201 pref_change_registrar_.Add(prefs::kManagedDefaultMediaStreamSetting, this); |
197 } | 202 } |
198 | 203 |
199 PolicyProvider::~PolicyProvider() { | 204 PolicyProvider::~PolicyProvider() { |
200 DCHECK(!prefs_); | 205 DCHECK(!prefs_); |
201 } | 206 } |
202 | 207 |
203 RuleIterator* PolicyProvider::GetRuleIterator( | 208 RuleIterator* PolicyProvider::GetRuleIterator( |
204 ContentSettingsType content_type, | 209 ContentSettingsType content_type, |
205 const ResourceIdentifier& resource_identifier, | 210 const ResourceIdentifier& resource_identifier, |
206 bool incognito) const { | 211 bool incognito) const { |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
428 } else if (*name == prefs::kManagedDefaultJavaScriptSetting) { | 433 } else if (*name == prefs::kManagedDefaultJavaScriptSetting) { |
429 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT); | 434 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT); |
430 } else if (*name == prefs::kManagedDefaultPluginsSetting) { | 435 } else if (*name == prefs::kManagedDefaultPluginsSetting) { |
431 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS); | 436 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS); |
432 } else if (*name == prefs::kManagedDefaultPopupsSetting) { | 437 } else if (*name == prefs::kManagedDefaultPopupsSetting) { |
433 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_POPUPS); | 438 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_POPUPS); |
434 } else if (*name == prefs::kManagedDefaultGeolocationSetting) { | 439 } else if (*name == prefs::kManagedDefaultGeolocationSetting) { |
435 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION); | 440 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION); |
436 } else if (*name == prefs::kManagedDefaultNotificationsSetting) { | 441 } else if (*name == prefs::kManagedDefaultNotificationsSetting) { |
437 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); | 442 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
| 443 } else if (*name == prefs::kManagedDefaultMediaStreamSetting) { |
| 444 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_MEDIASTREAM); |
438 } else if (*name == prefs::kManagedAutoSelectCertificateForUrls || | 445 } else if (*name == prefs::kManagedAutoSelectCertificateForUrls || |
439 *name == prefs::kManagedCookiesAllowedForUrls || | 446 *name == prefs::kManagedCookiesAllowedForUrls || |
440 *name == prefs::kManagedCookiesBlockedForUrls || | 447 *name == prefs::kManagedCookiesBlockedForUrls || |
441 *name == prefs::kManagedCookiesSessionOnlyForUrls || | 448 *name == prefs::kManagedCookiesSessionOnlyForUrls || |
442 *name == prefs::kManagedImagesAllowedForUrls || | 449 *name == prefs::kManagedImagesAllowedForUrls || |
443 *name == prefs::kManagedImagesBlockedForUrls || | 450 *name == prefs::kManagedImagesBlockedForUrls || |
444 *name == prefs::kManagedJavaScriptAllowedForUrls || | 451 *name == prefs::kManagedJavaScriptAllowedForUrls || |
445 *name == prefs::kManagedJavaScriptBlockedForUrls || | 452 *name == prefs::kManagedJavaScriptBlockedForUrls || |
446 *name == prefs::kManagedPluginsAllowedForUrls || | 453 *name == prefs::kManagedPluginsAllowedForUrls || |
447 *name == prefs::kManagedPluginsBlockedForUrls || | 454 *name == prefs::kManagedPluginsBlockedForUrls || |
448 *name == prefs::kManagedPopupsAllowedForUrls || | 455 *name == prefs::kManagedPopupsAllowedForUrls || |
449 *name == prefs::kManagedPopupsBlockedForUrls || | 456 *name == prefs::kManagedPopupsBlockedForUrls || |
450 *name == prefs::kManagedNotificationsAllowedForUrls || | 457 *name == prefs::kManagedNotificationsAllowedForUrls || |
451 *name == prefs::kManagedNotificationsBlockedForUrls) { | 458 *name == prefs::kManagedNotificationsBlockedForUrls) { |
452 ReadManagedContentSettings(true); | 459 ReadManagedContentSettings(true); |
453 ReadManagedDefaultSettings(); | 460 ReadManagedDefaultSettings(); |
454 } | 461 } |
455 } else { | 462 } else { |
456 NOTREACHED() << "Unexpected notification"; | 463 NOTREACHED() << "Unexpected notification"; |
457 return; | 464 return; |
458 } | 465 } |
459 NotifyObservers(ContentSettingsPattern(), | 466 NotifyObservers(ContentSettingsPattern(), |
460 ContentSettingsPattern(), | 467 ContentSettingsPattern(), |
461 CONTENT_SETTINGS_TYPE_DEFAULT, | 468 CONTENT_SETTINGS_TYPE_DEFAULT, |
462 std::string()); | 469 std::string()); |
463 } | 470 } |
464 | 471 |
465 } // namespace content_settings | 472 } // namespace content_settings |
OLD | NEW |