uBlock Origin - An efficient blocker for Chromium and Firefox. Fast and lean.
Go to file
Dave Vandyke b445f4f4cd
Improve google-ima shim script (#3899)
We made use of the google-ima shim script from uBlock in the
DuckDuckGo Privacy Essentials extension recently, but found a few
issues with website breakage. After debugging and fixing those[1], I
thought it would be worth sharing the improvements back again. Issues
we ran into:

- The AdDisplayContainer[2] constructor usually creates some DOM
  elements inside the given container. They are all nested within a
  DIV and some websites break when at least that top DIV element isn't
  created.
- While not documented (that I could see), the event listeners can be
  added using an array of event types. Some websites make use of that
  and then hang forever when the expected events aren't fired. This
  caused videos not to play on some websites.
- The Ad.prototype.getUniversalAdIds()[3] method should return an
  array of UniversalAdIdInfo Objects, instead of an Array of
  strings. When an array of strings are returned, some websites then
  break when the UniversalAdIdInfo's methods are missing.
- The UniversalAdIdInfo.prototype.getAdIdValue()[4] method had a typo
  in the name ("getAsIdValue") and was effectively missing. That
  caused some websites to break when the missing method was called.
- The google.ima.OmidVerificationVendor[5] Object was missing, which
  broke some websites that attempted to access it.

1 - 52f2999523
2 - https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/reference/js/google.ima.AdDisplayContainer
3 - https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/reference/js/google.ima.Ad#getUniversalAdIds
4 - https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/reference/js/google.ima.UniversalAdIdInfo#getAdIdValue
5 - https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/reference/js/google.ima#.OmidVerificationVendor
2023-10-24 11:16:14 -04:00
.github [mv3] Rename `uBOL-issues` repo to `uBOL-home` 2023-08-19 11:26:33 -04:00
assets Match `type` exactly in `prevent-addEventListener` scriptlet 2023-10-23 21:15:00 -04:00
dist Make Firefox dev build auto-update 2023-10-23 10:11:19 -04:00
docs Fix typos in README, docs, and JS comments 2022-03-13 08:56:26 -04:00
platform Import translation work from https://crowdin.com/project/ublock 2023-10-23 09:20:59 -04:00
src Improve google-ima shim script (#3899) 2023-10-24 11:16:14 -04:00
tools [mv3] Fix overiting of version in manifest 2023-09-10 14:24:29 -04:00
.gitignore git ignore ./tmp/ 2016-04-05 07:55: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
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
MANIFESTO.md Update MANIFESTO.md (#3888) 2023-04-15 15:42:12 -04:00
Makefile Create a MVP version of uBOLite for Firefox 2023-04-07 10:19:43 -04:00
README.md Fix #2874 as suggested 2023-10-15 20:16:44 -04:00
REMOVED.md Added data about old popup panel 2022-11-08 16:53:04 -05:00

README.md

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 Chromium Get uBlock Origin for Microsoft Edge Get uBlock Origin for Opera Get uBlock Origin for Thunderbird


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.