Ublock Origin Lite is the version of Ublock Origin tailored to work within Manifest V3, so it’s interesting to see it come to firefox where it’s not absolutely needed (as I understand it).
- Firefox: Download the uBOLite_1.0.[…].firefox.mv3.xpi package below, navigate to about:debugging#/runtime/this-firefox in your browser, click “Load Temporary Add-on…” and pick the downloaded xpi file.
- At the moment it is not possible to sign an extension for Firefox Nightly because AMO refuses to sign when minimum version is 113a1. As soon as AMO allows, a signed version of the extension will be published.
- See commit message to find out what currently does not work in Firefox. Do not open issues about this.
And here is the commit detailing what’s not working:
What does not work at the time of commit:
Cosmetic filtering does not work:
The content scripts responsible for cosmetic filtering fail when trying to inject the stylesheets through document.adoptedStyleSheets, with the following error message:
XrayWrapper denied access to property Symbol.iterator (reason: object is not safely Xrayable). See https://developer.mozilla.org/en-US/docs/Xray_vision for more information. … css-declarative.js:106:8
A possible solution is to inject those content scripts in the MAIN world. However Firefox scripting API does not support MAIN world injection at the moment.
Scriptlet-filtering does not work:
Because scriptlet code needs to be injected in the MAIN world, and this is currently not supported by Firefox’s scripting API, see https://bugzilla.mozilla.org/show_bug.cgi?id=1736575
There is no count badge on the toolbar icon in Firefox, as it currently does not support the
DNR.setExtensionActionOptions
method.
Other than the above issues, it does appear uBO is blocking properly with no error reported in the dev console.
The adoptedStyleSheets issue though is worrisome, as the cosmetic filtering content scripts were designed with ISOLATED world injection in mind. Being forced to inject in MAIN world (when available) make things a bit more complicated as uBO has to ensure it’s global variables do not leak into the page.
The key difference between manifest V2.0 and V3.0 with regards to uBO is in V2, the extension has direct access to the browser’s process in making web requests and can make direct changes to those requests. V3 instead requires the extension to declare a list of urls and the browser will act on the extension’s behalf. This is a very simplified explanation that isn’t in any meaningful depth and misses a ton of nuance.
The outcome though is V3 makes it significantly more difficult for uBO to achieve its goals for its users. It is a downright and explicit downgrade, and when Chrome fully moves to Manifest V3.0, uBO’s ability to serve its core functions will likely be diminished.
Exactly. Its a standard heavily pushed by Google, an advertising company, to limit the ability of adblocking by pitching it as a sexurity/safety enchantment.
Its part of googles and others long term plans to kill adblocking. Standing up chrome, taking 90% market share alone, and now finally all mainstream browsers except Firefox are chromealikes, all running chromes backend.
With this shift, Google and others can push unblockable ads to almost every browser in the world. Changing browsers or shifting to network based filtering at a router/firewall/DNS level will be the only remaining option.