uBlock Origin - An efficient blocker for Chromium and Firefox. Fast and lean.
Find a file
Raymond Hill 6acf97bf51
Rewrite cname uncloaking code to account for new ipaddress= option
This commit makes the DNS resolution code better suited for both
filtering on cname and ip address. The change allows early availability
of ip address so that `ipaddress=` option can be matched at
onBeforeRequest time.

As a result, it is now possible to block root document using
`ipaddress=` option -- so long as an ip address can be extracted
before first onBeforeRequest() call.

Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/2792

Caveat
------

the ip address used is the first one among the list of ip
addresses returned by dns.resolve() method. There is no way for uBO
to know which exact ip address will be used by the browser when
sending the request, so this is at most a best guess. The exact IP
address used by the browser is available at onHeadersReceived time,
and uBO will also filter according to this value, but by then the
network request has already been sent to the remote server.

Possibly a future improvement would make available the whole list
of ip addresses to the filtering engine, but even then it's impossible
to know with certainty which ip address will ultimately be used by the
browser -- it is entirely possible that the ip address used by the
browser might not be in the list received through dns.resolve().
2024-09-12 11:19:57 -04:00
.github actions/checkout@v3 => actions/checkout@v4 2024-03-11 19:31:17 -04:00
assets Import changes from https://github.com/gorhill/uBlock/pull/3924 2024-09-05 14:51:47 -04:00
dist Make Firefox dev build auto-update 2024-09-11 10:41:19 -04:00
docs Fix typos in README, docs, and JS comments 2022-03-13 08:56:26 -04:00
platform Rewrite cname uncloaking code to account for new ipaddress= option 2024-09-12 11:19:57 -04:00
src Rewrite cname uncloaking code to account for new ipaddress= option 2024-09-12 11:19:57 -04:00
tools [mv3] Add minimal ability to diagnose ruleset issue 2024-07-29 14:54:46 -04:00
.eslintrc.yml Add ability to directly evaluate static network filtering engine 2024-09-02 19:32:56 -04:00
.gitignore Ignore transient py stuff 2024-08-01 10:37:22 -04:00
.gitmodules Use git clone instead of submodule to pull uAssets dependencies 2022-11-14 09:50:53 -05:00
.jshintrc Refactor scriptlets injection code 2023-03-24 14:05:18 -04:00
CHANGELOG.md Update changelog 2024-09-10 15:13:28 -04:00
CONTRIBUTING.md Update CONTRIBUTING.md (#3889) 2023-04-15 19:04:07 -04:00
LICENSE.txt first commit 2014-06-23 18:42:43 -04:00
Makefile Add ability to clean dist/build/[assets-related folders] 2024-02-25 18:27:07 -05:00
MANIFESTO.md Update MANIFESTO.md (#3888) 2023-04-15 15:42:12 -04:00
README.md Update README.md 2024-08-02 11:20:34 -04:00
RELEASE.HEAD.md Move the repetitive portion of release notes to the bottom 2023-11-05 16:42:33 -05:00
REMOVED.md Added data about old popup panel 2022-11-08 16:53:04 -05:00

Badge Commits Badge Issues Badge Localization Badge License Badge NPM Badge Mozilla Badge Chrome Badge Edge


uBlock Origin (uBO)

BEWARE! uBO is (and has always been) COMPLETELY UNRELATED to the website ublock.org.


Get uBlock Origin for Firefox Get uBlock Origin for Microsoft Edge Get uBlock Origin for Opera Get uBlock Origin for Thunderbird


Get uBlock Origin for Chromium
IMPORTANT: About Google Chrome's "This extension may soon no longer be supported"


uBlock Origin (uBO) is a CPU and memory-efficient wide-spectrum content blocker for Chromium and Firefox. It blocks ads, trackers, coin miners, popups, annoying anti-blockers, malware sites, etc., by default using EasyList, EasyPrivacy, Peter Lowe's Blocklist, Online Malicious URL Blocklist, and uBO filter lists. There are many other lists available to block even more. Hosts files are also supported. uBO uses the EasyList filter syntax and extends the syntax to work with custom rules and filters.

You may easily unselect any preselected filter lists if you think uBO blocks too much. For reference, Adblock Plus installs with only EasyList, ABP filters, and Acceptable Ads enabled by default.

It is important to note that using a blocker is NOT theft. Do not fall for this creepy idea. The ultimate logical consequence of blocking = theft is the criminalization of the inalienable right to privacy.

Ads, "unintrusive" or not, are just the visible portion of the privacy-invading means entering your browser when you visit most sites. uBO's primary goal is to help users neutralize these privacy-invading methods in a way that welcomes those users who do not wish to use more technical means.


Documentation

Basic Mode Advanced Mode
The simple popup user interface for an install-it-and-forget-it type of installation that is configured optimally by default. The advanced popup user interface includes a point-and-click firewall that is configurable on a per-site basis.

Visit the Wiki for documentation.

For support, questions, or help, visit /r/uBlockOrigin.

Installation

Required Permissions

Firefox

Firefox Add-ons

Development Builds

uBO works best on Firefox and is available for desktop and Android versions.

Thunderbird

Thunderbird Add-ons

In Thunderbird, uBlock Origin does not affect emails, just feeds.

Chromium

Chrome Web Store

Microsoft Edge Add-ons (Published by: Nicole Rolls)

Opera Add-ons

Development Builds

uBO should be compatible with any Chromium-based browser.

All Programs

Do NOT use uBO with any other content blocker. uBO performs as well as or better than most popular blockers. Other blockers can prevent uBO's privacy or anti-blocker-defusing features from working correctly.

Manual Installation

Enterprise Deployment

Deploying uBO

Release History

Releases Page

Translations

Help translate uBO via Crowdin.

About

Manifesto

Privacy Policy

GPLv3 License

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

If you ever want to contribute something, think about the people working hard to maintain the filter lists you are using, which are available to use by all for free.