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

Side by Side Diff: components/content_settings/core/browser/content_settings_policy_provider.cc

Issue 1417173010: Adding <keygen> Content Setting (core) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix typos. Created 5 years, 1 month 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 "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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698