Programs that respect your privacy

PC Filter Lists

Privacy Browser uses the EasyList filter lists, augmented by UltraPrivacy and UltraList.

Privacy Browser PC implements a slightly modified implementation of the Adblock feature set. Except as described below, it follows the Adblock Plus syntax and the Adblock Plus filter explanations.

Lines that begin with [ are headers and are ignored by Privacy Browser PC.

Lines that begin with ! are comments and are ignored except to extract the name and version number of the file.

Lines that contain ##, #?#, #@#, and #$# are content filters and are ignored by Privacy Browser PC. Privacy Browser PC currently does not modify the layout of the page in any way. All it does it block requests. Adding content filtering that modifies page layout might be implemented in the future, but it is not currently a high-priority feature.

The following filter options are ignored:

  • csp — Content Security Policies aren’t handled by Privacy Browser PC.
  • method — This appears to specify the request method, but that isn’t an official filter option, and Privacy Browser PC has chosen to ignore it. It appears in some of the EasyPrivacy entries.
  • redirect — This is probably a misspelling of the rewrite option.
  • rewrite — Privacy Browser PC has chosen not to implement the rewrite functionality at the present time. It could be implemented in the future if there is actually some use for it.
  • 1p — This is not an official filter option.
  • elemhide — Content filtering isn’t implemented by Privacy Browser.
  • genericblock — Content filtering isn’t implemented by Privacy Browser.
  • generichide — Content filtering isn’t implemented by Privacy Browser.
  • match-case — This isn’t currently implemented by Privacy Browser but it could be in the future if it becomes important. My sense it that it would just needlessly consume CPU cycles.
  • xhr — This is probably a misspelling of xmlhttprequest.

Qt WebEngine does not have a separate category for webrtc, so it is grouped with the other filter option category.

Qt WebEngine 5 does not have a separate category for websocket, so it is currently grouped with the other filter category. It will be moved to its own category once Privacy Browser PC is rebased on Qt WebEngine 6.

The AdBlock syntax envisions || blocking against the domain name or any subdomains thereof. For example, they consider ||example.com/banner.gif to block http://example.com/banner.gif, https://example.com/banner.gif, and https://www.example.com/banner.gif, but not https://badexample.com/banner.gif. For simplicity sake, Privacy Browser PC interprets || to match the beginning of the fully-qualified domain name, so ||example.com/banner.gif blocks http://example.com/banner.gif and https://example.com/banner.gif but not https://www.example.com/banner.gif or https://badexample.com/banner.gif.

Similarly, AdBlock envisions mixing applied and exempted domains, like domain=example.com|~foo.example.com. Privacy Browser PC’s implementation either applies or exempts all domains in the list based on the status of the first domain in the list (in practice, it doesn’t appear that any of the EasyList entries mix domains and excepted domains).

Privacy Browser PC ships with five filter lists.

  1. UltraPrivacy
  2. UltraList
  3. EasyPrivacy
  4. EasyList
  5. Fanboy’s Annoyance List

Each filter list is split into six sublists for processing.

  1. Main Allow List
  2. Initial Domain Allow List
  3. Regular Expression Allow List
  4. Main Block List
  5. Initial Domain Block List
  6. Regular Expression Block List

Each request is checked against the lists and sublists in the above order. If a match is found, the request is either allowed or blocked and subsequent processing is skipped. If no match is found, the Default - Allowed action is performed.

Last updated