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

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

Issue 7537025: Add new Content settings type AUTO-SUBMIT-CERTIFICATE (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: " Created 9 years, 4 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 | Annotate | Revision Log
OLDNEW
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 19 matching lines...) Expand all
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 NULL, // Not used for Notifications
40 prefs::kManagedDefaultAutoSubmitCertificateSetting,
40 }; 41 };
41 42
42 struct PrefsForManagedContentSettingsMapEntry { 43 struct PrefsForManagedContentSettingsMapEntry {
43 const char* pref_name; 44 const char* pref_name;
44 ContentSettingsType content_type; 45 ContentSettingsType content_type;
45 ContentSetting setting; 46 ContentSetting setting;
46 }; 47 };
47 48
48 const PrefsForManagedContentSettingsMapEntry 49 const PrefsForManagedContentSettingsMapEntry
49 kPrefsForManagedContentSettingsMap[] = { 50 kPrefsForManagedContentSettingsMap[] = {
50 { 51 {
52 prefs::kManagedAutoSubmitCertificateForUrls,
53 CONTENT_SETTINGS_TYPE_AUTO_SUBMIT_CERTIFICATE,
54 CONTENT_SETTING_ALLOW
55 }, {
51 prefs::kManagedCookiesAllowedForUrls, 56 prefs::kManagedCookiesAllowedForUrls,
52 CONTENT_SETTINGS_TYPE_COOKIES, 57 CONTENT_SETTINGS_TYPE_COOKIES,
53 CONTENT_SETTING_ALLOW 58 CONTENT_SETTING_ALLOW
54 }, { 59 }, {
55 prefs::kManagedCookiesSessionOnlyForUrls, 60 prefs::kManagedCookiesSessionOnlyForUrls,
56 CONTENT_SETTINGS_TYPE_COOKIES, 61 CONTENT_SETTINGS_TYPE_COOKIES,
57 CONTENT_SETTING_SESSION_ONLY 62 CONTENT_SETTING_SESSION_ONLY
58 }, { 63 }, {
59 prefs::kManagedCookiesBlockedForUrls, 64 prefs::kManagedCookiesBlockedForUrls,
60 CONTENT_SETTINGS_TYPE_COOKIES, 65 CONTENT_SETTINGS_TYPE_COOKIES,
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 // corresponding default-content-setting is managed. These preferences exist 117 // corresponding default-content-setting is managed. These preferences exist
113 // in parallel to the preference default-content-settings. If a 118 // in parallel to the preference default-content-settings. If a
114 // default-content-settings-type is managed any user defined excpetions 119 // default-content-settings-type is managed any user defined excpetions
115 // (patterns) for this type are ignored. 120 // (patterns) for this type are ignored.
116 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, this); 121 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, this);
117 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, this); 122 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, this);
118 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, this); 123 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, this);
119 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, this); 124 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, this);
120 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, this); 125 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, this);
121 pref_change_registrar_.Add(prefs::kManagedDefaultGeolocationSetting, this); 126 pref_change_registrar_.Add(prefs::kManagedDefaultGeolocationSetting, this);
127 pref_change_registrar_.Add(
128 prefs::kManagedDefaultAutoSubmitCertificateSetting, this);
122 } 129 }
123 130
124 PolicyDefaultProvider::~PolicyDefaultProvider() { 131 PolicyDefaultProvider::~PolicyDefaultProvider() {
125 DCHECK(!prefs_); 132 DCHECK(!prefs_);
126 } 133 }
127 134
128 ContentSetting PolicyDefaultProvider::ProvideDefaultSetting( 135 ContentSetting PolicyDefaultProvider::ProvideDefaultSetting(
129 ContentSettingsType content_type) const { 136 ContentSettingsType content_type) const {
130 base::AutoLock auto_lock(lock_); 137 base::AutoLock auto_lock(lock_);
131 return managed_default_content_settings_.settings[content_type]; 138 return managed_default_content_settings_.settings[content_type];
(...skipping 28 matching lines...) Expand all
160 } else if (*name == prefs::kManagedDefaultImagesSetting) { 167 } else if (*name == prefs::kManagedDefaultImagesSetting) {
161 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_IMAGES); 168 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_IMAGES);
162 } else if (*name == prefs::kManagedDefaultJavaScriptSetting) { 169 } else if (*name == prefs::kManagedDefaultJavaScriptSetting) {
163 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT); 170 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT);
164 } else if (*name == prefs::kManagedDefaultPluginsSetting) { 171 } else if (*name == prefs::kManagedDefaultPluginsSetting) {
165 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS); 172 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS);
166 } else if (*name == prefs::kManagedDefaultPopupsSetting) { 173 } else if (*name == prefs::kManagedDefaultPopupsSetting) {
167 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_POPUPS); 174 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_POPUPS);
168 } else if (*name == prefs::kManagedDefaultGeolocationSetting) { 175 } else if (*name == prefs::kManagedDefaultGeolocationSetting) {
169 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION); 176 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION);
177 } else if (*name == prefs::kManagedDefaultAutoSubmitCertificateSetting) {
178 UpdateManagedDefaultSetting(
179 CONTENT_SETTINGS_TYPE_AUTO_SUBMIT_CERTIFICATE);
170 } else { 180 } else {
171 NOTREACHED() << "Unexpected preference observed"; 181 NOTREACHED() << "Unexpected preference observed";
172 return; 182 return;
173 } 183 }
174 184
175 NotifyObservers(ContentSettingsPattern(), 185 NotifyObservers(ContentSettingsPattern(),
176 ContentSettingsPattern(), 186 ContentSettingsPattern(),
177 CONTENT_SETTINGS_TYPE_DEFAULT, 187 CONTENT_SETTINGS_TYPE_DEFAULT,
178 std::string()); 188 std::string());
179 } else { 189 } else {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 PrefService::UNSYNCABLE_PREF); 238 PrefService::UNSYNCABLE_PREF);
229 prefs->RegisterIntegerPref(prefs::kManagedDefaultPluginsSetting, 239 prefs->RegisterIntegerPref(prefs::kManagedDefaultPluginsSetting,
230 CONTENT_SETTING_DEFAULT, 240 CONTENT_SETTING_DEFAULT,
231 PrefService::UNSYNCABLE_PREF); 241 PrefService::UNSYNCABLE_PREF);
232 prefs->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting, 242 prefs->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting,
233 CONTENT_SETTING_DEFAULT, 243 CONTENT_SETTING_DEFAULT,
234 PrefService::UNSYNCABLE_PREF); 244 PrefService::UNSYNCABLE_PREF);
235 prefs->RegisterIntegerPref(prefs::kManagedDefaultGeolocationSetting, 245 prefs->RegisterIntegerPref(prefs::kManagedDefaultGeolocationSetting,
236 CONTENT_SETTING_DEFAULT, 246 CONTENT_SETTING_DEFAULT,
237 PrefService::UNSYNCABLE_PREF); 247 PrefService::UNSYNCABLE_PREF);
248 prefs->RegisterIntegerPref(prefs::kManagedDefaultAutoSubmitCertificateSetting,
249 CONTENT_SETTING_BLOCK,
wtc 2011/08/11 18:33:55 It seems that the default should be CONTENT_SETTIN
markusheintz_ 2011/08/15 19:09:04 Yes you are right. Initially I only used two value
250 PrefService::UNSYNCABLE_PREF);
238 } 251 }
239 252
240 // //////////////////////////////////////////////////////////////////////////// 253 // ////////////////////////////////////////////////////////////////////////////
241 // PolicyProvider 254 // PolicyProvider
242 255
243 // static 256 // static
244 void PolicyProvider::RegisterUserPrefs(PrefService* prefs) { 257 void PolicyProvider::RegisterUserPrefs(PrefService* prefs) {
258 prefs->RegisterListPref(prefs::kManagedAutoSubmitCertificateForUrls,
259 PrefService::UNSYNCABLE_PREF);
245 prefs->RegisterListPref(prefs::kManagedCookiesAllowedForUrls, 260 prefs->RegisterListPref(prefs::kManagedCookiesAllowedForUrls,
246 PrefService::UNSYNCABLE_PREF); 261 PrefService::UNSYNCABLE_PREF);
247 prefs->RegisterListPref(prefs::kManagedCookiesBlockedForUrls, 262 prefs->RegisterListPref(prefs::kManagedCookiesBlockedForUrls,
248 PrefService::UNSYNCABLE_PREF); 263 PrefService::UNSYNCABLE_PREF);
249 prefs->RegisterListPref(prefs::kManagedCookiesSessionOnlyForUrls, 264 prefs->RegisterListPref(prefs::kManagedCookiesSessionOnlyForUrls,
250 PrefService::UNSYNCABLE_PREF); 265 PrefService::UNSYNCABLE_PREF);
251 prefs->RegisterListPref(prefs::kManagedImagesAllowedForUrls, 266 prefs->RegisterListPref(prefs::kManagedImagesAllowedForUrls,
252 PrefService::UNSYNCABLE_PREF); 267 PrefService::UNSYNCABLE_PREF);
253 prefs->RegisterListPref(prefs::kManagedImagesBlockedForUrls, 268 prefs->RegisterListPref(prefs::kManagedImagesBlockedForUrls,
254 PrefService::UNSYNCABLE_PREF); 269 PrefService::UNSYNCABLE_PREF);
(...skipping 11 matching lines...) Expand all
266 PrefService::UNSYNCABLE_PREF); 281 PrefService::UNSYNCABLE_PREF);
267 } 282 }
268 283
269 PolicyProvider::PolicyProvider(PrefService* prefs, 284 PolicyProvider::PolicyProvider(PrefService* prefs,
270 DefaultProviderInterface* default_provider) 285 DefaultProviderInterface* default_provider)
271 : prefs_(prefs), 286 : prefs_(prefs),
272 default_provider_(default_provider) { 287 default_provider_(default_provider) {
273 ReadManagedContentSettings(false); 288 ReadManagedContentSettings(false);
274 289
275 pref_change_registrar_.Init(prefs_); 290 pref_change_registrar_.Init(prefs_);
291 pref_change_registrar_.Add(prefs::kManagedAutoSubmitCertificateForUrls, this);
276 pref_change_registrar_.Add(prefs::kManagedCookiesBlockedForUrls, this); 292 pref_change_registrar_.Add(prefs::kManagedCookiesBlockedForUrls, this);
277 pref_change_registrar_.Add(prefs::kManagedCookiesAllowedForUrls, this); 293 pref_change_registrar_.Add(prefs::kManagedCookiesAllowedForUrls, this);
278 pref_change_registrar_.Add(prefs::kManagedCookiesSessionOnlyForUrls, this); 294 pref_change_registrar_.Add(prefs::kManagedCookiesSessionOnlyForUrls, this);
279 pref_change_registrar_.Add(prefs::kManagedImagesBlockedForUrls, this); 295 pref_change_registrar_.Add(prefs::kManagedImagesBlockedForUrls, this);
280 pref_change_registrar_.Add(prefs::kManagedImagesAllowedForUrls, this); 296 pref_change_registrar_.Add(prefs::kManagedImagesAllowedForUrls, this);
281 pref_change_registrar_.Add(prefs::kManagedJavaScriptBlockedForUrls, this); 297 pref_change_registrar_.Add(prefs::kManagedJavaScriptBlockedForUrls, this);
282 pref_change_registrar_.Add(prefs::kManagedJavaScriptAllowedForUrls, this); 298 pref_change_registrar_.Add(prefs::kManagedJavaScriptAllowedForUrls, this);
283 pref_change_registrar_.Add(prefs::kManagedPluginsBlockedForUrls, this); 299 pref_change_registrar_.Add(prefs::kManagedPluginsBlockedForUrls, this);
284 pref_change_registrar_.Add(prefs::kManagedPluginsAllowedForUrls, this); 300 pref_change_registrar_.Add(prefs::kManagedPluginsAllowedForUrls, this);
285 pref_change_registrar_.Add(prefs::kManagedPopupsBlockedForUrls, this); 301 pref_change_registrar_.Add(prefs::kManagedPopupsBlockedForUrls, this);
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 } 439 }
424 440
425 void PolicyProvider::Observe(int type, 441 void PolicyProvider::Observe(int type,
426 const NotificationSource& source, 442 const NotificationSource& source,
427 const NotificationDetails& details) { 443 const NotificationDetails& details) {
428 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 444 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
429 445
430 if (type == chrome::NOTIFICATION_PREF_CHANGED) { 446 if (type == chrome::NOTIFICATION_PREF_CHANGED) {
431 DCHECK_EQ(prefs_, Source<PrefService>(source).ptr()); 447 DCHECK_EQ(prefs_, Source<PrefService>(source).ptr());
432 std::string* name = Details<std::string>(details).ptr(); 448 std::string* name = Details<std::string>(details).ptr();
433 if (*name == prefs::kManagedCookiesAllowedForUrls || 449 if (*name == prefs::kManagedAutoSubmitCertificateForUrls ||
450 *name == prefs::kManagedCookiesAllowedForUrls ||
434 *name == prefs::kManagedCookiesBlockedForUrls || 451 *name == prefs::kManagedCookiesBlockedForUrls ||
435 *name == prefs::kManagedCookiesSessionOnlyForUrls || 452 *name == prefs::kManagedCookiesSessionOnlyForUrls ||
436 *name == prefs::kManagedImagesAllowedForUrls || 453 *name == prefs::kManagedImagesAllowedForUrls ||
437 *name == prefs::kManagedImagesBlockedForUrls || 454 *name == prefs::kManagedImagesBlockedForUrls ||
438 *name == prefs::kManagedJavaScriptAllowedForUrls || 455 *name == prefs::kManagedJavaScriptAllowedForUrls ||
439 *name == prefs::kManagedJavaScriptBlockedForUrls || 456 *name == prefs::kManagedJavaScriptBlockedForUrls ||
440 *name == prefs::kManagedPluginsAllowedForUrls || 457 *name == prefs::kManagedPluginsAllowedForUrls ||
441 *name == prefs::kManagedPluginsBlockedForUrls || 458 *name == prefs::kManagedPluginsBlockedForUrls ||
442 *name == prefs::kManagedPopupsAllowedForUrls || 459 *name == prefs::kManagedPopupsAllowedForUrls ||
443 *name == prefs::kManagedPopupsBlockedForUrls) { 460 *name == prefs::kManagedPopupsBlockedForUrls) {
444 ReadManagedContentSettings(true); 461 ReadManagedContentSettings(true);
445 NotifyObservers(ContentSettingsPattern(), 462 NotifyObservers(ContentSettingsPattern(),
446 ContentSettingsPattern(), 463 ContentSettingsPattern(),
447 CONTENT_SETTINGS_TYPE_DEFAULT, 464 CONTENT_SETTINGS_TYPE_DEFAULT,
448 std::string()); 465 std::string());
449 } 466 }
450 } else { 467 } else {
451 NOTREACHED() << "Unexpected notification"; 468 NOTREACHED() << "Unexpected notification";
452 } 469 }
453 } 470 }
454 471
455 } // namespace content_settings 472 } // namespace content_settings
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698