What is tracking protection?

It is a feature that prevents trackers from collecting your personal information like your browsing habits and interests. In GeckoEngine it comes built-in in Gecko(View). For the SystemEngine we have to created our own implementation, which relays on different lists that indicates what should be considered as a tracker or not.

The lists

The following lists are kept outside of the Android Components repository in the shavar-prod-lists repository.

AC Shavar Purpose
domain_blocklist.json disconnect-blocklist.json This blocklist is the core of tracking protection in Firefox. For more information.
domain_safelist.json disconnect-entitylist.json It is used to allow third-party subresources that are wholly owned by the same company that owns the top-level website that the user is visiting for more details. For more information.

Updating process

For every FireFox release, a new branch gets created following the same pattern as merge-day, where main contains nightly’s lists, the higher branch number contains Beta and the higher branch number before contains Stable. That means that every merge-day, we need to update the domain_blocklist.json and domain_safelist.json files with their counterpart on shavar-prod-lists.

Preparation

  1. Go to the shavar-prod-lists repository
  2. Switch to the higher branch number (Beta).
  3. Copy the content of disconnect-blocklist.json -> domain_blocklist.json
  4. Run all the tests on browser-engine-system 🤞
  5. 🔴 If something fails proceed to verify what’s causing the issue and address it.
  6. Else proceed to copy the content of disconnect-entitylist.json -> domain_safelist.json
  7. Run all the tests on browser-engine-system 🤞
  8. 🔴 If something fails proceed to verify what’s causing the issue and address it.
  9. Else proceed to commit your changes using the guideline below.

To keep track of every update, we include the shavar-prod-lists commit hash as part of our commit message. This way we can know which version of the lists we have on AC.

Closes #6163: Update tracking protection lists

domain_blocklist.json maps to disconnect-blocklist.json
commit(shavar-prod-lists) d5755856f4eeab4ce5e8fb7896600ed7768368e5

domain_safelist.json maps to disconnect-entitylist.json
commit(shavar-prod-lists) 01dcca911aa7787fd835a1a19cef1012296f4eb7

THE END!