| Index: components/content_settings/core/browser/website_settings_registry.cc
|
| diff --git a/components/content_settings/core/browser/website_settings_registry.cc b/components/content_settings/core/browser/website_settings_registry.cc
|
| index f6eac0eff96d4c7cfa980259122912e143e2c70b..553a0c72dd4f6203f4a0e8ef5d7ea004af185b5b 100644
|
| --- a/components/content_settings/core/browser/website_settings_registry.cc
|
| +++ b/components/content_settings/core/browser/website_settings_registry.cc
|
| @@ -59,7 +59,36 @@ const WebsiteSettingsInfo* WebsiteSettingsRegistry::Register(
|
| WebsiteSettingsInfo::SyncStatus sync_status,
|
| WebsiteSettingsInfo::LossyStatus lossy_status,
|
| WebsiteSettingsInfo::ScopingType scoping_type,
|
| + Platforms platform,
|
| WebsiteSettingsInfo::IncognitoBehavior incognito_behavior) {
|
| +
|
| +#if defined(OS_WIN)
|
| + if (!(platform & PLATFORM_WINDOWS))
|
| + return nullptr;
|
| +#elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
|
| + if (!(platform & PLATFORM_LINUX))
|
| + return nullptr;
|
| +#elif defined(OS_MACOSX) && !defined(OS_IOS)
|
| + if (!(platform & PLATFORM_MAC))
|
| + return nullptr;
|
| +#elif defined(OS_CHROMEOS)
|
| + if (!(platform & PLATFORM_CHROMEOS))
|
| + return nullptr;
|
| +#elif defined(OS_ANDROID)
|
| + if (!(platform & PLATFORM_ANDROID))
|
| + return nullptr;
|
| +#elif defined(OS_IOS)
|
| + if (!(platform & PLATFORM_IOS))
|
| + return nullptr;
|
| + // Only default settings for Cookies and Popups are used in iOS. Exceptions
|
| + // and all the other content setting types are not used in iOS currently. So
|
| + // make content settings unsyncable on iOS for now.
|
| + // TODO(lshang): address this once we have proper content settings on iOS.
|
| + sync_status = WebsiteSettingsInfo::UNSYNCABLE;
|
| +#else
|
| +#error "Unsupported platform"
|
| +#endif
|
| +
|
| WebsiteSettingsInfo* info = new WebsiteSettingsInfo(
|
| type, name, std::move(initial_default_value), sync_status, lossy_status,
|
| scoping_type, incognito_behavior);
|
| @@ -87,24 +116,28 @@ void WebsiteSettingsRegistry::Init() {
|
| Register(CONTENT_SETTINGS_TYPE_AUTO_SELECT_CERTIFICATE,
|
| "auto-select-certificate", nullptr, WebsiteSettingsInfo::UNSYNCABLE,
|
| WebsiteSettingsInfo::NOT_LOSSY,
|
| - WebsiteSettingsInfo::REQUESTING_DOMAIN_ONLY_SCOPE,
|
| + WebsiteSettingsInfo::REQUESTING_DOMAIN_ONLY_SCOPE, ALL_PLATFORMS,
|
| WebsiteSettingsInfo::INHERIT_IN_INCOGNITO);
|
| - Register(CONTENT_SETTINGS_TYPE_SSL_CERT_DECISIONS, "ssl-cert-decisions",
|
| - nullptr, WebsiteSettingsInfo::UNSYNCABLE,
|
| + Register(CONTENT_SETTINGS_TYPE_SSL_CERT_DECISIONS,
|
| + "ssl-cert-decisions", nullptr, WebsiteSettingsInfo::UNSYNCABLE,
|
| WebsiteSettingsInfo::NOT_LOSSY,
|
| WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
|
| + DESKTOP | PLATFORM_ANDROID,
|
| WebsiteSettingsInfo::INHERIT_IN_INCOGNITO);
|
| Register(CONTENT_SETTINGS_TYPE_APP_BANNER, "app-banner", nullptr,
|
| WebsiteSettingsInfo::UNSYNCABLE, WebsiteSettingsInfo::LOSSY,
|
| WebsiteSettingsInfo::REQUESTING_DOMAIN_ONLY_SCOPE,
|
| + DESKTOP | PLATFORM_ANDROID,
|
| WebsiteSettingsInfo::INHERIT_IN_INCOGNITO);
|
| Register(CONTENT_SETTINGS_TYPE_SITE_ENGAGEMENT, "site-engagement", nullptr,
|
| WebsiteSettingsInfo::UNSYNCABLE, WebsiteSettingsInfo::LOSSY,
|
| WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
|
| + DESKTOP | PLATFORM_ANDROID,
|
| WebsiteSettingsInfo::INHERIT_IN_INCOGNITO);
|
| Register(CONTENT_SETTINGS_TYPE_USB_CHOOSER_DATA, "usb-chooser-data", nullptr,
|
| WebsiteSettingsInfo::UNSYNCABLE, WebsiteSettingsInfo::NOT_LOSSY,
|
| WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE,
|
| + DESKTOP | PLATFORM_ANDROID,
|
| WebsiteSettingsInfo::DONT_INHERIT_IN_INCOGNITO);
|
| }
|
|
|
|
|