uBlock Origin - An efficient blocker for Chromium and Firefox. Fast and lean.
Find a file
gorhill 126110c9a0
remove ability to pull latest version of resources.txt from remote repo.
This is required as per Firefox extension reviewers. Mail exchange:

========

Reviewer:
> Do I read the code correctly that you are executing remote JS by
> downloading/updating from
> https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/resources.txt
> and injecting scripts in contentscripts.js?

Me:
> Yes, resources.txt contains scriptlets or other resources used to:
>
> - Minimize potential page breakage (e.g. google-analytics.com/ga.js);
> - Defuse anti-blockers (e.g. bab-defuser.js);
> - Defuse anti-blockers or minimize page breakage through redirection
> (e.g. 2x2-transparent.png)
>
> This is not a new feature -- this is also part of the legacy version,
> and I consider this is a major feature of uBO. Given how fast things can
> change out there, this allows me to quickly push fixes when a new issue
> is reported for a site without having to go through a full update of the
> extension.

Reviewer:
> I am aware that this is not a new feature. I am unclear why it has been
> allowed in the past, since it violates our policy about remote code
> execution. I assume it was missed due to the fairly complex codebase.
>
> I can approve this version so you are not blocked on the migration, but
> eventually, you cannot use functionality that executes remote code.
> Since we're moving to a more automated review process, you will be able
> to ship new versions without being blocked on a human review.

Me:
> Do I understand correctly that extensions such as TamperMonkey or
> ViolentMonkey won't be allowed on AMO?
>
> Those extensions are even more permissive than uBO given a user can
> import scripts from any source, while with uBO only scriptlets which are
> part of the project are allowed.

Reviewer:
> The key difference between add-ons like Tampermonkey and uBO is that in
> Tampermonkey, users are making an active and conscious decision to
> download and execute that specific code. In uBO, the user did not
> initiate that download/execution, nor are they even aware of it
> happening.

Me:
> So users of TamperMonkey -- tech-savvy or not -- can download & inject
> countless 3rd-party user scripts from countless authors, have them
> update on their own automatically at regular interval with no user
> intervention.
>
> On the other hand, it's not acceptable for me, the author of the
> extension, who users implicitly trusted when installing the extension,
> who is completely controlling and vouching for the content of
> "resources.txt", to have this one 1st-party resource file[1] to be
> updated at regular interval with no user intervention.
>
> So anyways, what is expected from me at this point? Do I need to remove
> scriptlet injection and resource redirection features? Do I need to
> remove only the updating part of resources.txt?
>
> [1] key to core features of uBO (counter anti-blockers + page breakage
> mitigations) and possibly an important factor in installing the
> extension.

========

