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 23 matching lines...) Expand all Loading... | |
34 {prefs::kManagedCookiesSessionOnlyForUrls, | 34 {prefs::kManagedCookiesSessionOnlyForUrls, |
35 CONTENT_SETTINGS_TYPE_COOKIES, CONTENT_SETTING_SESSION_ONLY}, | 35 CONTENT_SETTINGS_TYPE_COOKIES, CONTENT_SETTING_SESSION_ONLY}, |
36 {prefs::kManagedImagesAllowedForUrls, CONTENT_SETTINGS_TYPE_IMAGES, | 36 {prefs::kManagedImagesAllowedForUrls, CONTENT_SETTINGS_TYPE_IMAGES, |
37 CONTENT_SETTING_ALLOW}, | 37 CONTENT_SETTING_ALLOW}, |
38 {prefs::kManagedImagesBlockedForUrls, CONTENT_SETTINGS_TYPE_IMAGES, | 38 {prefs::kManagedImagesBlockedForUrls, CONTENT_SETTINGS_TYPE_IMAGES, |
39 CONTENT_SETTING_BLOCK}, | 39 CONTENT_SETTING_BLOCK}, |
40 {prefs::kManagedJavaScriptAllowedForUrls, | 40 {prefs::kManagedJavaScriptAllowedForUrls, |
41 CONTENT_SETTINGS_TYPE_JAVASCRIPT, CONTENT_SETTING_ALLOW}, | 41 CONTENT_SETTINGS_TYPE_JAVASCRIPT, CONTENT_SETTING_ALLOW}, |
42 {prefs::kManagedJavaScriptBlockedForUrls, | 42 {prefs::kManagedJavaScriptBlockedForUrls, |
43 CONTENT_SETTINGS_TYPE_JAVASCRIPT, CONTENT_SETTING_BLOCK}, | 43 CONTENT_SETTINGS_TYPE_JAVASCRIPT, CONTENT_SETTING_BLOCK}, |
44 {prefs::kManagedKeygenAllowedForUrls, | |
45 CONTENT_SETTINGS_TYPE_KEYGEN, CONTENT_SETTING_ALLOW}, | |
raymes
2015/11/05 03:15:47
Do we really want to add enterprise management for
Ryan Sleevi
2015/11/05 03:27:47
Forwarded thread. Internal enterprise use is the k
| |
46 {prefs::kManagedKeygenBlockedForUrls, | |
47 CONTENT_SETTINGS_TYPE_KEYGEN, CONTENT_SETTING_BLOCK}, | |
44 {prefs::kManagedNotificationsAllowedForUrls, | 48 {prefs::kManagedNotificationsAllowedForUrls, |
45 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW}, | 49 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW}, |
46 {prefs::kManagedNotificationsBlockedForUrls, | 50 {prefs::kManagedNotificationsBlockedForUrls, |
47 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_BLOCK}, | 51 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_BLOCK}, |
48 {prefs::kManagedPluginsAllowedForUrls, CONTENT_SETTINGS_TYPE_PLUGINS, | 52 {prefs::kManagedPluginsAllowedForUrls, CONTENT_SETTINGS_TYPE_PLUGINS, |
49 CONTENT_SETTING_ALLOW}, | 53 CONTENT_SETTING_ALLOW}, |
50 {prefs::kManagedPluginsBlockedForUrls, CONTENT_SETTINGS_TYPE_PLUGINS, | 54 {prefs::kManagedPluginsBlockedForUrls, CONTENT_SETTINGS_TYPE_PLUGINS, |
51 CONTENT_SETTING_BLOCK}, | 55 CONTENT_SETTING_BLOCK}, |
52 {prefs::kManagedPopupsAllowedForUrls, CONTENT_SETTINGS_TYPE_POPUPS, | 56 {prefs::kManagedPopupsAllowedForUrls, CONTENT_SETTINGS_TYPE_POPUPS, |
53 CONTENT_SETTING_ALLOW}, | 57 CONTENT_SETTING_ALLOW}, |
(...skipping 13 matching lines...) Expand all Loading... | |
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}, |
81 {CONTENT_SETTINGS_TYPE_KEYGEN, | |
82 prefs::kManagedDefaultKeygenSetting}, | |
77 {CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, | 83 {CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, |
78 prefs::kManagedDefaultMediaStreamSetting}, | 84 prefs::kManagedDefaultMediaStreamSetting}, |
79 {CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, | 85 {CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, |
80 prefs::kManagedDefaultMediaStreamSetting}, | 86 prefs::kManagedDefaultMediaStreamSetting}, |
81 {CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | 87 {CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
82 prefs::kManagedDefaultNotificationsSetting}, | 88 prefs::kManagedDefaultNotificationsSetting}, |
83 {CONTENT_SETTINGS_TYPE_PLUGINS, prefs::kManagedDefaultPluginsSetting}, | 89 {CONTENT_SETTINGS_TYPE_PLUGINS, prefs::kManagedDefaultPluginsSetting}, |
84 {CONTENT_SETTINGS_TYPE_POPUPS, prefs::kManagedDefaultPopupsSetting}, | 90 {CONTENT_SETTINGS_TYPE_POPUPS, prefs::kManagedDefaultPopupsSetting}, |
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); |
104 registry->RegisterListPref(prefs::kManagedKeygenAllowedForUrls); | |
105 registry->RegisterListPref(prefs::kManagedKeygenBlockedForUrls); | |
98 registry->RegisterListPref(prefs::kManagedNotificationsAllowedForUrls); | 106 registry->RegisterListPref(prefs::kManagedNotificationsAllowedForUrls); |
99 registry->RegisterListPref(prefs::kManagedNotificationsBlockedForUrls); | 107 registry->RegisterListPref(prefs::kManagedNotificationsBlockedForUrls); |
100 registry->RegisterListPref(prefs::kManagedPluginsAllowedForUrls); | 108 registry->RegisterListPref(prefs::kManagedPluginsAllowedForUrls); |
101 registry->RegisterListPref(prefs::kManagedPluginsBlockedForUrls); | 109 registry->RegisterListPref(prefs::kManagedPluginsBlockedForUrls); |
102 registry->RegisterListPref(prefs::kManagedPopupsAllowedForUrls); | 110 registry->RegisterListPref(prefs::kManagedPopupsAllowedForUrls); |
103 registry->RegisterListPref(prefs::kManagedPopupsBlockedForUrls); | 111 registry->RegisterListPref(prefs::kManagedPopupsBlockedForUrls); |
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); |
122 registry->RegisterIntegerPref(prefs::kManagedDefaultKeygenSetting, | |
123 CONTENT_SETTING_DEFAULT); | |
114 registry->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting, | 124 registry->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting, |
115 CONTENT_SETTING_DEFAULT); | 125 CONTENT_SETTING_DEFAULT); |
116 registry->RegisterIntegerPref(prefs::kManagedDefaultMediaStreamSetting, | 126 registry->RegisterIntegerPref(prefs::kManagedDefaultMediaStreamSetting, |
117 CONTENT_SETTING_DEFAULT); | 127 CONTENT_SETTING_DEFAULT); |
118 registry->RegisterIntegerPref(prefs::kManagedDefaultPluginsSetting, | 128 registry->RegisterIntegerPref(prefs::kManagedDefaultPluginsSetting, |
119 CONTENT_SETTING_DEFAULT); | 129 CONTENT_SETTING_DEFAULT); |
120 registry->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting, | 130 registry->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting, |
121 CONTENT_SETTING_DEFAULT); | 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); |
151 pref_change_registrar_.Add(prefs::kManagedKeygenAllowedForUrls, callback); | |
152 pref_change_registrar_.Add(prefs::kManagedKeygenBlockedForUrls, callback); | |
141 | 153 |
142 pref_change_registrar_.Add( | 154 pref_change_registrar_.Add( |
143 prefs::kManagedNotificationsAllowedForUrls, callback); | 155 prefs::kManagedNotificationsAllowedForUrls, callback); |
144 pref_change_registrar_.Add( | 156 pref_change_registrar_.Add( |
145 prefs::kManagedNotificationsBlockedForUrls, callback); | 157 prefs::kManagedNotificationsBlockedForUrls, callback); |
146 pref_change_registrar_.Add(prefs::kManagedPluginsAllowedForUrls, callback); | 158 pref_change_registrar_.Add(prefs::kManagedPluginsAllowedForUrls, callback); |
147 pref_change_registrar_.Add(prefs::kManagedPluginsBlockedForUrls, callback); | 159 pref_change_registrar_.Add(prefs::kManagedPluginsBlockedForUrls, callback); |
148 pref_change_registrar_.Add(prefs::kManagedPopupsAllowedForUrls, callback); | 160 pref_change_registrar_.Add(prefs::kManagedPopupsAllowedForUrls, callback); |
149 pref_change_registrar_.Add(prefs::kManagedPopupsBlockedForUrls, callback); | 161 pref_change_registrar_.Add(prefs::kManagedPopupsBlockedForUrls, callback); |
150 // The following preferences are only used to indicate if a default content | 162 // 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 | 163 // 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 | 164 // value for any of the following preferences is set then the corresponding |
153 // default content setting is managed. These preferences exist in parallel to | 165 // default content setting is managed. These preferences exist in parallel to |
154 // the preference default content settings. If a default content settings type | 166 // the preference default content settings. If a default content settings type |
155 // is managed any user defined exceptions (patterns) for this type are | 167 // is managed any user defined exceptions (patterns) for this type are |
156 // ignored. | 168 // ignored. |
157 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, callback); | 169 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, callback); |
158 pref_change_registrar_.Add( | 170 pref_change_registrar_.Add( |
159 prefs::kManagedDefaultGeolocationSetting, callback); | 171 prefs::kManagedDefaultGeolocationSetting, callback); |
160 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, callback); | 172 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, callback); |
161 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, callback); | 173 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, callback); |
174 pref_change_registrar_.Add(prefs::kManagedDefaultKeygenSetting, callback); | |
162 pref_change_registrar_.Add( | 175 pref_change_registrar_.Add( |
163 prefs::kManagedDefaultNotificationsSetting, callback); | 176 prefs::kManagedDefaultNotificationsSetting, callback); |
164 pref_change_registrar_.Add( | 177 pref_change_registrar_.Add( |
165 prefs::kManagedDefaultMediaStreamSetting, callback); | 178 prefs::kManagedDefaultMediaStreamSetting, callback); |
166 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, callback); | 179 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, callback); |
167 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, callback); | 180 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, callback); |
168 } | 181 } |
169 | 182 |
170 PolicyProvider::~PolicyProvider() { | 183 PolicyProvider::~PolicyProvider() { |
171 DCHECK(!prefs_); | 184 DCHECK(!prefs_); |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
383 } | 396 } |
384 | 397 |
385 if (name == prefs::kManagedAutoSelectCertificateForUrls || | 398 if (name == prefs::kManagedAutoSelectCertificateForUrls || |
386 name == prefs::kManagedCookiesAllowedForUrls || | 399 name == prefs::kManagedCookiesAllowedForUrls || |
387 name == prefs::kManagedCookiesBlockedForUrls || | 400 name == prefs::kManagedCookiesBlockedForUrls || |
388 name == prefs::kManagedCookiesSessionOnlyForUrls || | 401 name == prefs::kManagedCookiesSessionOnlyForUrls || |
389 name == prefs::kManagedImagesAllowedForUrls || | 402 name == prefs::kManagedImagesAllowedForUrls || |
390 name == prefs::kManagedImagesBlockedForUrls || | 403 name == prefs::kManagedImagesBlockedForUrls || |
391 name == prefs::kManagedJavaScriptAllowedForUrls || | 404 name == prefs::kManagedJavaScriptAllowedForUrls || |
392 name == prefs::kManagedJavaScriptBlockedForUrls || | 405 name == prefs::kManagedJavaScriptBlockedForUrls || |
406 name == prefs::kManagedKeygenAllowedForUrls || | |
407 name == prefs::kManagedKeygenBlockedForUrls || | |
393 name == prefs::kManagedNotificationsAllowedForUrls || | 408 name == prefs::kManagedNotificationsAllowedForUrls || |
394 name == prefs::kManagedNotificationsBlockedForUrls || | 409 name == prefs::kManagedNotificationsBlockedForUrls || |
395 name == prefs::kManagedPluginsAllowedForUrls || | 410 name == prefs::kManagedPluginsAllowedForUrls || |
396 name == prefs::kManagedPluginsBlockedForUrls || | 411 name == prefs::kManagedPluginsBlockedForUrls || |
397 name == prefs::kManagedPopupsAllowedForUrls || | 412 name == prefs::kManagedPopupsAllowedForUrls || |
398 name == prefs::kManagedPopupsBlockedForUrls) { | 413 name == prefs::kManagedPopupsBlockedForUrls) { |
399 ReadManagedContentSettings(true); | 414 ReadManagedContentSettings(true); |
400 ReadManagedDefaultSettings(); | 415 ReadManagedDefaultSettings(); |
401 } | 416 } |
402 | 417 |
403 NotifyObservers(ContentSettingsPattern(), | 418 NotifyObservers(ContentSettingsPattern(), |
404 ContentSettingsPattern(), | 419 ContentSettingsPattern(), |
405 CONTENT_SETTINGS_TYPE_DEFAULT, | 420 CONTENT_SETTINGS_TYPE_DEFAULT, |
406 std::string()); | 421 std::string()); |
407 } | 422 } |
408 | 423 |
409 } // namespace content_settings | 424 } // namespace content_settings |
OLD | NEW |