Chromium Code Reviews| 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..c15397f864608d47e75bade2a18cfe45d9182eac 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, |
| + WebsiteSettingsInfo::ALL_PLATFORMS, |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
| Register(CONTENT_SETTINGS_TYPE_IMAGES, "images", CONTENT_SETTING_ALLOW, |
| @@ -132,6 +133,7 @@ void ContentSettingsRegistry::Init() { |
| kExtensionScheme), |
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), |
| WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
| + WebsiteSettingsInfo::DESKTOP, |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
| Register(CONTENT_SETTINGS_TYPE_JAVASCRIPT, "javascript", |
| @@ -140,6 +142,7 @@ void ContentSettingsRegistry::Init() { |
| kExtensionScheme), |
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), |
| WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
| + WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
| Register(CONTENT_SETTINGS_TYPE_PLUGINS, "plugins", |
| @@ -150,6 +153,7 @@ void ContentSettingsRegistry::Init() { |
| CONTENT_SETTING_ASK, |
| CONTENT_SETTING_DETECT_IMPORTANT_CONTENT), |
| WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
| + WebsiteSettingsInfo::DESKTOP, |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
| Register(CONTENT_SETTINGS_TYPE_POPUPS, "popups", CONTENT_SETTING_BLOCK, |
| @@ -158,6 +162,7 @@ void ContentSettingsRegistry::Init() { |
| kExtensionScheme), |
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), |
| WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
| + WebsiteSettingsInfo::ALL_PLATFORMS, |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
| Register(CONTENT_SETTINGS_TYPE_GEOLOCATION, "geolocation", |
| @@ -166,6 +171,7 @@ void ContentSettingsRegistry::Init() { |
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
| CONTENT_SETTING_ASK), |
| WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, |
| + WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
| Register(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, "notifications", |
| @@ -174,6 +180,7 @@ void ContentSettingsRegistry::Init() { |
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
| CONTENT_SETTING_ASK), |
| WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
| + WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, |
| // See also NotificationPermissionContext::DecidePermission which |
| // implements additional incognito exceptions. |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO_EXCEPT_ALLOW); |
| @@ -183,6 +190,7 @@ void ContentSettingsRegistry::Init() { |
| WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme), |
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_ASK), |
| WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, |
| + WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
| Register(CONTENT_SETTINGS_TYPE_MOUSELOCK, "mouselock", CONTENT_SETTING_ASK, |
| @@ -191,6 +199,7 @@ void ContentSettingsRegistry::Init() { |
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
| CONTENT_SETTING_ASK), |
| WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
| + WebsiteSettingsInfo::DESKTOP, |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
| Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, "media-stream-mic", |
| @@ -199,6 +208,7 @@ void ContentSettingsRegistry::Init() { |
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
| CONTENT_SETTING_ASK), |
| WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
| + WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
| Register(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, "media-stream-camera", |
| @@ -207,6 +217,7 @@ void ContentSettingsRegistry::Init() { |
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
| CONTENT_SETTING_ASK), |
| WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
| + WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
| Register(CONTENT_SETTINGS_TYPE_PPAPI_BROKER, "ppapi-broker", |
| @@ -215,6 +226,7 @@ void ContentSettingsRegistry::Init() { |
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
| CONTENT_SETTING_ASK), |
| WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
| + WebsiteSettingsInfo::DESKTOP, |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
| Register(CONTENT_SETTINGS_TYPE_AUTOMATIC_DOWNLOADS, "automatic-downloads", |
| @@ -224,6 +236,7 @@ void ContentSettingsRegistry::Init() { |
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
| CONTENT_SETTING_ASK), |
| WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
| + WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
| Register(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, "midi-sysex", CONTENT_SETTING_ASK, |
| @@ -231,6 +244,7 @@ void ContentSettingsRegistry::Init() { |
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
| CONTENT_SETTING_ASK), |
| WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, |
| + WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
| Register(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, "push-messaging", |
| @@ -239,30 +253,32 @@ void ContentSettingsRegistry::Init() { |
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, |
| CONTENT_SETTING_ASK), |
| WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, |
| + WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::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, |
| + WebsiteSettingsInfo::PLATFORM_ANDROID | |
| + WebsiteSettingsInfo::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, |
| + WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::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, |
| + WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
| Register(CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC, "background-sync", |
| @@ -270,13 +286,14 @@ void ContentSettingsRegistry::Init() { |
| WhitelistedSchemes(), |
| ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK), |
| WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE, |
| + WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::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, |
| + WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
| // Content settings that aren't used to store any data. TODO(raymes): use a |
| @@ -287,12 +304,14 @@ void ContentSettingsRegistry::Init() { |
| CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE, |
| WhitelistedSchemes(), ValidSettings(), |
| WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE, |
| + WebsiteSettingsInfo::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, |
| + WebsiteSettingsInfo::DESKTOP, |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
| Register(CONTENT_SETTINGS_TYPE_BLUETOOTH_GUARD, "bluetooth-guard", |
| @@ -300,6 +319,7 @@ void ContentSettingsRegistry::Init() { |
| WhitelistedSchemes(), |
| ValidSettings(CONTENT_SETTING_ASK, CONTENT_SETTING_BLOCK), |
| WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE, |
| + WebsiteSettingsInfo::DESKTOP | WebsiteSettingsInfo::PLATFORM_ANDROID, |
| ContentSettingsInfo::INHERIT_IN_INCOGNITO); |
| } |
| @@ -311,6 +331,7 @@ void ContentSettingsRegistry::Register( |
| const std::vector<std::string>& whitelisted_schemes, |
| const std::set<ContentSetting>& valid_settings, |
| WebsiteSettingsInfo::ScopingType scoping_type, |
| + uint32_t platform, |
|
raymes
2016/05/25 03:36:07
nit: platforms
lshang
2016/05/25 10:38:16
Done.
|
| ContentSettingsInfo::IncognitoBehavior incognito_behavior) { |
| // Ensure that nothing has been registered yet for the given type. |
| DCHECK(!website_settings_registry_->Get(type)); |
| @@ -324,8 +345,11 @@ 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, platform, |
| WebsiteSettingsInfo::INHERIT_IN_INCOGNITO); |
| + |
| + if (website_settings_info == nullptr) |
|
raymes
2016/05/25 03:36:07
nit: if (!website_settings_info)
Also please add
lshang
2016/05/25 10:38:16
Done.
|
| + return; |
| DCHECK(!ContainsKey(content_settings_info_, type)); |
| content_settings_info_[type] = base::WrapUnique( |
| new ContentSettingsInfo(website_settings_info, whitelisted_schemes, |