1
0
mirror of https://github.com/gorhill/uBlock.git synced 2024-11-16 15:33:38 +01:00

Updated Does µBlock blocks ads or just hide them? (markdown)

Raymond Hill 2015-02-24 19:18:26 -05:00
parent ede220dda4
commit 43be4f7661

@ -1 +1,45 @@
.
I've seen an increase in misrepresentation and disinformation lately regarding µBlock -- and not surprisingly always from anonymous sources.
I will set the official record here.
There seems to be underhanded attempts to discredit µBlock lately in various venues. Here is a typical comment:
> uBlock who is recently found to not actually "block" ads, but rather hide them after its been displayed. Adblock actually blocks them before they can even display them.
The statement above is plain fear-using-disinformation. That kind of disinformation happens to be convenient to the incumbent blockers, **or** to those who have an interest in people using those incumbent blockers.
There are two kinds of [ABP-compatible filters](https://adblockplus.org/en/filters): network filters and cosmetic filters. _Cosmetic filters_ are referred to as _element hiding_ filters by Adblock Plus ("ABP").
#### Network filters
**Short answer:** resources blocked: network requests are cancelled before they leave the browser.
The purpose of network filter is to prevent a network request to be made to a remote server, so as to prevent downloading a remote resource. µBlock will prevent the network request from even being made. This saves bandwidth, decrease privacy exposure -- as the remote server won't be able to log anything if you do not contact it.
#### Hosts file
**Short answer:** resources blocked: network requests are cancelled before they leave the browser.
µBlock also support the parsing and enforcing of hosts files -- something which ABP does not. All entries in a hosts file are parsed as network filters, i.e. no resource will be fetch from a remote server which appear in a hosts file, no connection will even be attempted.
#### Cosmetic filters
**Short answer:** resources hidden -- in various ways depending on the class of cosmetic filters.
These filters serve to remove DOM elements from a web page. They have no value privacy-wise, it is essentially to make web page look better by removing unwanted content, which usually cannot be blocked using network filters. Just like ABP, µBlock will hide DOM elements on a web page which match cosmetic filters. µBlock uses a [different method](https://github.com/gorhill/uBlock/wiki/Cosmetic-filtering-in-%C2%B5Block:-version-0.4.0.0-update) than other big-name blockers to hide the DOM elements though.
Different classes of cosmetic filters are applied differently:
- Specific cosmetic filters: injected before page's root DOM is loaded
- No flickering
- Generic cosmetic filters: injected after page's root DOM is loaded
- These are cacheable
- Since these cosmetic filters are applied after page load, DOM elements **may** be hidden after they are rendered
- Notice the emphasized "may": generally, you won't see this; and sometimes you will notice **more** flickering with ABP (with same filter lists):
- Demonstration: [test page](http://raymondhill.net/ublock/tiles1.html)
- Chromium + uBlock: minimal flickering (sometimes none)
- Chromium + ABP: noticeable flickering
- Firefox + uBlock: no flickering
- Firefox + ABP: no flickering
- Cached generic cosmetic filters: injected before page's root DOM is loaded
- No flickering