/privacy-configuration

🎛 Configuration files used by DuckDuckGo's apps and extensions to control which privacy protections are enabled.

Primary LanguageJavaScriptOtherNOASSERTION

DuckDuckGo Privacy Configuration

The configuration files within this repo are used by DuckDuckGo's Apps and Browser Extensions to control which privacy protections are enabled or disabled.

In some cases, privacy protections can cause conflicts that affect expected website functionality. Files in the features directory can be used to temporarily disable privacy protections or add exceptions for particular sites in order to restore expected site functionality.

All feature files contain an exceptions property which contains a list of sites on which a feature should be disabled to prevent breaking site functionality. Additionally there is an overrides directory which contains files that may add to these configurations for their respective platforms.

This repo also contains the code to build and deploy the configuration files. These files (in the generated directory once built) are served from https://staticcdn.duckduckgo.com/trackerblocking/config/v2/...

Please see the Related Resources section for a list of files used by each platform.

Deprecated Files

Please note the files trackers-unprotected-temporary.txt, trackers-whitelist-temporary.txt, protections.json, and fingerprinting.json in the generated directory, as well as v1 config files, are deprecated. These files are automatically generated and only used by legacy product versions.

Adding Unprotected Entries

Unprotected entries will disable all protections on a given site. This is only used in cases of severe web breakage where a root cause cannot be determined. To add an unprotected entry manually, update the exceptions of features/unprotected-temporary.json.

Related Resources

Licensing

Copyright 2022 Duck Duck Go, Inc.

DuckDuckGo Privacy Configuration is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. If you'd like to license the source for commercial use, please reach out.

Questions

  • Where can I find out why a particular exception has been added? We mostly do two kinds of mitigations -- either allowing certain trackers or disabling one or more protections on specific URLs or on certain platforms. If you search in Code for the domain you're interested in, in most cases there will be a "reason" key below the exception for it with the URL of either an issue (old process) or a pull request (current process). Within the description of that linked URL we explain why we've added a breakage mitigation to the site in question and exactly what we're allowing or disabling to improve users' experience on the page.

  • Why do some exceptions have more documentation than others? A review of existing systems is ongoing to make this repository the central location for exceptions and bring documentation and mitigations up-to-date.

  • How can I contribute to this repository? If you suspect any website usability issues or breakage, or have concerns about what is/isn't blocked, please open an issue.

    We are not accepting external pull requests at this time.