µBlock for Firefox
github.com
github.com
> Without the preset lists of filters, this extension is nothing. So if ever you really do want to contribute something, think about the people working hard to maintain the filter lists you are using, which were made available to use by all for free.
Specifically, EasyList, EasyPrivacy, Fanboy Social, Malware domains, and a many more are the basis of many other blockers: Adblock Plus, AdBlock, AdGuard, BlueHell, and many others I am sure.
It seems such a tedious amount of work to maintain these lists, this needs to be acknowledged -- none of the above blockers would do very well without these lists.
- It's hard to list what filters are applied (though not impossible, if you like pain: hunt for the right icon using hovertext, find an empty page, hunt for icons again this time without hovertext; one icon will trigger something that will fill up a log, but it stalls a few seconds first and there's no progress indication).
- The big green “power” icon is the wrong metaphor. IMHO uBlock should just stop using icons.
- ABP has simple and obvious text menus, uBlock fails at making its features discoverable. This despite ABP being much more feature-complete.
- There's no way to enable and disable filters from a page.
- There's no easy way to reach uBlock preferences (though not impossible, if you click random areas of the main panel)
- There's no rule editor. ABP's rule editor makes the simple cases easy and the tricky ones possible.
- The element hiding picker is unusable. The ABP picker is well polished, but ABP also integrates with the Firefox developer tools. That simple feature makes it unnecessary to code a custom picker.
I've said this before but being a habitual user of noscript I feel that all I really need from an adblocker is to skip those annoying youtube commercials. Everything else noscript handles pretty well. So I'll have to see if uBlock can do that for me.
(I'd probably enable the whitelisted stuff... IF I wasn't more concerned about adware than anything else over ad-networks)
I used to have Ghostery, Disconnect, ABP, and some other things running simultaneously. When you think about it, that's a lot of JS running and iterating the DOM multiple times every time you load a page.
Now there's a single, purpose-built, standalone process written in C doing it. Not going back.
In fact the only issue I've ever had was building it an forgetting to enable threaded mode ..
Useful stuff, though, thanks!
Your answer was unrelated to my question... mdellabitta stated he was running Disconnect with ABP and Ghostery all together which is redundant and I was asking why he would be doing that.
[1]: An example from the other side of the coin: http://www.wired.com/2010/03/packet-forensics/
[1] http://www.reddit.com/r/LifeProTips/comments/27dihm/lpt_you_...
#BEGIN: Skype ad servers
127.0.0.1 rad.msn.com
127.0.0.1 a.rad.msn.com
127.0.0.1 secure.adnxs.com
127.0.0.1 m.adnxs.com
127.0.0.1 ads1.msads.net
#END: Skype ad serversYou could move all SSL validation off to your proxy, and generate certificates from your own CA on the fly. Then within your browser or OS you can remove everything except your own CA from the trust store.
There's also a comment from the developer mentioning that the filter you mention has been turned off (https://news.ycombinator.com/item?id=8916774 ).
Here's a good guideline: uBlock is not yet the right blocker for people that don't want to configure anything. It's not clear to me that it is even trying to be that thing, but it's clear enough that it isn't there yet.
Hiding Twitter and Facebook log-in functionality on Medium is a feature not a bug for me. By including those javascripts, both companies can build up a history of the sites I visit.
So I gather this is more of a privacy+ad blocker rather than strictly ad blocker.
This is one of the reasons I see dynamic filtering as a key feature: users have the last word, not the filter lists.[2]
For example, I currently block all Facebook, Twitter, Disqus, and any of similarly ubiquitous domains by default using dynamic filtering, so that I have now 100% certainty that no connections to these domains occur on any page, while such certainty is not possible when relying solely on the filter lists.
[1] https://www.diffchecker.com/pz6rv6lq
[2] https://github.com/gorhill/uBlock/wiki/Dynamic-filtering:-qu...
edit: Ah, I followed the link to µMatrix and I see now, I think. HTTPSB became µMatrix, and µBlock is the "easy" version of µMatrix. So I guess I should upgrade my HTTPSB to µMatrix, then. Is that right? Thanks for all your work on these tools!
https://github.com/gorhill/httpswitchboard/commit/b8a45e61d2...
Sounds like more of a job for a filtering proxy or hosts file.
uMatrix also allows you to quickly and easily see which sites are trying to load what resources, which you lose with a hosts file setup.
To me any website that rely on facebook or twitter to log in is broken and I just don't use them.
I recently had one that required sending my info to xiti to display a js popup to log in with email. Too bad they lost a potential client for their service because their web page sucks and is designed with them in mind instead of the actual user.
It is often blocking the false positives.
So if developer has named one of their assets file with social media names like "twitter/facebook/etc", it blocks the file right away. Since it does not have custom configuration options for each site, you can either disable µBlock or go with the crashed site.
Not all the sites are written professionally by experts, and this becomes an issue when you are trying to purchase stuff from small online shops. (to support local sellers)
I am too busy for a pull request these days, but maybe this will be fixed soon by someone else. My point for µBlock is for now 5/10.
uBlock is a bit more of a power user blocker than AdBlock and its variants, but I find it to be far better, both in customisability of filters, and resource utilisation.
What's the purpose of such tool really? It might sound weird, but I was happiest with opt-in (ad) blocking. Every single blocked content was (semi)manually entered by me. I really don't care if I see ads on a site I visit once in a lifetime.
Usually it all comes down to the filter lists, in which case I redirect to EasyList forum [1].
You have powerful editing rules, so you could certainly tune all rules and lists to your liking: " List of your dynamic filtering rules.
Rule syntax: source destination type action. " followed by a GitHub wiki link to the doc.
It's the filter lists. Use the same filter lists with any other blockers which support ABP-filter syntax, and you will get the same result.
> named one of their assets file with social media names like "twitter/facebook/etc", it blocks the file right away
I have removed Fanboy's Social Blocking list from the pre-selected lists since a while now.[1]
I have to say that I had assumed -- wrongly obviously -- that all users knew that what is blocked or not depends completely on what filter lists are selected. So in your case it would have been a matter of un-selecting Fanboy's Social Blocking list.
[1] https://github.com/gorhill/uBlock/commit/ce04053ae3054ff287a...
I expect you would get more complaints, saying it was stupid and didn't work. But it would be interesting to see the outcome.
Though impractical, I thought it was an evil/funny idea.
Regardless, it's easy enough to salt the ads for each request, thwarting hash checks.
Adblock mostly misses self-hosted ads anyway.
It's similar to uMatrix and is under very active development.
Chrome: https://chrome.google.com/webstore/detail/cjpalhdlnbpafiamej...
Opera: https://addons.opera.com/en-gb/extensions/details/ublock/
Safari: https://chrismatic.io/ublock
Haven't tried it out myself yet but it's nice to see effort put into lowering the memory & CPU usage of such blockers.
-> Settings -> Show the number of blocked requests on the icon
Perhaps changing the color from red to something more "off" (grey?) would help distract less.
I get that a subset of users would derive some pleasure at knowing how many things are blocked on every single website they visit or users who'd like to use it to troubleshoot a specific page that doesn't load when blocking is enabled (in which case having a quick right-click toggle to turn it on so users can use it to troubleshoot would be ideal), but I'd wager that most users do not. Users that want it on can turn it on. (cue subset of users responding that they either 1. enjoy seeing the count or 2. use it to troubleshoot the rare page that doesn't load as a result of blocking)
in all cases memory is reduced :)
> You can't compare directly the figures between the browsers
Still, yes, Chromium uses more memory. A good part of this is because per-process tab. Once Firefox get the same per-process tab architecture, it will be easier to compare both browsers together.
The details of the benchmark (if you want to reproduce) are in the spreadsheet linked in the caption.
https://bugzilla.mozilla.org/show_bug.cgi?id=988266 https://bugzilla.mozilla.org/show_bug.cgi?id=1001426
It's worth remembering that ABP only implemented the element-hiding feature so that things like inline text ads could be blocked, but now the popular rule lists are using a large number of broad rules to hide all kinds of elements, many of which could probably have been effectively blocked with URI-matching rules.
Additionally, it's very unfair to the ABP devs to be criticizing the performance or memory usage of ABP when the problem is really the memory usage of EasyList. Using a more restrained and targeted rule list makes the problems go away.
A lot of my custom ABP rules are actually blocking dynamic HTML slide-ins, overlays, animated carousels, etc.
That creates a custom filter that you can go edit if you want.
That said, Ghostery (and for that matter, HTTPS Everywhere) both work great.
I'm using it in combination with µMatrix.
I'm curious: how do you use it? Do you have to mass-enable stuff using the 'power' icon, for many sites? Or do you just enable the things you know you need, on a per-site basis? Or are your default just good enough?
The reason I ask is that I was curious about it, so tried it out for a couple of days. I found many sites were not usable with the default settings, e.g. Udemy's login box didn't show up until I turned off µMatrix.
Sites using cloudflare are a major issue here, specifically their cryptic subdomains. If someone were to hide an ad network behind those they would be hard to tell apart from the rest, at least for humans.
Mozilla rolls that option into their CFX builder - https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/cfx#cf... - the update file just needs a consistent place to live. I use CloudFront for it.
https://github.com/gorhill/uBlock/releases/download/0.8.5.7/...
I would like to see something akin to Ghostery's interface where I can see exactly what trackers/ads are hitting me at a site, and whitelist by domain.
Glimmerblocker works on operating system level and you don't really need an adblocker in your browser.
When I last looked (at least two years ago) there wasn't a single blocker that supports a blacklist-only mode. Meaning: Allow everything unless I block a certain domain.
Does anyone have an idea if something like this exists now?
I don't want to maintain any block lists myself. I want to use all the 3rd-party Filters available but I only want them to be active on certain spammy websites. As far as I can tell ublock doesn't let me do that either.
ABP also makes it easy to create very specific rules: only block a particular resource when accessed from the current domain.
Has anybody made some tests outside of the developers of the extension?
EDIT: it seems that it's not compatible with Firefox 35 on my Android. Oh well, more patience required :-)
I haven't tried Bluehell Firewall though. Can you comment on its performance as compared to Adblock Plus/Edge?
Not NoScript, though.
I don't think it blocks Flash. I let the browser to that anyway, so for me this isn't a problem.
http://winhelp2002.mvps.org/hosts.zip
(too restrictive) http://hosts-file.net/download/hosts.zip
(ad-servers n tracking only) http://hosts-file.net/ad_servers.asp
http://pgl.yoyo.org/as/serverlist.php?hostformat=hosts&showi...
I also replace 127.0.0.1 with 0.0.0.0 and duplicate each entry to have it for IPV6 as well, as in this script except I don't do the iptables rules: https://gist.github.com/teffalump/7227752
I have a netbook, so always want to keep an eye out on performance.
I wonder if there's a GUI application which enables these hosts sources to be tweaked, searched, whitelisted etc
Hostsman (http://www.abelhadigital.com/hostsman) on windows is the my choice of a frontend for hosts management. It's free but not open source.
The solution is to feed the data to a DNS caching resolver such as unbound or dnsmasq, as I have explained in reply to UserRights.
Answering here also to point out I originally implemented this on a 5y old netbook (Atom CPU, 1GB RAM) because I tend to have a lot of tabs open in firefox, and ABP's memory usage quickly becomes noticeable, and then comes the swapping. Running unbound+nginx scales remarquably well, without hogging too much memory at startup. (Sorry, I don't have access to the netbook right now to report real numbers).
It is the better approach to not let these requests happen right in the browser, what this plugin does, if I get it right.
A warm and big THANK YOU to the developer of this great software, it is so important and good to see that many developers are helping users to protect against the morally challenged who are stealing the privacy of millions every day.
"the browser still will wait for answers to your request" - Shouldn't have to wait. You should get a near instant rejection if you attempt to connect to a TCP port on your local host and there's nothing listening there... Unless you screwed up your firewall.
The way I have done it is by installing unbound[0]. If you aren't using something else like dnsmasq, you will notice a speedup from the DNS caching alone. While unbound isn't supposed to serve authoritative answers (i.e.: don't use it to manage your zone) the possibility is there. The unbound-block-hosts script[1] can be used to convert Dan Pollocks' hosts file to the appropriate unbound syntax.
To avoid the timeout from localhost, my first approach was to setup a firewall rules that discards the request (the browser receives a connection refused message _immediately_)
Another way of proceeding is to setup nginx to serve a 1*1 transparent GIF for every request it receives. If you find nginx to be too big a dependency, there are alternatives such as pixelserv[2].
The issue is that you can't block a specific element, but you still catch a fair share of ads.
I have explored the possibility of running a http proxy to address this, but I haven't got around to it yet. (In addition, I'll probably need to MITM myself if I want to block elements in HTTPS; still needs some thinking :)).
[0] https://unbound.net/ [1] https://github.com/jodrell/unbound-block-hosts [2] https://github.com/h0tw1r3/pixelserv
Why serve a gif, why not a single byte or something? Does the browser require the data to be parseable?
Sorry, lots of questions.
http://proger.i-forge.net/The_smallest_transparent_pixel/eBQ gives info on smallest gif/png/jpeg files which might be useful.
The reason I tried the transparent GIF trick is because some sites have frames with ads and whatnot and having the firewall refuse the connection will result in having an error message displayed in the browser. Not really aesthetically pleasing. While I don't care, because I know the reason it is displayed; some less technical people might start thinking their Internet is broken.
In addition to that, the GIF results in a cheap form of "element hiding" since you end up replacing a 5050 banner with a 11 transparent square. Now that you mention it though, I wonder what would happen if I set the server to serve a null byte for instance.
+1 for not having this in AMO!
worked for me.
1. giphy: it removes the share and twitter buttons
2. doesn't block ads on hulu
There were others as well that I seem to be forgetting (I remember having to disable it on quite a few sites). Good intention (lowering memory consumption), but the execution still has some way to go.
First sentence on the project page:
"µBlock is not an ad blocker; it's a general-purpose blocker."
Yes, you have a right not to visit any website you don't want to.
In your first comment, you seemed to be against altering the presentation of websites; you offer a binary choice: go to the site, or do not, based solely on the content. Seemingly advocating that sites should be accepted or rejected whole-cloth with no modification. Yet here, you seem to be just fine with blocking Javascript and cookies, despite the fact that both these technologies are often used as part of ad services to generate revenue.
So which is it?
Do you ask "why did Linus write Linux when there were other operating systems available at the time and no one was paying him for it?" or similarly the Atheos.cx guy? Gnome when there was KDE? Gimp when there was Photoshop? Facebook when there was MySpace?
But your point is well-made otherwise. The answer to "why?" for uBlock and others is "because people care enough to do it."
One concern is that the EasyPrivacy list -- which is in my opinion overly aggressive -- is enabled by default. Most pertinently, it entirely disables Google Analytics on every site.
Some of the marketing people on here will probably find that to be horrendous. Where is my relevant promoted content?!
If you've ever implemented GA, you know that Google has put a lot of effort into making their implementation extremely efficient and asynchronous. I personally think they should be rewarded for being considerate towards users' time and resources.
Some might find being tracked across most of the Internet to be a privacy concern.
People put google analytics on their site because of the 'free' data they get from google, and I suspect most don't consider that there is a cost - it's just their users that are paying it.
"Paying for it"? GA doesn't do much that a webmaster couldn't otherwise learn by analysing their webserver log files.
GA does a lot that webmasters couldn't normally do -- specifically: to cross reference those requests with requests to almost every other website, and use that data to build a full profile of the user. (Granted, the full profile is not available to the webmaster, only to Google's ad targeting platform).
I'm not sure what one has to do with another. GA is something developers (or marketers) decide to pull into their sites, exposing their users to having their activity tracked across all sites that use GA. gmail is a product that someone elects to use. Apples and oranges.
>> Paying for it"? GA doesn't do much that a webmaster couldn't otherwise learn by analysing their webserver log files.
That's the unfortunate truth; and there are also many free packages that will do similar things -- all of which can be done without tracking people across most of the sites they visit.
Still, none of them are as quick and convenient as dropping in a line of javascript. I just wish that more developers would give thought to whose data they're giving away when they drop in that line of javascript.
You are mistaken. Unless it changed since I ran the benchmark, EasyPrivacy doesn't always block Google Analytics.
See diff of uBlock vs. ABP, both with EasyPrivacy selected: https://www.diffchecker.com/r7v1cq6x
In uBlock, it is Peter Lowe's list, selected by default, which blocks Google Analytic with good reliability.