| Index: components/content_settings/core/browser/content_settings_registry.cc
|
| diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
|
| index acefb02f31da35ec104d587461ca060d8c79c629..98fda540628ec72677f038dd1ec33157c916e09b 100644
|
| --- a/components/content_settings/core/browser/content_settings_registry.cc
|
| +++ b/components/content_settings/core/browser/content_settings_registry.cc
|
| @@ -124,6 +124,7 @@ void ContentSettingsRegistry::Init() {
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
|
| CONTENT_SETTING_SESSION_ONLY),
|
| WebsiteSettingsInfo::REQUESTING_DOMAIN_ONLY_SCOPE,
|
| + WebsiteSettingsRegistry::ALL_PLATFORMS,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| Register(CONTENT_SETTINGS_TYPE_IMAGES, "images", CONTENT_SETTING_ALLOW,
|
| @@ -132,6 +133,8 @@ void ContentSettingsRegistry::Init() {
|
| kExtensionScheme),
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
|
| WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP |
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| Register(CONTENT_SETTINGS_TYPE_JAVASCRIPT, "javascript",
|
| @@ -140,6 +143,8 @@ void ContentSettingsRegistry::Init() {
|
| kExtensionScheme),
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
|
| WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP |
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| Register(CONTENT_SETTINGS_TYPE_PLUGINS, "plugins",
|
| @@ -150,6 +155,8 @@ void ContentSettingsRegistry::Init() {
|
| CONTENT_SETTING_ASK,
|
| CONTENT_SETTING_DETECT_IMPORTANT_CONTENT),
|
| WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP |
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| Register(CONTENT_SETTINGS_TYPE_POPUPS, "popups", CONTENT_SETTING_BLOCK,
|
| @@ -158,6 +165,7 @@ void ContentSettingsRegistry::Init() {
|
| kExtensionScheme),
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
|
| WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
|
| + WebsiteSettingsRegistry::ALL_PLATFORMS,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| Register(CONTENT_SETTINGS_TYPE_GEOLOCATION, "geolocation",
|
| @@ -166,6 +174,8 @@ void ContentSettingsRegistry::Init() {
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
|
| CONTENT_SETTING_ASK),
|
| WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP |
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| Register(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, "notifications",
|
| @@ -174,6 +184,8 @@ void ContentSettingsRegistry::Init() {
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
|
| CONTENT_SETTING_ASK),
|
| WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP |
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID,
|
| // See also NotificationPermissionContext::DecidePermission which
|
| // implements additional incognito exceptions.
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO_EXCEPT_ALLOW);
|
| @@ -183,6 +195,8 @@ void ContentSettingsRegistry::Init() {
|
| WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme),
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_ASK),
|
| WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP |
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| Register(CONTENT_SETTINGS_TYPE_MOUSELOCK, "mouselock", CONTENT_SETTING_ASK,
|
| @@ -191,6 +205,8 @@ void ContentSettingsRegistry::Init() {
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
|
| CONTENT_SETTING_ASK),
|
| WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP |
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, "media-stream-mic",
|
| @@ -199,6 +215,8 @@ void ContentSettingsRegistry::Init() {
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
|
| CONTENT_SETTING_ASK),
|
| WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP |
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, "media-stream-camera",
|
| @@ -207,6 +225,8 @@ void ContentSettingsRegistry::Init() {
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
|
| CONTENT_SETTING_ASK),
|
| WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP |
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| Register(CONTENT_SETTINGS_TYPE_PPAPI_BROKER, "ppapi-broker",
|
| @@ -215,6 +235,7 @@ void ContentSettingsRegistry::Init() {
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
|
| CONTENT_SETTING_ASK),
|
| WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| Register(CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, "automatic-downloads",
|
| @@ -224,6 +245,8 @@ void ContentSettingsRegistry::Init() {
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
|
| CONTENT_SETTING_ASK),
|
| WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP |
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| Register(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, "midi-sysex", CONTENT_SETTING_ASK,
|
| @@ -231,6 +254,8 @@ void ContentSettingsRegistry::Init() {
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
|
| CONTENT_SETTING_ASK),
|
| WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP |
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| Register(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, "push-messaging",
|
| @@ -239,30 +264,35 @@ void ContentSettingsRegistry::Init() {
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
|
| CONTENT_SETTING_ASK),
|
| WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP |
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO_EXCEPT_ALLOW);
|
|
|
| -#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
|
| Register(CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER,
|
| "protected-media-identifier", CONTENT_SETTING_ASK,
|
| WebsiteSettingsInfo::UNSYNCABLE, WhitelistedSchemes(),
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
|
| CONTENT_SETTING_ASK),
|
| WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE,
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID |
|
| + WebsiteSettingsRegistry::PLATFORM_CHROMEOS,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
| -#endif
|
|
|
| Register(CONTENT_SETTINGS_TYPE_DURABLE_STORAGE, "durable-storage",
|
| CONTENT_SETTING_ASK, WebsiteSettingsInfo::UNSYNCABLE,
|
| WhitelistedSchemes(),
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
|
| WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP |
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| - Register(CONTENT_SETTINGS_TYPE_KEYGEN, "keygen",
|
| - CONTENT_SETTING_BLOCK, WebsiteSettingsInfo::SYNCABLE,
|
| - WhitelistedSchemes(),
|
| + Register(CONTENT_SETTINGS_TYPE_KEYGEN, "keygen", CONTENT_SETTING_BLOCK,
|
| + WebsiteSettingsInfo::SYNCABLE, WhitelistedSchemes(),
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
|
| WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP |
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| Register(CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC, "background-sync",
|
| @@ -270,13 +300,16 @@ void ContentSettingsRegistry::Init() {
|
| WhitelistedSchemes(),
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
|
| WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP |
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| - Register(CONTENT_SETTINGS_TYPE_AUTOPLAY, "autoplay",
|
| - CONTENT_SETTING_ALLOW, WebsiteSettingsInfo::UNSYNCABLE,
|
| - WhitelistedSchemes(),
|
| + Register(CONTENT_SETTINGS_TYPE_AUTOPLAY, "autoplay", CONTENT_SETTING_ALLOW,
|
| + WebsiteSettingsInfo::UNSYNCABLE, WhitelistedSchemes(),
|
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
|
| WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP |
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| // Content settings that aren't used to store any data. TODO(raymes): use a
|
| @@ -287,12 +320,14 @@ void ContentSettingsRegistry::Init() {
|
| CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE,
|
| WhitelistedSchemes(), ValidSettings(),
|
| WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| Register(CONTENT_SETTINGS_TYPE_MIXEDSCRIPT, "mixed-script",
|
| CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE,
|
| WhitelistedSchemes(), ValidSettings(),
|
| WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
|
|
| Register(CONTENT_SETTINGS_TYPE_BLUETOOTH_GUARD, "bluetooth-guard",
|
| @@ -300,6 +335,8 @@ void ContentSettingsRegistry::Init() {
|
| WhitelistedSchemes(),
|
| ValidSettings(CONTENT_SETTING_ASK, CONTENT_SETTING_BLOCK),
|
| WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE,
|
| + WebsiteSettingsRegistry::DESKTOP |
|
| + WebsiteSettingsRegistry::PLATFORM_ANDROID,
|
| ContentSettingsInfo::INHERIT_IN_INCOGNITO);
|
| }
|
|
|
| @@ -311,6 +348,7 @@ void ContentSettingsRegistry::Register(
|
| const std::vector<std::string>& whitelisted_schemes,
|
| const std::set<ContentSetting>& valid_settings,
|
| WebsiteSettingsInfo::ScopingType scoping_type,
|
| + Platforms platforms,
|
| ContentSettingsInfo::IncognitoBehavior incognito_behavior) {
|
| // Ensure that nothing has been registered yet for the given type.
|
| DCHECK(!website_settings_registry_->Get(type));
|
| @@ -324,8 +362,14 @@ void ContentSettingsRegistry::Register(
|
| const WebsiteSettingsInfo* website_settings_info =
|
| website_settings_registry_->Register(
|
| type, name, std::move(default_value), sync_status,
|
| - WebsiteSettingsInfo::NOT_LOSSY, scoping_type,
|
| + WebsiteSettingsInfo::NOT_LOSSY, scoping_type, platforms,
|
| WebsiteSettingsInfo::INHERIT_IN_INCOGNITO);
|
| +
|
| + // WebsiteSettingsInfo::Register() will return nullptr if content setting type
|
| + // is not used on the current platform and doesn't need to be registered.
|
| + if (!website_settings_info)
|
| + return;
|
| +
|
| DCHECK(!ContainsKey(content_settings_info_, type));
|
| content_settings_info_[type] = base::WrapUnique(
|
| new ContentSettingsInfo(website_settings_info, whitelisted_schemes,
|
|
|