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

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: Fixing ContentSetting Register. 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, prefs::kManagedDefaultKeygenSetting},
85 }; 90 };
86 91
87 // static 92 // static
88 void PolicyProvider::RegisterProfilePrefs( 93 void PolicyProvider::RegisterProfilePrefs(
89 user_prefs::PrefRegistrySyncable* registry) { 94 user_prefs::PrefRegistrySyncable* registry) {
90 registry->RegisterListPref(prefs::kManagedAutoSelectCertificateForUrls); 95 registry->RegisterListPref(prefs::kManagedAutoSelectCertificateForUrls);
91 registry->RegisterListPref(prefs::kManagedCookiesAllowedForUrls); 96 registry->RegisterListPref(prefs::kManagedCookiesAllowedForUrls);
92 registry->RegisterListPref(prefs::kManagedCookiesBlockedForUrls); 97 registry->RegisterListPref(prefs::kManagedCookiesBlockedForUrls);
93 registry->RegisterListPref(prefs::kManagedCookiesSessionOnlyForUrls); 98 registry->RegisterListPref(prefs::kManagedCookiesSessionOnlyForUrls);
94 registry->RegisterListPref(prefs::kManagedImagesAllowedForUrls); 99 registry->RegisterListPref(prefs::kManagedImagesAllowedForUrls);
95 registry->RegisterListPref(prefs::kManagedImagesBlockedForUrls); 100 registry->RegisterListPref(prefs::kManagedImagesBlockedForUrls);
96 registry->RegisterListPref(prefs::kManagedJavaScriptAllowedForUrls); 101 registry->RegisterListPref(prefs::kManagedJavaScriptAllowedForUrls);
97 registry->RegisterListPref(prefs::kManagedJavaScriptBlockedForUrls); 102 registry->RegisterListPref(prefs::kManagedJavaScriptBlockedForUrls);
98 registry->RegisterListPref(prefs::kManagedNotificationsAllowedForUrls); 103 registry->RegisterListPref(prefs::kManagedNotificationsAllowedForUrls);
99 registry->RegisterListPref(prefs::kManagedNotificationsBlockedForUrls); 104 registry->RegisterListPref(prefs::kManagedNotificationsBlockedForUrls);
100 registry->RegisterListPref(prefs::kManagedPluginsAllowedForUrls); 105 registry->RegisterListPref(prefs::kManagedPluginsAllowedForUrls);
101 registry->RegisterListPref(prefs::kManagedPluginsBlockedForUrls); 106 registry->RegisterListPref(prefs::kManagedPluginsBlockedForUrls);
102 registry->RegisterListPref(prefs::kManagedPopupsAllowedForUrls); 107 registry->RegisterListPref(prefs::kManagedPopupsAllowedForUrls);
103 registry->RegisterListPref(prefs::kManagedPopupsBlockedForUrls); 108 registry->RegisterListPref(prefs::kManagedPopupsBlockedForUrls);
109 registry->RegisterListPref(prefs::kManagedKeygenAllowedForUrls);
110 registry->RegisterListPref(prefs::kManagedKeygenBlockedForUrls);
104 // Preferences for default content setting policies. If a policy is not set of 111 // Preferences for default content setting policies. If a policy is not set of
105 // the corresponding preferences below is set to CONTENT_SETTING_DEFAULT. 112 // the corresponding preferences below is set to CONTENT_SETTING_DEFAULT.
106 registry->RegisterIntegerPref(prefs::kManagedDefaultCookiesSetting, 113 registry->RegisterIntegerPref(prefs::kManagedDefaultCookiesSetting,
107 CONTENT_SETTING_DEFAULT); 114 CONTENT_SETTING_DEFAULT);
108 registry->RegisterIntegerPref(prefs::kManagedDefaultGeolocationSetting, 115 registry->RegisterIntegerPref(prefs::kManagedDefaultGeolocationSetting,
109 CONTENT_SETTING_DEFAULT); 116 CONTENT_SETTING_DEFAULT);
110 registry->RegisterIntegerPref(prefs::kManagedDefaultImagesSetting, 117 registry->RegisterIntegerPref(prefs::kManagedDefaultImagesSetting,
111 CONTENT_SETTING_DEFAULT); 118 CONTENT_SETTING_DEFAULT);
112 registry->RegisterIntegerPref(prefs::kManagedDefaultJavaScriptSetting, 119 registry->RegisterIntegerPref(prefs::kManagedDefaultJavaScriptSetting,
113 CONTENT_SETTING_DEFAULT); 120 CONTENT_SETTING_DEFAULT);
114 registry->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting, 121 registry->RegisterIntegerPref(prefs::kManagedDefaultNotificationsSetting,
115 CONTENT_SETTING_DEFAULT); 122 CONTENT_SETTING_DEFAULT);
116 registry->RegisterIntegerPref(prefs::kManagedDefaultMediaStreamSetting, 123 registry->RegisterIntegerPref(prefs::kManagedDefaultMediaStreamSetting,
117 CONTENT_SETTING_DEFAULT); 124 CONTENT_SETTING_DEFAULT);
118 registry->RegisterIntegerPref(prefs::kManagedDefaultPluginsSetting, 125 registry->RegisterIntegerPref(prefs::kManagedDefaultPluginsSetting,
119 CONTENT_SETTING_DEFAULT); 126 CONTENT_SETTING_DEFAULT);
120 registry->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting, 127 registry->RegisterIntegerPref(prefs::kManagedDefaultPopupsSetting,
121 CONTENT_SETTING_DEFAULT); 128 CONTENT_SETTING_DEFAULT);
129 registry->RegisterIntegerPref(prefs::kManagedDefaultKeygenSetting,
130 CONTENT_SETTING_DEFAULT);
122 } 131 }
123 132
124 PolicyProvider::PolicyProvider(PrefService* prefs) : prefs_(prefs) { 133 PolicyProvider::PolicyProvider(PrefService* prefs) : prefs_(prefs) {
125 ReadManagedDefaultSettings(); 134 ReadManagedDefaultSettings();
126 ReadManagedContentSettings(false); 135 ReadManagedContentSettings(false);
127 136
128 pref_change_registrar_.Init(prefs_); 137 pref_change_registrar_.Init(prefs_);
129 PrefChangeRegistrar::NamedChangeCallback callback = 138 PrefChangeRegistrar::NamedChangeCallback callback =
130 base::Bind(&PolicyProvider::OnPreferenceChanged, base::Unretained(this)); 139 base::Bind(&PolicyProvider::OnPreferenceChanged, base::Unretained(this));
131 pref_change_registrar_.Add( 140 pref_change_registrar_.Add(
132 prefs::kManagedAutoSelectCertificateForUrls, callback); 141 prefs::kManagedAutoSelectCertificateForUrls, callback);
133 pref_change_registrar_.Add(prefs::kManagedCookiesAllowedForUrls, callback); 142 pref_change_registrar_.Add(prefs::kManagedCookiesAllowedForUrls, callback);
134 pref_change_registrar_.Add(prefs::kManagedCookiesBlockedForUrls, callback); 143 pref_change_registrar_.Add(prefs::kManagedCookiesBlockedForUrls, callback);
135 pref_change_registrar_.Add( 144 pref_change_registrar_.Add(
136 prefs::kManagedCookiesSessionOnlyForUrls, callback); 145 prefs::kManagedCookiesSessionOnlyForUrls, callback);
137 pref_change_registrar_.Add(prefs::kManagedImagesAllowedForUrls, callback); 146 pref_change_registrar_.Add(prefs::kManagedImagesAllowedForUrls, callback);
138 pref_change_registrar_.Add(prefs::kManagedImagesBlockedForUrls, callback); 147 pref_change_registrar_.Add(prefs::kManagedImagesBlockedForUrls, callback);
139 pref_change_registrar_.Add(prefs::kManagedJavaScriptAllowedForUrls, callback); 148 pref_change_registrar_.Add(prefs::kManagedJavaScriptAllowedForUrls, callback);
140 pref_change_registrar_.Add(prefs::kManagedJavaScriptBlockedForUrls, callback); 149 pref_change_registrar_.Add(prefs::kManagedJavaScriptBlockedForUrls, callback);
141
142 pref_change_registrar_.Add( 150 pref_change_registrar_.Add(
143 prefs::kManagedNotificationsAllowedForUrls, callback); 151 prefs::kManagedNotificationsAllowedForUrls, callback);
144 pref_change_registrar_.Add( 152 pref_change_registrar_.Add(
145 prefs::kManagedNotificationsBlockedForUrls, callback); 153 prefs::kManagedNotificationsBlockedForUrls, callback);
146 pref_change_registrar_.Add(prefs::kManagedPluginsAllowedForUrls, callback); 154 pref_change_registrar_.Add(prefs::kManagedPluginsAllowedForUrls, callback);
147 pref_change_registrar_.Add(prefs::kManagedPluginsBlockedForUrls, callback); 155 pref_change_registrar_.Add(prefs::kManagedPluginsBlockedForUrls, callback);
148 pref_change_registrar_.Add(prefs::kManagedPopupsAllowedForUrls, callback); 156 pref_change_registrar_.Add(prefs::kManagedPopupsAllowedForUrls, callback);
149 pref_change_registrar_.Add(prefs::kManagedPopupsBlockedForUrls, callback); 157 pref_change_registrar_.Add(prefs::kManagedPopupsBlockedForUrls, callback);
158 pref_change_registrar_.Add(prefs::kManagedKeygenAllowedForUrls, callback);
159 pref_change_registrar_.Add(prefs::kManagedKeygenBlockedForUrls, callback);
150 // The following preferences are only used to indicate if a default content 160 // 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 161 // 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 162 // value for any of the following preferences is set then the corresponding
153 // default content setting is managed. These preferences exist in parallel to 163 // default content setting is managed. These preferences exist in parallel to
154 // the preference default content settings. If a default content settings type 164 // the preference default content settings. If a default content settings type
155 // is managed any user defined exceptions (patterns) for this type are 165 // is managed any user defined exceptions (patterns) for this type are
156 // ignored. 166 // ignored.
157 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, callback); 167 pref_change_registrar_.Add(prefs::kManagedDefaultCookiesSetting, callback);
158 pref_change_registrar_.Add( 168 pref_change_registrar_.Add(
159 prefs::kManagedDefaultGeolocationSetting, callback); 169 prefs::kManagedDefaultGeolocationSetting, callback);
160 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, callback); 170 pref_change_registrar_.Add(prefs::kManagedDefaultImagesSetting, callback);
161 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, callback); 171 pref_change_registrar_.Add(prefs::kManagedDefaultJavaScriptSetting, callback);
162 pref_change_registrar_.Add( 172 pref_change_registrar_.Add(
163 prefs::kManagedDefaultNotificationsSetting, callback); 173 prefs::kManagedDefaultNotificationsSetting, callback);
164 pref_change_registrar_.Add( 174 pref_change_registrar_.Add(
165 prefs::kManagedDefaultMediaStreamSetting, callback); 175 prefs::kManagedDefaultMediaStreamSetting, callback);
166 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, callback); 176 pref_change_registrar_.Add(prefs::kManagedDefaultPluginsSetting, callback);
167 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, callback); 177 pref_change_registrar_.Add(prefs::kManagedDefaultPopupsSetting, callback);
178 pref_change_registrar_.Add(prefs::kManagedDefaultKeygenSetting, callback);
168 } 179 }
169 180
170 PolicyProvider::~PolicyProvider() { 181 PolicyProvider::~PolicyProvider() {
171 DCHECK(!prefs_); 182 DCHECK(!prefs_);
172 } 183 }
173 184
174 RuleIterator* PolicyProvider::GetRuleIterator( 185 RuleIterator* PolicyProvider::GetRuleIterator(
175 ContentSettingsType content_type, 186 ContentSettingsType content_type,
176 const ResourceIdentifier& resource_identifier, 187 const ResourceIdentifier& resource_identifier,
177 bool incognito) const { 188 bool incognito) const {
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 name == prefs::kManagedCookiesSessionOnlyForUrls || 399 name == prefs::kManagedCookiesSessionOnlyForUrls ||
389 name == prefs::kManagedImagesAllowedForUrls || 400 name == prefs::kManagedImagesAllowedForUrls ||
390 name == prefs::kManagedImagesBlockedForUrls || 401 name == prefs::kManagedImagesBlockedForUrls ||
391 name == prefs::kManagedJavaScriptAllowedForUrls || 402 name == prefs::kManagedJavaScriptAllowedForUrls ||
392 name == prefs::kManagedJavaScriptBlockedForUrls || 403 name == prefs::kManagedJavaScriptBlockedForUrls ||
393 name == prefs::kManagedNotificationsAllowedForUrls || 404 name == prefs::kManagedNotificationsAllowedForUrls ||
394 name == prefs::kManagedNotificationsBlockedForUrls || 405 name == prefs::kManagedNotificationsBlockedForUrls ||
395 name == prefs::kManagedPluginsAllowedForUrls || 406 name == prefs::kManagedPluginsAllowedForUrls ||
396 name == prefs::kManagedPluginsBlockedForUrls || 407 name == prefs::kManagedPluginsBlockedForUrls ||
397 name == prefs::kManagedPopupsAllowedForUrls || 408 name == prefs::kManagedPopupsAllowedForUrls ||
398 name == prefs::kManagedPopupsBlockedForUrls) { 409 name == prefs::kManagedPopupsBlockedForUrls ||
410 name == prefs::kManagedKeygenAllowedForUrls ||
411 name == prefs::kManagedKeygenBlockedForUrls) {
399 ReadManagedContentSettings(true); 412 ReadManagedContentSettings(true);
400 ReadManagedDefaultSettings(); 413 ReadManagedDefaultSettings();
401 } 414 }
402 415
403 NotifyObservers(ContentSettingsPattern(), 416 NotifyObservers(ContentSettingsPattern(),
404 ContentSettingsPattern(), 417 ContentSettingsPattern(),
405 CONTENT_SETTINGS_TYPE_DEFAULT, 418 CONTENT_SETTINGS_TYPE_DEFAULT,
406 std::string()); 419 std::string());
407 } 420 }
408 421
409 } // namespace content_settings 422 } // namespace content_settings
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698