Chromium Code Reviews| 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 "components/content_settings/core/browser/content_settings_policy_provi der.h" | 5 #include "components/content_settings/core/browser/content_settings_policy_provi der.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 45 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW}, | 45 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW}, |
| 46 {prefs::kManagedNotificationsBlockedForUrls, | 46 {prefs::kManagedNotificationsBlockedForUrls, |
| 47 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_BLOCK}, | 47 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_BLOCK}, |
| 48 {prefs::kManagedPluginsAllowedForUrls, CONTENT_SETTINGS_TYPE_PLUGINS, | 48 {prefs::kManagedPluginsAllowedForUrls, CONTENT_SETTINGS_TYPE_PLUGINS, |
| 49 CONTENT_SETTING_ALLOW}, | 49 CONTENT_SETTING_ALLOW}, |
| 50 {prefs::kManagedPluginsBlockedForUrls, CONTENT_SETTINGS_TYPE_PLUGINS, | 50 {prefs::kManagedPluginsBlockedForUrls, CONTENT_SETTINGS_TYPE_PLUGINS, |
| 51 CONTENT_SETTING_BLOCK}, | 51 CONTENT_SETTING_BLOCK}, |
| 52 {prefs::kManagedPopupsAllowedForUrls, CONTENT_SETTINGS_TYPE_POPUPS, | 52 {prefs::kManagedPopupsAllowedForUrls, CONTENT_SETTINGS_TYPE_POPUPS, |
| 53 CONTENT_SETTING_ALLOW}, | 53 CONTENT_SETTING_ALLOW}, |
| 54 {prefs::kManagedPopupsBlockedForUrls, CONTENT_SETTINGS_TYPE_POPUPS, | 54 {prefs::kManagedPopupsBlockedForUrls, CONTENT_SETTINGS_TYPE_POPUPS, |
| 55 CONTENT_SETTING_BLOCK}}; | 55 CONTENT_SETTING_BLOCK}, |
| 56 {prefs::kManagedKeygenAllowedForUrls, | |
| 57 CONTENT_SETTINGS_TYPE_KEYGEN, CONTENT_SETTING_ALLOW}, | |
| 58 {prefs::kManagedKeygenBlockedForUrls, | |
| 59 CONTENT_SETTINGS_TYPE_KEYGEN, CONTENT_SETTING_BLOCK}}; | |
| 56 | 60 |
| 57 } // namespace | 61 } // namespace |
| 58 | 62 |
| 59 namespace content_settings { | 63 namespace content_settings { |
| 60 | 64 |
| 61 // The preferences used to manage the default policy value for | 65 // The preferences used to manage the default policy value for |
| 62 // ContentSettingsTypes. | 66 // ContentSettingsTypes. |
| 63 struct PolicyProvider::PrefsForManagedDefaultMapEntry { | 67 struct PolicyProvider::PrefsForManagedDefaultMapEntry { |
| 64 ContentSettingsType content_type; | 68 ContentSettingsType content_type; |
| 65 const char* pref_name; | 69 const char* pref_name; |
| 66 }; | 70 }; |
| 67 | 71 |
| 68 // static | 72 // static |
| 69 const PolicyProvider::PrefsForManagedDefaultMapEntry | 73 const PolicyProvider::PrefsForManagedDefaultMapEntry |
| 70 PolicyProvider::kPrefsForManagedDefault[] = { | 74 PolicyProvider::kPrefsForManagedDefault[] = { |
| 71 {CONTENT_SETTINGS_TYPE_COOKIES, prefs::kManagedDefaultCookiesSetting}, | 75 {CONTENT_SETTINGS_TYPE_COOKIES, prefs::kManagedDefaultCookiesSetting}, |
| 72 {CONTENT_SETTINGS_TYPE_IMAGES, prefs::kManagedDefaultImagesSetting}, | 76 {CONTENT_SETTINGS_TYPE_IMAGES, prefs::kManagedDefaultImagesSetting}, |
| 73 {CONTENT_SETTINGS_TYPE_GEOLOCATION, | 77 {CONTENT_SETTINGS_TYPE_GEOLOCATION, |
| 74 prefs::kManagedDefaultGeolocationSetting}, | 78 prefs::kManagedDefaultGeolocationSetting}, |
| 75 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, | 79 {CONTENT_SETTINGS_TYPE_JAVASCRIPT, |
| 76 prefs::kManagedDefaultJavaScriptSetting}, | 80 prefs::kManagedDefaultJavaScriptSetting}, |
| 77 {CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, | 81 {CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, |
| 78 prefs::kManagedDefaultMediaStreamSetting}, | 82 prefs::kManagedDefaultMediaStreamSetting}, |
| 79 {CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, | 83 {CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, |
| 80 prefs::kManagedDefaultMediaStreamSetting}, | 84 prefs::kManagedDefaultMediaStreamSetting}, |
| 81 {CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | 85 {CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
| 82 prefs::kManagedDefaultNotificationsSetting}, | 86 prefs::kManagedDefaultNotificationsSetting}, |
| 83 {CONTENT_SETTINGS_TYPE_PLUGINS, prefs::kManagedDefaultPluginsSetting}, | 87 {CONTENT_SETTINGS_TYPE_PLUGINS, prefs::kManagedDefaultPluginsSetting}, |
| 84 {CONTENT_SETTINGS_TYPE_POPUPS, prefs::kManagedDefaultPopupsSetting}, | 88 {CONTENT_SETTINGS_TYPE_POPUPS, prefs::kManagedDefaultPopupsSetting}, |
| 89 {CONTENT_SETTINGS_TYPE_KEYGEN, | |
| 90 prefs::kManagedDefaultKeygenSetting}, | |
|
msramek
2015/11/06 16:56:15
nit: This fits on a line.
svaldez
2015/11/06 21:30:07
Done.
| |
| 85 }; | 91 }; |
| 86 | 92 |
| 87 // static | 93 // static |
| 88 void PolicyProvider::RegisterProfilePrefs( | 94 void PolicyProvider::RegisterProfilePrefs( |
| 89 user_prefs::PrefRegistrySyncable* registry) { | 95 user_prefs::PrefRegistrySyncable* registry) { |
| 90 registry->RegisterListPref(prefs::kManagedAutoSelectCertificateForUrls); | 96 registry->RegisterListPref(prefs::kManagedAutoSelectCertificateForUrls); |
| 91 registry->RegisterListPref(prefs::kManagedCookiesAllowedForUrls); | 97 registry->RegisterListPref(prefs::kManagedCookiesAllowedForUrls); |
| 92 registry->RegisterListPref(prefs::kManagedCookiesBlockedForUrls); | 98 registry->RegisterListPref(prefs::kManagedCookiesBlockedForUrls); |
| 93 registry->RegisterListPref(prefs::kManagedCookiesSessionOnlyForUrls); | 99 registry->RegisterListPref(prefs::kManagedCookiesSessionOnlyForUrls); |
| 94 registry->RegisterListPref(prefs::kManagedImagesAllowedForUrls); | 100 registry->RegisterListPref(prefs::kManagedImagesAllowedForUrls); |
| 95 registry->RegisterListPref(prefs::kManagedImagesBlockedForUrls); | 101 registry->RegisterListPref(prefs::kManagedImagesBlockedForUrls); |
| 96 registry->RegisterListPref(prefs::kManagedJavaScriptAllowedForUrls); | 102 registry->RegisterListPref(prefs::kManagedJavaScriptAllowedForUrls); |
| 97 registry->RegisterListPref(prefs::kManagedJavaScriptBlockedForUrls); | 103 registry->RegisterListPref(prefs::kManagedJavaScriptBlockedForUrls); |
| 98 registry->RegisterListPref(prefs::kManagedNotificationsAllowedForUrls); | 104 registry->RegisterListPref(prefs::kManagedNotificationsAllowedForUrls); |
| 99 registry->RegisterListPref(prefs::kManagedNotificationsBlockedForUrls); | 105 registry->RegisterListPref(prefs::kManagedNotificationsBlockedForUrls); |
| 100 registry->RegisterListPref(prefs::kManagedPluginsAllowedForUrls); | 106 registry->RegisterListPref(prefs::kManagedPluginsAllowedForUrls); |
| 101 registry->RegisterListPref(prefs::kManagedPluginsBlockedForUrls); | 107 registry->RegisterListPref(prefs::kManagedPluginsBlockedForUrls); |
| 102 registry->RegisterListPref(prefs::kManagedPopupsAllowedForUrls); | 108 registry->RegisterListPref(prefs::kManagedPopupsAllowedForUrls); |
| 103 registry->RegisterListPref(prefs::kManagedPopupsBlockedForUrls); | 109 registry->RegisterListPref(prefs::kManagedPopupsBlockedForUrls); |
| 110 registry->RegisterListPref(prefs::kManagedKeygenAllowedForUrls); | |
| 111 registry->RegisterListPref(prefs::kManagedKeygenBlockedForUrls); | |
| 104 // Preferences for default content setting policies. If a policy is not set of | 112 // Preferences for default content setting policies. If a policy is not set of |
| 105 // the corresponding preferences below is set to CONTENT_SETTING_DEFAULT. | 113 // the corresponding preferences below is set to CONTENT_SETTING_DEFAULT. |
| 106 registry->RegisterIntegerPref(prefs::kManagedDefaultCookiesSetting, | 114 registry->RegisterIntegerPref(prefs::kManagedDefaultCookiesSetting, |
| 107 CONTENT_SETTING_DEFAULT); | 115 CONTENT_SETTING_DEFAULT); |
| 108 registry->RegisterIntegerPref(prefs::kManagedDefaultGeolocationSetting, | 116 registry->RegisterIntegerPref(prefs::kManagedDefaultGeolocationSetting, |
| 109 CONTENT_SETTING_DEFAULT); | 117 CONTENT_SETTING_DEFAULT); |
| 110 registry->RegisterIntegerPref(prefs::kManagedDefaultImagesSetting, | 118 registry->RegisterIntegerPref(prefs::kManagedDefaultImagesSetting, |
| 111 CONTENT_SETTING_DEFAULT); | 119 CONTENT_SETTING_DEFAULT); |
| 112 registry->RegisterIntegerPref(prefs::kManagedDefaultJavaScriptSetting, | 120 registry->RegisterIntegerPref(prefs::kManagedDefaultJavaScriptSetting, |
| 113 CONTENT_SETTING_DEFAULT); | 121 CONTENT_SETTING_DEFAULT); |
| 114 registry->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting, | 122 registry->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting, |
| 115 CONTENT_SETTING_DEFAULT); | 123 CONTENT_SETTING_DEFAULT); |
| 116 registry->RegisterIntegerPref(prefs::kManagedDefaultMediaStreamSetting, | 124 registry->RegisterIntegerPref(prefs::kManagedDefaultMediaStreamSetting, |
| 117 CONTENT_SETTING_DEFAULT); | 125 CONTENT_SETTING_DEFAULT); |
| 118 registry->RegisterIntegerPref(prefs::kManagedDefaultPluginsSetting, | 126 registry->RegisterIntegerPref(prefs::kManagedDefaultPluginsSetting, |
| 119 CONTENT_SETTING_DEFAULT); | 127 CONTENT_SETTING_DEFAULT); |
| 120 registry->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting, | 128 registry->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting, |
| 121 CONTENT_SETTING_DEFAULT); | 129 CONTENT_SETTING_DEFAULT); |
| 130 registry->RegisterIntegerPref(prefs::kManagedDefaultKeygenSetting, | |
| 131 CONTENT_SETTING_DEFAULT); | |
| 122 } | 132 } |
| 123 | 133 |
| 124 PolicyProvider::PolicyProvider(PrefService* prefs) : prefs_(prefs) { | 134 PolicyProvider::PolicyProvider(PrefService* prefs) : prefs_(prefs) { |
| 125 ReadManagedDefaultSettings(); | 135 ReadManagedDefaultSettings(); |
| 126 ReadManagedContentSettings(false); | 136 ReadManagedContentSettings(false); |
| 127 | 137 |
| 128 pref_change_registrar_.Init(prefs_); | 138 pref_change_registrar_.Init(prefs_); |
| 129 PrefChangeRegistrar::NamedChangeCallback callback = | 139 PrefChangeRegistrar::NamedChangeCallback callback = |
| 130 base::Bind(&PolicyProvider::OnPreferenceChanged, base::Unretained(this)); | 140 base::Bind(&PolicyProvider::OnPreferenceChanged, base::Unretained(this)); |
| 131 pref_change_registrar_.Add( | 141 pref_change_registrar_.Add( |
| 132 prefs::kManagedAutoSelectCertificateForUrls, callback); | 142 prefs::kManagedAutoSelectCertificateForUrls, callback); |
| 133 pref_change_registrar_.Add(prefs::kManagedCookiesAllowedForUrls, callback); | 143 pref_change_registrar_.Add(prefs::kManagedCookiesAllowedForUrls, callback); |
| 134 pref_change_registrar_.Add(prefs::kManagedCookiesBlockedForUrls, callback); | 144 pref_change_registrar_.Add(prefs::kManagedCookiesBlockedForUrls, callback); |
| 135 pref_change_registrar_.Add( | 145 pref_change_registrar_.Add( |
| 136 prefs::kManagedCookiesSessionOnlyForUrls, callback); | 146 prefs::kManagedCookiesSessionOnlyForUrls, callback); |
| 137 pref_change_registrar_.Add(prefs::kManagedImagesAllowedForUrls, callback); | 147 pref_change_registrar_.Add(prefs::kManagedImagesAllowedForUrls, callback); |
| 138 pref_change_registrar_.Add(prefs::kManagedImagesBlockedForUrls, callback); | 148 pref_change_registrar_.Add(prefs::kManagedImagesBlockedForUrls, callback); |
| 139 pref_change_registrar_.Add(prefs::kManagedJavaScriptAllowedForUrls, callback); | 149 pref_change_registrar_.Add(prefs::kManagedJavaScriptAllowedForUrls, callback); |
| 140 pref_change_registrar_.Add(prefs::kManagedJavaScriptBlockedForUrls, callback); | 150 pref_change_registrar_.Add(prefs::kManagedJavaScriptBlockedForUrls, callback); |
| 141 | |
| 142 pref_change_registrar_.Add( | 151 pref_change_registrar_.Add( |
| 143 prefs::kManagedNotificationsAllowedForUrls, callback); | 152 prefs::kManagedNotificationsAllowedForUrls, callback); |
| 144 pref_change_registrar_.Add( | 153 pref_change_registrar_.Add( |
| 145 prefs::kManagedNotificationsBlockedForUrls, callback); | 154 prefs::kManagedNotificationsBlockedForUrls, callback); |
| 146 pref_change_registrar_.Add(prefs::kManagedPluginsAllowedForUrls, callback); | 155 pref_change_registrar_.Add(prefs::kManagedPluginsAllowedForUrls, callback); |
| 147 pref_change_registrar_.Add(prefs::kManagedPluginsBlockedForUrls, callback); | 156 pref_change_registrar_.Add(prefs::kManagedPluginsBlockedForUrls, callback); |
| 148 pref_change_registrar_.Add(prefs::kManagedPopupsAllowedForUrls, callback); | 157 pref_change_registrar_.Add(prefs::kManagedPopupsAllowedForUrls, callback); |
| 149 pref_change_registrar_.Add(prefs::kManagedPopupsBlockedForUrls, callback); | 158 pref_change_registrar_.Add(prefs::kManagedPopupsBlockedForUrls, callback); |
| 159 pref_change_registrar_.Add(prefs::kManagedKeygenAllowedForUrls, callback); | |
| 160 pref_change_registrar_.Add(prefs::kManagedKeygenBlockedForUrls, callback); | |
| 150 // The following preferences are only used to indicate if a default content | 161 // The following preferences are only used to indicate if a default content |
| 151 // setting is managed and to hold the managed default setting value. If the | 162 // setting is managed and to hold the managed default setting value. If the |
| 152 // value for any of the following preferences is set then the corresponding | 163 // value for any of the following preferences is set then the corresponding |
| 153 // default content setting is managed. These preferences exist in parallel to | 164 // default content setting is managed. These preferences exist in parallel to |
| 154 // the preference default content settings. If a default content settings type | 165 // the preference default content settings. If a default content settings type |
| 155 // is managed any user defined exceptions (patterns) for this type are | 166 // is managed any user defined exceptions (patterns) for this type are |
| 156 // ignored. | 167 // ignored. |
| 157 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, callback); | 168 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, callback); |
| 158 pref_change_registrar_.Add( | 169 pref_change_registrar_.Add( |
| 159 prefs::kManagedDefaultGeolocationSetting, callback); | 170 prefs::kManagedDefaultGeolocationSetting, callback); |
| 160 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, callback); | 171 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, callback); |
| 161 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, callback); | 172 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, callback); |
| 162 pref_change_registrar_.Add( | 173 pref_change_registrar_.Add( |
| 163 prefs::kManagedDefaultNotificationsSetting, callback); | 174 prefs::kManagedDefaultNotificationsSetting, callback); |
| 164 pref_change_registrar_.Add( | 175 pref_change_registrar_.Add( |
| 165 prefs::kManagedDefaultMediaStreamSetting, callback); | 176 prefs::kManagedDefaultMediaStreamSetting, callback); |
| 166 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, callback); | 177 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, callback); |
| 167 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, callback); | 178 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, callback); |
| 179 pref_change_registrar_.Add(prefs::kManagedDefaultKeygenSetting, callback); | |
| 168 } | 180 } |
| 169 | 181 |
| 170 PolicyProvider::~PolicyProvider() { | 182 PolicyProvider::~PolicyProvider() { |
| 171 DCHECK(!prefs_); | 183 DCHECK(!prefs_); |
| 172 } | 184 } |
| 173 | 185 |
| 174 RuleIterator* PolicyProvider::GetRuleIterator( | 186 RuleIterator* PolicyProvider::GetRuleIterator( |
| 175 ContentSettingsType content_type, | 187 ContentSettingsType content_type, |
| 176 const ResourceIdentifier& resource_identifier, | 188 const ResourceIdentifier& resource_identifier, |
| 177 bool incognito) const { | 189 bool incognito) const { |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 388 name == prefs::kManagedCookiesSessionOnlyForUrls || | 400 name == prefs::kManagedCookiesSessionOnlyForUrls || |
| 389 name == prefs::kManagedImagesAllowedForUrls || | 401 name == prefs::kManagedImagesAllowedForUrls || |
| 390 name == prefs::kManagedImagesBlockedForUrls || | 402 name == prefs::kManagedImagesBlockedForUrls || |
| 391 name == prefs::kManagedJavaScriptAllowedForUrls || | 403 name == prefs::kManagedJavaScriptAllowedForUrls || |
| 392 name == prefs::kManagedJavaScriptBlockedForUrls || | 404 name == prefs::kManagedJavaScriptBlockedForUrls || |
| 393 name == prefs::kManagedNotificationsAllowedForUrls || | 405 name == prefs::kManagedNotificationsAllowedForUrls || |
| 394 name == prefs::kManagedNotificationsBlockedForUrls || | 406 name == prefs::kManagedNotificationsBlockedForUrls || |
| 395 name == prefs::kManagedPluginsAllowedForUrls || | 407 name == prefs::kManagedPluginsAllowedForUrls || |
| 396 name == prefs::kManagedPluginsBlockedForUrls || | 408 name == prefs::kManagedPluginsBlockedForUrls || |
| 397 name == prefs::kManagedPopupsAllowedForUrls || | 409 name == prefs::kManagedPopupsAllowedForUrls || |
| 398 name == prefs::kManagedPopupsBlockedForUrls) { | 410 name == prefs::kManagedPopupsBlockedForUrls || |
| 411 name == prefs::kManagedKeygenAllowedForUrls || | |
| 412 name == prefs::kManagedKeygenBlockedForUrls) { | |
| 399 ReadManagedContentSettings(true); | 413 ReadManagedContentSettings(true); |
| 400 ReadManagedDefaultSettings(); | 414 ReadManagedDefaultSettings(); |
| 401 } | 415 } |
| 402 | 416 |
| 403 NotifyObservers(ContentSettingsPattern(), | 417 NotifyObservers(ContentSettingsPattern(), |
| 404 ContentSettingsPattern(), | 418 ContentSettingsPattern(), |
| 405 CONTENT_SETTINGS_TYPE_DEFAULT, | 419 CONTENT_SETTINGS_TYPE_DEFAULT, |
| 406 std::string()); | 420 std::string()); |
| 407 } | 421 } |
| 408 | 422 |
| 409 } // namespace content_settings | 423 } // namespace content_settings |
| OLD | NEW |