Now about this commit: the purpose of the code change here is to
prevent "resources.txt" -- which is part of the package -- from being
updated -- this applies only to the Firefox webext[-hybrid] version
of uBO.
2017-08-30 09:15:06 -04:00
.github Update ISSUE_TEMPLATE.md 2017-04-12 07:45:50 -04:00
assets Switch adblock.ee to HTTPS (#2884) 2017-08-18 09:07:41 -04:00
dist translation work from https://crowdin.com/project/ublock 2017-08-09 10:52:27 -04:00
doc new screenshots for the popup panel's per-site switches 2016-01-25 11:21:31 -05:00
platform deal properly with indexedDB not being available (#2925) 2017-08-30 08:41:22 -04:00
src remove ability to pull latest version of resources.txt from remote repo. 2017-08-30 09:15:06 -04:00
tools fix #2925 2017-08-29 18:32:00 -04:00
.gitignore git ignore ./tmp/ 2016-04-05 07:55:22 -04:00
.jshintrc fix #2925 2017-08-29 18:32:00 -04:00
.travis.yml rename webext to webext-hybrid 2017-08-04 17:59:30 -04:00
CONTRIBUTING.md Update CONTRIBUTING.md 2017-08-08 19:02:44 -04:00
LICENSE.txt first commit 2014-06-23 18:42:43 -04:00
MANIFESTO.md Update MANIFESTO.md 2015-03-12 23:22:30 +00:00
README.md Update README.md 2017-08-14 08:38:13 -04:00

Build Crowdin License


BEWARE! uBlock Origin is (and has always been) COMPLETELY UNRELATED to the web site ublock.org

The donations sought by the individual behind ublock.org ("to keeps uBlock development possible", a misrepresentation) are not benefiting any of those who contributed most to create uBlock Origin (developers, translators, and all those who put efforts in opening detailed issues). For the differences between uBlock Origin and uBlock, see the unbiased Wikipedia article.


uBlock Origin is NOT an "ad blocker": it is a wide-spectrum blocker -- which happens to be able to function as a mere "ad blocker". The default behavior of uBlock Origin when newly installed is to block ads, trackers and malware sites -- through EasyList, EasyPrivacy, Peter Lowes ad/tracking/malware servers, various lists of malware sites, and uBlock Origin's own filter lists.


uBlock Origin

pronounced you-block origin (/ˈjuːˌblɒk/) — you decide what enters your browser.
English, Chinese (中文), Korean (한국어), Português (Brasil)

An efficient blocker add-on for various browsers. Fast, potent, and lean.

Documentation

Basic mode Advanced-user mode
Popup user interface A point-and-click firewall which can be configured on a per-site basis

.
.

Configure as you wish:
picture shows 3rd-party scripts and frames blocked by default everywhere

Visit the uBlock Origin's wiki for documentation.

For support/questions/help, there is /r/uBlockOrigin on Reddit.

Philosophy

uBlock Origin (or uBlock₀) is not an ad blocker; it's a general-purpose blocker. uBlock₀ blocks ads through its support of the Adblock Plus filter syntax. uBlock₀ extends the syntax and is designed to work with custom rules and filters. Furthermore, advanced mode allows uBlock₀ to work in default-deny mode, which mode will cause all 3rd-party network requests to be blocked by default, unless allowed by the user.

That said, it's important to note that using a blocker is NOT theft. Don't fall for this creepy idea. The ultimate logical consequence of blocking = theft is the criminalisation of the inalienable right to privacy.

Ads, "unintrusive" or not, are just the visible portions of privacy-invading apparatus entering your browser when you visit most sites nowadays. uBlock₀'s main goal is to help users neutralize such privacy-invading apparatus — in a way that welcomes those users who don't wish to use more technical, involved means (such as µMatrix).

EasyList, Peter Lowe's Adservers, EasyPrivacy and Malware domains are enabled by default when you install uBlock₀. Many more lists are readily available to block trackers, analytics, and more. Hosts files are also supported.

Once you install uBlock₀, you may easily un-select any of the pre-selected filter lists if you think uBlock₀ blocks too much. For reference, Adblock Plus installs with only EasyList enabled by default.

Performance

Memory

On average, uBlock Origin does make your browser run leaner. [1]

Chromium


Firefox


[1] Details of the benchmark available at Firefox version: benchmarking memory footprint.

CPU

uBlock Origin is also easy on the CPU

Details of the benchmark available in this LibreOffice spreadsheet.

Blocking

Being lean and efficient doesn't mean blocking less

For details of benchmark, see uBlock₀ and others: Blocking ads, trackers, malwares.

Installation

Feel free to read about the extension's required permissions.

Chromium

You can install the latest version manually, from the Chrome Store, or from the Opera store.

It is expected that uBlock Origin is compatible with any Chromium-based browsers.

Firefox / Firefox for Android

Firefox Add-ons web site. There is also a development version if you want to test uBlock Origin with the latest changes: see uBlock Origin Version History

uBlock Origin is compatible with SeaMonkey, Pale Moon, and possibly other browsers based on Firefox.

Also of interest: Deploying uBlock Origin for Firefox with CCK2 and Group Policy.

Thanks to Debian contributor Sean Whitton, users of Debian 9 or later or Ubuntu 16.04 or later may simply apt-get install xul-ext-ublock-origin.

Microsoft Edge

Developer: @nikrolls.

Stable version available in Microsoft Store.

Development version available at https://github.com/nikrolls/uBlock-Edge#edge.

Safari (macOS)

Developer: @el1t.

Development version available at https://github.com/el1t/uBlock-Safari#ublock-originfor-safari.

Note for all browsers

To benefit from uBlock Origin's higher efficiency, it's advised that you don't use other inefficient blockers at the same time (such as AdBlock or Adblock Plus). uBlock₀ will do as well or better than most popular ad blockers. Other blockers can also prevent uBlock₀'s privacy or anti-blocker features from working properly.

Release History

See the releases pages for a history of releases and highlights for each release.

About

uBlock Origin's manifesto.

Free. Open source. For users by users. No donations sought.

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.

You can contribute by helping translate uBlock₀ on Crowdin.

License

GPLv3.