[Support] uBlock Origin

This is the new support and feedback thread for uBlock Origin

https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/

12 Likes

Example of how to un-break a site using the dynamic filtering pane

Real, concrete case: issue #1323, also reported on ABP forum:

On money.cnn.com, the comments section is being blocked by a filter
list blocking rule. I would appreciate it if someone could suggest an
exception rule that works in Adblock Plus

From what I gathered, the user had Fanboy’s Annoyance List‎ enabled. With ABP, users are told to use the Blockable items pane to un-break pages broken by one or more static filters, by disabling one or more filters.

In uBlock Origin (“uBO”), it is not possible to disable specific static filters, un-breaking pages is done in different ways: In uBO one does not disable a static filter, one overrides a static filter, and this can be done on a per-site basis. I will illustrate how to do it here using the dynamic filtering pane – this is the easiest way.

The page which was reportedly broken would not properly render comments:

uBO’s popup panel reports that 30 network requests were blocked on the page:

You can fix yourself the issue, and at the same time contribute some investigation work to help narrow the cause of why the page is broken – the comments section in the current case.

First, enable the “I am an advanced user” mode in the dashboard:

This will give you access to the dynamic filtering pane in the popup panel. By default, there are no rules present in the dynamic filtering pane, which means it does not affect at all what is blocked/allowed:

You can see a list of domain names, with each domain name followed by two cells: the first one is for global rules, the second one is for local rules. For the current case, we will only care about local rules. Local rules are those which apply only to the current site , and we are only interested in un-breaking the current site. The cells for the local rules show whether network requests were allowed/blocked using pluses/minuses.

Now if you scroll down the list of domains, you can see a lot of network requests were blocked, and surely one of the blocked network requests is responsible to cause the comments section from not being rendered.

At this point, there is no magick trick to know beforehand which domain(s) is responsible for making the comments appear properly – a trial and error approach must be used. Experience helps. For example in the current case, one may notice that network requests to s3.amazonaws.com were blocked, and an experienced user may consider this anomalous.

In such case, it’s worth to try to bypass whatever static block filters blocked the network requests to s3.amazonaws.com:

