From 5ad92a4c3a7f89d3b9204addc9f949bace8a35a0 Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Wed, 24 May 2017 20:23:05 -0400 Subject: [PATCH] Created About "uBlock is inferior in capabilities as a result of being lighter on the browser" (markdown) --- ...sult-of-being-lighter-on-the-browser\".md" | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 "About-\"uBlock-is-inferior-in-capabilities-as-a-result-of-being-lighter-on-the-browser\".md" diff --git "a/About-\"uBlock-is-inferior-in-capabilities-as-a-result-of-being-lighter-on-the-browser\".md" "b/About-\"uBlock-is-inferior-in-capabilities-as-a-result-of-being-lighter-on-the-browser\".md" new file mode 100644 index 0000000..dcf62f8 --- /dev/null +++ "b/About-\"uBlock-is-inferior-in-capabilities-as-a-result-of-being-lighter-on-the-browser\".md" @@ -0,0 +1,61 @@ +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](http://forums.mozillazine.org/viewtopic.php?p=14743232#p14743232)] + +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](https://bugzilla.mozilla.org/show_bug.cgi?id=1320872) + +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](https://github.com/gorhill/uBlock/wiki/Overview-of-uBlock's-network-filtering-engine)
ability for users to easily override filters in 3rd-party filter lists on a per-site basis | | yes +`@@...$document` | yes | [no](https://github.com/gorhill/uBlock/wiki/Static-filter-syntax#not-supported) +can read hosts files | | yes +`inline-script`
to prevent execution of inline javascript | [no](https://issues.adblockplus.org/ticket/748) | yes +`important`
to be able to override exception filters | | yes +`popunder` | [no](https://issues.adblockplus.org/ticket/2095) | yes +`redirect`
to redirect to local resources, key to privacy and to counter anti-blockers | | yes +`csp=`
see [rationale](https://github.com/gorhill/uBlock/issues/1930#issuecomment-301055346) | | yes
v1.12.5 +[strict blocking](https://github.com/gorhill/uBlock/wiki/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](https://github.com/gorhill/uBlock/issues/139) +`:has` | [not yet](https://issues.adblockplus.org/ticket/2360) | yes +`:has-text`
`:if` `:if-not`
`:matches-css` `:matches-css-before` `:matches-css-after`
`:xpath` | | yes +`:style` | [no](https://issues.adblockplus.org/ticket/756) | 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](https://adblockplus.org/forum/viewtopic.php?f=17&t=50215) 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](https://github.com/gorhill/uBlock/blob/master/MANIFESTO.md) +disable everywhere | yes | +count filter hits | yes | [no](https://github.com/gorhill/uBlock/issues/1353) +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](https://github.com/gorhill/uBlock/wiki/Blocking-mode:-medium-mode) or [strict](https://github.com/gorhill/uBlock/wiki/Blocking-mode:-hard-mode) 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