uBlock Origin Version History

## uBlock Origin 1.18.4 - Feb. 5, 2019

See release notes.
Closed as fixed:

- Cosmetic filtering not enforced at uBO launch on already opened web pages
- Compute URL of sublists as relative to URL of parent list
- Fix partyness evaluation for cases of base domain-less hostnames
- Fix Promise chain of WASM module load operations

Commits history since 1.18.2.

## uBlock Origin 1.18.3.102 - Feb. 2, 2019

[no description]

## uBlock Origin 1.18.3.101 - Feb. 1, 2019

[no description]

## uBlock Origin 1.18.3.100 - Feb. 1, 2019

[no description]

## uBlock Origin 1.18.3.2 - Jan. 29, 2019

[no description]

## uBlock Origin 1.18.3.1 - Jan. 28, 2019

[no description]

## uBlock Origin 1.18.3.0 - Jan. 27, 2019

[no description]

## uBlock Origin 1.18.2 - Jan. 26, 2019

See release notes.
Fixed

- Improve `nowebrtc.js` scriptlet

Commits history since 1.18.0.

## uBlock Origin 1.18.1.100 - Jan. 26, 2019

[no description]

## uBlock Origin 1.18.0 - Jan. 24, 2019

See release notes.
New
Refactoring of the logger code for performance/efficiency purpose -- the logger output has been decoupled from the DOM.
Additionally, these features were added to the logger:

- configuration settings
  - multiple criteria can be used for when to discard logger entries
  - ability to hide some columns
- export-to-clipboard
- the position and size of the logger-as-a-popup window will be remembered
- a pause button to stop the logger from taking in new events
- a new built-in expressions picker to filter the logger output
- show the hostname of the document which caused the resource to be fetched
- show the 3rd-partyness of a resource relative to both the page and the document fetching the resource
- new visual hint to denote tab-less network requests
- a popup panel button linked to the tab selector

Documentation will be updated eventually to account for those changes.
Closed as fixed
- Does not block JavaScript in embedded YouTube video on specific webpage
- Move early blocking of requests out of experimental status on Firefox
  - Made easy by Firefox's webext API, as early blocking is natively supported.