The picture above shows a local allow rule being set for s3.amazonaws.com. “Local” here means the rule will apply only for the current site (http://money.cnn.com/).

If you hover the mouse pointer over the local rule cell for s3.amazonaws.com, you will see that you can set one of three rules: allow, noop or block. Rules in the dynamic filtering pane always override static filters in effect for a given domain.

Possible rules:

  • allow: always allow network requests, disregard all block static filters (green).
  • noop: ignore for now – this belongs to another topic (gray).
  • block: always block network requests, disregard all exception static filters (red).

Reloading the page with the newly created allow rule for s3.amazonaws.com will show that the comments section and other parts on the page now render properly:

This is an example of how you can un-break a site yourself using point-and-click in uBO’s popup panel (and trial-error until you find the proper rule). Things to keep in mind:

All rules you set in the dynamic filtering pane are temporary by default:

  • You can erase all temporary rules currently set in the pane using the eraser icon.
  • You can persist the temporary rules currently set in the pane using the padlock.

The rules being temporary by default is very convenient when trying to find out which set of rules un-break a site, you can commit the proper rules once you find out what works.

Once you succeed in un-breaking a site, you can report the issue to the filter list maintainers that a site was broken – so that the fix can benefit everybody. In such case it is useful to report:

  • A specific URL where the breakage can be seen (http://money.cnn.com/video/news/2016/01/29/fox-news-gop-debate-trump-election.cnnmoney?iid=EL).
  • A description of what is broken (“comments are not rendered”).
  • The filter lists in use ("EasyList, EasyPrivacy, Fanboy’s Annoyance List‎, etc.)
  • How you fixed the issue (“allowing network request to s3.amazonaws.com fixed the issue”)

It is possible to find out exactly which filter(s) in which filter list(s) was causing the breakage, but this is for another topic.

4 Likes

Hey Raymond.

Thoughts regarding this discourse platform: Great to see uBlock offering this community support tool. It could help prevent having too many help desk questions cluttering the GitHub issues section.

I don’t quite understand how to create a new topic for uBlock Origin. Is “reply” the only option to ask a question? If so, I am not sure if that is a good way to deal with questions. one topic per question would imo be better. But I could totally be missing some essential functionality here.

uBlock Origin question: Is there a keyboard shortcut to open the element-picker-mode? If yes, it would be great to display a tooltip when hoovering the mouse over the pipette icon. If no, please consider this a feature request to add a keyboard shortcut. Iirc, AdBlock Element hiding helper had shift + cmd + k (on OS X). Would be great to have some shortcut available since the current workflow is rather time consuming and ineffective.

2 Likes

I think it is. Ideally there would be threads etc., maybe this will come eventually – it’s for the Mozilla Discourse people to decide, assuming it is possible at all.

Not yet, it’s a long standing open issue (dated Sept. 2014, an old issue on the now abandoned uBlock).

I will try to see what can be done for the next version – especially that with 1.6.0 it can happen that the “Block Element” entry in the context menu may end up in a submenu.

1 Like

Thanks for the quick reply! Hope you can find some time to add a shortcut. Submenu or not, a shortcut is always the quickest solution.
Oh and not to be forgotten: thanks a lot for investing time into this fantastic add-on.

Thanks for this tutorial. I made the original post over in issues, which i guess maybe was the reason for this tutorial. This will be very handy for novices, and I look forward to the tutorial about doing this from the logger too, you posted about that over there.

I think I might have found out something about doing the logger method while I was trying to fix the problem on that money.cnn.com site page. When the page first loaded up, that video at the top (which also plays in the right side as you scroll down) did not automatically start, that Twitter image with the percentages of the candidate mentions didn’t appear and the comments wouldn’t appear.

So I was messing around with some things, and I posted a comment over in ABP as you know and was given an exception rule to use. uBO took the rule just fine, and it opened 2 script sites (HTTPS and HTTP) for the page. The rule allowed the scripts from amazonaws.com (http://s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js) even though the rule only mentioned mailchimp in them, and it opened CSS for mailchimp.com (http://cdn-images.mailchimp.com/embedcode/classic-081711.css)

I had seen the green gray red blocks in the 4th column of logger, and I was clicking the green block one at a time for different blocked sites, but then I went back and clicked the gray block for them because I wasn’t sure what I was doing and they had originally been gray. And I don’t see that it allowed any of those sites in the My rules tab in the Dashboard. So I don’t think what I was doing made any permanent changes.

At the time I didn’t realize that it was letting the video start to auto-play, and that it was loading that image from Twitter. Do you think I accidentally did a dynamic rule that allowed this? Or that it was the exception rule I got from ABP? Do you think using this tutorial would do it? The image was from Twitter I’m sure, and the video was coming from cdn.turner.com

I am asking because I thought of something. For users on a metered Internet plan where they pay by the GB, they might not want these images loading or a video to start auto playing. So in the case of that page, they might want to only open the comments.

I managed to stop the video from auto-playing, i don’t even remember how, but the rule in the My Rules tab in the Dashboard is -

money.cnn.com http://z.cdn.turner.com/xslo/cvp/config/cnnmoney object block

I don’t know if that is even the best way to block the video from auto-playing, like I said I’m not very familiar with this. Anyone have any thoughts on this? Thanks

2 Likes

At the end of January, SourceForge and Slashdot were sold to BIZX, LLC by DHI Group, Inc.
As the new owners of two iconic sites, we are excited about the future
and what we can do together. We’ve already started to take action, and
are developing further plans for the site. We encourage your feedback to
help us shape the future direction for the site.
Our first order of business was to terminate the “DevShare” program.
As of last week, the DevShare program was completely eliminated. The
DevShare program delivered installer bundles as part of the download for
participating projects. We want to restore our reputation as a trusted
home for open source software, and this was a clear first step towards
that. We’re more interested in doing the right thing than making extra
short-term profit. As we move forward, we will be focusing on the needs
of our developers and visitors by building out site features and
establishing community trust. Eliminating the DevShare program was just
the first step of many more to come.
What do you think, gorhill? It’s up to you to remove sourceforge from badware risks list.

1 Like

The issue was brought on the GitHub repo, my answer:

All the source material supporting that sourceforge.net is “badware risks” are independent of the site. So It’s going to take independent source material to make the case that sourceforge.net is no longer “badware risks”. The announcement you link to is not independent source material.

I have a filtering query, possibly it’s a feature request. Is it possible to allow all ads except those from specific companies - Google and Facebook? Ideally just by pasting the right lines into My Filters?

I don’t know if it made the news much across the Atlantic but there’s considerable anger here that Google just negotiated paying the UK government $130m in back taxes for the last ten years, an effective rate of 3% when corporate tax was 20-30%. Facebook have been paying similar paltry sums by doing ‘The Double Irish’ shifting profits through Ireland and offshore tax havens for years. All legal because politicians listen to the voters for 3 months before an election, then corporate lobbyists the rest of the time.

We’ve had huge cuts in public spending since 2009. Whether or not public spending was/is too high, governments need taxes to raise revenue from somewhere. I can’t negotiate a 3% tax deal on my income. Small and medium sized companies can’t offshore their profits, they pay 20%. But multinationals get a huge advantage. And I’m putting tins of Tuna into the Food Bank box at Sainsbury’s for pity’s sake, because I’m concerned if I don’t people could go hungry, in one of the richest developed democracies in the world!

Anyway, my point is I reckon there are a lot of people in the UK and rest of Europe who don’t object to advertising per because ad revenue largely pays for the free stuff on the internet. But they might use an Ad blocker to stop advertising from companies who are avoiding tax. I reckon people would vote with their browsers if it was simple enough to setup and understand.

Thanks for any ideas.

2 Likes

There’s no way to set up a URL pattern that matches only Google or Facebook ads and nothing but; the closest thing is the $sitekey system, which is only used by blockers that support Acceptable Ads, and then only to identify ad-publishers to whitelist.

Hello! Thank you for this wonderful addon. But, unfortunately, I can’t install the last version 1.6.0 to any of my browsers on all my computers: Firefox 44.0.2 x64, Firefox 44.0.2 Portable x86, Pale Moon 26.0.3 x64 & x86. The message “The Addon from addons.mozilla.org could not become installed, because it does not correspond to the add-on which Firefox (or Pale Moon) had expected” appears instead of installation. Someone else wrote about the same trouble in addons.mozilla.org already. The old version 1.5.5 installs without any problems. Thanks for the attention and sorry for my poor English.

I pushed a new version, 1.6.1 (pending review), hopefully this one won’t glitch. Not sure what happened to 1.6.0, it works for some, not for others. A comment from Giorgio Maone on his forum (some users of NoScript reported a similar issue):

AMO devs where busy upgrading their infrastructure yesterday, so maybe a temporary glitch.

Thanks for the new version, but something strange keeps happening. Today version 1.6.0 is installed correctly.

Hello, I had a question about whether something is possible with UBO or not. I am at the website and page Business Insider Story with video and I want to block autoplay of the video on that page. I don’t want to block the player itself, I just want to be able to decide if I want to play the video or not.

Using the logger, I found that this “http://player.ooyala.com/” is where the elements are coming from for the video. But there are many entries under logger for this player, and I don’t know which one (if any) could be blocked so that you would be able to block autoplay of the video, while still having the player (and it’s content) available to play. And if I understand the tutorial that gorhill put up, if I block it with dynamic blocking from the main UBO dropdown menu, then I would be blocking the whole ooyala.com site, which definitely blocks the player and all, not just autoplay. And I couldn’t determine if ooyala.com serves up any other content that might be desirable to have on the page in addition to the player.

I was able to use blocking in the logger to block the player itself, but like I said that isn’t what I want to do. I also blocked an element from ooyala.com that had autoplay in it’s description (?) - the last column on the far right. I thought that might stop autoplay, but it also stopped the player from loading anything. It just displayed a message that the content was unavailable, and if you clicked on the player nothing happened.

So, if someone could take a look at that page when they get a chance and use logger to see if there might be a way to block just the autoplay of videos on the site, not the player itself (or it’s content), I would really appreciate it. It would possibly give us some insight into how to use logger to do some more “selective” blocking instead of blocking a whole site from the main dropdown as gorhill has shown in his excellent tutorial above. Thanks

P.S. Was I going about it wrong by using a blocking filter (?) when maybe I should have used a noop filter?

Hi,

I’d like to block ads exclusively on my website. I have to embed iframes on my website which contain ads that pollute my visitors.

An idea could be to use uBlock and its filters only when the ads appear on my website.

Most of my visitors already have my Chromium app installed and I could extend my app by integrating a light version of uBlock.

Is there a way to make uBlock operate only on a given website? Can I achieve this goal with filters of should I dig deeper in the code?

Thank you for your help,
Tom

I really want to replace AdBlock Plus with uBlock Origin but unfortunately there is a feature in ABP that I need.

And that is, believe it or not, the small “Block…” tag on the corner of any elements it has not blocked.

For example on online flash games that tag will appear on the corner of the game. Hovering the mouse over the tag show the url for the file, left clicking on it gives me option add a filter rule, but right clicking allows me to open the games in a new tab (among other things) and which normally displays them in full screen, just like clicking with the scroll button. A feature that is crucial to me.

So I can’t replace ABP until at least a variation of this exists inuBlock Origin

Extensions like ABP and uBlock Origin rely on features of the browser platform that ordinary Web code cannot use; specifically, it cannot use the webRequest API (Chromium) or the nsIContentPolicy API (Firefox).

Now as for integrating part of uBlock Origin into a Chromium app, you might be better served by using the webRequest API directly than by fitting in the uBlock Origin infrastructure (particularly its filter-parser), because you presumably know more about the way the ads are coming to your users than can be expressed with the filter syntax.

I looked a bit into this, this would require digging a lot more to pinpoint where exactly is the javascript code auto-starting the video playback.

For now, one could make use of the new “Block media elements larger than […]” setting. For example, if I enable the blocking of media elements larger than 1000 kB (1 MB), the video won’t play.

However, the issue I find with the specific case you provide is that I cannot easily make the video start, because of the way the web page is designed. For now what will work is to select “Temporarily Allow Large Media Elements” in the context menu, then press the play button. Unfortunately this will cause all large media elements to be allowed for the site as long as the tab is not closed.

I will investigate to make the load-on-demand code smarter to be able to handle such case, i.e. to make uBO able to detect the media element under the mouse pointer even if that media element is covered by other DOM elements – which is the case in your specific example.

Thanks for looking at that gorhill. So they hide things like the video under DOM elements, very interesting. I guess that must explain how some extensions, say a youtube extension, can block out the ads in a youtube video without breaking the functionality of the video itself - so the user can watch the video without having to sit through the ad.

Is that what you would be doing with the load-on-demand code you are talking about, make it recognize when the video element was going to start trying to auto-play and stop this, yet not stop access to the video all together? If so, this sounds like an elegant solution to the problem.

When the video started to auto-load I tried to use the picker to pick the video and block it, but it wouldn’t select it. Then I tried to use “inspect element” in the Firefox developer tools to find out where it was in the code, hoping to cobble together a filtering rule. Not knowing enough about webpage coding, obviously I wasn’t able to locate where in the code it was coming from.

So, I used the logger to find out where the video was coming from. As you know from looking at the page, I was able to fairly quickly home-in on the culprit - player.ooyala.com. So I used the logger to block the player and I was about to just go on about my browsing experience reading the article, but then I thought about it “wait a minute, I might want to watch that particular video, and if I block the player then I won’t be able to.” So then I started hunting through the logger for a way to block just auto-play. But as you saw when you looked at it, there are many elements related to the player, and I was unable to find which one would stop it - if blocking any of them would have.

The reason for this long post is to illustrate a problem that I think is very serious for a number of people now, and only going to get more serious for even more people as they go along. Here in the USA, more and more Internet Service Providers are seeing the profitability of ending unlimited bandwidth plans and putting people on “metered” plans where you pay by the gigabyte of data you use. With some ridiculously low number of gigabytes in the plan and then charging a ridiculously high amount of money per GB after you use up your ‘plan’ gigs.

I don’t currently have that problem, I am again on an unlimited data plan. But, I had that problem before and quickly saw that with today’s Web, you can quickly burn through all your GB - the videos (for example youtube) and movies (say Netflix) and such you do want to watch and then something that I realized but most others don’t even think about, things like these sites that automatically auto-play videos on their pages or even worse ‘cache’ the whole video and then auto play it. It all adds up, 2 MB for this video and 10 for that video, etc. If you’re a heavy surfer, you can quickly blast through all your allocated data.

So, if you and others can help stop this with adblocking extensions and other extensions, and the filter list maintainers as well, you would be providing an even greater service to users than the great service you already are with blocking the ads. For most of us, the ads and “video auto-starts” are an annoyance. For others, they are also an expense.

I hope this post wasn’t too long winded and possibly annoying to you, I just think this is such an important problem to address that I wanted to explain my reasoning about it. I think it is going to become more and more of an issue, as more and more ISP’s see the profitability other ISP’s are getting from “metered” plans and more and more of them switch over to it as I think will happen in the future.

And thanks again for this wonderful extension that already does so much to help make the browsing experience better for the average user. It is greatly appreciated.

Dear Gorhill - Just want to say thanks so much for this great add-on you’ve created. I’m having trouble understanding the Wiki and how to adjust the settings. Could you suggest a Medium setting that blocks more than the default setting but doesn’t break many sites? Just your suggestions would be fine. I would also suggest you to put up a Paypal donation icon up so folks out here who appreciate your great work can donate to you!