-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Experimental features
This page is about the experimental features which you can enable in µBlock. Features which I think are good for the users but which I consider aren't yet mature in design/implementation are considered experimental.
Experimental features are disabled by default, you can enabled them in the Settings tab in the dashboard. As long as a feature is labeled "experimental", I can't guarantee it will work flawlessly.
If something doesn't work as expected, I suggest you first disable "Experimental features" in the dashboard then see if the problem persist.
One way users increase their privacy exposure is through content delivery networks ("CDN") and likes. Good examples of CDN are ajax.googleapis.com
, cdnjs.cloudflare.com
, googletagservices.com
, etc. These servers are used to serve resources to countless web sites.
When a resources is pulled from one of these CDNs, typically the referrer header is set in the HTTP request, which allows ubiquitous CDNs to collect data about your browsing habits. Not good for privacy.
In the spirit of reducing privacy exposure, local mirroring is introduced as an experimental feature in µBlock. Local mirroring allows µBlock to cache locally resources pulled from known ubiquitous CDN, and future requests for the same resource will be served locally rather than pulling it from the CDN: not pulling a resource from a CDN prevents that CDN from collecting data about your browsing habit.
The picture above shows that connections to ajax.googleapis.com
, www.googletagservices.com
, twitter.com
were prevented -- hence no trace left in their server logs), and local copies of the requested resources were served instead -- hence no page breakage. (Surprisingly, the above shows that requests to googletagservices.com
are not blocked when using EasyList + EasyPrivacy. ("Dan Pollock's", MVPS and hpHosts block it though.)
A quick benchmark -- using reference benchmark, with the feature disabled vs. enabled shows the following:
Disabled:
URLs visited: 60
Domains: 415 / 475
Scripts: 857 / 1264
Outbound cookies: 0 / 130
Net requests: 3,304 / 6,264
Enabled:
URLs visited: 60
Domains: 337 / 397
Scripts: 793 / 1214
Outbound cookies: 0 / 132
Net requests: 3,174 / 6,156
As seen above, a significant amount of connections to third-party ubiquitous CDNs were foiled with local mirroring enabled. This contribute to reducing privacy exposure, without breaking web pages.
Advantages of local mirroring:
- Reduction of privacy exposure
- Less bandwidth
- Faster page load
Disadvantage of local mirroring:
- Higher memory consumption
[Following cut & pasted from here]
I ran a new benchmark with uBlock 0.6.6.0-rc.0 and ABP 1.8.5 with the same lists (except Peter Lowe's because there is no easy convenient way to install it in Adblock Plus -- so I assume users are likely to not bother).
Here is the resulting diff: https://www.diffchecker.com/5z91i47m
In red what ABP blocked which was not blocked by uBlock. In green what uBlock blocked which was not blocked by ABP.
I suspect the only two requests not blocked by uBlock which were blocked by ABP is just the result of the page content changing between the time I benchmarked uBlock and ABP.
Filter lists:
- ABP: Out of box settings + EasyPrivacy, Malware domains, Fanboy's Social Blocking List, Anti-ThirdpartySocial + "Acceptable ads" disabled
- uBlock: Out of box settings + Anti-ThirdpartySocial + Local mirroring enabled and primed (as it would be through normal use).
What local mirroring accomplished in the above benchmark... Prevented connections to:
2mdn.net
ajax.googleapis.com
cloudflare.com
fonts.googleapis.com
googletagservices.com
gstatic.com
janrain.com
jquery.com
twitter.com
And since the remote resources were available locally, preventing the connection didn't cause page breakage.
I had to remove a couple of hostnames which were candidate to be mirrored, as in practice it showed that these could not be safely mirrored: 2mdn.net
, googletagservices.com
, janrain.com
. At this point it does look like the local mirroring feature will really have to be strictly reserved for resources which we know for sure are immutable (libs, fonts, things like that).
uBlock Origin - An efficient blocker for Chromium and Firefox. Fast and lean.
- Wiki home
- About the Wiki documentation
- Permissions
- Privacy policy
- Info:
- The toolbar icon
- The popup user interface
- The context menu
-
Dashboard
- Settings pane
- Filter lists pane
- My filters pane
- My rules pane
- Trusted sites pane
- Keyboard shortcuts
- The logger
- Element picker
- Element zapper
-
Blocking mode
- Very easy mode
- Easy mode (default)
- Medium mode (optimal for advanced users)
- Hard mode
- Nightmare mode
- Strict blocking
- Few words about re-design of uBO's user interface
- Reference answers to various topics seen in the wild
- Overview of uBlock's network filtering engine
- uBlock's blocking and protection effectiveness:
- uBlock's resource usage and efficiency:
- Memory footprint: what happens inside uBlock after installation
- uBlock vs. ABP: efficiency compared
- Counterpoint: Who cares about efficiency, I have 8 GB RAM and|or a quad core CPU
- Debunking "uBlock Origin is less efficient than Adguard" claims
- Myth: uBlock consumes over 80MB
- Myth: uBlock is just slightly less resource intensive than Adblock Plus
- Myth: uBlock consumes several or several dozen GB of RAM
- Various videos showing side by side comparison of the load speed of complex sites
- Own memory usage: benchmarks over time
- Contributed memory usage: benchmarks over time
- Can uBO crash a browser?
- Tools, tests
- Deploying uBlock Origin
- Proposal for integration/unit testing
- uBlock Origin Core (Node.js):
- Troubleshooting:
- Good external guides:
- Scientific papers