- Prevent sites from disabling mouse events for element picker
- Add an option to remove the URL comments in My filters (originally declined in https://github.com/gorhill/uBlock/issues/93)
- Layout problem in the strict blocking warning page on Firefox for Android
- uBO does not unhide nodes no longer matching procedural cosmetic filters
- Static extended filtering: fix empty hostnames not being detected/handled
- Cosmetic filter "##" or "##tag," same as "##*" in element picker only
- `!#include` directive should insert sub-content at directive point
- 3rd-gen HNTrie
- Duplicate specific cosmetic filters not discarded when "Ignore generic" is enabled
- $generichide is still applied even when website is whitelisted
- Change "IDN: ABPindo" to "IDN, MYS: ABPindo"
- Changing the button for the NOR list
- Filter list view - ugly/messy line breaking/wrapping at minus sign char
- Add X to close overlay box
- No scripting switch number not fully displayed
- Remember and reuse last position/size of the logger popup window
- Logger filter lookup overlay should scroll when filter too long
- Element picker not taking into account `srcset` when blocking an image = non-working network filter
- Internationalize CodeMirror's hard-coded tooltips in the "My rules" pane
- Remember the cursor position in 'My Filters' tab
- Deprecate pseudo operator `:if(...)`, `:if-not(...)`, reuse `:has(...)`, `:not(...)`
- Improve representation of behind-the-scene network requests in the logger
- The element picker window is almost invisible
- Duplicated entry when creating dynamic filter in logger
- Logger loads blocked content in preview
- Apply stricter rejection of usage of url() in :style rules
- Normalize Adguard's plain cosmetic filters disguised as style-based filters
- Change DOM surveyor to time-based processing logic (from chunk-based)
- Improve creation of rows in dynamic filtering pane of popup panel
- Avoid redundant DOM attributes in dynamic filtering pane
- Code review related to performance in main content script Commits history since 1.17.4.

## uBlock Origin 1.17.7.103 - Jan. 22, 2019

[no description]

## uBlock Origin 1.17.7.102 - Jan. 20, 2019

[no description]

## uBlock Origin 1.17.7.101 - Jan. 19, 2019

[no description]

## uBlock Origin 1.17.7.100 - Jan. 18, 2019

[no description]

## uBlock Origin 1.17.7.8 - Jan. 17, 2019

[no description]

## uBlock Origin 1.17.7.7 - Jan. 16, 2019

[no description]

## uBlock Origin 1.17.7.6 - Jan. 15, 2019

[no description]

## uBlock Origin 1.17.7.5 - Jan. 14, 2019

[no description]

## uBlock Origin 1.17.7.4 - Jan. 14, 2019

[no description]

## uBlock Origin 1.17.7.3 - Jan. 12, 2019

[no description]

## uBlock Origin 1.17.7.2 - Jan. 8, 2019

[no description]

## uBlock Origin 1.17.7.1 - Jan. 1, 2019

[no description]

## uBlock Origin 1.17.7.0 - Jan. 1, 2019

[no description]

## uBlock Origin 1.17.5.104 - Dec. 29, 2018

[no description]

## uBlock Origin 1.17.5.103 - Dec. 28, 2018

[no description]

## uBlock Origin 1.17.5.102 - Dec. 27, 2018

[no description]

## uBlock Origin 1.17.5.101 - Dec. 26, 2018

[no description]

## uBlock Origin 1.17.5.100 - Dec. 24, 2018

[no description]

## uBlock Origin 1.17.5.17 - Dec. 23, 2018

[no description]

## uBlock Origin 1.17.5.16 - Dec. 22, 2018

[no description]

## uBlock Origin 1.17.5.15 - Dec. 21, 2018

[no description]

## uBlock Origin 1.17.5.14 - Dec. 21, 2018

[no description]

## uBlock Origin 1.17.5.13 - Dec. 19, 2018

[no description]

## uBlock Origin 1.17.5.12 - Dec. 19, 2018

[no description]

## uBlock Origin 1.17.5.11 - Dec. 18, 2018

[no description]

## uBlock Origin 1.17.5.10 - Dec. 16, 2018

[no description]

## uBlock Origin 1.17.5.9 - Dec. 16, 2018

[no description]

## uBlock Origin 1.17.5.8 - Dec. 15, 2018

[no description]

## uBlock Origin 1.17.5.7 - Dec. 14, 2018

[no description]

## uBlock Origin 1.17.5.6 - Dec. 14, 2018

[no description]

## uBlock Origin 1.17.5.5 - Dec. 14, 2018

[no description]

## uBlock Origin 1.17.5.4 - Dec. 13, 2018

[no description]

## uBlock Origin 1.17.5.3 - Dec. 8, 2018

[no description]

## uBlock Origin 1.17.5.2 - Dec. 7, 2018

[no description]

## uBlock Origin 1.17.5.1 - Dec. 6, 2018

[no description]

## uBlock Origin 1.17.5.0 - Dec. 6, 2018

[no description]

## uBlock Origin 1.17.4 - Dec. 1, 2018

See release notes.
Notes
I will keep bringing in WebAssembly ("wasm") versions of key portions of code where it is found to be beneficial. In this release, a wasm version of the algorithm used to lookup a hostname from a set of hostnames has been created.
Closed as fixed

- When pasting multiple lines into the rules editor they are joined together in a single line
- `##.ad.super` from EasyList is causing `##.ad` to not be applied
- Fix missing trailing asterisk in filter representation in the logger
- No context menu entry for data:* iframes (banners)
- UI Search field and it's search counter interfere with each other / unreadable
- "Update now" button flashes for 1 second before changing the count numbers
- Improve usability of temporarily disabling strict-blocking
- HTML filter exception doesn't work
- $badfilter does not work on a CSP filter

Commits history since 1.17.2.

## uBlock Origin 1.17.3.105 - Nov. 26, 2018

[no description]

## uBlock Origin 1.17.3.104 - Nov. 25, 2018

[no description]

## uBlock Origin 1.17.3.103 - Nov. 24, 2018

[no description]

## uBlock Origin 1.17.3.102 - Nov. 18, 2018

[no description]

## uBlock Origin 1.17.3.101 - Nov. 18, 2018

[no description]

## uBlock Origin 1.17.3.100 - Nov. 17, 2018

[no description]

## uBlock Origin 1.17.3.8 - Nov. 8, 2018

[no description]

## uBlock Origin 1.17.3.7 - Nov. 8, 2018

[no description]

## uBlock Origin 1.17.3.6 - Nov. 6, 2018

[no description]

## uBlock Origin 1.17.3.5 - Nov. 3, 2018

[no description]

## uBlock Origin 1.17.3.4 - Oct. 29, 2018

[no description]

## uBlock Origin 1.17.3.3 - Oct. 28, 2018

[no description]

## uBlock Origin 1.17.3.2 - Oct. 24, 2018

[no description]

## uBlock Origin 1.17.3.1 - Oct. 24, 2018

[no description]

## uBlock Origin 1.17.3.0 - Oct. 23, 2018

[no description]

## uBlock Origin 1.17.2 - Oct. 18, 2018

No change since 1.17.0: this release is for the benefit of Firefox users, who will be able to take advantage of an up to date `resources.txt` asset. This new version is published on AMO only.
Commit history since 1.17.0.

## uBlock Origin 1.17.1.2 - Oct. 18, 2018

[no description]

## uBlock Origin 1.17.1.1 - Sept. 29, 2018

[no description]

## uBlock Origin 1.17.1.0 - Sept. 26, 2018

[no description]

## uBlock Origin 1.17.0 - Sept. 23, 2018

See release notes.
New
Per-site JavaScript master switch
A new per-site switch has been added to the popup panel, which acts as a master switch for JavaScript for the current site.
This master switch has precedence over dynamic filtering rules and static filters related to script resources.
Furthermore, when JavaScript is disabled through this master switch, `noscript` tags will be honoured on a page (as opposed to when just using filters/rules to block script resources).
As with some other per-site switches, the default state of per-site JavaScript master switch can be set in the Settings pane, thus allowing to disable JavaScript everywhere by default, and enable on a per-site basis.
JavaScript master switch rules appear as `no-scripting: [hostname] true` entries in the My rules pane.
Temporarily toggle per-site switches
From now on, changes to the state of per-site switches will be deemed temporary if and only if the overview panel is visible, regardless of whether "advanced user" mode is enabled.
When the overview panel is not visible, toggling a per-site switch will cause the change to be permanent (i.e. same behavior as before).
However, when the overview panel is visible, toggling a per-site switch will cause the change to be temporary. In such case, there will be an eraser and a padlock icon in the overview pane, which can be used to revert or persist the current state of all the per-site switches.
Cache storage compression
A new advanced setting: `cacheStorageCompression`, default to `true`. When `true`, uBO will lz4-compress data before storing it in its cache storage in supported platforms. Currently, the only supported platform is Firefox/Firefox for Android.
The cache storage is used for storing downloaded filter lists, compiled filter lists, selfies. See https://github.com/uBlockOrigin/uBlock-issues/issues/141 for related discussion.
Closed as fixed
Firefox

- Error loading from the disk cache pages obtained by blocking remote fonts
- "Storage used" in settings tab says "? bytes"
  - It's really a workaround, consider the reported figure to be an on-the-low-side estimate
- Element picker mode in Firefox CSS failure on `denuvo.com`

Firefox for Android

- Cannot open Logger. Element picker/zapper does not switch tabs.

Core

- Use +js name for logging
- No reverse-lookup for logged HTML filter
- EasyList Thailand added to stock filter lists
- Various spelling fixes
- “manualUpdateAssetFetchPeriod” setting doesn't save the changes
- False positive detection of popups is broken
- "uBlock — Assets" should be changed to "uBlock₀ — Assets" in its tab
- Minor JS errors in dashboard
- Code exception in contentscript.js (vAPI.setTimeout) when opening Chrome last session tabs that are partly cached
- Element picker mishandles identifiers with backslashes
- Minor usability issue: block all scripts
- Toggle option changes are always permanent
- uBlock Origin doesn’t honor noscript tags when blocking JS

Commits history since 1.16.20.

## uBlock Origin 1.16.21.103 - Sept. 21, 2018

[no description]

## uBlock Origin 1.16.21.102 - Sept. 20, 2018

[no description]

## uBlock Origin 1.16.21.101 - Sept. 18, 2018

[no description]

## uBlock Origin 1.16.21.100 - Sept. 11, 2018

[no description]

## uBlock Origin 1.16.21.7 - Sept. 9, 2018

[no description]

## uBlock Origin 1.16.21.6 - Sept. 9, 2018

[no description]

## uBlock Origin 1.16.21.5 - Sept. 7, 2018

[no description]

## uBlock Origin 1.16.21.4 - Sept. 4, 2018

[no description]

## uBlock Origin 1.16.21.3 - Sept. 3, 2018

[no description]

## uBlock Origin 1.16.21.2 - Sept. 1, 2018

[no description]

## uBlock Origin 1.16.21.1 - Aug. 29, 2018

[no description]

## uBlock Origin 1.16.21.0 - Aug. 27, 2018

[no description]

## uBlock Origin 1.16.20 - Aug. 27, 2018

See release notes.
I decided to create an emergency fix for a bug which was spotted for uMatrix but which also affects uBO:
"My rules tab hangs with cloud storage support"
If using cloud storage, there is a small probability uBO could be stuck in an infinite loop when reading back the data from the cloud storage, something which may occurs when the following conditions are reunited:

- You checked the setting "Enable cloud storage support";
- You saved data into the cloud storage for a given pane;
- The amount (in bytes) of data that was saved into the cloud storage for that given pane is rather high and such that the "chunkification" of that data results in a chunk count which is a multiple of 16;
  - Large amount of data is more likely for the "My filters" and "My rules" panes.
  - Sorry for the cryptic explanation, I don't know how else to describe this.
- You open the pane in the dashboard for which the conditions above are true.

If the bug is triggered, uBO could be stuck in an infinite loop in its main process, thus preventing it from doing its job.
This is not a regression, but rather a bug that has been hiding in there since quite a long time.
Commits history since 1.16.16.

## uBlock Origin 1.16.18.1 - Aug. 27, 2018

See release notes.
I decided to create an emergency fix for a bug which was spotted for uMatrix but which also affects uBO:
"My rules tab hangs with cloud storage support"
If using cloud storage, there is a small probability uBO could be stuck in an infinite loop when reading back the data from the cloud storage, something which may occurs when the following conditions reunited:

- You checked the setting "Enable cloud storage support";
- You saved data into the cloud storage for a given pane;
- The amount (in bytes) of data that was saved into the cloud storage for that given pane is rather high and such that the "chunkification" of that data results in a chunk count which is a multiple of 16;
  - Large amount of data is more likely for the "My filters" and "My rules" panes.
  - Sorry for the cryptic explanation, I don't know how else to describe this.
- You open the pane in the dashboard for which the conditions above are true.

If the bug is triggered, uBO could be stuck in an infinite loop in its main process, thus preventing it from doing its job.
This is not a regression, but rather a bug that has been hiding in there since quite a long time.
Commits history since 1.16.16.

## uBlock Origin 1.16.18 - Aug. 27, 2018

[no description]

## uBlock Origin 1.16.17.10 - Aug. 25, 2018

[no description]

## uBlock Origin 1.16.17.9 - Aug. 22, 2018

[no description]

## uBlock Origin 1.16.17.8 - Aug. 21, 2018

[no description]

## uBlock Origin 1.16.17.7 - Aug. 15, 2018

[no description]

## uBlock Origin 1.16.17.6 - Aug. 15, 2018

[no description]

## uBlock Origin 1.16.17.5 - Aug. 14, 2018

[no description]

## uBlock Origin 1.16.17.4 - Aug. 14, 2018

[no description]

## uBlock Origin 1.16.17.3 - Aug. 14, 2018

[no description]

## uBlock Origin 1.16.16 - Aug. 13, 2018

See release notes.
New
A new pane has been added in the dashboard for the Firefox version of uBO: Shortcuts. The purpose is to be able to assign keyboard shortcuts to some common operations.
Closed as fixed:

- Settings cannot be reset on Beta and Nightly Firefox
- Add a pane in the dashboard (Firefox only) to assign keyboard shortcuts
  - The new pane will be available for Firefox 60+ only.
- Element picker cannot be toggled before a site is fully loaded
- Logger: generic hiding rule recorded as active when $generichide in effect
- Filter for dynamically added class is not logged
- Logger: Popup which shows the used filter is empty

Commits history since 1.16.14.

## uBlock Origin 1.16.17.2 - Aug. 13, 2018

[no description]

## uBlock Origin 1.16.17.1 - Aug. 11, 2018

[no description]

## uBlock Origin 1.16.17.0 - Aug. 6, 2018

[no description]

## uBlock Origin 1.16.15.100 - Aug. 2, 2018

[no description]

## uBlock Origin 1.16.15.6 - July 26, 2018

[no description]

## uBlock Origin 1.16.15.5 - July 23, 2018

[no description]

## uBlock Origin 1.16.15.4 - July 22, 2018

[no description]

## uBlock Origin 1.16.15.3 - July 21, 2018

[no description]

## uBlock Origin 1.16.15.2 - July 20, 2018

[no description]

## uBlock Origin 1.16.15.1 - July 20, 2018

[no description]

## uBlock Origin 1.16.15.0 - July 19, 2018

[no description]

## uBlock Origin 1.16.14 - July 17, 2018

See release notes.
Closed as fixed:

- Race condition at filter lists load time potentially breaking highly-generic cosmetic filters (https://github.com/gorhill/uBlock/commit/dcd98f4efa7876ae5d37bd0588082f6aecd08a30)
- Cursor jumps to next matched item when adding char to search<
- Inifinite update attempts with "AdGuard Experimental filter"
- Odd sorting in popup domains list when domains have same SLD but different TLD
- Cosmetic rules not logged for embedded YouTube videos

Commits history since 1.16.12.

## uBlock Origin 1.16.13.101 - July 16, 2018

[no description]

## uBlock Origin 1.16.13.100 - July 10, 2018

[no description]

## uBlock Origin 1.16.13.2 - July 6, 2018

[no description]

## uBlock Origin 1.16.13.1 - July 5, 2018

[no description]

## uBlock Origin 1.16.13.0 - July 4, 2018

[no description]

## uBlock Origin 1.16.12 - June 29, 2018

See release notes.
Closed as fixed:

- CSS pseudo element: -webkit-scrollbar
- `badfilter` + matching duplicate user filter created from picker or logger may rarely cause a js exception

Commits history since 1.16.10.

## uBlock Origin 1.16.11.102 - June 26, 2018

[no description]

## uBlock Origin 1.16.11.101 - June 24, 2018

[no description]

## uBlock Origin 1.16.11.100 - June 14, 2018

[no description]

## uBlock Origin 1.16.10 - June 13, 2018

See release notes.
Closed as fixed:

- HTML filters occasionally lost effectiveness
- Round hour up to nearest day

Commits history since 1.16.8.

## uBlock Origin 1.16.9.100 - June 4, 2018

[no description]

## uBlock Origin 1.16.9.5 - June 3, 2018

[no description]

## uBlock Origin 1.16.9.4 - June 1, 2018

[no description]

## uBlock Origin 1.16.9b3 - June 1, 2018

[no description]

## uBlock Origin 1.16.9b2 - May 31, 2018

[no description]

## uBlock Origin 1.16.9b1 - May 28, 2018

[no description]

## uBlock Origin 1.16.9b0 - May 25, 2018

[no description]

## uBlock Origin 1.16.8 - May 25, 2018

See release notes.
No change to uBO itself.
The only change is in uBO's assets and publishing a new version of uBO package is to ensure all users get a new version of the neutered script from `googletagservices.com/gpt.js` -- see commit 2bc97541b3b9.
Commits history since 1.16.6.

## uBlock Origin 1.16.7b4 - May 20, 2018

[no description]

## uBlock Origin 1.16.7b3 - May 20, 2018

[no description]

## uBlock Origin 1.16.7b2 - May 18, 2018

[no description]

## uBlock Origin 1.16.7b1 - May 17, 2018

[no description]

## uBlock Origin 1.16.7b0 - May 16, 2018

[no description]

## uBlock Origin 1.16.6 - May 15, 2018

See release notes.
Closed as fixed

- Release versions of uBO will no longer support logger-in-the-sidebar: by design Firefox opens the sidebar with new installation of uBO and this is not a desireable behavior for uBO
  - Dev builds will still support the logger-in-the-sidebar feature.
  - I may bring it back depending on the resolution of bug 1460910
- uBO webext doesn't fill entire panel space
- uBO element picker & Stylus

Commits history since 1.16.4.

## uBlock Origin 1.16.5rc1 - May 14, 2018

[no description]

## uBlock Origin 1.16.5rc0 - May 10, 2018

[no description]

## uBlock Origin 1.16.5b4 - May 8, 2018

[no description]

## uBlock Origin 1.16.5b3 - May 8, 2018

[no description]

## uBlock Origin 1.16.5b2 - May 7, 2018

[no description]

## uBlock Origin 1.16.5b1 - May 6, 2018

[no description]

## uBlock Origin 1.16.5b0 - May 4, 2018

[no description]

## uBlock Origin 1.16.4 - May 3, 2018

See release notes.
Closed as fixed:

- "Ignore generic cosmetic filters" not checked as expected with a new installation [Firefox for Android]
  - Reported by a Reddit user, fixed with this commit
- Pull request from @Rob--W: Clear return value of vapi.js content script [Performance]
- Element picker find twice body on website
- Added a link to uBO's official issue tracker in About pane in the dashboard

Commits history since 1.16.2.

## uBlock Origin 1.16.3rc2 - May 2, 2018

[no description]

## uBlock Origin 1.16.3rc1 - May 2, 2018

[no description]

## uBlock Origin 1.16.3rc0 - May 1, 2018

[no description]

## uBlock Origin 1.16.3b2 - April 30, 2018

[no description]

## uBlock Origin 1.16.3b1 - April 29, 2018

[no description]

## uBlock Origin 1.16.3b0 - April 28, 2018

[no description]

## uBlock Origin 1.16.2 - April 25, 2018

See release notes.

- Text in popup panel tooltip is out of context
- Minor fixes to code (pull request from @anvakl)
- Insufficient escaping in patchScriptlet if streamScriptInjectFilters is enabled
- Can't write any filters on Android
- Firewall pane's save/revert not showing up when scrolled down on small screens
  - Found this myself, fixed without opening a formal issue.
- Firefox 52 ESR + spoofed user agent string fools uBO into thinking `cssOrigin` is supported [Regression]
- Underscore in domain name breaks whitelist editor
  - Fixed with pull request from @jspenguin2017
- Element picker text area has unreadable text

Commits history since 1.16.0.

## uBlock Origin 1.16.1rc5 - April 24, 2018

[no description]

## uBlock Origin 1.16.1rc4 - April 24, 2018

[no description]

## uBlock Origin 1.16.1rc3 - April 23, 2018

[no description]

## uBlock Origin 1.16.1rc2 - April 22, 2018

[no description]

## uBlock Origin 1.16.1rc1 - April 21, 2018

[no description]

## uBlock Origin 1.16.1rc0 - April 20, 2018

[no description]

## uBlock Origin 1.16.0 - April 19, 2018

See release notes.
New:
Added support for pre-parsing directives to filter list compiler. This allows filter list maintainers to create areas in a filter list which will be compiled only if certain conditions are met (or not met). See detailed documentation.
Changes:
The "3rd-party filters" pane in the dashboard has been renamed "Filter lists", and its look and behavior has been fine tuned.
Work has been done in the dashboard to further improve rendering on small screens.
Closed as fixed:

- Blank pages with stream filtering + content-type header missing
- Cloud synchronization bar fails to load

Commits history since 1.15.24.

## uBlock Origin 1.15.25rc3 - April 14, 2018

[no description]

## uBlock Origin 1.15.25rc2 - April 12, 2018

[no description]

## uBlock Origin 1.15.25rc1 - April 12, 2018

[no description]

## uBlock Origin 1.15.25rc0 - April 12, 2018

[no description]

## uBlock Origin 1.15.25b6 - April 11, 2018

[no description]

## uBlock Origin 1.15.25b5 - April 10, 2018

[no description]

## uBlock Origin 1.15.25b4 - April 10, 2018

[no description]

## uBlock Origin 1.15.25b3 - April 9, 2018

[no description]

## uBlock Origin 1.15.25b2 - April 6, 2018

[no description]

## uBlock Origin 1.15.25b1 - April 5, 2018

[no description]

## uBlock Origin 1.15.25b0 - April 2, 2018

[no description]

## uBlock Origin 1.15.24 - April 2, 2018

See release notes.
The release version of uBO on AMO is not allowed to update its `resources.txt` asset. This means the version shipped with the extension must be used. However, uBO compile and cache the data in `resources.txt`, and unless the cache is invalidated, uBO will keep using a potentially out of date version of `resources.txt`. This has been fixed by unconditionally invalidating the cache when a new version of uBO is detected.
Commits history since 1.15.24.

## uBlock Origin 1.15.23b0 - April 2, 2018

[no description]

## uBlock Origin 1.15.22 - April 2, 2018

See release notes.
Regression introduced in version 1.15.12 with the fix to issue #3546: whitelist directives were not taken into account for filterable behind-the-scene network requests. This is now fixed.
Commits history since 1.15.22.

## uBlock Origin 1.15.20 - April 2, 2018

See release notes.
Changes:
From now on, behind-the-scene network requests will be treated and filtered just like any other network requests. The `behind-the-scene` scope will be un-whitelisted when migrating to 1.15.20+ from an older version.
This will not apply to current installations of the Firefox/legacy version of uBO, as this would cause serious breakage of the browser given that uBO can see all network requests in Firefox/legacy. However for a fresh install of the Firefox/legacy, you will have to manually add the `behind-the-scene` scope as a whitelist directive in the Whitelist pane.
Keep in mind I plan to drop support for Firefox/legacy once Firefox 60 ESR is released on May 7. This will remove a roadblock for simplifying uBO's code base in many areas.
Miscellaneous:

- Ability to visually filter out rules in the "My rules" pane in the dashboard.
- Firefox for Android: improved compatibility with the CodeMirror editor.
- Responsive design of the dashboard user interface has been improved a bit.

Closed as fixed:

- Loading a `.javascript` file from a WebExtension's `web_accessible_resources` messes with macOS file associations
- 2 included filterlists by directive are doubled

Commits history since 1.15.20.

## uBlock Origin 1.15.19rc6 - April 1, 2018

[no description]

## uBlock Origin 1.15.19rc5 - March 31, 2018

[no description]

## uBlock Origin 1.15.19rc4 - March 31, 2018

[no description]

## uBlock Origin 1.15.19rc3 - March 31, 2018

[no description]

## uBlock Origin 1.15.19rc2 - March 30, 2018

[no description]

## uBlock Origin 1.15.19rc1 - March 30, 2018

[no description]

## uBlock Origin 1.15.19rc0 - March 30, 2018

[no description]

## uBlock Origin 1.15.19b8 - March 28, 2018

[no description]

## uBlock Origin 1.15.19b7 - March 28, 2018

[no description]

## uBlock Origin 1.15.19b6 - March 28, 2018

[no description]

## uBlock Origin 1.15.19b5 - March 27, 2018

[no description]

## uBlock Origin 1.15.19b4 - March 27, 2018

[no description]

## uBlock Origin 1.15.19b3 - March 27, 2018

[no description]

## uBlock Origin 1.15.19b2 - March 23, 2018

[no description]

## uBlock Origin 1.15.19b1 - March 21, 2018

[no description]

## uBlock Origin 1.15.19b0 - March 18, 2018

[no description]

## uBlock Origin 1.15.18 - March 18, 2018

See release notes.
Closed as fixed:

- i don't can paste text with right click

Commits history since 1.15.18.

## uBlock Origin 1.15.17b1 - March 17, 2018

[no description]

## uBlock Origin 1.15.17b0 - March 17, 2018

[no description]

## uBlock Origin 1.15.16 - March 17, 2018

See release notes.
Closed as fixed:

- "My Rules" tab is not displayed properly in FF RTL

Commits history since 1.15.16.

## uBlock Origin 1.15.15rc1 - March 16, 2018

[no description]

## uBlock Origin 1.15.15rc0 - March 16, 2018

[no description]

## uBlock Origin 1.15.14 - March 16, 2018

See release notes.
New
Added a new advanced setting: `streamScriptInjectFilters`. The purpose is to tell uBO to use stream filtering to inject scriptlets where possible. Default to `false`. Set to `true` to bring back scriptlet injection through stream filtering as was the default before 1.15.10. A fix has also been added to resolve https://github.com/uBlockOrigin/uAssets/issues/1492, which was the main reason to disable stream filtering-based scriptlets injection in 1.15.10.
Integration of CodeMirror in uBO's dashboard. Please do not open feature requests related to this.
Changes:
Firefox/webext
From now on, the beta version will be signed and self-hosted here. The stable version and the beta version auto-update independently of each other.
Closed as fixed:

- CSP error notification -> Conflicting with uBlock Origin? [from uMatrix issue tracker]
- Filters starting with `*` and followed by an uppercase letter are improperly parsed
- HTML Filter with ^ has no effect
- Redirection to neutered scriptlet broken by forbidden redirection to data: urls
- Behind-the-scene websocket's not being filtered by uBO
- Using IPv6 address in dynamic rule
- Normalize all tab id values to integer
- Site CSP's prevent surrogates from being loaded. google-analytics on Twitter for example
- Make Ctrl + S save changes to My Filters

Commits history since 1.15.10.

## uBlock Origin 1.15.12 - March 16, 2018

[no description]

## uBlock Origin 1.15.11b15 - March 14, 2018

[no description]

## uBlock Origin 1.15.11b13 - March 12, 2018

[no description]

## uBlock Origin 1.15.11b12 - March 12, 2018

[no description]

## uBlock Origin 1.15.11b11 - March 12, 2018

[no description]

## uBlock Origin 1.15.11b10 - March 11, 2018

[no description]

## uBlock Origin 1.15.11b9 - March 5, 2018

[no description]

## uBlock Origin 1.15.11b8 - March 4, 2018

[no description]

## uBlock Origin 1.15.11b7 - March 4, 2018

[no description]

## uBlock Origin 1.15.11b6 - March 1, 2018

[no description]

## uBlock Origin 1.15.11b5 - Feb. 28, 2018

[no description]

## uBlock Origin 1.15.11b4 - Feb. 27, 2018

[no description]

## uBlock Origin 1.15.11b3 - Feb. 26, 2018

[no description]

## uBlock Origin 1.15.11b2 - Feb. 26, 2018

[no description]

## uBlock Origin 1.15.11b1 - Feb. 24, 2018

[no description]

## uBlock Origin 1.15.10 - Feb. 20, 2018

See release notes.
I rolled back part of the fix for #3069: scriptlets are back to being injected using the delayed path. Using stream filtering to inject the scriptlets raised two distinct issues lately:

- Cause still unknown: https://github.com/gorhill/uBlock/issues/3526
- Cause identified -- but no obvious fix possible: https://github.com/uBlockOrigin/uAssets/issues/1492

HTML filtering is still available, i.e. filters using the `##^` syntax are unaffected.
Commits history since 1.15.10.

## uBlock Origin 1.15.8 - Feb. 20, 2018

See release notes.
Emergency fix:
Fixed a minor memory leak occurring as a result of injecting scriptlets (through ##script:inject(...) filters) using webRequest.filterResponseData.
Commits history since 1.15.8.

## uBlock Origin 1.15.6 - Feb. 13, 2018

Emergency fix:

- Wrong encoding results in garbled characters on German site

## uBlock Origin 1.15.4 - Feb. 3, 2018

See release notes.
Closed as fixed:

- Android Firefox corrupted downloads with uBlock on

Commits history since 1.15.4.

## uBlock Origin 1.15.2 - Feb. 3, 2018

See release notes.
No change to the code, I just updated the filter lists packaged with the extension -- due to a bad EasyList filter being shipped with the previous package.
Commits history since 1.15.2.

## uBlock Origin 1.15.0 - Feb. 1, 2018

See release notes.
New
HTML filtering
Ability to remove DOM elements from a source document before it is parsed by the browser. The platform must support an extension API to modify the response body on the fly. Currently only Firefox 57+ allows this.
The filter syntax is similar to cosmetic filtering, except that the character `^` is used before a valid selector to denote that the filter is to be applied to the source data. Contrary to cosmetic filtering, with HTML filtering the elements matching a selector are removed from the source. Example:

> `twitter .com##^meta[http-equiv="refresh"]
> www.google .ca##^#hplogo
> boards.4chan .org##^script:has-text(7c9e3a5d51cdacfc)`

Note that procedural operators are supported. Procedural operators which are senseless to use on source data will be ignored. For example, it makes no sense to use procedural operator such `:matches-css(...)` for HTML filtering.
Note that HTML filtering essentially brings back support for inline script tag filtering. I plan on deprecating the syntax `##script:contains(...)` in favor of `##^script:has-text(...)`. For the time being, uBO will conveniently convert the old syntax to the new HTML filtering syntax.
Given that HTML filters are to be applied to the source data of a document, the best way to create such filters is to `view-source:` the document and from there analyze what should be removed. Thus the element picker won't be extended as a tool to create HTML filters.
In case it's still not clear at point: this is a big deal feature.

> Sub-filter lists

Ability for filter list maintainers to force uBO to load extra filter lists from within a filter list, using an `!#include` directive. Example:
`!#include adblock_ublock.txt`
When uBO encounters the above directive inside a filter list, it tells uBO to load the extra filter list and append it to the current one. The main purpose of such directive is to allow filter list maintainers to be able to make use of uBO's extended filter syntax, without forfeiting the ABP-compatibility of their main filter list: ABP will ignore such directive since it will be seen as a mere comment.
All the details of the new directives syntax is being fleshed out at https://github.com/AdguardTeam/AdguardBrowserExtension/issues/917. At this point only `!#include` is implemented by uBO, because it solves immediately a current issue by simplifying the work of filter list maintainers who want to make use of uBO's extended filter syntax.
Important: uBO forbids sublists which are outside the directory of the main list. Typically, filter list maintainers will just use a single file name, as seen in the example above, in which case same-origin and same directory is implicit.
Changes
Logger
The logger can now be opened in a sidebar on Firefox. Just open the side bar and "uBlock₀ -- Logger" will be available as a choice.
Given this new ability, I added the following enhancements:

- A new entry in the tab selector: "Current tab":
  - This will cause the logger to automatically filter out rows which do not belong to the currently active tab.
- The rows related to behind-the-scene scope are now always shown.
- If you close a tab while "Current tab" is selected, the resulting void rows will be automatically deleted.
- You can expand/collapse a single row by clicking on the time stamp cell.

Given that uBO's logger is unified, being able to open the logger in a sidebar means you could end up having multiple views opened for the logger: only one view will work at any given time.
Mind that there are minor visual issues which I have no control over:

- The maximum horizontal space is limited by the browser.
- If you have the logger already opened in a tab or separate window, you will have to close these for the logger-in-a-sidebar to start working. However some internal message events are lost in Firefox and as a result the logger-in-a-sidebar may take over 30 seconds to start working after you close the logger-in-a-tab or window.
- Firefox: the font size is smaller than dictated in the DOM inspector view: I have no clue why, uBO's chosen font size is overridden by Firefox for some reasons.
- Firefox: it's not possible to select text in the logger when it is embedded in a sidebar.

Closed as fixed:

- Not all images blocked 'Block media elements larger than' set to 0kb
- `script:contains()` does not work in WebExtensions
- Evaluate using the new webRequest API to filter a response body on the fly
- Ability to open the logger into the browser's sidebar
- uBO's own reload button does not do a cache-invalidating reload
  - Press <kbd>Ctrl</kbd> while clicking to force a bypass of the browser cache.
- manualUpdateAssetFetchPeriod=0 is ignored
- Blocking meta refresh redirects (works only on Firefox 57+)
- `script:inject` with only negated domains cause cosmetic filtering engine to crash
- Regular expression flags in procedural cosmetic filters
- Some procedural filter chaining not work?
- Scriplet injections are Not Logged
- Scriptlet injection filters counted as cosmetic filters

Commits history since 1.14.24.

## uBlock Origin 1.14.24 - Jan. 13, 2018

See release notes.
Emergency fix for "Cannot full support Domain restrictive Inverse type options": static network filters with a mix of negated and non-negated "domain=" option were instantiated in a way which rendered them unenforceable.
Commits since 1.14.22:

- bc782be66364

## uBlock Origin 1.14.22 - Dec. 14, 2017

See release notes.
Accepted pull requests

- Change URL for CZ/SK filters and add "sk" lang

Closed as fixed:

- Filter cost cumulates on endless scrolling sites (facebook) and end up being disabled until reload
- [Regression] `domain=` option fails to match in some rare cases
- [Japanese] Seconds on the logger page not showing issue

Commit history between 1.14.20 and 1.14.22.

## uBlock Origin 1.14.20 - Nov. 29, 2017

See release notes.
Changes
The filter list "AAK-Cont Filters For uBlock Origin" has been removed from stock filter lists, it is no longer maintained. See #3241. Note that uBO is equipped to deal with anti-blockers, it's just a matter of users reporting instances to volunteer maintainers. Everybody is welcomed to assist in finding solutions to reported filter issues.
The DOM inspector has been improved a bit to make it more usable (see #407). Some refactoring was necessary to move forward this part, and as a result the DOM inspector is currently not available on legacy Firefox. This will be addressed only as time allow. Note that I still consider the DOM inspector to be work in progress. In case you wonder, the DOM inspector is the best way to visualize the effects of cosmetic filters on a page and to create exception cosmetic filters.
The semantic of the `no-csp-reports` switch has been changed from "block CSP reports from" to "block CSP reports to". This does not change the behavior of the "Block CSP reports" setting. This change of semantic makes sense, and this also removes an incompatibility with NoScript 10 (see #3260).
Accepted pull requests:

- @ kasper93: improve DOM inspector
- @ gwarser: Update supportURL for POL filters

Closed as fixed:

- NSFW not closed popup
- NoScript WebExtension and its CSP reports
- [Regression] Preview of CSS 'style' filters no longer works
- Add Adguard Mobile ads filter to default filter list
  - Adguard Mobile Ads filter list will be automatically selected with Firefox for Android (for new installations of uBO).
- A case that a custom RegExp rule doesn't work
- $generichide filter entry appears twice in the Logger on first load
- Use local image in Add-ons Manager
- [Performance] RegExp uses undue amount of memory on Chromium-based browsers
  - Reported as a core issue because the fix also benefits Firefox performance-wise.
- uBlock unhides hidden elements when it's updated
- [Regression] :style filters incorrectly shown in logger
- suspendTabsUntilReady and Violentmonkey compatibility issue
- 'Block element' from context menu not working in Firefox, when 0 active filters
- [Accessibility] Screen reader issue, after clicking the toolbar button, the shown up interface is not accessible with screen reader keyboard control
- DOM inspector not sees <html> element

Commit history between 1.14.18 and 1.14.20.

## uBlock Origin 1.14.18 - Nov. 8, 2017

See release notes.
Firefox WebExtensions: Issues with uBO/webext? If so, then read carefully before filing any issue.
New
A new setting has been added in the Privacy section of the Settings pane in the dashboard: "Block CSP reports". Default is un-checked. Rationale for this new setting: issue #3150. Documentation for this new setting: Block CSP reports.
Changes
Small improvements to the element picker on touchscreen devices:

- The picker dialog box is now rendered with a minimal width.
- After you pick an element, if the picker dialog box is...
  - Visible...
    - Swiping right will hide it.
  - Not visible...
    - Swiping left or touching it will un-hide it.
    - Swiping right will quit element picker mode.

Closed as fixed:

- Static-filtering: $object_subrequest blocking method
- uBlock doesn't work properly with "Medium Security" in Tor browser 7.0.7
- Open in new tab produces 6+ 'popup' lines in logger
- uBO is blocking legitimate CSP reports
- Move pseudo-user stylesheets out of `contentscript.js`

Commit history between 1.14.16 and 1.14.18.

## uBlock Origin 1.14.16 - Oct. 21, 2017

See release notes.
Firefox WebExtensions
Issues with uBO/webext? If so, then read carefully before filing any issue.
Firefox for Android 56: I have observed that the "Options" button does not appear in `about:addons` with this version of uBO (while this works fine with Nightly, quite probably because of bugzilla issue 1364945). However, unlike with Firefox for Android 55, uBO's entry in the browser menu is properly shown, so you can access the dashboard through the popup panel.
Closed as fixed:

- uBlock doesn't work properly with "Medium Security" in Tor browser 7.0.7
- Specific $popup filters incorrectly converted to $popunder
- Popup detection mistake
- Static filtering: left-anchor / right-anchor
- `no-popups: * true` rule issue

Commit history between 1.14.14 and 1.14.16.

## uBlock Origin 1.14.14 - Oct. 9, 2017

See release notes.
Firefox WebExtensions
Issues with uBO/webext? If so, then read carefully before filing any issue.
Firefox for Android 56: I have observed that the "Options" button does not appear in `about:addons` with this version of uBO (while this works fine with Nightly, quite probably because of bugzilla issue 1364945). However, unlike with Firefox for Android 55, uBO's entry in the browser menu is properly shown, so you can access the dashboard through the popup panel.
Closed as fixed:

- has/if filters rejected if contains `>` char after recent changes

Commit history between 1.14.12 and 1.14.14.

## uBlock Origin 1.14.12 - Oct. 8, 2017

See release notes.
Firefox WebExtensions
Issues with uBO/webext? If so, then read carefully before filing any issue.
Firefox for Android 56: I have observed that the "Options" button does not appear in `about:addons` with this version of uBO (while this works fine with Nightly, quite probably because of bugzilla issue 1364945). However, unlike with Firefox for Android 55, uBO's entry in the browser menu is properly shown, so you can access the dashboard through the popup panel.
Changes:
The filter list category Social has been renamed to broader Annoyances.
Changes in selection of stock filter lists:
Added:

- "Adguard Base Filters"
  - Thanks to Adguard's @ameshkov for going out of his way to make the list specifically for uBO. Both Adguard and uBO share some extended filter syntax, and as such uBO users do benefit from Adguard's filter lists.
- "Adguard Spyware Filters" (in "Privacy" section)
- "Adguard Annoyances" (in "Annoyances" section)
- "Adguard Spanish/Portuguese" (see #3089)
- "VIE: ABPVN" (see https://github.com/gorhill/uBlock/pull/2600)

Changed:

- Instruction URLs added for "RUS: RU AdList" and "CHN: CJX's EasyList Lite"
  - So that users can find more about these lists and the recommendations on how to best use them made by their respective maintainers.
- "RUS: Adguard Russian" and "CHN: CJX's EasyList Lite" will now be selected by default for new installations.

Removed:

- "EasyList without element hiding rules" (not very useful)
- "Reek's AAK" (no longer maintained)
- "uBlock Protector List" (it required Chrom[ium|e], uBO must be browser vendor agnostic)
- "Fanboy Ultimate" (see #3061)
- "CHN: CJX's Annoyance" (optional list)
- "EU: Prebake" (no longer maintained)
- "KOR: Fanboy Korean" (marked as "officially unsupported")
- "RUS: BitBlock" (see https://github.com/gorhill/uBlock/pull/3019#issuecomment-330076525)
- "VIE: Fanboy Vietnamese" (marked as "officially unsupported)

For whoever has one of the removed list selected, it will be moved to the "Custom" section (i.e. converted into an imported filter list).
Closed as fixed:

- Blocked Elements Still Showing Placeholder
- Popup/popunder blocking broken after opening uBO's dashboard through popup panel
- Sync is bogus with the new version of uBlock
  - If you still have sync issues even after the fix, see if https://github.com/gorhill/uBlock/issues/3006#issuecomment-332632925 works for you.

- Performance issue when looking up a cosmetic filter's origin in the logger
- Zapper and picker mode dont work on firefox 55/56
- Prebake - Filter Obtrusive Cookie Notices - not updated
- Middle clicking on a link triggers popup rule
- ABP new filter not working on uBO
- Add Anti-Adblock Killer Continued
- Unsupported `genericblock` causes supported `generichide` to be ignored
- no-remote-fonts option not working for inlined fonts
- Pushing to cloud storage fails silently: no hint is provided about the failure Commit history between 1.14.10 and 1.14.12.

## uBlock Origin 1.14.10 - Sept. 13, 2017

See release notes.
Code review-related fix: a test was introduced in #2950, which purpose was meant to punycode only if required for Firefox 52-56. Turns out the regex used in the test was flawed and this caused the punycoding code path to be always taken, meaning a pointless added overhead in network request handlers for when no punycoding is needed. Fixed with 04a41d8b.
Commit history between 1.14.8 and 1.14.10.

## uBlock Origin 1.14.8 - Sept. 4, 2017

See release notes.
Closed as fixed:

- Cosmetic filtering broken on Firefox 52 ESR

Commit history between 1.14.6 and 1.14.8.

## uBlock Origin 1.14.4 - Sept. 1, 2017

See release notes.
Closed as fixed:

- Firefox 52.2.1: uBlock suddenly disabled due to incompatibility
  - As per popular demand, I set the minimum version to 52.0. However be warned that some features are not available, like the privacy settings for example.
  - uBO/webext should not be used on Firefox for Android 54 and less, because there is no way to access uBO's UI. This was fixed in Firefox for Android 55, so best is that you move to the latest stable version of Firefox for Android.
- A custom filter not working on uBO v1.13.11rc0 / v1.14.0, but working on 1.13.8 (regression from b2e89c9e).
  - I tried to find out how many filters from default filter lists were affected but I could not find any one filter in default filter lists, or any of the large regional lists.

Commit history between 1.14.0 and 1.14.4.

## uBlock Origin 1.14.0 - Aug. 30, 2017

See release notes.
Changes
Due to the many reported issues with the webext-hybrid version of uBO, I am pushing the pure webext version of uBO to AMO. If this causes all your custom settings to be lost, you can recover them by following the steps outlined in the release notes of 1.13.10.
As required by AMO review process, the Firefox webext[-hybrid] version of uBO will no longer fetch the latest version of `assets/filters/resources.txt` from the project's repository.
The Firefox webext[-hybrid] version of uBO now uses indexedDB to store its cacheable assets<sup>[1]</sup>. There are positive and negative consequences as a result. See issue #2925 for details.
<sub>[1] "Cacheable assets" refer to: filter lists downloaded from remote servers; compiled (pre-parsed) filter lists; "selfie" (kind of dated doc but "selfie" part is still relevant).</sub>
Closed as fixed:

- Use indexedDB instead of browser.local.storage for cached assets
- Fixed bad test (regression from fdcc951).
- Generate better regex for hostname-anchored generic filters (there are ~4,500 such filters with default filter lists).

Commit history between 1.13.10 and 1.14.0.