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

Unified Diff: components/content_settings/core/browser/content_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: format Created 4 years, 7 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/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..64a312aff788676a62108c9ae8163a94feefe762 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_ONLY,
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_AND_ANDROID_ONLY,
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_ONLY,
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_AND_ANDROID_ONLY,
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_AND_ANDROID_ONLY,
// 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_AND_ANDROID_ONLY,
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_ONLY,
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_AND_ANDROID_ONLY,
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_AND_ANDROID_ONLY,
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_ONLY,
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_AND_ANDROID_ONLY,
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_AND_ANDROID_ONLY,
ContentSettingsInfo::INHERIT_IN_INCOGNITO);
Register(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, "push-messaging",
@@ -239,30 +253,31 @@ void ContentSettingsRegistry::Init() {
ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
CONTENT_SETTING_ASK),
WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE,
+ WebsiteSettingsInfo::DESKTOP_AND_ANDROID_ONLY,
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::ANDROID_AND_CHROMEOS_ONLY,
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_AND_ANDROID_ONLY,
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_AND_ANDROID_ONLY,
ContentSettingsInfo::INHERIT_IN_INCOGNITO);
Register(CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC, "background-sync",
@@ -270,13 +285,14 @@ void ContentSettingsRegistry::Init() {
WhitelistedSchemes(),
ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK),
WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
+ WebsiteSettingsInfo::DESKTOP_AND_ANDROID_ONLY,
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_AND_ANDROID_ONLY,
ContentSettingsInfo::INHERIT_IN_INCOGNITO);
// Content settings that aren't used to store any data. TODO(raymes): use a
@@ -287,12 +303,14 @@ void ContentSettingsRegistry::Init() {
CONTENT_SETTING_DEFAULT, WebsiteSettingsInfo::UNSYNCABLE,
WhitelistedSchemes(), ValidSettings(),
WebsiteSettingsInfo::TOP_LEVEL_DOMAIN_ONLY_SCOPE,
+ WebsiteSettingsInfo::DESKTOP_ONLY,
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_ONLY,
ContentSettingsInfo::INHERIT_IN_INCOGNITO);
Register(CONTENT_SETTINGS_TYPE_BLUETOOTH_GUARD, "bluetooth-guard",
@@ -300,6 +318,7 @@ void ContentSettingsRegistry::Init() {
WhitelistedSchemes(),
ValidSettings(CONTENT_SETTING_ASK, CONTENT_SETTING_BLOCK),
WebsiteSettingsInfo::REQUESTING_ORIGIN_AND_TOP_LEVEL_ORIGIN_SCOPE,
+ WebsiteSettingsInfo::DESKTOP_AND_ANDROID_ONLY,
ContentSettingsInfo::INHERIT_IN_INCOGNITO);
}
@@ -311,7 +330,31 @@ void ContentSettingsRegistry::Register(
const std::vector<std::string>& whitelisted_schemes,
const std::set<ContentSetting>& valid_settings,
WebsiteSettingsInfo::ScopingType scoping_type,
+ 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.
ContentSettingsInfo::IncognitoBehavior incognito_behavior) {
+ 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
+ case WebsiteSettingsInfo::DESKTOP_ONLY:
+#if defined(OS_ANDROID) || defined(OS_IOS)
+ return;
+#else
+ break;
+#endif
+ case WebsiteSettingsInfo::DESKTOP_AND_ANDROID_ONLY:
+#if defined(OS_IOS)
+ return;
+#else
+ break;
+#endif
+ case WebsiteSettingsInfo::ANDROID_AND_CHROMEOS_ONLY:
+#if defined(OS_ANDROID) || defined(OS_CHROMEOS)
+ break;
+#else
+ return;
+#endif
+ case WebsiteSettingsInfo::ALL_PLATFORMS:
+ break;
+ }
+
// Ensure that nothing has been registered yet for the given type.
DCHECK(!website_settings_registry_->Get(type));
DCHECK(incognito_behavior

Powered by Google App Engine
This is Rietveld 408576698