Skip to content

About "uBlock is inferior in capabilities as a result of being lighter on the browser"...

Raymond Hill edited this page May 25, 2017 · 12 revisions

Motivation for creating this page, this comment made in the spirit of Fake News (i.e. with no supporting objective evidences, merely a "just trust me" statement):

Ublock is inferior in capabilities [to ABP] as a result of being lighter on the browser [source]

There is nothing wrong with preferring ABP to uBO. There is however something wrong when someone engages in misinformation regarding uBO because of their preference for ABP.

This is my reference answer to such claims.

uBlock Origin is lighter on the browser because of many choices which were made regarding how the filtering engine is designed internally. A coarse enumeration of these choices are:

  • lean in-memory filter representation
  • plain string comparisons instead of regular expressions wherever possible
    • a majority of network filters can be reduced to plain string comparison, and this is what uBO does internally for these filters, whereas ABP convert all network filters into regular expressions.
    • Example, &ad_zones= (filter found in EasyList).
      • ABP's code conceptually is: /&ad_zones=/.test(url) -- the whole URL must be scanned
      • uBO's code conceptually is: url.startsWith('&ad_zones=', i) -- no scanning of the URL
  • does not unconditionally inject 18,000+ (that is with EasyList only) generic CSS rules in all pages/frames
    meaning no undue memory usage issues

Do these design choices really cause uBO to be "inferior in capabilities" compared to ABP? See the capabilities comparison grid below for an answer (at time of writing):

Features ABP uBO
network filtering
multi-stage filtering engine
ability for users to easily override filters in 3rd-party filter lists on a per-site basis
yes
@@...$document yes no
can read hosts files yes
inline-script
to prevent execution of inline javascript
no yes
important
to be able to override exception filters
yes
popunder no yes
redirect
to redirect to local resources, key to privacy and to counter anti-blockers
yes
csp=
see rationale
yes
v1.12.5
strict blocking yes
rule-based filtering
firewall-like or URL-based rules with corresponding point-and-click UI
yes
behind-the-scene
uBO's logger reports behind-the-scene request, filtering is opt-in
yes
cosmetic filtering
entity-based filters yes
-abp-properties yes no
:has not yet yes
:has-text
:if :if-not
:matches-css :matches-css-before :matches-css-after
:xpath
yes
:style no yes
script:contains Firefox only
script:inject
key to counter anti-blockers
yes
privacy
pro-user default settings
uBO is not monetized, it's under no pressure to compromise on pro-user interests
yes
disable pre-fetching yes
disable hyperlink auditing yes
disable local IP addresses leakage through WebRTC yes
other features
pre-compilation of filter lists for fast loading of filters yes
"acceptable ads" yes no
disable everywhere yes
count filter hits yes no
ability to globally ignore generic cosmetic filters
useful for low-performance mobile devices
yes
cloud storage yes
point-and-click firewall-like filtering
allows for relax or strict default-deny approach
yes
logger per-page unified
point-and-click per-site no-popups yes
point-and-click per site no-cosmetic-filtering yes
point-and-click per site no-large-media-elements yes
point-and-click per site no-remote-fonts yes
integrated element picker Chromium-based browsers only yes
easy backup/restore of all settings Firefox only yes
Clone this wiki locally