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

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 prefs::kManagedDefaultNotificationsSetting, 39 prefs::kManagedDefaultNotificationsSetting,
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 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
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);
122 pref_change_registrar_.Add(prefs::kManagedDefaultNotificationsSetting, this); 127 pref_change_registrar_.Add(prefs::kManagedDefaultNotificationsSetting, this);
128 pref_change_registrar_.Add(
129 prefs::kManagedDefaultAutoSubmitCertificateSetting, this);
123 } 130 }
124 131
125 PolicyDefaultProvider::~PolicyDefaultProvider() { 132 PolicyDefaultProvider::~PolicyDefaultProvider() {
126 DCHECK(!prefs_); 133 DCHECK(!prefs_);
127 } 134 }
128 135
129 ContentSetting PolicyDefaultProvider::ProvideDefaultSetting( 136 ContentSetting PolicyDefaultProvider::ProvideDefaultSetting(
130 ContentSettingsType content_type) const { 137 ContentSettingsType content_type) const {
131 base::AutoLock auto_lock(lock_); 138 base::AutoLock auto_lock(lock_);
132 return managed_default_content_settings_.settings[content_type]; 139 return managed_default_content_settings_.settings[content_type];
(...skipping 30 matching lines...) Expand all
163 } else if (*name == prefs::kManagedDefaultJavaScriptSetting) { 170 } else if (*name == prefs::kManagedDefaultJavaScriptSetting) {
164 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT); 171 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT);
165 } else if (*name == prefs::kManagedDefaultPluginsSetting) { 172 } else if (*name == prefs::kManagedDefaultPluginsSetting) {
166 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS); 173 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_PLUGINS);
167 } else if (*name == prefs::kManagedDefaultPopupsSetting) { 174 } else if (*name == prefs::kManagedDefaultPopupsSetting) {
168 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_POPUPS); 175 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_POPUPS);
169 } else if (*name == prefs::kManagedDefaultGeolocationSetting) { 176 } else if (*name == prefs::kManagedDefaultGeolocationSetting) {
170 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION); 177 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_GEOLOCATION);
171 } else if (*name == prefs::kManagedDefaultNotificationsSetting) { 178 } else if (*name == prefs::kManagedDefaultNotificationsSetting) {
172 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); 179 UpdateManagedDefaultSetting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
180 } else if (*name == prefs::kManagedDefaultAutoSubmitCertificateSetting) {
181 UpdateManagedDefaultSetting(
182 CONTENT_SETTINGS_TYPE_AUTO_SUBMIT_CERTIFICATE);
173 } else { 183 } else {
174 NOTREACHED() << "Unexpected preference observed"; 184 NOTREACHED() << "Unexpected preference observed";
175 return; 185 return;
176 } 186 }
177 187
178 NotifyObservers(ContentSettingsPattern(), 188 NotifyObservers(ContentSettingsPattern(),
179 ContentSettingsPattern(), 189 ContentSettingsPattern(),
180 CONTENT_SETTINGS_TYPE_DEFAULT, 190 CONTENT_SETTINGS_TYPE_DEFAULT,
181 std::string()); 191 std::string());
182 } else { 192 } else {
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 PrefService::UNSYNCABLE_PREF); 244 PrefService::UNSYNCABLE_PREF);
235 prefs->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting, 245 prefs->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting,
236 CONTENT_SETTING_DEFAULT, 246 CONTENT_SETTING_DEFAULT,
237 PrefService::UNSYNCABLE_PREF); 247 PrefService::UNSYNCABLE_PREF);
238 prefs->RegisterIntegerPref(prefs::kManagedDefaultGeolocationSetting, 248 prefs->RegisterIntegerPref(prefs::kManagedDefaultGeolocationSetting,
239 CONTENT_SETTING_DEFAULT, 249 CONTENT_SETTING_DEFAULT,
240 PrefService::UNSYNCABLE_PREF); 250 PrefService::UNSYNCABLE_PREF);
241 prefs->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting, 251 prefs->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting,
242 CONTENT_SETTING_DEFAULT, 252 CONTENT_SETTING_DEFAULT,
243 PrefService::UNSYNCABLE_PREF); 253 PrefService::UNSYNCABLE_PREF);
254 prefs->RegisterIntegerPref(prefs::kManagedDefaultAutoSubmitCertificateSetting,
255 CONTENT_SETTING_ASK,
256 PrefService::UNSYNCABLE_PREF);
244 } 257 }
245 258
246 // //////////////////////////////////////////////////////////////////////////// 259 // ////////////////////////////////////////////////////////////////////////////
247 // PolicyProvider 260 // PolicyProvider
248 261
249 // static 262 // static
250 void PolicyProvider::RegisterUserPrefs(PrefService* prefs) { 263 void PolicyProvider::RegisterUserPrefs(PrefService* prefs) {
264 prefs->RegisterListPref(prefs::kManagedAutoSubmitCertificateForUrls,
265 PrefService::UNSYNCABLE_PREF);
251 prefs->RegisterListPref(prefs::kManagedCookiesAllowedForUrls, 266 prefs->RegisterListPref(prefs::kManagedCookiesAllowedForUrls,
252 PrefService::UNSYNCABLE_PREF); 267 PrefService::UNSYNCABLE_PREF);
253 prefs->RegisterListPref(prefs::kManagedCookiesBlockedForUrls, 268 prefs->RegisterListPref(prefs::kManagedCookiesBlockedForUrls,
254 PrefService::UNSYNCABLE_PREF); 269 PrefService::UNSYNCABLE_PREF);
255 prefs->RegisterListPref(prefs::kManagedCookiesSessionOnlyForUrls, 270 prefs->RegisterListPref(prefs::kManagedCookiesSessionOnlyForUrls,
256 PrefService::UNSYNCABLE_PREF); 271 PrefService::UNSYNCABLE_PREF);
257 prefs->RegisterListPref(prefs::kManagedImagesAllowedForUrls, 272 prefs->RegisterListPref(prefs::kManagedImagesAllowedForUrls,
258 PrefService::UNSYNCABLE_PREF); 273 PrefService::UNSYNCABLE_PREF);
259 prefs->RegisterListPref(prefs::kManagedImagesBlockedForUrls, 274 prefs->RegisterListPref(prefs::kManagedImagesBlockedForUrls,
260 PrefService::UNSYNCABLE_PREF); 275 PrefService::UNSYNCABLE_PREF);
(...skipping 11 matching lines...) Expand all
272 PrefService::UNSYNCABLE_PREF); 287 PrefService::UNSYNCABLE_PREF);
273 } 288 }
274 289
275 PolicyProvider::PolicyProvider(PrefService* prefs, 290 PolicyProvider::PolicyProvider(PrefService* prefs,
276 DefaultProviderInterface* default_provider) 291 DefaultProviderInterface* default_provider)
277 : prefs_(prefs), 292 : prefs_(prefs),
278 default_provider_(default_provider) { 293 default_provider_(default_provider) {
279 ReadManagedContentSettings(false); 294 ReadManagedContentSettings(false);
280 295
281 pref_change_registrar_.Init(prefs_); 296 pref_change_registrar_.Init(prefs_);
297 pref_change_registrar_.Add(prefs::kManagedAutoSubmitCertificateForUrls, this);
282 pref_change_registrar_.Add(prefs::kManagedCookiesBlockedForUrls, this); 298 pref_change_registrar_.Add(prefs::kManagedCookiesBlockedForUrls, this);
283 pref_change_registrar_.Add(prefs::kManagedCookiesAllowedForUrls, this); 299 pref_change_registrar_.Add(prefs::kManagedCookiesAllowedForUrls, this);
284 pref_change_registrar_.Add(prefs::kManagedCookiesSessionOnlyForUrls, this); 300 pref_change_registrar_.Add(prefs::kManagedCookiesSessionOnlyForUrls, this);
285 pref_change_registrar_.Add(prefs::kManagedImagesBlockedForUrls, this); 301 pref_change_registrar_.Add(prefs::kManagedImagesBlockedForUrls, this);
286 pref_change_registrar_.Add(prefs::kManagedImagesAllowedForUrls, this); 302 pref_change_registrar_.Add(prefs::kManagedImagesAllowedForUrls, this);
287 pref_change_registrar_.Add(prefs::kManagedJavaScriptBlockedForUrls, this); 303 pref_change_registrar_.Add(prefs::kManagedJavaScriptBlockedForUrls, this);
288 pref_change_registrar_.Add(prefs::kManagedJavaScriptAllowedForUrls, this); 304 pref_change_registrar_.Add(prefs::kManagedJavaScriptAllowedForUrls, this);
289 pref_change_registrar_.Add(prefs::kManagedPluginsBlockedForUrls, this); 305 pref_change_registrar_.Add(prefs::kManagedPluginsBlockedForUrls, this);
290 pref_change_registrar_.Add(prefs::kManagedPluginsAllowedForUrls, this); 306 pref_change_registrar_.Add(prefs::kManagedPluginsAllowedForUrls, this);
291 pref_change_registrar_.Add(prefs::kManagedPopupsBlockedForUrls, this); 307 pref_change_registrar_.Add(prefs::kManagedPopupsBlockedForUrls, this);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 // Ignore invalid patterns. 339 // Ignore invalid patterns.
324 if (!pattern_pair.first.IsValid()) { 340 if (!pattern_pair.first.IsValid()) {
325 VLOG(1) << "Ignoring invalid content settings pattern: " << 341 VLOG(1) << "Ignoring invalid content settings pattern: " <<
326 original_pattern_str; 342 original_pattern_str;
327 continue; 343 continue;
328 } 344 }
329 345
330 ContentSettingsType content_type = 346 ContentSettingsType content_type =
331 kPrefsForManagedContentSettingsMap[i].content_type; 347 kPrefsForManagedContentSettingsMap[i].content_type;
332 // If only one pattern was defined auto expand it to a pattern pair. 348 // If only one pattern was defined auto expand it to a pattern pair.
349 ContentSettingsPattern secondary_pattern =
350 !pattern_pair.second.IsValid() ? ContentSettingsPattern::Wildcard()
351 : pattern_pair.second;
333 rules->push_back(MakeTuple( 352 rules->push_back(MakeTuple(
334 pattern_pair.first, 353 pattern_pair.first,
335 !pattern_pair.second.IsValid() ? ContentSettingsPattern::Wildcard() 354 secondary_pattern,
336 : pattern_pair.second,
337 content_type, 355 content_type,
338 ResourceIdentifier(NO_RESOURCE_IDENTIFIER), 356 ResourceIdentifier(NO_RESOURCE_IDENTIFIER),
339 kPrefsForManagedContentSettingsMap[i].setting)); 357 kPrefsForManagedContentSettingsMap[i].setting));
340 } 358 }
341 } 359 }
342 } 360 }
343 361
344 void PolicyProvider::ReadManagedContentSettings(bool overwrite) { 362 void PolicyProvider::ReadManagedContentSettings(bool overwrite) {
345 ContentSettingsRules rules; 363 ContentSettingsRules rules;
346 GetContentSettingsFromPreferences(&rules); 364 GetContentSettingsFromPreferences(&rules);
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 } 447 }
430 448
431 void PolicyProvider::Observe(int type, 449 void PolicyProvider::Observe(int type,
432 const NotificationSource& source, 450 const NotificationSource& source,
433 const NotificationDetails& details) { 451 const NotificationDetails& details) {
434 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 452 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
435 453
436 if (type == chrome::NOTIFICATION_PREF_CHANGED) { 454 if (type == chrome::NOTIFICATION_PREF_CHANGED) {
437 DCHECK_EQ(prefs_, Source<PrefService>(source).ptr()); 455 DCHECK_EQ(prefs_, Source<PrefService>(source).ptr());
438 std::string* name = Details<std::string>(details).ptr(); 456 std::string* name = Details<std::string>(details).ptr();
439 if (*name == prefs::kManagedCookiesAllowedForUrls || 457 if (*name == prefs::kManagedAutoSubmitCertificateForUrls ||
458 *name == prefs::kManagedCookiesAllowedForUrls ||
440 *name == prefs::kManagedCookiesBlockedForUrls || 459 *name == prefs::kManagedCookiesBlockedForUrls ||
441 *name == prefs::kManagedCookiesSessionOnlyForUrls || 460 *name == prefs::kManagedCookiesSessionOnlyForUrls ||
442 *name == prefs::kManagedImagesAllowedForUrls || 461 *name == prefs::kManagedImagesAllowedForUrls ||
443 *name == prefs::kManagedImagesBlockedForUrls || 462 *name == prefs::kManagedImagesBlockedForUrls ||
444 *name == prefs::kManagedJavaScriptAllowedForUrls || 463 *name == prefs::kManagedJavaScriptAllowedForUrls ||
445 *name == prefs::kManagedJavaScriptBlockedForUrls || 464 *name == prefs::kManagedJavaScriptBlockedForUrls ||
446 *name == prefs::kManagedPluginsAllowedForUrls || 465 *name == prefs::kManagedPluginsAllowedForUrls ||
447 *name == prefs::kManagedPluginsBlockedForUrls || 466 *name == prefs::kManagedPluginsBlockedForUrls ||
448 *name == prefs::kManagedPopupsAllowedForUrls || 467 *name == prefs::kManagedPopupsAllowedForUrls ||
449 *name == prefs::kManagedPopupsBlockedForUrls) { 468 *name == prefs::kManagedPopupsBlockedForUrls) {
450 ReadManagedContentSettings(true); 469 ReadManagedContentSettings(true);
451 NotifyObservers(ContentSettingsPattern(), 470 NotifyObservers(ContentSettingsPattern(),
452 ContentSettingsPattern(), 471 ContentSettingsPattern(),
453 CONTENT_SETTINGS_TYPE_DEFAULT, 472 CONTENT_SETTINGS_TYPE_DEFAULT,
454 std::string()); 473 std::string());
455 } 474 }
456 } else { 475 } else {
457 NOTREACHED() << "Unexpected notification"; 476 NOTREACHED() << "Unexpected notification";
458 } 477 }
459 } 478 }
460 479
461 } // namespace content_settings 480 } // namespace content_settings
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698