duckduckgo / privacy-configuration

🎛 Configuration files used by DuckDuckGo's apps and extensions to control which privacy protections are enabled.
Other
110 stars 58 forks source link

Add Remote Messaging feature flag #2178

Closed ayoy closed 3 months ago

ayoy commented 3 months ago

Asana Task/Github Issue: https://app.asana.com/0/72649045549333/1207481940843750/f

Description

This change introduces remoteMessaging feature to be used by desktop browsers and iOS, after we release support for macOS (iOS gets it for free because of the shared codebase, hence this change already enables remote messaging on iOS). Android is not using that flag for now. Flag remains disabled on macOS and Windows until we're ready to turn it on (a separate PRs will be submitted to do that).

Reference

github-actions[bot] commented 3 months ago

Generated file outputs:

legacy
fingerprinting.json (3 more) - fingerprinting.json - protections.json - trackers-unprotected-temporary.txt - trackers-whitelist-temporary.txt ⚠️ File is identical
v1/android-config.json (38 more) - v1/android-config.json - v1/extension-brave-config.json - v1/extension-bravemv3-config.json - v1/extension-chrome-config.json - v1/extension-chromemv3-config.json - v1/extension-config.json - v1/extension-edg-config.json - v1/extension-edge-config.json - v1/extension-edgmv3-config.json - v1/extension-firefox-config.json - v1/extension-safarimv3-config.json - v1/macos-config.json - v1/windows-config.json - v2/android-config.json - v2/extension-brave-config.json - v2/extension-bravemv3-config.json - v2/extension-chrome-config.json - v2/extension-chromemv3-config.json - v2/extension-config.json - v2/extension-edg-config.json - v2/extension-edge-config.json - v2/extension-edgmv3-config.json - v2/extension-firefox-config.json - v2/extension-safarimv3-config.json - v2/macos-config.json - v2/windows-config.json - v3/android-config.json - v3/extension-brave-config.json - v3/extension-bravemv3-config.json - v3/extension-chrome-config.json - v3/extension-chromemv3-config.json - v3/extension-config.json - v3/extension-edg-config.json - v3/extension-edge-config.json - v3/extension-edgmv3-config.json - v3/extension-firefox-config.json - v3/extension-safarimv3-config.json - v3/macos-config.json - v3/windows-config.json ```diff --- v3/windows-config.json +++ v3/windows-config.json @@ -5661,8 +5661,12 @@ } ], "state": "disabled" }, + "remoteMessaging": { + "state": "disabled", + "exceptions": [] + }, "requestFilterer": { "state": "enabled", "exceptions": [ { ```
v1/ios-config.json (2 more) - v1/ios-config.json - v2/ios-config.json - v3/ios-config.json ```diff --- v3/ios-config.json +++ v3/ios-config.json @@ -5715,8 +5715,12 @@ } ], "state": "disabled" }, + "remoteMessaging": { + "state": "enabled", + "exceptions": [] + }, "requestFilterer": { "state": "disabled", "exceptions": [ { ```
latest
v4/android-config.json (12 more) - v4/android-config.json - v4/extension-brave-config.json - v4/extension-bravemv3-config.json - v4/extension-chrome-config.json - v4/extension-chromemv3-config.json - v4/extension-config.json - v4/extension-edg-config.json - v4/extension-edge-config.json - v4/extension-edgmv3-config.json - v4/extension-firefox-config.json - v4/extension-safarimv3-config.json - v4/macos-config.json - v4/windows-config.json ```diff --- v4/windows-config.json +++ v4/windows-config.json @@ -5217,8 +5217,12 @@ } ], "state": "disabled" }, + "remoteMessaging": { + "state": "disabled", + "exceptions": [] + }, "requestFilterer": { "state": "enabled", "exceptions": [ { ```
v4/ios-config.json ```diff --- v4/ios-config.json +++ v4/ios-config.json @@ -5266,8 +5266,12 @@ } ], "state": "disabled" }, + "remoteMessaging": { + "state": "enabled", + "exceptions": [] + }, "requestFilterer": { "state": "disabled", "exceptions": [ { ```
federicocappelli commented 3 months ago

Questions:

  1. Do we have a way to locally validate this configuration before making it live? what happens if there's a formatting mistake?
  2. The feature flag is disabled on mac, do I have a way to test this?

if 1 and 2 are a no then LGTM

ayoy commented 3 months ago
  1. I think formatting is ensured by CI.
  2. RMF is not implemented on macOS (and remoteMessaging flag is not present in PrivacyFeature enum in BSK). We want this config to be in place when we merge RMF (not earlier than in a week). As soon as it's merged, it must return "enabled" for iOS and disabled for other platforms. Hence this privacy config PR coming up ahead of time. Answering your question: you don't have a way to test that the feature flag is disabled on Mac because it's not recognized there at all.