Skip to content

Compatibility Matrix

Krzysztof Modras edited this page Mar 29, 2024 · 13 revisions

Network Filters

Feature Supported Note
*, wildcard ✓ uBlockOrigin's Wiki
^, separator ✓ match any separator or EOL: [^\w\d_.%-]|$
@@filter, exceptions ✓
|filter, left anchor ✓ match left of URL
filter|, right anchor ✓ match right of URL
||filter, hostname anchor ✓ match hostname of URL
RegExp ✓
Pre-parsing directives ✓ uBlockOrigin' Wiki
Type Supported Note
$~type (negation) ✓
$image ✓
$media ✓
$object ✓
$object-subrequest ✓
$other ✓
$ping ✓
$beacon ✓
$script ✓
$stylesheet ✓
$css ✓ alias for stylesheet
$subdocument ✓
$frame ✓ alias for subdocument
$xmlhttprequest ✓
$xhr ✓ alias for xmlhttprequest
$font ✓
$websocket ✓
$webrtc ✗
$popup AdGuard's KB
Option Supported Note
$domain ✓ |-separated list of domains or hostnames
$~domain ✓ negated domains or hostnames
$badfilter ✓ uBlockOrigin' Wiki
$important ✓1 uBlockOrigin' Wiki, AdGuard KB
$third-party ✓ only apply yo third-party resources
$3p ✓ alias for third-party
$first-party ✓ alias for ~third-party
$1p ✓ alias for first-party
$redirect ✓2 uBlockOrigin's Wiki
$redirect=none ✓ disable specific redirect filters
$redirect-rule ✓ uBlockOrigin's Wiki
$generichide ✓
$ghide ✓ alias for generichide
$specifichide ✓
$shide ✓ alias for specifichide
$elemhide ✓
$ehide ✓ alias for elemhide
$csp ✓3 AdGuard KB
$match-case ✗ all filters are considered case insensitive
$document ✓
$doc ✓ alias for document
$genericblock ✗ will not be supported
$collapse
$content AdGuard KB
$jsinject AdGuard KB
$urlblock AdGuard KB
$extension AdGuard KB
$empty AdGuard KB
$mp4 AdGuard KB
$replace AdGuard KB

[1] Missing is proper handling of exceptions with $important flag but there is currently no such filter in use in popular lists.

[2] Strict validation rules are not currently enforced.

[3] Missing strict validation of accepted CSP values.

Cosmetic Filters

Feature Supported Note
## selector ✓
#@# exception ✓
hostnames ✓
~hostnames (negation) ✓
entities ✓ uBlockOrigin's Wiki
~entities (negation) ✓ uBlockOrigin's Wiki
:style ✓ uBlockOrigin's Wiki
+js(...) ✓ inject specific javascript code into pages
#@#+js() ✓ disable scriptlet injection for a given site
HTML filters uBlockOrigin's Wiki, AgGuard's KB
^script:has-text(...) ✓
operators chaining ✓ only for has-text(...)
Procedural filters uBlockOrigin's Wiki, AgGuard's KB
-abp-contains https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#cosmetic-css-rules-syntax-1
-abp-has
-abp-properties
:has(...) ✓
:has-text(...) ✓
:if(...) ✓ Deprecated in favor of :has(...)
:if-not(...) Deprecated in favor of :not(:has(...))
:matches-css(...)
:matches-css-after(...)
:matches-css-before(...)
:min-text-length(...)
:nth-ancestor(...)
:upward(...)
:watch-attr(...)
:watch-attrs(...) Deprecated in favor of :watch-attr(...)
:xpath(...)

As of April 2019 the following proportion of all filters are supported:

  • network = 96%
  • cosmetic = 99%

As a point of comparison, here are the same numbers for other blockers:

uBlock Origin:

  • network = 99%
  • cosmetic = 100%

AdblockPlus:

  • network = 98%
  • cosmetic = 98%

Brave:

  • network = 55%
  • cosmetic = ? (currently cosmetic filters are not applied)

Clone this wiki locally