a71b71e4c8
The new parser no longer uses the browser DOM to validate that a cosmetic filter is valid or not, this is now done through a JS library, CSSTree. This means filter list authors will have to be more careful to ensure that a cosmetic filter is really valid, as there is no more guarantee that a cosmetic filter which works for a given browser/version will still work properly on another browser, or different version of the same browser. This change has become necessary because of many reasons, one of them being the flakiness of the previous parser as exposed by many issues lately: - https://github.com/uBlockOrigin/uBlock-issues/issues/2262 - https://github.com/uBlockOrigin/uBlock-issues/issues/2228 The new parser introduces breaking changes, there was no way to do otherwise. Some current procedural cosmetic filters will be shown as invalid with this change. This occurs because the CSSTree library gets confused with some syntax which was previously allowed by the previous parser because it was more permissive. Mainly the issue is with the arguments passed to some procedural cosmetic filters, and these issues can be solved as follow: Use quotes around the argument. You can use either single or double-quotes, whichever is most convenient. If your argument contains a single quote, use double-quotes, and vice versa. Additionally, try to escape a quote inside an argument using backslash. THis may work, but if not, use quotes around the argument. When the parser encounter quotes around an argument, it will discard them before trying to process the argument, same with escaped quotes inside the argument. Examples: Breakage: ...##^script:has-text(toscr') Fix: ...##^script:has-text(toscr\') Breakage: ...##:xpath(//*[contains(text(),"VPN")]):upward(2) Fix: ...##:xpath('//*[contains(text(),"VPN")]'):upward(2) There are not many filters which break in the default set of filter lists, so this should be workable for default lists. Unfortunately those fixes will break the filter for previous versions of uBO since these to not deal with quoted argument. In such case, it may be necessary to keep the previous filter, which will be discarded as broken on newer version of uBO. THis was a necessary change as the old parser was becoming more and more flaky after being constantly patched for new cases arising, The new parser should be far more robust and stay robist through expanding procedural cosmetic filter syntax. Additionally, in the MV3 version, filters are pre-compiled using a Nodejs script, i.e. outside the browser, so validating cosmetic filters using a live DOM no longer made sense. This new parser will have to be tested throughly before stable release. |
||
---|---|---|
.github | ||
assets | ||
dist | ||
doc | ||
docs | ||
platform | ||
src | ||
submodules | ||
tools | ||
.gitignore | ||
.gitmodules | ||
.jshintrc | ||
CONTRIBUTING.md | ||
LICENSE.txt | ||
Makefile | ||
MANIFESTO.md | ||
README.md |
uBlock Origin
pronounced you-block origin (/ˈjuːˌblɒk/
) — you decide what enters your browser.
BEWARE! uBlock Origin is (and has always been) COMPLETELY UNRELATED to the web site ublock.org
.
Do not use uBlock Origin along with other similarly-purposed blockers.
See below for more installation options.
An efficient blocker add-on for various browsers. Fast, potent, and lean.
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 Lowe’s ad/tracking/malware servers, Online Malicious URL Blocklist, and uBlock Origin's own filter lists.
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 Origin blocks ads through its support of the Adblock Plus filter syntax. uBlock Origin extends the syntax and is designed to work with custom rules and filters. Furthermore, advanced mode allows uBlock Origin 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 Origin'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 uMatrix).
EasyList, EasyPrivacy, Peter Lowe's, Online Malicious URL Blocklist and uBO's own lists are enabled by default when you install uBlock Origin. Many more lists are readily available to block trackers, analytics, and more. Hosts files are also supported.
Once you install uBlock Origin, you may easily un-select any of the pre-selected filter lists if you think uBlock Origin blocks too much. For reference, Adblock Plus installs with only EasyList, ABP filters and Acceptable Ads enabled by default.
Installation
Feel free to read about the extension's required permissions.
Chromium
You can install the latest version manually, from the Chrome Web Store, or from the Opera add-ons.
There is also a development version in the Chrome Web Store if you want to test uBlock Origin with the latest changes: see uBlock Origin dev build.
It is expected that uBlock Origin is compatible with any Chromium-based browsers.
Firefox / Firefox for Android
There is also a development version if you want to test uBlock Origin with the latest changes: for installation, see Install / Firefox webext / For beta version
uBlock Origin is compatible with SeaMonkey, Pale Moon, and possibly other browsers based on Firefox: for installation, see Install / Firefox legacy.
uBO may also be installed as a Debian package:
- Firefox 56-:
apt-get install xul-ext-ublock-origin
- Firefox 55+:
apt-get install webext-ublock-origin
There is no guarantee the package will be available on your specific platform -- in which case, you will have to install from Firefox Add-ons web site.
Microsoft Edge
Publisher: Nicole Rolls.
Chromium-based Edge: Stable version available in Microsoft Edge Add-ons.
Safari (macOS)
Developer: @el1t.
Development version available at https://github.com/el1t/uBlock-Safari#ublock-originfor-safari.
Warning: It is not possible for extensions like uBlock Origin to work with Safari 13+. See https://github.com/el1t/uBlock-Safari/issues/158.
Note that issues specific to the Safari fork are the responsibility of the current maintainer, I have no control over the code base of the fork.
Note for all browsers
To benefit from uBlock Origin's higher efficiency, it's advised that you don't use other content blockers at the same time (such as Adblock Plus, AdBlock). uBlock Origin will do as well or better than most popular ad blockers. Other blockers can also prevent uBlock Origin's privacy or anti-blocker-defusing features from working properly.
Deploying
Below is documentation to assist administrators in deploying uBlock Origin:
- Deploying uBlock Origin
- Firefox: Deploying uBlock Origin for Firefox with CCK2 and Group Policy (external)
- Google Chrome: Managing Google Chrome with adblocking and security (external)
Release History
See the releases pages for a history of releases and highlights for each release.
About
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 Origin on Crowdin.