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

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

Issue 1991623005: Only Register() platform specific content settings types on different platforms (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: format Created 4 years, 7 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
OLDNEW
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
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
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_ONLY,
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_AND_ANDROID_ONLY,
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_ONLY,
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_AND_ANDROID_ONLY,
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_AND_ANDROID_ONLY,
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_AND_ANDROID_ONLY,
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_ONLY,
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_AND_ANDROID_ONLY,
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_AND_ANDROID_ONLY,
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_ONLY,
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_AND_ANDROID_ONLY,
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_AND_ANDROID_ONLY,
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_AND_ANDROID_ONLY,
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::ANDROID_AND_CHROMEOS_ONLY,
251 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 266 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
252 #endif
253 267
254 Register(CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, "durable-storage", 268 Register(CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, "durable-storage",
255 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, 269 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE,
256 WhitelistedSchemes(), 270 WhitelistedSchemes(),
257 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), 271 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
258 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, 272 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
273 WebsiteSettingsInfo::DESKTOP_AND_ANDROID_ONLY,
259 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 274 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
260 275
261 Register(CONTENT_SETTINGS_TYPE_KEYGEN, "keygen", 276 Register(CONTENT_SETTINGS_TYPE_KEYGEN, "keygen", CONTENT_SETTING_BLOCK,
262 CONTENT_SETTING_BLOCK, WebsiteSettingsInfo::SYNCABLE, 277 WebsiteSettingsInfo::SYNCABLE, WhitelistedSchemes(),
263 WhitelistedSchemes(),
264 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), 278 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
265 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, 279 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
280 WebsiteSettingsInfo::DESKTOP_AND_ANDROID_ONLY,
266 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 281 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
267 282
268 Register(CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC, "background-sync", 283 Register(CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC, "background-sync",
269 CONTENT_SETTING_ALLOW, WebsiteSettingsInfo::UNSYNCABLE, 284 CONTENT_SETTING_ALLOW, WebsiteSettingsInfo::UNSYNCABLE,
270 WhitelistedSchemes(), 285 WhitelistedSchemes(),
271 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), 286 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
272 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, 287 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
288 WebsiteSettingsInfo::DESKTOP_AND_ANDROID_ONLY,
273 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 289 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
274 290
275 Register(CONTENT_SETTINGS_TYPE_AUTOPLAY, "autoplay", 291 Register(CONTENT_SETTINGS_TYPE_AUTOPLAY, "autoplay", CONTENT_SETTING_ALLOW,
276 CONTENT_SETTING_ALLOW, WebsiteSettingsInfo::UNSYNCABLE, 292 WebsiteSettingsInfo::UNSYNCABLE, WhitelistedSchemes(),
277 WhitelistedSchemes(),
278 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), 293 ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
279 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, 294 WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
295 WebsiteSettingsInfo::DESKTOP_AND_ANDROID_ONLY,
280 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 296 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
281 297
282 // Content settings that aren't used to store any data. TODO(raymes): use a 298 // Content settings that aren't used to store any data. TODO(raymes): use a
283 // different mechanism rather than content settings to represent these. 299 // 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 300 // Since nothing is stored in them, there is no real point in them being a
285 // content setting. 301 // content setting.
286 Register(CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, "protocol-handler", 302 Register(CONTENT_SETTINGS_TYPE_PROTOCOL_HANDLERS, "protocol-handler",
287 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE, 303 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE,
288 WhitelistedSchemes(), ValidSettings(), 304 WhitelistedSchemes(), ValidSettings(),
289 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, 305 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
306 WebsiteSettingsInfo::DESKTOP_ONLY,
290 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 307 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
291 308
292 Register(CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, "mixed-script", 309 Register(CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, "mixed-script",
293 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE, 310 CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE,
294 WhitelistedSchemes(), ValidSettings(), 311 WhitelistedSchemes(), ValidSettings(),
295 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, 312 WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
313 WebsiteSettingsInfo::DESKTOP_ONLY,
296 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 314 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
297 315
298 Register(CONTENT_SETTINGS_TYPE_BLUETOOTH_GUARD, "bluetooth-guard", 316 Register(CONTENT_SETTINGS_TYPE_BLUETOOTH_GUARD, "bluetooth-guard",
299 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE, 317 CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE,
300 WhitelistedSchemes(), 318 WhitelistedSchemes(),
301 ValidSettings(CONTENT_SETTING_ASK, CONTENT_SETTING_BLOCK), 319 ValidSettings(CONTENT_SETTING_ASK, CONTENT_SETTING_BLOCK),
302 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, 320 WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE,
321 WebsiteSettingsInfo::DESKTOP_AND_ANDROID_ONLY,
303 ContentSettingsInfo::INHERIT_IN_INCOGNITO); 322 ContentSettingsInfo::INHERIT_IN_INCOGNITO);
304 } 323 }
305 324
306 void ContentSettingsRegistry::Register( 325 void ContentSettingsRegistry::Register(
307 ContentSettingsType type, 326 ContentSettingsType type,
308 const std::string& name, 327 const std::string& name,
309 ContentSetting initial_default_value, 328 ContentSetting initial_default_value,
310 WebsiteSettingsInfo::SyncStatus sync_status, 329 WebsiteSettingsInfo::SyncStatus sync_status,
311 const std::vector<std::string>& whitelisted_schemes, 330 const std::vector<std::string>& whitelisted_schemes,
312 const std::set<ContentSetting>& valid_settings, 331 const std::set<ContentSetting>& valid_settings,
313 WebsiteSettingsInfo::ScopingType scoping_type, 332 WebsiteSettingsInfo::ScopingType scoping_type,
333 WebsiteSettingsInfo::AppliedPlatform applied_platform,
raymes 2016/05/20 19:10:16 nit: perhaps just name this WebsiteSettingsInfo::P
lshang 2016/05/24 11:55:45 Done.
314 ContentSettingsInfo::IncognitoBehavior incognito_behavior) { 334 ContentSettingsInfo::IncognitoBehavior incognito_behavior) {
335 switch (applied_platform) {
raymes 2016/05/20 19:10:16 I think we should move this into WebsiteSettingsRe
lshang 2016/05/24 11:55:45 Done. I checked and confirmed with Dom about app-b
336 case WebsiteSettingsInfo::DESKTOP_ONLY:
337 #if defined(OS_ANDROID) || defined(OS_IOS)
338 return;
339 #else
340 break;
341 #endif
342 case WebsiteSettingsInfo::DESKTOP_AND_ANDROID_ONLY:
343 #if defined(OS_IOS)
344 return;
345 #else
346 break;
347 #endif
348 case WebsiteSettingsInfo::ANDROID_AND_CHROMEOS_ONLY:
349 #if defined(OS_ANDROID) || defined(OS_CHROMEOS)
350 break;
351 #else
352 return;
353 #endif
354 case WebsiteSettingsInfo::ALL_PLATFORMS:
355 break;
356 }
357
315 // Ensure that nothing has been registered yet for the given type. 358 // Ensure that nothing has been registered yet for the given type.
316 DCHECK(!website_settings_registry_->Get(type)); 359 DCHECK(!website_settings_registry_->Get(type));
317 DCHECK(incognito_behavior 360 DCHECK(incognito_behavior
318 != ContentSettingsInfo::INHERIT_IN_INCOGNITO_EXCEPT_ALLOW 361 != ContentSettingsInfo::INHERIT_IN_INCOGNITO_EXCEPT_ALLOW
319 || ContainsKey(valid_settings, CONTENT_SETTING_ASK)) 362 || ContainsKey(valid_settings, CONTENT_SETTING_ASK))
320 << "If INHERIT_IN_INCOGNITO_EXCEPT_ALLOW is set, ASK must be listed as a " 363 << "If INHERIT_IN_INCOGNITO_EXCEPT_ALLOW is set, ASK must be listed as a "
321 "valid setting."; 364 "valid setting.";
322 std::unique_ptr<base::Value> default_value( 365 std::unique_ptr<base::Value> default_value(
323 new base::FundamentalValue(static_cast<int>(initial_default_value))); 366 new base::FundamentalValue(static_cast<int>(initial_default_value)));
324 const WebsiteSettingsInfo* website_settings_info = 367 const WebsiteSettingsInfo* website_settings_info =
325 website_settings_registry_->Register( 368 website_settings_registry_->Register(
326 type, name, std::move(default_value), sync_status, 369 type, name, std::move(default_value), sync_status,
327 WebsiteSettingsInfo::NOT_LOSSY, scoping_type, 370 WebsiteSettingsInfo::NOT_LOSSY, scoping_type,
328 WebsiteSettingsInfo::INHERIT_IN_INCOGNITO); 371 WebsiteSettingsInfo::INHERIT_IN_INCOGNITO);
329 DCHECK(!ContainsKey(content_settings_info_, type)); 372 DCHECK(!ContainsKey(content_settings_info_, type));
330 content_settings_info_[type] = base::WrapUnique( 373 content_settings_info_[type] = base::WrapUnique(
331 new ContentSettingsInfo(website_settings_info, whitelisted_schemes, 374 new ContentSettingsInfo(website_settings_info, whitelisted_schemes,
332 valid_settings, incognito_behavior)); 375 valid_settings, incognito_behavior));
333 } 376 }
334 377
335 } // namespace content_settings 378 } // namespace content_settings
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698