Chromium Code Reviews| 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 |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 106 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_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 |
| OLD | NEW |