Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(538)

Side by Side Diff: chrome/browser/content_settings/content_settings_policy_provider.cc

Issue 27635002: Content settings for <audio> and <video>. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Test fix. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 11 matching lines...) Expand all
22 22
23 using content::BrowserThread; 23 using content::BrowserThread;
24 24
25 namespace { 25 namespace {
26 26
27 // The preferences used to manage ContentSettingsTypes. 27 // The preferences used to manage ContentSettingsTypes.
28 const char* kPrefToManageType[] = { 28 const char* kPrefToManageType[] = {
29 prefs::kManagedDefaultCookiesSetting, 29 prefs::kManagedDefaultCookiesSetting,
30 prefs::kManagedDefaultImagesSetting, 30 prefs::kManagedDefaultImagesSetting,
31 prefs::kManagedDefaultJavaScriptSetting, 31 prefs::kManagedDefaultJavaScriptSetting,
32 prefs::kManagedDefaultMediaSetting,
Bernhard Bauer 2014/07/01 09:12:50 Not all of these are immediately necessary. The ch
32 prefs::kManagedDefaultPluginsSetting, 33 prefs::kManagedDefaultPluginsSetting,
33 prefs::kManagedDefaultPopupsSetting, 34 prefs::kManagedDefaultPopupsSetting,
34 prefs::kManagedDefaultGeolocationSetting, 35 prefs::kManagedDefaultGeolocationSetting,
35 prefs::kManagedDefaultNotificationsSetting, 36 prefs::kManagedDefaultNotificationsSetting,
36 NULL, // No policy for default value of content type auto-select-certificate 37 NULL, // No policy for default value of content type auto-select-certificate
37 NULL, // No policy for default value of fullscreen requests 38 NULL, // No policy for default value of fullscreen requests
38 NULL, // No policy for default value of mouse lock requests 39 NULL, // No policy for default value of mouse lock requests
39 NULL, // No policy for default value of mixed script blocking 40 NULL, // No policy for default value of mixed script blocking
40 prefs::kManagedDefaultMediaStreamSetting, 41 prefs::kManagedDefaultMediaStreamSetting,
41 NULL, // No policy for default value of media stream mic 42 NULL, // No policy for default value of media stream mic
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 CONTENT_SETTING_BLOCK 88 CONTENT_SETTING_BLOCK
88 }, { 89 }, {
89 prefs::kManagedJavaScriptAllowedForUrls, 90 prefs::kManagedJavaScriptAllowedForUrls,
90 CONTENT_SETTINGS_TYPE_JAVASCRIPT, 91 CONTENT_SETTINGS_TYPE_JAVASCRIPT,
91 CONTENT_SETTING_ALLOW 92 CONTENT_SETTING_ALLOW
92 }, { 93 }, {
93 prefs::kManagedJavaScriptBlockedForUrls, 94 prefs::kManagedJavaScriptBlockedForUrls,
94 CONTENT_SETTINGS_TYPE_JAVASCRIPT, 95 CONTENT_SETTINGS_TYPE_JAVASCRIPT,
95 CONTENT_SETTING_BLOCK 96 CONTENT_SETTING_BLOCK
96 }, { 97 }, {
98 prefs::kManagedMediaAllowedForUrls,
99 CONTENT_SETTINGS_TYPE_MEDIA,
100 CONTENT_SETTING_ALLOW
101 }, {
102 prefs::kManagedMediaBlockedForUrls,
103 CONTENT_SETTINGS_TYPE_MEDIA,
104 CONTENT_SETTING_BLOCK
105 }, {
97 prefs::kManagedPluginsAllowedForUrls, 106 prefs::kManagedPluginsAllowedForUrls,
98 CONTENT_SETTINGS_TYPE_PLUGINS, 107 CONTENT_SETTINGS_TYPE_PLUGINS,
99 CONTENT_SETTING_ALLOW 108 CONTENT_SETTING_ALLOW
100 }, { 109 }, {
101 prefs::kManagedPluginsBlockedForUrls, 110 prefs::kManagedPluginsBlockedForUrls,
102 CONTENT_SETTINGS_TYPE_PLUGINS, 111 CONTENT_SETTINGS_TYPE_PLUGINS,
103 CONTENT_SETTING_BLOCK 112 CONTENT_SETTING_BLOCK
104 }, { 113 }, {
105 prefs::kManagedPopupsAllowedForUrls, 114 prefs::kManagedPopupsAllowedForUrls,
106 CONTENT_SETTINGS_TYPE_POPUPS, 115 CONTENT_SETTINGS_TYPE_POPUPS,
(...skipping 29 matching lines...) Expand all
136 registry->RegisterListPref(prefs::kManagedCookiesSessionOnlyForUrls, 145 registry->RegisterListPref(prefs::kManagedCookiesSessionOnlyForUrls,
137 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 146 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
138 registry->RegisterListPref(prefs::kManagedImagesAllowedForUrls, 147 registry->RegisterListPref(prefs::kManagedImagesAllowedForUrls,
139 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 148 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
140 registry->RegisterListPref(prefs::kManagedImagesBlockedForUrls, 149 registry->RegisterListPref(prefs::kManagedImagesBlockedForUrls,
141 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 150 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
142 registry->RegisterListPref(prefs::kManagedJavaScriptAllowedForUrls, 151 registry->RegisterListPref(prefs::kManagedJavaScriptAllowedForUrls,
143 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 152 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
144 registry->RegisterListPref(prefs::kManagedJavaScriptBlockedForUrls, 153 registry->RegisterListPref(prefs::kManagedJavaScriptBlockedForUrls,
145 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 154 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
155 registry->RegisterListPref(prefs::kManagedMediaAllowedForUrls,
156 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
157 registry->RegisterListPref(prefs::kManagedMediaBlockedForUrls,
158 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
146 registry->RegisterListPref(prefs::kManagedPluginsAllowedForUrls, 159 registry->RegisterListPref(prefs::kManagedPluginsAllowedForUrls,
147 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 160 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
148 registry->RegisterListPref(prefs::kManagedPluginsBlockedForUrls, 161 registry->RegisterListPref(prefs::kManagedPluginsBlockedForUrls,
149 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 162 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
150 registry->RegisterListPref(prefs::kManagedPopupsAllowedForUrls, 163 registry->RegisterListPref(prefs::kManagedPopupsAllowedForUrls,
151 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 164 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
152 registry->RegisterListPref(prefs::kManagedPopupsBlockedForUrls, 165 registry->RegisterListPref(prefs::kManagedPopupsBlockedForUrls,
153 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 166 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
154 registry->RegisterListPref(prefs::kManagedNotificationsAllowedForUrls, 167 registry->RegisterListPref(prefs::kManagedNotificationsAllowedForUrls,
155 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 168 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
156 registry->RegisterListPref(prefs::kManagedNotificationsBlockedForUrls, 169 registry->RegisterListPref(prefs::kManagedNotificationsBlockedForUrls,
157 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 170 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
158 // Preferences for default content setting policies. If a policy is not set of 171 // Preferences for default content setting policies. If a policy is not set of
159 // the corresponding preferences below is set to CONTENT_SETTING_DEFAULT. 172 // the corresponding preferences below is set to CONTENT_SETTING_DEFAULT.
160 registry->RegisterIntegerPref( 173 registry->RegisterIntegerPref(
161 prefs::kManagedDefaultCookiesSetting, 174 prefs::kManagedDefaultCookiesSetting,
162 CONTENT_SETTING_DEFAULT, 175 CONTENT_SETTING_DEFAULT,
163 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 176 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
164 registry->RegisterIntegerPref( 177 registry->RegisterIntegerPref(
165 prefs::kManagedDefaultImagesSetting, 178 prefs::kManagedDefaultImagesSetting,
166 CONTENT_SETTING_DEFAULT, 179 CONTENT_SETTING_DEFAULT,
167 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 180 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
168 registry->RegisterIntegerPref( 181 registry->RegisterIntegerPref(
169 prefs::kManagedDefaultJavaScriptSetting, 182 prefs::kManagedDefaultJavaScriptSetting,
170 CONTENT_SETTING_DEFAULT, 183 CONTENT_SETTING_DEFAULT,
171 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 184 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
172 registry->RegisterIntegerPref( 185 registry->RegisterIntegerPref(
186 prefs::kManagedDefaultMediaSetting,
187 CONTENT_SETTING_DEFAULT,
188 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
189 registry->RegisterIntegerPref(
173 prefs::kManagedDefaultPluginsSetting, 190 prefs::kManagedDefaultPluginsSetting,
174 CONTENT_SETTING_DEFAULT, 191 CONTENT_SETTING_DEFAULT,
175 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 192 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
176 registry->RegisterIntegerPref( 193 registry->RegisterIntegerPref(
177 prefs::kManagedDefaultPopupsSetting, 194 prefs::kManagedDefaultPopupsSetting,
178 CONTENT_SETTING_DEFAULT, 195 CONTENT_SETTING_DEFAULT,
179 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 196 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
180 registry->RegisterIntegerPref( 197 registry->RegisterIntegerPref(
181 prefs::kManagedDefaultGeolocationSetting, 198 prefs::kManagedDefaultGeolocationSetting,
182 CONTENT_SETTING_DEFAULT, 199 CONTENT_SETTING_DEFAULT,
(...skipping 18 matching lines...) Expand all
201 pref_change_registrar_.Add( 218 pref_change_registrar_.Add(
202 prefs::kManagedAutoSelectCertificateForUrls, callback); 219 prefs::kManagedAutoSelectCertificateForUrls, callback);
203 pref_change_registrar_.Add(prefs::kManagedCookiesBlockedForUrls, callback); 220 pref_change_registrar_.Add(prefs::kManagedCookiesBlockedForUrls, callback);
204 pref_change_registrar_.Add(prefs::kManagedCookiesAllowedForUrls, callback); 221 pref_change_registrar_.Add(prefs::kManagedCookiesAllowedForUrls, callback);
205 pref_change_registrar_.Add( 222 pref_change_registrar_.Add(
206 prefs::kManagedCookiesSessionOnlyForUrls, callback); 223 prefs::kManagedCookiesSessionOnlyForUrls, callback);
207 pref_change_registrar_.Add(prefs::kManagedImagesBlockedForUrls, callback); 224 pref_change_registrar_.Add(prefs::kManagedImagesBlockedForUrls, callback);
208 pref_change_registrar_.Add(prefs::kManagedImagesAllowedForUrls, callback); 225 pref_change_registrar_.Add(prefs::kManagedImagesAllowedForUrls, callback);
209 pref_change_registrar_.Add(prefs::kManagedJavaScriptBlockedForUrls, callback); 226 pref_change_registrar_.Add(prefs::kManagedJavaScriptBlockedForUrls, callback);
210 pref_change_registrar_.Add(prefs::kManagedJavaScriptAllowedForUrls, callback); 227 pref_change_registrar_.Add(prefs::kManagedJavaScriptAllowedForUrls, callback);
228 pref_change_registrar_.Add(prefs::kManagedMediaBlockedForUrls, callback);
229 pref_change_registrar_.Add(prefs::kManagedMediaAllowedForUrls, callback);
211 pref_change_registrar_.Add(prefs::kManagedPluginsBlockedForUrls, callback); 230 pref_change_registrar_.Add(prefs::kManagedPluginsBlockedForUrls, callback);
212 pref_change_registrar_.Add(prefs::kManagedPluginsAllowedForUrls, callback); 231 pref_change_registrar_.Add(prefs::kManagedPluginsAllowedForUrls, callback);
213 pref_change_registrar_.Add(prefs::kManagedPopupsBlockedForUrls, callback); 232 pref_change_registrar_.Add(prefs::kManagedPopupsBlockedForUrls, callback);
214 pref_change_registrar_.Add(prefs::kManagedPopupsAllowedForUrls, callback); 233 pref_change_registrar_.Add(prefs::kManagedPopupsAllowedForUrls, callback);
215 pref_change_registrar_.Add( 234 pref_change_registrar_.Add(
216 prefs::kManagedNotificationsAllowedForUrls, callback); 235 prefs::kManagedNotificationsAllowedForUrls, callback);
217 pref_change_registrar_.Add( 236 pref_change_registrar_.Add(
218 prefs::kManagedNotificationsBlockedForUrls, callback); 237 prefs::kManagedNotificationsBlockedForUrls, callback);
219 // The following preferences are only used to indicate if a 238 // The following preferences are only used to indicate if a
220 // default content setting is managed and to hold the managed default setting 239 // default content setting is managed and to hold the managed default setting
221 // value. If the value for any of the following perferences is set then the 240 // value. If the value for any of the following perferences is set then the
222 // corresponding default content setting is managed. These preferences exist 241 // corresponding default content setting is managed. These preferences exist
223 // in parallel to the preference default content settings. If a 242 // in parallel to the preference default content settings. If a
224 // default content settings type is managed any user defined excpetions 243 // default content settings type is managed any user defined excpetions
225 // (patterns) for this type are ignored. 244 // (patterns) for this type are ignored.
226 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, callback); 245 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, callback);
227 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, callback); 246 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, callback);
228 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, callback); 247 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, callback);
248 pref_change_registrar_.Add(prefs::kManagedDefaultMediaSetting, callback);
229 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, callback); 249 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, callback);
230 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, callback); 250 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, callback);
231 pref_change_registrar_.Add( 251 pref_change_registrar_.Add(
232 prefs::kManagedDefaultGeolocationSetting, callback); 252 prefs::kManagedDefaultGeolocationSetting, callback);
233 pref_change_registrar_.Add( 253 pref_change_registrar_.Add(
234 prefs::kManagedDefaultNotificationsSetting, callback); 254 prefs::kManagedDefaultNotificationsSetting, callback);
235 pref_change_registrar_.Add( 255 pref_change_registrar_.Add(
236 prefs::kManagedDefaultMediaStreamSetting, callback); 256 prefs::kManagedDefaultMediaStreamSetting, callback);
237 } 257 }
238 258
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
457 477
458 void PolicyProvider::OnPreferenceChanged(const std::string& name) { 478 void PolicyProvider::OnPreferenceChanged(const std::string& name) {
459 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 479 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
460 480
461 if (name == prefs::kManagedDefaultCookiesSetting) { 481 if (name == prefs::kManagedDefaultCookiesSetting) {
462 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES); 482 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_COOKIES);
463 } else if (name == prefs::kManagedDefaultImagesSetting) { 483 } else if (name == prefs::kManagedDefaultImagesSetting) {
464 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_IMAGES); 484 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_IMAGES);
465 } else if (name == prefs::kManagedDefaultJavaScriptSetting) { 485 } else if (name == prefs::kManagedDefaultJavaScriptSetting) {
466 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT); 486 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT);
487 } else if (name == prefs::kManagedDefaultMediaSetting) {
488 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_MEDIA);
467 } else if (name == prefs::kManagedDefaultPluginsSetting) { 489 } else if (name == prefs::kManagedDefaultPluginsSetting) {
468 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS); 490 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS);
469 } else if (name == prefs::kManagedDefaultPopupsSetting) { 491 } else if (name == prefs::kManagedDefaultPopupsSetting) {
470 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_POPUPS); 492 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_POPUPS);
471 } else if (name == prefs::kManagedDefaultGeolocationSetting) { 493 } else if (name == prefs::kManagedDefaultGeolocationSetting) {
472 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION); 494 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION);
473 } else if (name == prefs::kManagedDefaultNotificationsSetting) { 495 } else if (name == prefs::kManagedDefaultNotificationsSetting) {
474 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); 496 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
475 } else if (name == prefs::kManagedDefaultMediaStreamSetting) { 497 } else if (name == prefs::kManagedDefaultMediaStreamSetting) {
476 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_MEDIASTREAM); 498 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_MEDIASTREAM);
477 } else if (name == prefs::kManagedAutoSelectCertificateForUrls || 499 } else if (name == prefs::kManagedAutoSelectCertificateForUrls ||
478 name == prefs::kManagedCookiesAllowedForUrls || 500 name == prefs::kManagedCookiesAllowedForUrls ||
479 name == prefs::kManagedCookiesBlockedForUrls || 501 name == prefs::kManagedCookiesBlockedForUrls ||
480 name == prefs::kManagedCookiesSessionOnlyForUrls || 502 name == prefs::kManagedCookiesSessionOnlyForUrls ||
481 name == prefs::kManagedImagesAllowedForUrls || 503 name == prefs::kManagedImagesAllowedForUrls ||
482 name == prefs::kManagedImagesBlockedForUrls || 504 name == prefs::kManagedImagesBlockedForUrls ||
483 name == prefs::kManagedJavaScriptAllowedForUrls || 505 name == prefs::kManagedJavaScriptAllowedForUrls ||
484 name == prefs::kManagedJavaScriptBlockedForUrls || 506 name == prefs::kManagedJavaScriptBlockedForUrls ||
507 name == prefs::kManagedMediaAllowedForUrls ||
508 name == prefs::kManagedMediaBlockedForUrls ||
485 name == prefs::kManagedPluginsAllowedForUrls || 509 name == prefs::kManagedPluginsAllowedForUrls ||
486 name == prefs::kManagedPluginsBlockedForUrls || 510 name == prefs::kManagedPluginsBlockedForUrls ||
487 name == prefs::kManagedPopupsAllowedForUrls || 511 name == prefs::kManagedPopupsAllowedForUrls ||
488 name == prefs::kManagedPopupsBlockedForUrls || 512 name == prefs::kManagedPopupsBlockedForUrls ||
489 name == prefs::kManagedNotificationsAllowedForUrls || 513 name == prefs::kManagedNotificationsAllowedForUrls ||
490 name == prefs::kManagedNotificationsBlockedForUrls) { 514 name == prefs::kManagedNotificationsBlockedForUrls) {
491 ReadManagedContentSettings(true); 515 ReadManagedContentSettings(true);
492 ReadManagedDefaultSettings(); 516 ReadManagedDefaultSettings();
493 } 517 }
494 518
495 NotifyObservers(ContentSettingsPattern(), 519 NotifyObservers(ContentSettingsPattern(),
496 ContentSettingsPattern(), 520 ContentSettingsPattern(),
497 CONTENT_SETTINGS_TYPE_DEFAULT, 521 CONTENT_SETTINGS_TYPE_DEFAULT,
498 std::string()); 522 std::string());
499 } 523 }
500 524
501 } // namespace content_settings 525 } // namespace content_settings
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698