1.22.0
Commits to master since this release
To install the stable build:
- Chromium: Install from the Chrome store: https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm.
- For Chromium version 54 and older, it is necessary to enable "Experimental JavaScript" at
chrome://flags/#enable-javascript-harmony
.
- For Chromium version 54 and older, it is necessary to enable "Experimental JavaScript" at
- Firefox: Click uBlock0_1.22.0.firefox.signed.xpi.
- Opera: Install from Opera addons: https://addons.opera.com/en/extensions/details/ublock/.
New
Toolbar icon badge color
The toolbar icon badge color will now reflect the current blocking mode. This should help with usage of the "Relax blocking mode" shortcut. The way uBO relaxes the current blocking mode is configurable through the advanced setting blockingProfiles
.
Static network filter options
redirect-rule=
This new option allows to create a pure redirect directive, without a corresponding block filter as would be the case with the redirect=
option. For example, consider the following filter:
||example.com/ads.js$script,redirect=noop.js
The above filter will result in a block filter ||example.com/ads.js$script
and a matching redirect directive. Now consider this following filter:
||example.com/ads.js$script,redirect-rule=noop.js
The above filter will not cause a block filter to be created, only a redirect directive will be created. Standalone redirect directives are useful when the blocking of a resource is optional but we still want the resource to be redirected should it ever be blocked by whatever mean -- whether through a separate block filter, a dynamic filtering rule, etc.
empty
and mp4
Support for AdGuard's empty
and mp4
filter option has been added.
!#if false ... !#endif
Support for the directive !#if false
to easily disable a block of filters, which is more convenient than having to delete them all or prefix them all with !
.
Scriptlet injection
Ability to wholly disable scriptlet injection for a given site using broad scriptlet injection exception:
example.com#@#+js()
It is also possible to disable scriptlet injection everywhere with a generic exception:
#@#+js()
This is useful when creating specific exception filters is inconvenient.
Closed as fixed:
- Support AdGuard's
empty
&mp4
static filter options - Add ability to bypass browser cache when fetching a resource
- Extension icon doesn't revert back when the domain is removed from Whitelist tab
- Dead code in
assets.js
- Popup panel closing when forcing a reload
- uBlock does not appear to honor overriding default assets.json via Chrome policy
- uBo logger show not used :style(...) filters
- Block Element doesn't appear in the context menu of a tab under specific circumstances
- Cosmetic filters containing pseudo-elements do not show results in manual/interactive selection mode
Commits with no entry in issue tracker:
- Add support for
!#if false
in list directive processor - Code review fix re. max string length in bidi-trie
- Add two scriptlets: setTimeout-if and setInterval-if
- Fix badly computed output size in µBlock.base64.encode()
- Add new scriptlet to defuse calls to requestAnimationFrame
- Add support for special exception filter
#@#+js()
- Add ability to escape comma in a scriptlet's list of arguments
- Review icon badge color management
- Reflect blocking mode in badge color of toolbar icon
- Invalidate browser's memory cache after using element picker
- Add virtuous signal that remote code execution in extension context is not possible