OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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_registry.h" | 5 #include "components/content_settings/core/browser/content_settings_registry.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 | 9 #include <iostream> |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
11 #include "base/memory/ptr_util.h" | 11 #include "base/memory/ptr_util.h" |
12 #include "base/stl_util.h" | 12 #include "base/stl_util.h" |
13 #include "base/values.h" | 13 #include "base/values.h" |
14 #include "build/build_config.h" | 14 #include "build/build_config.h" |
15 #include "components/content_settings/core/browser/content_settings_utils.h" | 15 #include "components/content_settings/core/browser/content_settings_utils.h" |
16 #include "components/content_settings/core/browser/website_settings_registry.h" | 16 #include "components/content_settings/core/browser/website_settings_registry.h" |
17 #include "components/content_settings/core/common/content_settings.h" | 17 #include "components/content_settings/core/common/content_settings.h" |
18 | 18 |
19 namespace content_settings { | 19 namespace content_settings { |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
117 | 117 |
118 // WARNING: The string names of the permissions passed in below are used to | 118 // WARNING: The string names of the permissions passed in below are used to |
119 // generate preference names and should never be changed! | 119 // generate preference names and should never be changed! |
120 | 120 |
121 Register(CONTENT_SETTINGS_TYPE_COOKIES, "cookies", CONTENT_SETTING_ALLOW, | 121 Register(CONTENT_SETTINGS_TYPE_COOKIES, "cookies", CONTENT_SETTING_ALLOW, |
122 WebsiteSettingsInfo::SYNCABLE, | 122 WebsiteSettingsInfo::SYNCABLE, |
123 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), | 123 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), |
124 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 124 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
125 CONTENT_SETTING_SESSION_ONLY), | 125 CONTENT_SETTING_SESSION_ONLY), |
126 WebsiteSettingsInfo::REQUESTING_DOMAIN_ONLY_SCOPE, | 126 WebsiteSettingsInfo::REQUESTING_DOMAIN_ONLY_SCOPE, |
127 WebsiteSettingsInfo::ALL_PLATFORMS, | |
127 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 128 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
128 | 129 |
129 Register(CONTENT_SETTINGS_TYPE_IMAGES, "images", CONTENT_SETTING_ALLOW, | 130 Register(CONTENT_SETTINGS_TYPE_IMAGES, "images", CONTENT_SETTING_ALLOW, |
130 WebsiteSettingsInfo::SYNCABLE, | 131 WebsiteSettingsInfo::SYNCABLE, |
131 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, | 132 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, |
132 kExtensionScheme), | 133 kExtensionScheme), |
133 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), | 134 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), |
134 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, | 135 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
136 WebsiteSettingsInfo::DESKTOP, | |
135 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 137 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
136 | 138 |
137 Register(CONTENT_SETTINGS_TYPE_JAVASCRIPT, "javascript", | 139 Register(CONTENT_SETTINGS_TYPE_JAVASCRIPT, "javascript", |
138 CONTENT_SETTING_ALLOW, WebsiteSettingsInfo::SYNCABLE, | 140 CONTENT_SETTING_ALLOW, WebsiteSettingsInfo::SYNCABLE, |
139 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, | 141 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, |
140 kExtensionScheme), | 142 kExtensionScheme), |
141 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), | 143 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), |
142 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, | 144 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
145 WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, | |
143 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 146 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
144 | 147 |
145 Register(CONTENT_SETTINGS_TYPE_PLUGINS, "plugins", | 148 Register(CONTENT_SETTINGS_TYPE_PLUGINS, "plugins", |
146 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT, | 149 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT, |
147 WebsiteSettingsInfo::SYNCABLE, | 150 WebsiteSettingsInfo::SYNCABLE, |
148 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), | 151 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), |
149 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 152 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
150 CONTENT_SETTING_ASK, | 153 CONTENT_SETTING_ASK, |
151 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT), | 154 CONTENT_SETTING_DETECT_IMPORTANT_CONTENT), |
152 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, | 155 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
156 WebsiteSettingsInfo::DESKTOP, | |
153 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 157 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
154 | 158 |
155 Register(CONTENT_SETTINGS_TYPE_POPUPS, "popups", CONTENT_SETTING_BLOCK, | 159 Register(CONTENT_SETTINGS_TYPE_POPUPS, "popups", CONTENT_SETTING_BLOCK, |
156 WebsiteSettingsInfo::SYNCABLE, | 160 WebsiteSettingsInfo::SYNCABLE, |
157 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, | 161 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, |
158 kExtensionScheme), | 162 kExtensionScheme), |
159 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), | 163 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), |
160 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, | 164 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
165 WebsiteSettingsInfo::ALL_PLATFORMS, | |
161 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 166 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
162 | 167 |
163 Register(CONTENT_SETTINGS_TYPE_GEOLOCATION, "geolocation", | 168 Register(CONTENT_SETTINGS_TYPE_GEOLOCATION, "geolocation", |
164 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, | 169 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, |
165 WhitelistedSchemes(), | 170 WhitelistedSchemes(), |
166 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 171 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
167 CONTENT_SETTING_ASK), | 172 CONTENT_SETTING_ASK), |
168 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, | 173 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, |
174 WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, | |
169 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 175 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
170 | 176 |
171 Register(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, "notifications", | 177 Register(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, "notifications", |
172 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, | 178 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, |
173 WhitelistedSchemes(), | 179 WhitelistedSchemes(), |
174 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 180 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
175 CONTENT_SETTING_ASK), | 181 CONTENT_SETTING_ASK), |
176 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, | 182 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
183 WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, | |
177 // See also NotificationPermissionContext::DecidePermission which | 184 // See also NotificationPermissionContext::DecidePermission which |
178 // implements additional incognito exceptions. | 185 // implements additional incognito exceptions. |
179 ContentSettingsInfo::INHERIT_IN_INCOGNITO_EXCEPT_ALLOW); | 186 ContentSettingsInfo::INHERIT_IN_INCOGNITO_EXCEPT_ALLOW); |
180 | 187 |
181 Register(CONTENT_SETTINGS_TYPE_FULLSCREEN, "fullscreen", CONTENT_SETTING_ASK, | 188 Register(CONTENT_SETTINGS_TYPE_FULLSCREEN, "fullscreen", CONTENT_SETTING_ASK, |
182 WebsiteSettingsInfo::SYNCABLE, | 189 WebsiteSettingsInfo::SYNCABLE, |
183 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), | 190 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), |
184 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_ASK), | 191 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_ASK), |
185 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, | 192 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, |
193 WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, | |
186 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 194 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
187 | 195 |
188 Register(CONTENT_SETTINGS_TYPE_MOUSELOCK, "mouselock", CONTENT_SETTING_ASK, | 196 Register(CONTENT_SETTINGS_TYPE_MOUSELOCK, "mouselock", CONTENT_SETTING_ASK, |
189 WebsiteSettingsInfo::SYNCABLE, | 197 WebsiteSettingsInfo::SYNCABLE, |
190 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), | 198 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), |
191 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 199 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
192 CONTENT_SETTING_ASK), | 200 CONTENT_SETTING_ASK), |
193 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, | 201 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
202 WebsiteSettingsInfo::DESKTOP, | |
194 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 203 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
195 | 204 |
196 Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, "media-stream-mic", | 205 Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, "media-stream-mic", |
197 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, | 206 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, |
198 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), | 207 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), |
199 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 208 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
200 CONTENT_SETTING_ASK), | 209 CONTENT_SETTING_ASK), |
201 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, | 210 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
211 WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, | |
202 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 212 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
203 | 213 |
204 Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, "media-stream-camera", | 214 Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, "media-stream-camera", |
205 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, | 215 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, |
206 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), | 216 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), |
207 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 217 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
208 CONTENT_SETTING_ASK), | 218 CONTENT_SETTING_ASK), |
209 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, | 219 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
220 WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, | |
210 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 221 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
211 | 222 |
212 Register(CONTENT_SETTINGS_TYPE_PPAPI_BROKER, "ppapi-broker", | 223 Register(CONTENT_SETTINGS_TYPE_PPAPI_BROKER, "ppapi-broker", |
213 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, | 224 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, |
214 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), | 225 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), |
215 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 226 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
216 CONTENT_SETTING_ASK), | 227 CONTENT_SETTING_ASK), |
217 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, | 228 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
229 WebsiteSettingsInfo::DESKTOP, | |
218 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 230 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
219 | 231 |
220 Register(CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, "automatic-downloads", | 232 Register(CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, "automatic-downloads", |
221 CONTENT_SETTING_ASK, WebsiteSettingsInfo::SYNCABLE, | 233 CONTENT_SETTING_ASK, WebsiteSettingsInfo::SYNCABLE, |
222 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, | 234 WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme, |
223 kExtensionScheme), | 235 kExtensionScheme), |
224 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 236 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
225 CONTENT_SETTING_ASK), | 237 CONTENT_SETTING_ASK), |
226 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, | 238 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
239 WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, | |
227 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 240 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
228 | 241 |
229 Register(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, "midi-sysex", CONTENT_SETTING_ASK, | 242 Register(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, "midi-sysex", CONTENT_SETTING_ASK, |
230 WebsiteSettingsInfo::SYNCABLE, WhitelistedSchemes(), | 243 WebsiteSettingsInfo::SYNCABLE, WhitelistedSchemes(), |
231 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 244 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
232 CONTENT_SETTING_ASK), | 245 CONTENT_SETTING_ASK), |
233 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, | 246 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, |
247 WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, | |
234 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 248 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
235 | 249 |
236 Register(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, "push-messaging", | 250 Register(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, "push-messaging", |
237 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, | 251 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, |
238 WhitelistedSchemes(), | 252 WhitelistedSchemes(), |
239 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 253 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
240 CONTENT_SETTING_ASK), | 254 CONTENT_SETTING_ASK), |
241 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, | 255 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, |
256 WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, | |
242 ContentSettingsInfo::INHERIT_IN_INCOGNITO_EXCEPT_ALLOW); | 257 ContentSettingsInfo::INHERIT_IN_INCOGNITO_EXCEPT_ALLOW); |
243 | 258 |
244 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) | |
245 Register(CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, | 259 Register(CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, |
246 "protected-media-identifier", CONTENT_SETTING_ASK, | 260 "protected-media-identifier", CONTENT_SETTING_ASK, |
247 WebsiteSettingsInfo::UNSYNCABLE, WhitelistedSchemes(), | 261 WebsiteSettingsInfo::UNSYNCABLE, WhitelistedSchemes(), |
248 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, | 262 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
249 CONTENT_SETTING_ASK), | 263 CONTENT_SETTING_ASK), |
250 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, | 264 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, |
265 WebsiteSettingsInfo::PLATFORM_ANDROID | | |
266 WebsiteSettingsInfo::PLATFORM_CHROMEOS, | |
251 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 267 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
252 #endif | |
253 | 268 |
254 Register(CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, "durable-storage", | 269 Register(CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, "durable-storage", |
255 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, | 270 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, |
256 WhitelistedSchemes(), | 271 WhitelistedSchemes(), |
257 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), | 272 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), |
258 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, | 273 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
274 WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, | |
259 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 275 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
260 | 276 |
261 Register(CONTENT_SETTINGS_TYPE_KEYGEN, "keygen", | 277 Register(CONTENT_SETTINGS_TYPE_KEYGEN, "keygen", CONTENT_SETTING_BLOCK, |
262 CONTENT_SETTING_BLOCK, WebsiteSettingsInfo::SYNCABLE, | 278 WebsiteSettingsInfo::SYNCABLE, WhitelistedSchemes(), |
263 WhitelistedSchemes(), | |
264 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), | 279 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), |
265 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, | 280 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
281 WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, | |
266 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 282 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
267 | 283 |
268 Register(CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC, "background-sync", | 284 Register(CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC, "background-sync", |
269 CONTENT_SETTING_ALLOW, WebsiteSettingsInfo::UNSYNCABLE, | 285 CONTENT_SETTING_ALLOW, WebsiteSettingsInfo::UNSYNCABLE, |
270 WhitelistedSchemes(), | 286 WhitelistedSchemes(), |
271 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), | 287 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), |
272 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, | 288 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
289 WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, | |
273 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 290 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
274 | 291 |
275 Register(CONTENT_SETTINGS_TYPE_AUTOPLAY, "autoplay", | 292 Register(CONTENT_SETTINGS_TYPE_AUTOPLAY, "autoplay", CONTENT_SETTING_ALLOW, |
276 CONTENT_SETTING_ALLOW, WebsiteSettingsInfo::UNSYNCABLE, | 293 WebsiteSettingsInfo::UNSYNCABLE, WhitelistedSchemes(), |
277 WhitelistedSchemes(), | |
278 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), | 294 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), |
279 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, | 295 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
296 WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, | |
280 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 297 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
281 | 298 |
282 // Content settings that aren't used to store any data. TODO(raymes): use a | 299 // Content settings that aren't used to store any data. TODO(raymes): use a |
283 // different mechanism rather than content settings to represent these. | 300 // different mechanism rather than content settings to represent these. |
284 // Since nothing is stored in them, there is no real point in them being a | 301 // Since nothing is stored in them, there is no real point in them being a |
285 // content setting. | 302 // content setting. |
286 Register(CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, "protocol-handler", | 303 Register(CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, "protocol-handler", |
287 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE, | 304 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE, |
288 WhitelistedSchemes(), ValidSettings(), | 305 WhitelistedSchemes(), ValidSettings(), |
289 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, | 306 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
307 WebsiteSettingsInfo::DESKTOP, | |
290 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 308 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
291 | 309 |
292 Register(CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, "mixed-script", | 310 Register(CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, "mixed-script", |
293 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE, | 311 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE, |
294 WhitelistedSchemes(), ValidSettings(), | 312 WhitelistedSchemes(), ValidSettings(), |
295 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, | 313 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
314 WebsiteSettingsInfo::DESKTOP, | |
296 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 315 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
297 | 316 |
298 Register(CONTENT_SETTINGS_TYPE_BLUETOOTH_GUARD, "bluetooth-guard", | 317 Register(CONTENT_SETTINGS_TYPE_BLUETOOTH_GUARD, "bluetooth-guard", |
299 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, | 318 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, |
300 WhitelistedSchemes(), | 319 WhitelistedSchemes(), |
301 ValidSettings(CONTENT_SETTING_ASK, CONTENT_SETTING_BLOCK), | 320 ValidSettings(CONTENT_SETTING_ASK, CONTENT_SETTING_BLOCK), |
302 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, | 321 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, |
322 WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, | |
303 ContentSettingsInfo::INHERIT_IN_INCOGNITO); | 323 ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
304 } | 324 } |
305 | 325 |
306 void ContentSettingsRegistry::Register( | 326 void ContentSettingsRegistry::Register( |
307 ContentSettingsType type, | 327 ContentSettingsType type, |
308 const std::string& name, | 328 const std::string& name, |
309 ContentSetting initial_default_value, | 329 ContentSetting initial_default_value, |
310 WebsiteSettingsInfo::SyncStatus sync_status, | 330 WebsiteSettingsInfo::SyncStatus sync_status, |
311 const std::vector<std::string>& whitelisted_schemes, | 331 const std::vector<std::string>& whitelisted_schemes, |
312 const std::set<ContentSetting>& valid_settings, | 332 const std::set<ContentSetting>& valid_settings, |
313 WebsiteSettingsInfo::ScopingType scoping_type, | 333 WebsiteSettingsInfo::ScopingType scoping_type, |
334 uint32_t platform, | |
314 ContentSettingsInfo::IncognitoBehavior incognito_behavior) { | 335 ContentSettingsInfo::IncognitoBehavior incognito_behavior) { |
315 // Ensure that nothing has been registered yet for the given type. | 336 // Ensure that nothing has been registered yet for the given type. |
316 DCHECK(!website_settings_registry_->Get(type)); | 337 DCHECK(!website_settings_registry_->Get(type)); |
317 DCHECK(incognito_behavior | 338 DCHECK(incognito_behavior |
318 != ContentSettingsInfo::INHERIT_IN_INCOGNITO_EXCEPT_ALLOW | 339 != ContentSettingsInfo::INHERIT_IN_INCOGNITO_EXCEPT_ALLOW |
319 || ContainsKey(valid_settings, CONTENT_SETTING_ASK)) | 340 || ContainsKey(valid_settings, CONTENT_SETTING_ASK)) |
320 << "If INHERIT_IN_INCOGNITO_EXCEPT_ALLOW is set, ASK must be listed as a " | 341 << "If INHERIT_IN_INCOGNITO_EXCEPT_ALLOW is set, ASK must be listed as a " |
321 "valid setting."; | 342 "valid setting."; |
322 std::unique_ptr<base::Value> default_value( | 343 std::unique_ptr<base::Value> default_value( |
323 new base::FundamentalValue(static_cast<int>(initial_default_value))); | 344 new base::FundamentalValue(static_cast<int>(initial_default_value))); |
324 const WebsiteSettingsInfo* website_settings_info = | 345 const WebsiteSettingsInfo* website_settings_info = |
325 website_settings_registry_->Register( | 346 website_settings_registry_->Register( |
326 type, name, std::move(default_value), sync_status, | 347 type, name, std::move(default_value), sync_status, |
327 WebsiteSettingsInfo::NOT_LOSSY, scoping_type, | 348 WebsiteSettingsInfo::NOT_LOSSY, scoping_type, platform, |
328 WebsiteSettingsInfo::INHERIT_IN_INCOGNITO); | 349 WebsiteSettingsInfo::INHERIT_IN_INCOGNITO); |
350 | |
351 std::cout << "-------" << type << "-----" << platform << "------" << (website_se ttings_info == nullptr) << std::endl; | |
msramek
2016/05/23 14:49:49
Pro tip: Use LOG(ERROR) << ... for debugging outpu
lshang
2016/05/24 11:55:45
Thanks for your tip! That's very useful! And sorry
msramek
2016/05/24 14:29:23
Yeah, no worries about that. This is normal for iO
| |
352 | |
353 if (website_settings_info == nullptr) | |
354 return; | |
329 DCHECK(!ContainsKey(content_settings_info_, type)); | 355 DCHECK(!ContainsKey(content_settings_info_, type)); |
330 content_settings_info_[type] = base::WrapUnique( | 356 content_settings_info_[type] = base::WrapUnique( |
331 new ContentSettingsInfo(website_settings_info, whitelisted_schemes, | 357 new ContentSettingsInfo(website_settings_info, whitelisted_schemes, |
332 valid_settings, incognito_behavior)); | 358 valid_settings, incognito_behavior)); |
333 } | 359 } |
334 | 360 |
335 } // namespace content_settings | 361 } // namespace content_settings |
OLD | NEW |