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

Unified Diff: components/content_settings/core/browser/website_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: split the changes and register images, plugins, mouselock in this CL Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
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);
}

Powered by Google App Engine
This is Rietveld 408576698