Skip to content

MV3 filter capabilities

Based mostly on tests on testpages, here are the filter capabilities of MV3:


Blocking and Hiding:

  • blocking: WORKING
  • element hiding: WORKING
  • element hiding emulation: WORKING
  • element hiding on dom mutation: WORKING

Filter Options - Resource Types:

  • header: NOT WORKING
dnr-filters.js:123 Uncaught (in promise) FilterError: {"type":"filter_unknown_option","reason":"||testpages.adblockplus.org/testfiles/header/$header=content-type=application/javascript","option":"header"}
    at getRules (dnr-filters.js:123:1)
    at async processFilterTexts (dnr-filters.js:168:32)
    at async addFilters (dnr-filters.js:181:1)
    at async Object.add (filters.js:97:1)
  • image: WORKING
  • ping: WORKING
  • popup: WORKING
  • script: WORKING
  • stylesheet: WORKING
  • subdocument: WORKING
  • webrtc: NOT WORKING (not supported)
  • websocket: WORKING
  • xmlhttprequest: WORKING

Filter Options - Resource Type Exceptions:

  • header exception: NOT WORKING (because header blocking is not working)
  • image exception: WORKING
  • ping exception: WORKING
  • popup exception: WORKING
  • script exception: WORKING
  • stylesheet exception: WORKING
  • subdocument exception: WORKING
  • webrtc exception: NOT WORKING (not supported)
  • websocket exception: NOT WORKING (not supported)
  • xmlhttprequest exception: WORKING

Filter Options - Constraints

  • domain: WORKING
  • match case: WORKING
  • other: WORKING
  • third party: WORKING

Filter Options - Exceptions

  • document: WORKING
  • elem hide: WORKING
  • element hiding exception: WORKING
  • generic block: WORKING
  • generic hide: WORKING (requires disabling easylist as it has some rules that conflicts with testpages)
  • sitekey: NOT WORKING
dnr-filters.js:123 Uncaught (in promise) FilterError: {"type":"filter_unknown_option","reason":"@@$document,sitekey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANGtTstne7e8MbmDHDiMFkGbcuBgXmiVesGOG3gtYeM1EkrzVhBjGUvKXYE4GLFwqty3v5MuWWbvItUWBTYoVVsCAwEAAQ","option":"sitekey"}
    at getRules (dnr-filters.js:123:1)
    at async processFilterTexts (dnr-filters.js:168:32)
    at async addFilters (dnr-filters.js:181:1)
    at async Object.add (filters.js:97:1)

Filter Options - Content Security Policy

  • csp all sites: WORKING
  • csp specific site: WORKING
  • csp exception: WORKING
  • csp generic block exception: WORKING

Filter Options - Rewrite

  • rewrite: WORKING

Snippets

  • all: WORKING

Circumvention

  • anonymous frame document.write(): WORKING
  • inline style !important: WORKING

After review and discussion, issues should be created to fix the missing parts.

Edited by Ozan Ozbek