uBlock Origin Changelog

What's new in uBlock Origin 1.57.2

Apr 10, 2024
  • Fix stray lists in redesigned cache storage

New in uBlock Origin 1.57.0 (Apr 8, 2024)

  • Fixes / changes:
  • Do not block large media resources when loaded as top-level document
  • Properly manage cache storage regarding managed user filters
  • Improve [trusted-]set-cookie scriptlets
  • Fixed Belgian and Nepali flags for Windows Chromium users (by @DandelionSprout)
  • Mind that tabs.sendMessage can throw
  • Improve set-cookie scriptlet
  • Append wildcard character only when filter starts & ends with /
  • Fix failure to create popup logger window sometimes
  • Improve json-prune-related scriptlets
  • Support maximizing editor to viewport size
  • Add advanced setting to force popup panel orientation
  • Add checkboxes to "My filters" pane
  • Assume UTF-8 when no encoding can be looked up
  • Fix issue with "My filters" pane on mobile
  • Support aborting "Pick" mode in element picker
  • Remove sections with no lists in "Filter lists" pane
  • Add "Social widgets", "Cookie notices" sections in "Filter lists" pane
  • No longer disable generic cosmetic filters by default on mobile
  • Improve spoof-css scriptlet
  • Make asset updater compatible with non-persistent background page
  • Move dragbar to the top of element picker dialog
  • Move "Quit" button to top bar in element picker
  • Add advanced setting requestStatsDisabled
  • First lookup matching stock lists when importing URLs
  • Reset filter lists in worker when creating filters via "Block element"
  • Remove trusted-source requirement when using badfilter
  • Redesign cache storage
  • Don't match network filter-derived regexes against non-network URIs
  • Remove obsolete trusted directives
  • Support logging details of calls to json-prune-fetch-response
  • Escape special whitespace characters in attribute values

New in uBlock Origin 1.56.0 (Feb 21, 2024)

  • Fixes / changes:
  • Mind that multiple uritransform may apply to a single request
  • Fix incorrect built-in filtering expression in logger
  • Fix improper invalidation of valid uritransform exception filters
  • Improve prevent-addEventListener scriptlet
  • Fix Chartbeat flicker control div's (by @ryanbr)
  • Fix potential exfiltration of browsing history by a rogue list author through permissions=
  • Ignore event handler-related attributes in set-attr scriptlet (suggested by @distinctmondaylilac)
  • Fix potential exfiltration of browsing history by a rogue list author through csp= (reported by @distinctmondaylilac)
  • Output scriptlet logging information to the logger
  • Fix decompiling of scriptlet parameters
  • Add support for extraMatch in trusted-click-element scriptlet
  • Remove minimum height constraint from "My filters" pane
  • Unregister all scriptlets when disabling uBO on a specific site
  • Allow uritransform to process the hash part of a URL
  • Remember presentation state of "My rules" pane
  • Fix improperly assembled !#include sublists
  • Mark procedural filters with pseudo-elements selector as invalid
  • Prevent access to picker when "My filters" is not enabled
  • Provide visual feedback when applying changes in "Filter lists" pane
  • Empty query parameters must still use =
  • Add support to toggle no-scripting switch with keyboard shortcut
  • Do not exceed rate-limited calls to handlerBehaviorChanged()
  • Shield some code paths against potentially tampered global properties (in scriptlets)
  • Do not prevent applying changes when lists are updating
  • Add elements vararg to prevent-addEventListener scriptlet
  • Do not use tab character as field separator (in logger)
  • Prevent :others() from hiding html tag

New in uBlock Origin 1.55.0 (Jan 8, 2024)

  • Mind drop events in filter expression field of logger
  • Improve xml-prune scriptlet
  • Fix message entries overflowing in logger
  • Add support for application/x-javascript in replace= option
  • Extend support for differential updates to imported lists
  • Add detection of mismatched !#if-!#endif in linter
  • Support links to update lists which are differential update-friendly
  • Remove "Purge all caches" button from "Filter lists" pane
  • Add support for all list token in updater-link feature
  • Fix logging of broad exception filter #@#+js()
  • Improve no-xhr-if scriptlet
  • Ensure cache storage backend is selected before access
  • Fix popup panel rendering when embedded in logger
  • Add visual hint in support information re. differential update
  • Remove obsolete web accessible resources
  • Rename urltransform to uritransform
  • Vertically expand/collapse in steps in dom inspector
  • Reset the DOM inspector when URL in top context changes
  • Support shadow-piercing combinator >>> in trusted-click-element
  • Isolate DOM inspector layers from page context
  • Refactoring: Replace DOM events with broadcast channels
  • Support non-default sticky lists
  • Add enableLazyLoad function (by @spazmodius )
  • Change frequency of save-to-storage blocking stats
  • Improve prevent-fetch scriptlet
  • Catch cases of ! Expires: field with no value

New in uBlock Origin 1.54.0 (Nov 27, 2023)

  • New:
  • Differential update of filter lists, as a result of discussions at AdguardTeam/FiltersCompiler#192.
  • Fixes / changes:
  • Enable path for native has() selector in Firefox
  • Allow scriptlets to be injected in about:blank
  • Fix faulty as vararg in set-constant scriptlet
  • Add support to redirect to noop.json
  • More improvements to the google-ima shim script (by @kzar)
  • All exceptions filters are exempt from requiring a trusted source
  • Add trusted-set-session-storage-item scriptlet
  • Allow the use of quotes in set-cookie scriptlet
  • Allow the use of quotes in set-(local|session)-storage-item
  • Add ability to trigger cookie removal on specific events
  • Ensure CSSTree does not hold a reference onto last parsed string
  • Lower minimum Expires value to 4h
  • Properly reset needle length in unserialized buffer
  • Add additional flags to regional lists (by @DandelionSprout)
  • Harden scriptlets which need to serialize function code into string
  • Reset g regexes before use in rmnt/rpnt scriptlets
  • Apply response filtering according to mime type
  • Add t/f to set-cookie (by @ryanbr)
  • Have urltransform= use the same syntax as replace=
  • Implement network filter option replace= (Firefox only because filterResponseData)
  • Prevent evaluating the SNFE until fully loaded
  • Add support for differential update of filter lists

New in uBlock Origin 1.53.0 (Nov 2, 2023)

  • Fixes / changes:
  • Add additional set-cookie names (by @ryanbr)
  • Improve google-ima shim script (by @kzar)
  • Match type exactly in prevent-addEventListener scriptlet
  • Add filtering expressions for logger output
  • Add warning against adding custom filters from untrusted sources
  • Consider My filters an untrusted source by default
  • Add trusted-prune-inbound-object scriptlet
  • Add dontOverwrite vararg to (trusted-)set-cookie scriptlets
  • Add "on" and "off" values to set-cookie (by @peace2000)
  • Fine tune set-local-storage-item as per feedback
  • Support AdGuard's [trusted-]set-cookie-reload scriptlets
  • Ignore assets older than cached version when fetching from CDNs
  • Support quoting scriptlet parameters with backticks
  • Add new static network filter option: urltransform
  • Support pane: mark lists as obsolete only when update button is clicked
  • Bring header= filter option out of experimental status
  • Add trusted-click-element scriptlet
  • Add ability to update lists through links with specifically crafted URLs
  • Fix overzealous matching in (remove|replace)-node-text scriptlets
  • Fix no-xhr-if scriptlet for Firefox
  • Support restoring from application/json file
  • Use safe versions of Math.floor/Math.random in scriptlets
  • Improve google-ima.js surrogate
  • Add stackToMatch vararg to json-prune-related scriptlets
  • Reduce race conditions in scriptlet injection on Firefox
  • Add scriptlet aliases for compatibility with AdGuard lists
  • Remove unmaintained urlhaus PUP filter list
  • Use AG version of urlhaus list
  • Minor code review of scriptlets

New in uBlock Origin 1.52.0 (Sep 11, 2023)

  • Fixes / changes:
  • Add json-prune-xhr-response and trusted-replace-xhr-response scriptlets
  • Use globalThis instead of self in scriptlet helper
  • Add json-prune-fetch-response scriptlet
  • Position reload icon in logger as per feedback
  • Re-factor extra args for set-constant scriptlet
  • Use Unicode version of hostnames in element picker
  • Disallow trailing CSS universal selector unless properly separated
  • Fix/improve xml-prune scriptlet
  • Improve xml-prune scriptlet
  • Put uBO's icon in nav bar by default
  • Properly serialize CSS combinators according to position in selector
  • Improve no-xhr-if scriptlet
  • Improve no-xhr-if scriptlet
  • Use non-normalized URL for reload/report operations
  • Add commented keywords to googlesyndication_adsbygoogle.js scriptlet
  • Improve fingerprint2.js scriptlet
  • Nothing can come after action operator in procedural cosmetic filters
  • Add trusted-replace-fetch-response scriptlet
  • Harden spoof-css scriptlet
  • Support negated pattern for stack test in scriptlets
  • Fix looking up clickable URLs in code viewer
  • Fine tune logging capabilities of json-prune scriptlet
  • Add stackNeedle argument to json-prune scriptlet
  • Improve remove-class behavior
  • Add visual hint for filtered out rows in firewall pane
  • Add $currentISODate$ to trusted-set-local-storage-item scriptlet
  • Eliminate case-sensitivity from values in set-cookie scriptlet

New in uBlock Origin 1.51.0 (Jul 20, 2023)

  • Fixes / changes:
  • Remove obsolete web_accessible_resources
  • Add missing (deprecated) method to google ima
  • Fix regression in handling of experimental header= filter option
  • Only already normalized CSS selectors can be fast path-compiled
  • Improve compatibility with AdGuard's scriptlets
  • Add static network filter option: permissions
  • Add set-attr scriptlet
  • Do not bail too early when trapping properties in acs scriptlet
  • Fix regression in cloud storage import of "Filter lists" pane
  • Add set-session-storage-item scriptlet
  • Prevent negative position when widget size is greater than viewport size
  • Ensure no negative value for top property of floating widget in logger
  • Add visual hint when not all sublists are enabled
  • Add support for AdGuard's noop (_) network filter option
  • Add "tabless" filter expression for logger output
  • Add support for logical expressions to !#if directive
  • Also added support for !#else
  • Add resource aliases for increased compatibility with AdGuard lists
  • Add compatibility with AdGuard's #%#//scriptlet(...) syntax
  • Also added support for quoted parameters in ##+js(...) syntax
  • Fix syntax highlighter throwing with invalid patterns
  • Prevent creating report until filter lists are updated
  • Add support for sublist at any tree depth in "Filter lists" pane
  • Add set-local-storage-item/trusted-set-local-storage-item scriptlets
  • Add support to remove values in set-local-storage-item scriptlet
  • Fix m3u-prune scriptlet
  • Rework nowoif scriptlet
  • Add trusted-set-cookie scriptlet (requires trusted source)
  • Add set-cookie scriptlet
  • Can't have whitespace in network filter pattern

New in uBlock Origin 1.50.0 (Jun 18, 2023)

  • Add support to remove attributes in xml-prune scriptlet
  • Fix/improve href-sanitizer scriptlet
  • Add evaldata-prune scriptlet
  • Add support for xhr in xml-prune
  • Add remove-node-text.js scriptlet
  • Add trusted-set-constant scriptlet
  • Support injecting scriptlet in MAIN or ISOLATED world
  • Add trusted-source support for privileged scriptlets (and add replace-node-text scriptlet)
  • Add spoof-css scriptlet
  • Add back AdGuard Tracking Protection
  • Expand/harden some scriptlets
  • Return string when storage.sync.get() promise fails
  • Do not bail out when content-disposition is inline
  • Fix improperly unselecting imported lists
  • Report injected scriptlets in troubleshooting information
  • Fix rendering issue of row-filter icon in popup panel
  • Add "scriptlet" filter expression to logger
  • Fix hostname-detecting regex
  • Add support for sublists in "Filter lists" pane
  • Properly handle converted procedural filters in logger
  • Mind small screen size in asset viewer
  • Add thunderbird as target for installation
  • Add ability to execute aeld scriptlet at a later time
  • Move hostname label to top of popup panel
  • Offer opportunity to update filter lists before reporting issue
  • Fix compiling of negated regex-based to= domain

New in uBlock Origin 1.49.2 (Apr 27, 2023)

  • Fixes:
  • Reverse usage of browser.alarms
  • Mind rejected promises from vAPI.storage API
  • Properly handle promise rejection from webext.storage.local API
  • Add more checks against unexpected conditions re. assets.json

New in uBlock Origin 1.49.0 (Apr 19, 2023)

  • Fixes / changes:
  • Make the toolbar warning timeout configurable
  • Better integrate suspend-network with unprocessed-request
  • Properly detect incorrect usage of CSS combinators
  • Wrap usage of setTimeout in helper for background + auxiliary pages
  • Start using browser.alarms instead of setTimeout() where applicable
  • Fix improper detection of quotes in quoted strings
  • Add matched cosmetic filters in troubleshooting information
  • Add infrastructure for static filter syntax linter
  • Make object equivalent of frame for dynamic filtering purpose
  • Enforce implicit media type for filters using mp4 option
  • Better detect invalid network filter patterns
  • Support view source of "other" type
  • Add widget to filter firewall rows in popup panel
  • Add support for negated hostnames in HTML filters
  • Aggressively auto update assets when at least one is very obsolete
  • Normalize non-ASCII characters in :matches-path() argument
  • Refactor scriptlets injection code
  • Add scriptlet dependencies to reduce code duplication
  • Protect RegExp.prototype.test method in scriptlets.js
  • Properly handle default list status changes in assets.json

New in uBlock Origin 1.48.4 (Apr 6, 2023)

  • Fixes / changes:
  • Add matched cosmetic filters in troubleshooting information
  • Add infrastructure for static filter syntax linter
  • Make object equivalent of frame for dynamic filtering purpose
  • Enforce implicit media type for filters using mp4
  • Better detect invalid network filter patterns
  • Support view source of "other" type
  • Add widget to filter firewall rows in popup panel
  • Add support for negated hostnames in HTML filters
  • Aggressively auto update assets when at least one is very obsolete
  • Normalize non-ASCII characters in :matches-path() argument
  • Refactor scriptlets injection code
  • Add scriptlet dependencies to reduce code duplication
  • Protect RegExp.prototype.test method in scriptlets.js
  • Properly handle default list status changes in assets.json

New in uBlock Origin 1.48.2 (Apr 2, 2023)

  • Fixes / changes:
  • Ensure astSelectorsFromSelectorList receive expected arguments

New in uBlock Origin 1.48.0 (Mar 24, 2023)

  • Fix broken http header filtering
  • Prevent dashboard from loading at browser launch until ready
  • Support removing whole lines of text with regex in m3u-prune scriptlet
  • Fix broken filter parsing when prepended with spaces
  • Context of about:blank is that of parent frame (popup option)
  • Add experimental href-sanitizer scriptlet
  • Prevent dialog box from overflowing logger's viewport
  • Make parser take into account filterOnHeaders setting
  • Show a distinct toolbar icon until filtering engines are fully initialized
  • Add source code viewer

New in uBlock Origin 1.47.4 (Mar 5, 2023)

  • Fixes / changes:
  • Add list for Macedonia; add languages to Persian list
  • Support update period below 1-day
  • Restore behind-the-scene origin for docless secondary resources
  • Refine AST template's regex for hosts file entries
  • Flush cached result when adding to FilterDomainHitSet

New in uBlock Origin 1.47.2 (Feb 22, 2023)

  • Fixes / changes:
  • Support moving logger dialog around with touch events
  • Raise minimum version of Firefox
  • Fix improper invalidation of inline-(font|script) types

New in uBlock Origin 1.47.0 (Feb 22, 2023)

  • Fixes / changes:
  • Prevent context menu entries on non-HTTP documents
  • Ignore compilation hints when applying exception cosmetic filters
  • Add support for regex-based values as target domain for static extended filters
  • Add support for regex-based values for domain=/from=/to= options
  • Rewrite static filtering parser
  • uBO doesn't reject cosmetic filters with invalid pseudo-classes/pseudo-elements
  • Make the logger entry dialog modeless
  • Fix missing regex flags
  • Import version 1.2.0 of RegexAnalyzer
  • Set charset to utf-8 for Blob-based injected scriptlets
  • Disallow -abp-... filters if not using #?#
  • Work related to keyboard shortcuts for page reload
  • New network filter option: to=[list of domain names]
  • New network filter option: method=...

New in uBlock Origin 1.46.0 (Feb 22, 2023)

  • Fixes:
  • Add options stub to nofab scriptlet
  • Rewrite logger's "exceptor" feature
  • Be sure procedural filterer is present before use
  • Use Blob URLs to reliably inject scriptlets -- as suggested by @evilpie
  • Add :remove-attr() and :remove-class() pseudo selector operators
  • Rework generic cosmetic filtering code
  • Add pseudo-operator :matches-attr()
  • Detect invalid usage of combinators in :not() pseudoclass
  • Give more time for viewport to be ready (in popup panel) -- related feedback
  • Handle potentially invalid CSS selector (in logger)
  • Ensure state of more/less in panel reflect locked/disabled sections
  • Isolate generic cosmetic filters from specific ones in generated stylesheet
  • Do not cname-uncloak same-origin network requests
  • Prevent the creation of non-cosmetic extended filters in element picker
  • Fix visual of DOM inspector layer in dark theme mode
  • Improve extraction of tokens from regexes
  • Use placeholders to minimize vertical shifting at page load time
  • Bundled filter lists in releases are not timestamped
  • Ensure procedural filters are applied at least once
  • Code maintenance: replace uDom.js with dom.js

New in uBlock Origin 1.45.2 (Nov 14, 2022)

  • Fixes:
  • Test for unsupported pseudo operators after normalization
  • Mind implicit prelude * element in pseudo operators

New in uBlock Origin 1.44.4 (Sep 19, 2022)

  • Fixes:
  • Fix broken :not() operator when forcing parsing as procedural

New in uBlock Origin 1.44.2 (Sep 19, 2022)

  • Fixes:
  • Force prodecural cosmetic filtering when explicitly stated
  • Using #?# instead of ## will prevent uBO from potentially using the declarative form of a filter where possible.
  • Fallback to procedural :has() operator when argument is not a valid plain CSS selector
  • Add missing method to shim script

New in uBlock Origin 1.44.0 (Aug 22, 2022)

  • New procedural cosmetic filter operator: :matches-media()
  • Commit:
  • The argument must be a valid media query as documented on MDN, i.e. what appears between the @media at-rule and the first opening curly bracket (including the parentheses when required).
  • Best practice:
  • Use :matches-media() after plain CSS selectors, if any.
  • Good: example.com###target-1 > .target-2:matches-media((min-width: 800px))
  • Bad (though this will still work): example.com##:matches-media((min-width: 800px)) #target-1 > .target-2
  • Fixes:
  • Add 0.5s mp3 redirectable resource
  • Add queue-related initialization code to AMZN shim script
  • Fix dark theme issue in DOM inspector
  • Better detect invalid cosmetic filters
  • Properly "bleed" 3p rules onto 3p-script/3p-frame cells
  • Skip testing context when none present in acis scriptlet
  • Ignore auto-repeat events in ctrl keydown event handler
  • Fix popup panel for Thunderbird
  • Prevent picker from being larger than viewport
  • use WebAssembly-1.0 compliant function names (by @rathann)

New in uBlock Origin 1.43.0 (Jun 19, 2022)

  • Fixes:
  • Element-picker: Ensure frame background is transparent (by @emilio)
  • Update popup url (by @u-RraaLL)
  • Also dispatch loadend event in case of match
  • Remove support for deprecated "classic" popup panel
  • Prevent CSS transform on element picker layer
  • Report specific filter before generic one
  • Better highlight bad hostnames in static extended filters
  • Avoid using Element.classList in DOM surveyor
  • Improve logger accuracy re. reported injected scriptlets

New in uBlock Origin 1.42.4 (Apr 7, 2022)

  • Fixes:
  • Need local URL to enabled-by-default quick-fixes list
  • This fix prevents uBO from fetching quick-fixes list from remote server the first time it is launched after being installed for the first time.

New in uBlock Origin 1.42.2 (Apr 5, 2022)

  • Fixes:
  • Do not block root document at launch in Chromium-based browsers

New in uBlock Origin 1.42.0 (Mar 31, 2022)

  • Fixes:
  • Handle picture > source elements in element picker
  • Use a better value to mark end of sequence of tokens
  • Remove MVPS from stock lists due to inactivity
  • A way to fix serious filter issues as soon as possible
  • Add command to toggle cosmetic filtering
  • Prevent unset minimal width for popup panel
  • Notable commits without an entry in the issue tracker:
  • Discard duplicate lines when merging imported directives
  • Make browser use dark theme built-in widgets in dark theme
  • Add letsblock.it as valid location for subscription links (by @xvello)
  • Introduce experimental procedural cosmetic operator :others()

New in uBlock Origin 1.41.6 (Feb 18, 2022)

  • Fixes:
  • Use unspoofable Messenger.origin to determine privilege level of ports
  • Revert "Prevent highly generic cosmetic filters from affecting html/body elements"

New in uBlock Origin 1.41.4 (Feb 16, 2022)

  • Closed as fixed:
  • Fix improper handling of match-all removeparam
  • [Chromium] Rework behavior of "Suspend network activity until ..."

New in uBlock Origin 1.41.2 (Feb 11, 2022)

  • Closed as fixed:
  • Textarea focus border is slightly cut off from the sides in the static filter pane in the logger
  • Notable commits without an entry in the issue tracker:
  • Use theme-related shade of red for DOM inspector
  • Fix bad font size in DOM inspector
  • Fix visually glitchy Create button in element picker

New in uBlock Origin 1.40.8 (Jan 12, 2022)

  • Fix selfie with invalid data in some circumstances (reported internally by @gwarser)
  • Fix bad release 1.40.6: the previous release should have forced an invalidation of existing selfie, I overlooked this.

New in uBlock Origin 1.40.4 (Jan 3, 2022)

  • Closed as fixed:
  • Chromium:
  • Better test for presence of browser extensions API
  • Notable commits without an entry in the issue tracker:
  • Offer a way to disable tab-reloading at launch on Chromium-based browsers
  • Fix broken suspendTabsUntilReady for Chromium-based browsers

New in uBlock Origin 1.40.2 (Dec 27, 2021)

  • Closed as fixed:
  • localhost: breakage

New in uBlock Origin 1.40.0 (Dec 23, 2021)

  • Closed as fixed:
  • Inconsistent line-break in the support pane for Japanese environment
  • Wrong description in Trusted site pane
  • Update nobab
  • Specific-generic cosmetic filter is not disabled by generichide
  • "Your request URL is too long": problem with too many filters and the new "problem with filter lists" button
  • Exceptions do not work when processing requests with long paths
  • Notable commits without an entry in the issue tracker:
  • Improve auto-completion in "My filters" editor
  • Store domain= option into trie container's character buffer
  • Partially bring suspendTabsUntilReady out of experimental status
  • Fix potentially reporting wrong context in logger for ghide filters
  • Fine-tune static network filtering engine code
  • Wait for placeholders to be present (in googlesyndication_adsbygoogle.js)
  • Create synthetic event for new windows created from external application
  • Add window.close scriptlet
  • Store regex filter pattern into bidi-trie buffer
  • Ignore pointless trailing *^ in network filters
  • Change compiled list format to a saner block id management
  • Store generic pattern string into bidi-trie buffer
  • Remove classes specialized in handling single-wildcarded patterns
  • Refactoring work in static network filtering engine
  • Have getAll() returns at least one neutered Tracker object

New in uBlock Origin 1.39.2 (Dec 3, 2021)

  • Closed as fixed:
  • 'Address of webpage' textbox needs to be readonly or changes to it need to be monitored
  • Notable commits without an entry in the issue tracker:
  • Fine tune new reporting feature
  • Link to filter descriptions (patch by @breyed)
  • Reject generic HTML block filters

New in uBlock Origin 1.39.0 (Nov 23, 2021)

  • New:
  • A new "Report an issue on this website" icon has been added to the popup panel, to make it easier to report filter issue to volunteers maintaining filter lists. Reporting filter issues through this new feature requires a GitHub account.
  • A new Support pane has been added to the dashboard, to make it easy for users to share technical information about their current uBO's configuration, and consequently make it easier for volunteers to diagnose reported issues.
  • Closed as fixed:
  • Chromium:
  • Text editing boxes have mouse location issues in higher DPIs
  • Cosmetic filters not working on many websites with "Experimental Web Platform features" in chrome://flags
  • This also fixed "Security: Comments can still be used to smuggle arbitrary CSS", which was reported afterward.
  • Core:
  • [discovered by @hackvertor] Security: Cosmetic filters can make background requests using image-set() on Firefox
  • uBlock GA overwrites breaking _link implementation when using a named property
  • [discovered by @hackvertor] Security: Smuggle arbitrary CSS inside cosmetic uBlock filters
  • [discovered by @hackvertor] Security: JavaScript URL injection allowed in query string parameter and redirection to uBlock origin urls
  • Fix not highlighting cases of invalid syntax
  • [patch by @pixeltris] Twitch bypass is circumvented
  • Extension report website adblocking option
  • [patch by @eligrey] Don't assume document.documentElement is non-null
  • Add support for pseudo classes
  • Notable commits without an entry in the issue tracker:
  • Do not decode query parameter name when used as token
  • Suggest network filter as best candidate by default
  • Auto-escape commas in removeparam's regexes
  • Simplify handling of valid HTML tags in i18n files
  • Give precedence to negated types in case of ambiguity
  • Fix regression in isBlockImportant()
  • Add refresh-defuser scriptlet
  • Add advanced setting to modify default webext flavor
  • Convert fingerprint2.js scriptlet into a redirectable resource

New in uBlock Origin 1.38.6 (Oct 17, 2021)

  • New:
  • A new Support pane has been added to the dashboard, to make it easy for users to share technical information about their current uBO's configuration, and consequently make it easier for volunteers to diagnose reported issues.
  • Closed as fixed:
  • [patch by @eligrey] Don't assume document.documentElement is non-null
  • Notable commits without an entry in the issue tracker:
  • Simplify handling of valid HTML tags in i18n files
  • Give precedence to negated types in case of ambiguity
  • Fix regression in isBlockImportant()
  • Add refresh-defuser scriptlet
  • Add advanced setting to modify default webext flavor
  • Convert fingerprint2.js scriptlet into a redirectable resource

New in uBlock Origin 1.38.4 (Oct 12, 2021)

  • Update twitch-videoad scriptlet (solution contibuted by @pixeltris)

New in uBlock Origin 1.38.2 (Oct 3, 2021)

  • Closed as fixed:
  • Regression with important filter option
  • Weird issues with removeparam and negated types

New in uBlock Origin 1.38.0 (Sep 20, 2021)

  • New:
  • :matches-path(...):
  • New cosmetic procedural operator, :matches-path(...). See "Add $path modifier of Adguard or any equivalents of this".
  • Node.js:
  • A new Node.js package will now published with every release. The package allows to import and use uBO's static and dynamic filtering engines into Node.js. This is currently minimal and a first iteration, and issues regarding the Node.js package are accepted in order to improve usability of uBO's filtering engines in a Node.js package. The ability to run code from a Node.js package also opens the door to have test coverage in uBO.
  • For now the package can be downloaded and unzipped locally. Once installed, you can execute node test in the root of the package to verify that the static network filtering engine works properly. For usage, refer to the test.js, or ublock.js used in Cliqz's benchmark.
  • Since I have little experience with dealing with Node.js environment/packages, thanks to @mjethani for assistance.
  • Removed:
  • The setting "Prevent WebRTC from leaking local IP addresses" has been removed since it is no longer necessary in modern browsers, except for Firefox for Android where the issue is still present.
  • Closed as fixed:
  • Remove WebRTC leak prevention
  • $removeparam doesn't work well with UrlEncoded gb2312 Chinese word
  • Scriptlets don't work randomly in Firefox
  • Security: comments can be used to smuggle url() functions into css values
  • Prevent uBO from hiding html or body when matched by a generic cosmetic filter
  • On Android Popup Overlays [or Underlays] On-Screen Navigation Buttons
  • Add $path modifier of Adguard or any equivalents of this
  • The overview panel will not show everything if the uBO's icon is placed in the Firefox overflow menu
  • [patch by @vtriolet] TypeError in noscript-spoof scriptlet with invalid meta refresh URL
  • TypeError when trying to use element picker on plaintext resource
  • Split out core functionality into separate module
  • This is of course an ongoing work for the foreseeable future, but the concrete goal sought in the issue has been reached, i.e. the static network filtering engine can be used as a nodejs module with no external dependencies.
  • Since uBO's codebase now uses JS modules, the minimum version of supported browsers has been increased to Chromium 61, Firefox 60, and Opera 48.
  • Notable commits without en entry in the issue tracker:
  • Better lookup all elements under mouse cursor in element picker
  • Add visual hint to grab area of element picker dialog
  • Add no-xhr-if scriptlet
  • Refactor hntrie to avoid the need for boundary cells
  • Fix bad test in WASM version of HNTrieContainer
  • Export the rule-based filtering engines to the nodejs package
  • Rewrite logical expressions for ESLint
  • [patch by @mjethani] Add Makefile
  • [patch by @mjethani] Make uAssets a submodule
  • Ensure compiled sections are ordered in ascending id
  • Fix handling of some procedural cosmetic filters with explicit :scope

New in uBlock Origin 1.37.2 (Jul 30, 2021)

  • Closed as fixed:
  • uBO 1.37 breaks at least some sites that use googletagmanager if specific filters in use

New in uBlock Origin 1.37.0 (Jul 25, 2021)

  • Closed as fixed:
  • Core:
  • '$popup' not working
  • Service worker "tabless" requests with correct context are still modified when page is whitelisted
  • Back/Forward navigation does not work between Ublock Origin option pages
  • csp_report filter created via logger is marked as invalid
  • Extreme popup blocking - uBo dashboard is blocked when popups are
  • ipv6 fe80::1%lo0 localhost from hosts file is marked as error line
  • Whitespaces are now stripped from blocking-rule URLs, causing rules targeting whitespaces to fail and/or block extremely broadly
  • uBO's dashboard does not refresh custom filters in real-time
  • Element picker/zapper don't work if cosmetic filtering is disabled
  • Logger always highlights first match
  • Static filtering: Cannot prevent my filter from strict-blocking
  • Notable commits without en entry in the issue tracker:
  • Provide visual cue in popup panel when base domain has subdomains
  • Disclose where uBO's own filter lists are hosted
  • Add abort-current-script scriptlet
  • Fix spurious error messages when updating contextual menu
  • Make getByName() return an dummy Tracker object
  • Add asap behavior to remove-attr scriptlet
  • Ensure pending callbacks are called only once

New in uBlock Origin 1.36.2 (Jul 7, 2021)

  • Closed as fixed:
  • DoS with strict-blocking filter

New in uBlock Origin 1.36.0 (Jun 22, 2021)

  • Closed as fixed:
  • Chromium:
  • uBlock does not load adminSettings at first run
  • Firefox:
  • Bizarre perf drain when ajaxing in 90,000 DOM nodes in a react component
  • Core:
  • Google Tag Manager eventCallback in a populated dataLayer not called
  • Countering a removeparam filter causes page-redirect problem
  • Asset viewer shows no space between !#endif and a comment line in uBlock's list
  • Text in Manage Extension Shortcuts includes escaped ­
  • In popup, the Reload button becomes immediately hidden if re-enabling the large power button too quickly
  • Notable commits without en entry in the issue tracker:
  • Add ability to linger for remove-class scriptlet
  • Add empty array, object to set-constant scriptlet
  • Fix potential exception when casting to string
  • Make googletagmanager_gtm.js an alias of google-analytics_analytics.js
  • Ensure getter/setter are called with proper context
  • Allow filter list subscription through context menu
  • Keep reporting last time "out of date" lists were updated
  • Fix improper hashing of rules in classic popup panel

New in uBlock Origin 1.35.2 (May 4, 2021)

  • Closed as fixed:
  • Firefox 66.0 and earlier:
  • Element picker, zapper and procedural filtering not working on facebook.com
  • Notable commits without en entry in the issue tracker:
  • Better handle network error when fetching sublist
  • Stop autoplay for unset media source with no-large-media-elements
  • Use CDN URLs as fall back URLs

New in uBlock Origin 1.35.0 (Apr 22, 2021)

  • New:
  • New filtering ability to remove specific response headers from document resources. Example:
  • example.com##^responseheader(refresh)
  • Only the following response headers are allowed to be removed, anything else will cause the filter to be invalid and discarded:
  • location
  • refresh
  • report-to
  • set-cookie
  • Chromium-based browsers:
  • Google's FLoC is defused by default. Websites will be able to use the FLoC API (only if already present), but will be unable to get a result from it -- uBO causes the API to always fail as if there was no FLoC data available.
  • If your Chromium-based browser supports the FLoC API, this is the result you should get with uBO when testing with EFF's "Am I FLoCed?" (assuming you did not disable uBO's "uBlock filters -- Privacy" list).
  • Additionally, uBO causes all websites to opt-out of being part of FLoC calculation by injecting the appropriate response header.
  • You can opt-in to FLoC by creating the appropriate exception filter, see commit message for details.
  • Closed as fixed:
  • Block FLoC checks in Chrome/uBO
  • json-prune doesn't remove all properties by full wildcard
  • Notable commits without en entry in the issue tracker:
  • Remove advanced setting ignoreScriptInjectFilters
  • Finalize 3rd-party scripts/frames mini-filtering widget
  • Remove advanced setting ignoreRedirectFilters
  • Fix regex used to extract attribute name in element picker
  • Add support for removal of response headers

New in uBlock Origin 1.34.0 (Mar 12, 2021)

  • Closed as fixed:
  • Picker glitch with elements with special characters in their tag name
  • Expose CNAME-uncloaking as a Privacy option in the Settings pane
  • Impossible to add explicit exception for implicit strict blocking
  • Invalid network filters suggested in element picker
  • Use +/- in the popup to indicate whether 3-p frames were blocked
  • Notable commits without en entry in the issue tracker:
  • Fix no-scripting switch not working for SVG-based documents
  • Upgrade CodeMirror to 5.59.2
  • Fix 'adsbygoogle' neutered script
  • Inject procedural cosmetic filterer's code only when needed

New in uBlock Origin 1.33.2 (Feb 3, 2021)

  • Closed as fixed:
  • After downgrading to 1.32.4, uBO is broken
  • Whitelisting a site on Chromium Edge still blocks resources fetched by service worker

New in uBlock Origin 1.33.0 (Feb 3, 2021)

  • New:
  • Many new managed storage properties to make it easier for administrators to configure uBO through policies -- see related documentation.
  • Closed as fixed:
  • Firefox:
  • click2load.html fails to load CNAME-3p frames after click on tagesschau.de
  • Core:
  • Only filtered part of rules is uploaded to cloud storage
  • remove-attr does not always work
  • Add AdGuard's noopvmap-1.0 equivalent as a redirect resource
  • Using an alias for custom scriptlet in my Filters pane is seen as invalid
  • Third party is not detected (or not exposed to the user)
  • Notable commits without en entry in the issue tracker:
  • Add any-delay to timeout/interval boosters
  • Improve neutered adsbygoogle scriptlet
  • Add ability to lookup effective context from store of frames
  • Just extract token from queryprune -- don't create pattern
  • Fix word-based selection in filter list editor/viewer
  • Fix potentially missing context in logger for popup entries
  • Improve extraction of tokens from regex-based filters
  • Upgrade CodeMirror library to 5.59.0 (from 5.46.0)
  • Expand managed storage for admins:
  • Add userSettings entry to managed storage
  • Add toOverwrite.filters entry as managed storage property
  • Add toOverwrite.filterLists property to managed storage
  • Adding to and further reviewing admin-managed settings
  • Add support for admin-managed hidden settings

New in uBlock Origin 1.32.4 (Jan 5, 2021)

  • Closed as fixed:
  • Problems with asterisk in the destination of hostname-based rules

New in uBlock Origin 1.32.2 (Dec 28, 2020)

  • Closed as fixed:
  • Core:
  • queryprune incorrectly handles (removes) "hash" part of the URL
  • Notable commits without en entry in the issue tracker:
  • Allow default word selection when not using better selection
  • Better handle Request argument in no-fetch-if

New in uBlock Origin 1.32.0 (Dec 23, 2020)

  • New:
  • Ability to launch element picker into embedded frames, through a new "Block element in frame..." entry in the contextual menu.
  • Support for match-case filter option, but only for regex-based static network filters.
  • Ability to auto-complete (Ctrl-Spacebar) hostname values for origin-related options in static filter editor according to currently opened tabs.
  • Changes:
  • Dynamic filtering:
  • Noop-ing a blocked 3rd-party cell will cause uBO to immediately attempt to reload blocked stylesheets, if any. This will also occurs when the noop-ing is done through the "relax blocking mode" shortcut, in which case uBO will no longer force a reload the whole page. You can restore the previous behavior by modifying the advanced setting blockingProfiles.
  • Closed as fixed:
  • Core:
  • GitHub dark mode makes whole page invisible when element picker is active
  • :watch-attr() stopped working (regression in 1.30.0)
  • uBO should ignore redirect= directives with unrecognized redirect token
  • Can't load the images
  • Reverse lookup partially fails for a filter redirecting to empty media resource
  • Add AdGuard's "$removeparam" as an alias for "$queryprune"
  • Network error entries in the logger are no longer colored in red
  • Support parsing "Homepage:" list header for custom lists
  • Please change the dashboard icon to a gear
  • Improve source & destination sorting in "My rules" settings pane
  • uBO badge counter doesn't work when network requests originate from service-workers
  • Convert "$rewrite=abp-resource" into "$redirect"
  • Migrate icons to FontAwesome svg files (from the font file)
  • Element picker works incorrectly on mail.com
  • Notable commits without en entry in the issue tracker:
  • Fix case of scriptlet injection not working in about: frames
  • Add new scriptlet: no-fetch-if
  • Add support for match-case option; fine-tune behavior of redirect=
  • Add support to auto-complete values of domain lists
  • Improve representation of modifier filters in logger

New in uBlock Origin 1.31.2 (Dec 4, 2020)

  • Closed as fixed:
  • tabs.removeCSS does not work as expected in Chromium 87
  • Commit with no entry in issue tracker:
  • Fix handling of no-longer-existing port condition

New in uBlock Origin 1.31.0 (Nov 21, 2020)

  • Core:
  • "Home" button on Strict blocking page works incorrectly in some cases
  • Implement a version of "{{origin}}" that uses the whole URL and not just the domain
  • cosmetic filter ## selector is valid in element picker only
  • Implement $queryprune parameter
  • Calling callback if provided for google analytics mock
  • Redirection syntax issue
  • Use user styles to collapse the placeholder of blocked resources
  • Make load-on-demand smarter for blocked large media elements
  • Notable commits with no entry in issue tracker:
  • Work around Firefox's data: favIconUrl leak
  • Make json-prune scriptlet also trap Response.json() calls
  • Incrementally improve static filtering parser
  • Coallesce origin hit filters into their own bucket
  • Allow domain= with entity values into pre-test buckets
  • Enable origin-hit coalescing optimisation for modifier filters
  • Re-classify redirect= option as a modifier option
  • Improve token extraction from regex-based filters
  • Improve specificity slider in element picker
  • Use a CodeMirror editor instance in element picker
  • Add support for click-to-load of embedded frames
  • Minor improvements to syntax highlight of static filters

New in uBlock Origin 1.30.6 (Oct 21, 2020)

  • Fixed:
  • Prevent set-constant from trapping non-configurable properties [regression]

New in uBlock Origin 1.30.4 (Oct 13, 2020)

  • Fixed:
  • Prevent set-constant properties from being overtaken[regression]
  • Update urlhaus-filter URL
  • Update for twitch.tv (pull request by @pixeltris)

New in uBlock Origin 1.30.2 (Oct 7, 2020)

  • Fixed:
  • Fix picker generating overly long candidate cosmetic filters [regression]

New in uBlock Origin 1.30.0 (Sep 29, 2020)

  • Closed as fixed:
  • Firefox for Android:
  • Fenix device name submit form
  • Core:
  • Improper support of IPv6 addresses in static filter domain= option
  • has() not work on
  • Cosmetic filters interfere with element picker visuals
  • Picker gets deformed when a cosmetic filter is added
  • Add Support for AdGuard special case pre-processor directives
  • Sort dynamic filter list by destination / host components
  • Better parsing of hosts file system addresses
  • Can't control specificity in element picker with Firefox for Android
  • Subscriber script needs to be improved
  • Add ability to view changes only in My Rules
  • Combining procedural selector :has() and :style()
  • Add visual hint for last selected entry in element picker
  • Prevent malicious pages from tampering with element picker
  • Notable commits with no entry in issue tracker:
  • Prevent spurious instantiation of procedural filterer
  • Add abort-on-stack-trace scriptlet
  • Related discussion: AdguardTeam/Scriptlets#82
  • Fix ability to overwrite overquota'ed cloud storage
  • Add support for blocklist of filter lists
  • Add concept of "really bad list" to badlists infrastructure
  • Use modern popup panel in logger
  • Add support for cloud storage compression
  • Add widget to convey the amount of sync storage in use
  • Fix cloud storage errors not reported in user interface

New in uBlock Origin 1.29.2 (Aug 21, 2020)

  • Fixes:
  • Add argument to nowoif scriptlet
  • Fix regression in set-constant scriptlet

New in uBlock Origin 1.29.0 (Aug 10, 2020)

  • Closed as fixed:
  • Open tabs can be closed when opening a webpage from about:newtab
  • Use ISO8061 dates in user filter comments
  • Support new Chromium based Edge in pre-parsing directives
  • Do not triggers strict blocking for wildcard-only patterns
  • Reverse lookup fails for filter of type example.com##*
  • New filter parser creates unexpected network filter from malformed cosmetic filter
  • Avoid loading "!#include" filepaths that are wrapped into "!#if" tags that exclude the browser's environment
  • Use "Trusted sites" instead of "Whitelist"
  • Element picker suggests unhelpful network rule
  • Logger shows names of scriptlet as different ones if short-hand is used
  • A problem with cyrillic characters
  • Adding csp to logger's filter expression picker
  • Cosmetic filters in about:blank iframe
  • Adguard French filter
  • Can't use set-constant.js multiple times for same parent property
  • Improve/refine syntax highlighter, specifically:
  • Fix properly reporting invalid filter options
  • Add syntax highlighting/auto-completion for preparsing directives
  • Add CoreMirror's code-folding ability to list editor/viewer
  • Notable commits with no entry in issue tracker:
  • Remove experimental click-to-load disqus scriptlets
  • Improve annotations for search operations in CodeMirror editor
  • Consolidate filter list reverse lookup code into a single file
  • Allow :upward() operator to select html element
  • Instantiate procedural filterer instance on demand only
  • Deprecate pseudo user styles code
  • Mind discarded status of tabs when internally handling them
  • Do not let grow subframe dictionary grow unbound
  • Consider an empty pattern with anchors to be dubious
  • Add static filter parser checklist
  • Fix highligthing of FQDN match in logger
  • Add support to compare delay against literal Number.NaN in nossif/nostif

New in uBlock Origin 1.28.4 (Jul 22, 2020)

  • Closed as fixed:
  • Add cdn.jsdelivr.net mirror for urlhaus blocklist
  • Remove repo.or.cz from list of CDNs for urlhaus blocklist
  • Fix spurious rejection of some AdGuard redirect filters
  • Fix the reporting of invalid static extended filters in the logger
  • Fix improper rejecting fitlers with $all,~document options

New in uBlock Origin 1.28.2 (Jul 15, 2020)

  • Changes:
  • Both stock malware domain lists, which are enabled by default in uBO, have been replaced by URLhaus Malicious URL blocklist, which is now enabled by default in uBO.
  • For existing installations, both removed malware lists will be moved to the Custom section if you still have them enabled. It is recommended you remove these lists from your Custom lists -- only you can do this, uBO does not remove lists which are currently enabled. It may take a few days before you are updated with the new default stock lists.
  • Closed as fixed:
  • Remove Malware Domain List:
  • Remove Malware domains
  • Remove Malware Domain List

New in uBlock Origin 1.28.0 (Jul 10, 2020)

  • Changes:
  • ##script:inject(...), which has been deprecated in favor of ##+js(...) for more than two years, is no longer supported.
  • It's no longer possible to point-and-click to create allow (green) rules from within the popup panel by default. This change is motivated by seeing way too many cases of improper usage of dynamic filtering in which users are creating allow (green) rules where noop (gray) rules should have been used. You can get back temporarily the ability to create allow rules from within the popup panel by tapping twice the Ctrl key.
  • Improved syntax highlighting of static filters in "My filters" and asset viewer. Additionally, in "My filters":
  • Ability to toggle commenting out of filter(s) by pressing the Tab key
  • Auto-completion using Ctrl-Space, this works for:
  • Static filter options
  • Resource names for redirect= option
  • Procedural operators for cosmetic/HTML filters
  • Scriptlet names for ##+js filters
  • Closed as fixed:
  • Cookie-remover.js does not remove a cookie
  • A possibility of using default system fonts for uBlock Origin?
  • Some RegExp filters are not parsed properly
  • Add support for entity-matching in domain= filter option
  • Notable commits with no entry in issue tracker:
  • Fix edge case involving filter with a single wildcard
  • Add support for wildcard/array in json-prune
  • Fix matching of filters with trailing ^|
  • Make the creation of allow rules in panel an opt-in feature
  • Add ability to lock firewall height to basic pane height
  • Fix uselessly allocating one extra WASM page
  • Replace FilterPlainHostname with composite filter

New in uBlock Origin 1.27.10 (May 28, 2020)

  • Firefox: Pending review:
  • uBO works best on Firefox.

New in uBlock Origin 1.27.6 (May 22, 2020)

  • Notable commits with no entry in issue tracker:
  • [regression] Fix computing the path of nested lists
  • Ensure either `.desktop` or `.mobile` class is set

New in uBlock Origin 1.27.4 (May 19, 2020)

  • Changes:
  • Add Armenian locale
  • Notable commits with no entry in issue tracker:
  • More fine tuning of desktop panel as per feedback
  • Even more fine tuning of UI as per feedback
  • More fine tuning of new UI as per feedback
  • Minor fine tuning of CSS in new popup panel
  • Restore ability to set popup panel font size in advanced settings

New in uBlock Origin 1.27.2 (May 18, 2020)

  • Closed as fixed:
  • Popup window does not have a scroll bar in the connected hosts list
  • The include directive does not work when loading local assets
  • New popup power button is not properly centered
  • Notable commits with no entry in issue tracker:
  • Minor fine tuning new panel
  • Increase min-width of #main pane in popup panel

New in uBlock Origin 1.27.0 (May 15, 2020)

  • The popup panel and dashboard have been redesigned to be more user friendly, including more mobile-friendly. The re-design is being done by taking into account @brampitoyo's suggestions and feedback.
  • Closed as fixed:
  • min-height glitch uBO element picker
  • requestAnimationFrame-if and prefixed parameter
  • Drop hot key customization options
  • Firefox 74 and above supports the removal of assigned shortcuts
  • Add new filtering category to the logger: popups
  • Nano Adblocker cannot view EasyList China + EasyList
  • Race condition at browser launch may prevent application of cosmetic filters
  • Notable commits with no entry in issue tracker:
  • Add new scriptlet to allow blocking Amazon's apstag.js
  • Add ability to open the dashboard with a keyboard shortcut
  • Support fetching assets from CDNs when auto-updating
  • First pass to re-design the dashboard
  • Second pass to re-design the dashboard
  • Third pass to re-design the dashboard
  • Fourth pass to re-design the dashboard
  • Fifth pass to re-design the dashboard
  • Sixth pass to re-design the dashboard

New in uBlock Origin 1.26.2 (Apr 21, 2020)

  • The sole purpose of this release is to ensure an up to date version of EasyList is shipped as part of the package.
  • An obsolete version of EasyList was shipped with uBO 1.26.0 and this was causing Google fonts to be unduly blocked everywhere after installing uBO for the first time.
  • Though forcing an update of filter lists would solve the issue, Google fonts should not be blocked out of the box without having to force an update of filter lists.

New in uBlock Origin 1.26.0 (Apr 7, 2020)

  • Closed as fixed:
  • Remove Adblock Warning Removal
  • Add a way to blanket-except blocked cname-based requests
  • uBO icon in Manage Your Extensions disappears in the offline mode
  • Add remove-class scriptlet
  • Picker-window doesn't appear if images on a site is chosen
  • uBlock Origin v1.25.0 new feature cause DNS leaks
  • Ability to remove DOM element instead of hiding?
  • Notable commits with no entry in issue tracker:
  • Use prime number to generate cache-bypass token
  • Allow empty needle in BidiTrieContainer.lastIndexOf()
  • Reorganize filter instances deduplication code
  • Add filter instance deduplicater in static net filtering engine
  • Add support for cname type and denyallow option
  • Support line continuation in filter lists
  • Improve window.open-defuser scriptlet
  • Improve validation of CSS selector-based cosmetic filters
  • Add procedural cosmetic operators remove() and upward()
  • Improve set-constant.js scriptlet

New in uBlock Origin 1.25.2 (Mar 10, 2020)

  • Closed as fixed:
  • In Element Zapper, support Mac keyboards’ Delete key (pull request from @roryokane)
  • Uncaught (in promise) ReferenceError: WebAssembly is not defined

New in uBlock Origin 1.24.4 (Feb 5, 2020)

  • Fixed:
  • Fix token position value when removing leading wildcard

New in uBlock Origin 1.24.2 (Dec 31, 2019)

  • Fix token array being too small for very long URL

New in uBlock Origin 1.22.5 RC 0 (Oct 1, 2019)

  • NEW:
  • Static filter option elemhide as per ABP semantic
  • The elemhide option is now fully supported, rather than being an alias of generichide. The elemhide option will be internally converted into two filters, generichide and specifichide. There have been cases raised by filter list maintainers where specifichide would be useful. Additionally, the filter options elemhide, generichide and specifichide can be aliased with ehide, ghide and shide respectively. (generichide appears over 1,300 times just in "uBlock filters".)
  • CLOSED AS FIXED:
  • Prevent uBO from being reloaded mid-session:
  • A new advanced setting -- extensionUpdateForceReload -- can be used to override this new behavior.
  • Comply with new security requirements for Chrome:
  • The changes benefit all platforms.
  • Add advanced setting to control logger popup type
  • Ignoring ping filters

New in uBlock Origin 1.22.4 (Sep 27, 2019)

  • This is an emergency fix.
  • The issue was fixed in dev build days ago, and it was originally deemed to not be a serious regression.
  • However as reported by a user on Reddit, the issue was affecting more than just the logging of cosmetic filters, it was completely breaking cosmetic filtering when the two following conditions were met:
  • uBO's own logger was opened; AND
  • Procedural cosmetic filters were injected on the page.

New in uBlock Origin 1.22.2 (Sep 9, 2019)

  • Emergency fix in ac7825c: redirection rules could be ignored under some circumstances. Regression from 3e5c9e0.

New in uBlock Origin 1.22.0 (Sep 2, 2019)

  • 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

New in uBlock Origin 1.21.6 (Jul 26, 2019)

  • This is an emergency fix for Chromium-based browsers only, version 57 and earlier. The Firefox version won't be updated to 1.21.6.

New in uBlock Origin 1.21.7 Beta 0 (Jul 24, 2019)

  • Extension icon doesn't revert back when the domain is removed from Whitelist tab
  • Dead code in assets.js
  • Auto-reloading on each blocking change in the panel
  • uBlock does not appear to honor overriding default assets.json via Chrome policy
  • uBo logger show not used :style(...) filters

New in uBlock Origin 1.21.4 (Jul 23, 2019)

  • This is an emergency fix for Chromium-based browsers only. The Firefox version won't be updated to 1.21.4.

New in uBlock Origin 1.21.5 Beta 0 (Jul 22, 2019)

  • Closed as fixed:
  • Extension icon doesn't revert back when the domain is removed from Whitelist tab
  • Dead code in assets.js
  • Auto-reloading on each blocking change in the panel
  • uBlock does not appear to honor overriding default assets.json via Chrome policy
  • Commits with no entry in issue tracker:
  • Add virtuous signal that remote code execution is not possible

New in uBlock Origin 1.21.2 (Jul 19, 2019)

  • Fix thrown exception in onHeadersReceived listener

New in uBlock Origin 1.20.2 (Jul 10, 2019)

  • This release exists only to fulfill a request by Mozilla that I submit a new version even if there is no code change, so as to test changes on the back-end of AMO.

New in uBlock Origin 1.20.0 (Jun 18, 2019)

  • Closed as fixed:
  • Does not block large media fetched over Fetch API
  • Last permanent rule is marked as changed when rules are added to the bottom
  • Dashboard open from uBO popup triggers unsaved changes dialog
  • Multiple "Advanced settings" opened
  • Redirection fails for filters having * in the host part
  • Show requests blocked in the logger as a result of csp= option
  • Element picker normalize style attrib
  • "#@#+js" entries are shown in the logger as yellow instead of green
  • no-scripting: behind-the-scene false sticks even after restoring uBO from a config where it's not present
  • Revert button remains active/clickable after clicking on Apply changes
  • "Block element" item should have ellipsis (usability)
  • Nested !#if/!#endif directives not evaluated properly
  • Hide predefined whitelist directives
  • Non-specific procedural filters
  • HTML filter showing up as cosmetic filter in logger
  • No warning for unsaved changes in dashboard
  • Logger: can't bring up filtering options for popup entries where URL does not start with http[s]
  • Switching configuration tabs [appears to stop] list updates
  • Cosmetic filter exceptions not displayed in network request logger

New in uBlock Origin 1.19.6 (May 27, 2019)

  • Fixed:
  • Fix regression affecting *$csp=-like filters

New in uBlock Origin 1.19.4 (May 24, 2019)

  • Fixed:
  • Fix error when loading a non-cached non-local asset

New in uBlock Origin 1.19.2 (May 12, 2019)

  • Closed as fixed:
  • Untokenizable filters with one wilcard no longer work

New in uBlock Origin 1.18.16 (Apr 3, 2019)

  • Closed as fixed:
  • Cosmetic filtering is not working reliably

New in uBlock Origin 1.18.14 (Mar 29, 2019)

  • Fixes an issue with restoring settings from a backup file:
  • Issue affected Firefox mostly as it was an issue with managing IndexedDB-based cache storage, which is default in Firefox.
  • Thanks to @gwarser who spent an inordinate amount of time helping narrow the issue.

New in uBlock Origin 1.18.12 (Mar 27, 2019)

  • Closed as fixed:
  • Firefox:
  • "Prevent WebRTC leaking" not working as intended
  • Commits with no entry in issue tracker:
  • Simplify code to gather storage used with StorageManager.estimate()
  • Code review of IndexedDB usage for cache storage purpose
  • Add unlimitedStorage to Firefox manifest; add timeout to IndexedDB access

New in uBlock Origin 1.18.8 (Mar 14, 2019)

  • Closed as fixed:
  • Chromium:
  • uBlock Origin conflicts with Alexa Tool

New in uBlock Origin 1.18.6 (Mar 13, 2019)

  • New:
  • Firefox will fall back to use WebExtensions storage for cache purpose when it can't use its indexedDB storage -- for example when Firefox's history setting is set to "Never remember history".
  • Closed as fixed:
  • Firefox:
  • uBlock appears to be unable to update filters in Firefox's private mode
  • Core:
  • :spath(...) in uBO logger?
  • Tilde added in attribs glitch/freeze Preview mode element picker when I use in Procedural cosmetic filters operator
  • $inline-script,domain tests for top-level domain, not the inline-script document's
  • CSS filters with unclosed pseudo classes works in preview mode

New in uBlock Origin 1.18.4 (Feb 5, 2019)

  • Firefox:
  • Cosmetic filtering not enforced at uBO launch on already opened web pages
  • Webext:
  • Platform/webext/vapi-webrequest.js breaks uBo functionality
  • Core:
  • Compute URL of sublists as relative to URL of parent list
  • Fix partyness evaluation for cases of base domain-less hostnames
  • Commits with no entry in issue tracker:
  • Fix Promise chain of WASM module load operations

New in uBlock Origin 1.18.2 (Jan 27, 2019)

  • Fixed:
  • Chromium:
  • Filter lists are considered out of date in incognito mode
  • Firefox:
  • Improve nowebrtc.js scriptlet

New in uBlock Origin 1.18.0 (Jan 25, 2019)

  • 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:
  • 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
  • configuration settings:
  • multiple criteria can be used for when to discard logger entries
  • ability to hide some columns
  • Closed as fixed:
  • Chromium:
  • Domain names aren't centered vertically in the extension's browserAction popup
  • Use IndexedDB as cache storage on Chromium platform
  • Firefox:
  • 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.
  • Core:
  • Prevent sites from disabling mouse events for element picker
  • Add an option to remove the URL comments in My filters (originally declined in #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
  • Commits with no entry in issue tracker:
  • 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

New in uBlock Origin 1.17.4 (Dec 3, 2018)

  • Closed as fixed:
  • Firefox:
  • When pasting multiple lines into the rules editor they are joined together in a single line
  • Fixed by importing latest release of CodeMirror.
  • Core:
  • ##.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

New in uBlock Origin 1.17.3 RC 5 (Nov 29, 2018)

  • Closed as fixed:
  • Firefox:
  • When pasting multiple lines into the rules editor they are joined together in a single line
  • Fixed by importing latest release of CodeMirror.
  • Core:
  • ##.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

New in uBlock Origin 1.17.3 Beta 8 (Nov 9, 2018)

  • Closed as fixed:
  • Chromium:
  • Fixed regression in dev build, potentially causing "Save As..." of images or media to fail.

New in uBlock Origin 1.17.3 Beta 4 (Oct 30, 2018)

  • Closed as fixed:
  • Core:
  • Improve usability of temporarily disabling strict-blocking

New in uBlock Origin 1.17.3 Beta 2 (Oct 25, 2018)

  • Closed as fixed:
  • Core:
  • "Update now" button flashes for 1 second before changing the count numbers

New in uBlock Origin 1.17.3 Beta 0 (Oct 24, 2018)

  • Closed as fixed:
  • Firefox:
  • Fixed by importing latest release of CodeMirror.
  • Core:
  • UI Search field and it's search counter interfere with each other / unreadable
  • HTML filter exception doesn't work
  • $badfilter does not work on a CSP filter

New in uBlock Origin 1.17.1 Beta 0 (Sep 26, 2018)

  • Closed as fixed:
  • Firefox:
  • When pasting multiple lines into the rules editor they are joined together in a single line

New in uBlock Origin 1.17.0 (Sep 26, 2018)

  • 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
  • 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

New in uBlock Origin 1.16.21 RC 1 (Sep 20, 2018)

  • 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
  • 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

New in uBlock Origin 1.16.21 Beta 6 (Sep 10, 2018)

  • Firefox:
  • "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
  • 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

New in uBlock Origin 1.16.21 Beta 0 (Aug 27, 2018)

  • New:
  • 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 uBlockOrigin/uBlock-issues#141 for related discussion.
  • CLOSED AS FIXED:
  • Firefox:
  • "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
  • Core:
  • Code exception in contentscript.js (vAPI.setTimeout) when opening Chrome last session tabs that are partly cached
  • Element picker mishandles identifiers with backslashes

New in uBlock Origin 1.16.20 (Aug 27, 2018)

  • 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.
  • 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.

New in uBlock Origin 1.16.16 (Aug 13, 2018)

  • 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

New in uBlock Origin 1.16.15 Beta 4 (Jul 23, 2018)

  • Core:
  • 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

New in uBlock Origin 1.16.15 Beta 3 (Jul 21, 2018)

  • CLOSED AS FIXED:
  • Core:
  • Element picker cannot be toggled before a site is fully loaded

New in uBlock Origin 1.16.15 Beta 0 (Jul 19, 2018)

  • Closed as fixed:
  • Firefox: Add a pane in the dashboard (Firefox only) to assign keyboard shortcuts

New in uBlock Origin 1.16.14 (Jul 18, 2018)

  • Closed as fixed:
  • Race condition at filter lists load time potentially breaking highly-generic cosmetic filters (dcd98f4)
  • 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

New in uBlock Origin 1.16.13 RC 1 (Jul 17, 2018)

  • Closed as fixed:
  • Race condition at filter lists load time potentially breaking highly-generic cosmetic filters (dcd98f4)

New in uBlock Origin 1.16.13 RC 0 (Jul 10, 2018)

  • Cursor jumps to next matched item when adding char to search

New in uBlock Origin 1.16.13 Beta 2 (Jul 7, 2018)

  • Closed as fixed:
  • Infinite update attempts with "AdGuard Experimental filter"

New in uBlock Origin 1.16.13 Beta 1 (Jul 5, 2018)

  • Closed as fixed:
  • Odd sorting in popup domains list when domains have same SLD but different TLD
  • Cosmetic rules not logged for embedded YouTube videos

New in uBlock Origin 1.16.12 (Jul 5, 2018)

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

New in uBlock Origin 1.16.11 RC 1 (Jun 25, 2018)

  • Chromium-based browsers:
  • Fixed incorrectly rendered overview pane of popup panel -- as seen in this screenshot from this Reddit post.
  • Core:
  • badfilter + matching duplicate user filter created from picker or logger may rarely cause a js exception

New in uBlock Origin 1.16.11 RC 0 (Jun 18, 2018)

  • Fixed incorrectly rendered overview pane of popup panel.

New in uBlock Origin 1.16.10 (Jun 13, 2018)

  • Closed as fixed:
  • HTML filters occasionally lost effectiveness
  • Round hour up to nearest day

New in uBlock Origin 1.16.9 Beta 0 (May 27, 2018)

  • Chromium:
  • Early injection of scriptlets (see c5d8588): Using tabs.executeScript() to inject scriptlets at document_start allows to inject scriptlets earlier and hence increase likelihood that the scriptlets will win the race against a page's scripts.
  • Firefox:
  • HTML filters occasionally lost effectiveness
  • Core:
  • Round hour up to nearest day

New in uBlock Origin 1.16.7 Beta 2 (May 19, 2018)

  • 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
  • uBO webext doesn't fill entire panel space
  • uBO element picker & Stylus

New in uBlock Origin 1.16.6 (May 19, 2018)

  • 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
  • uBO webext doesn't fill entire panel space
  • uBO element picker & Stylus

New in uBlock Origin 1.16.5b0 Beta (May 5, 2018)

  • Closed as fixed:
  • Firefox: uBO webext doesn't fill entire panel space

New in uBlock Origin 1.16.4 (May 5, 2018)

  • 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

New in uBlock Origin 1.16.2 (Apr 26, 2018)

  • CHROMIUM BUILDS WITHOUT WEBRTC:
  • uBO 1.16 crashes on Chromium 66 [Regression]
  • CHROMIUM-BASED BROWSERS:
  • Spurious redirect conflicts with HTTPS Everywhere
  • FIREFOX LEGACY:
  • Have behind-the-scene whitelisted for uBO/legacy
  • FIREFOX 52 ESR + UBO/WEBEXT:
  • Firefox 52 ESR + spoofed user agent string fools uBO into thinking cssOrigin is supported [Regression]
  • FIREFOX WEBEXT:
  • Insufficient escaping in patchScriptlet if streamScriptInjectFilters is enabled:
  • Ability to inject scriptlets through response data filtering has been entirely removed for the time being
  • The advanced setting streamScriptInjectFilters has been removed
  • CORE:
  • Text in popup panel tooltip is out of context
  • Minor fixes to code (pull request from @anvakl)
  • Firewall pane's save/revert not showing up when scrolled down on small screens: Found this myself, fixed without opening a formal issue.
  • Underscore in domain name breaks whitelist editor: Fixed with pull request from @jspenguin2017
  • Element picker text area has unreadable text

New in uBlock Origin 1.16.1 RC 0 (Apr 21, 2018)

  • CLOSED AS FIXED:
  • Firefox legacy:
  • [Firefox legacy] Have behind-the-scene whitelisted for uBO/legacy
  • Core:
  • Firewall pane's save/revert not showing up when scrolled down on small screens: Found this myself, fixed without opening a formal issue.
  • Underscore in domain name breaks whitelist editor: Fixed with pull request from @jspenguin2017
  • Element picker text area has unreadable text

New in uBlock Origin 1.16.0 (Apr 20, 2018)

  • 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).
  • 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

New in uBlock Origin 1.15.25 Beta 0 (Apr 3, 2018)

  • Closed as fixed:
  • Firefox - Blank pages with stream filtering + content-type header missing.

New in uBlock Origin 1.15.24 (Apr 3, 2018)

  • 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.

New in uBlock Origin 1.15.19 Beta 1 (Mar 22, 2018)

  • Fixed #3624: 2 included filterlists by directive are doubled.

New in uBlock Origin 1.15.16 (Mar 17, 2018)

  • Closed as fixed:
  • "My Rules" tab is not displayed properly in FF RTL

New in uBlock Origin 1.15.14 (Mar 17, 2018)

  • 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

New in uBlock Origin 1.15.11b12 Beta (Mar 12, 2018)

  • Core:
  • Filters starting with * and followed by a uppercase letter are improperly parsed

New in uBlock Origin 1.15.11b9 Beta (Mar 6, 2018)

  • Firefox:
  • HTML Filter with ^ has no effect
  • Behind-the-scene websocket's not being filtered by uBO
  • Core:
  • Normalize all tab id values to integer
  • Make Ctrl + S save changes to My Filters

New in uBlock Origin 1.15.11b0 Beta (Feb 22, 2018)

  • 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 uBlockOrigin/uAssets#1492, which was the main reason to disable stream filtering-based scriptlets injection in 1.15.10.
  • Nightly:
  • Redirection to neutered scriptlet broken by forbidden redirection to data: urls
  • Core:
  • Using IPv6 address in dynamic rule
  • Site CSP's prevent surrogates from being loaded. google-analytics on Twitter for example

New in uBlock Origin 1.15.10 (Feb 21, 2018)

  • HTML filtering is still available, i.e. filters using the ##^ syntax are unaffected.
  • 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

New in uBlock Origin 1.15.7b2 Beta (Feb 17, 2018)

  • help address nikrolls#103
  • add instruction URL to POL filter list
  • Put the remarks as comments in ISSUE_TEMPLATE.MD (#2620)
  • import translation work from https://crowdin.com/project/ublock
  • fix uBlockOrigin/uAssets#1546
  • import emergency fix from 1.15.6
  • code review for #3474, #2823: simplify management of "web accessible resources
  • abandon separate, distinct webext version for dev build
  • code review: prevent redirection to WAR when request is xmlhttprequest

New in uBlock Origin 1.15.7b1 Beta (Feb 16, 2018)

  • Nightly:
  • Redirection to neutered scriptlet broken by forbidden redirection to data: urls
  • Core:
  • Using IPv6 address in dynamic rule
  • Site CSP's prevent surrogates from being loaded. google-analytics on Twitter for example

New in uBlock Origin 1.15.6 (Feb 13, 2018)

  • Emergency fix:
  • Wrong encoding results in garbled characters on German site.

New in uBlock Origin 1.15.0 (Feb 2, 2018)

  • 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.
  • 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.
  • 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.
  • 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 Ctrl 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

New in uBlock Origin 1.14.25 RC 0 (Jan 14, 2018)

  • 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.
  • 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.
  • 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.
  • CLOSED AS FIXED:
  • Firefox:
  • 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
  • Core:
  • uBO's own reload button does not do a cache-invalidating reload. Press Ctrl 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

New in uBlock Origin 1.14.24 (Jan 14, 2018)

  • 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.

New in uBlock Origin 1.14.23 RC 0 (Jan 12, 2018)

  • CLOSED AS FIXED:
  • Firefox:
  • Ability to open the logger into the browser's sidebar
  • Core:
  • uBO's own reload button does not do a cache-invalidating reload. Press Ctrl while clicking to force a bypass of the browser cache.

New in uBlock Origin 1.14.23b13 Beta (Jan 5, 2018)

  • 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.
  • 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.
  • CLOSED AS FIXED:
  • Firefox:
  • script:contains() does not work in WebExtensions
  • Evaluate using the new webRequest API to filter a response body on the fly
  • Core:
  • 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

New in uBlock Origin 1.14.23b1 Beta (Dec 18, 2017)

  • New:
  • 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 AdguardTeam/AdguardBrowserExtension#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 cross-origin requests for embedded filter lists: an embedded filter list must have the same origin as the embedding list (i.e. be on the same server). If it's not the case, the embedded filter list is rejected. Typically, filter list maintainers will just use a single file name, as seen in the example above, in which case same-origin is implicit.
  • Closed as fixed:
  • Scriplet injections are Not Logged

New in uBlock Origin 1.14.23b0 Beta (Dec 16, 2017)

  • 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 AdguardTeam/AdguardBrowserExtension#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.

New in uBlock Origin 1.14.22 (Dec 15, 2017)

  • 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

New in uBlock Origin 1.14.21rc4 RC (Dec 11, 2017)

  • Core:
  • 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

New in uBlock Origin 1.14.21rc1 RC (Dec 5, 2017)

  • Closed as fixed:
  • Chromium Ocsigen.org freezes when clicking links

New in uBlock Origin 1.14.21rc0 RC (Dec 5, 2017)

  • Accepted pull requests:
  • Change URL for CZ/SK filters and add "sk" lang
  • Closed as fixed::
  • [Japanese] Seconds on the logger page not showing issue

New in uBlock Origin 1.14.20 (Dec 1, 2017)

  • FIREFOX:
  • NoScript WebExtension and its CSP reports
  • Use local image in Add-ons Manager
  • suspendTabsUntilReady and Violentmonkey compatibility issue
  • CORE:
  • NSFW not closed popup
  • [Regression] Preview of CSS 'style' filters no longer works
  • A case that a custom RegExp rule doesn't work
  • $generichide filter entry appears twice in the Logger on first load
  • uBlock unhides hidden elements when it's updated
  • [Regression] :style filters incorrectly shown in logger
  • '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 element
  • 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).
  • [Performance] RegExp uses undue amount of memory on Chromium-based browsers:
  • Reported as a core issue because the fix also benefits Firefox performance-wise.

New in uBlock Origin 1.14.19b8 Beta (Nov 20, 2017)

  • 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.
  • CLOSED AS FIXED:
  • Firefox:
  • Use local image in Add-ons Manager
  • suspendTabsUntilReady and Violentmonkey compatibility issue
  • Core:
  • 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
  • [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
  • '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 element

New in uBlock Origin 1.14.18 (Nov 20, 2017)

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

New in uBlock Origin 1.14.17b2 Beta (Oct 24, 2017)

  • CLOSED AS FIXED:
  • Core:
  • uBO is blocking legitimate CSP reports
  • Move pseudo-user stylesheets out of contentscript.js

New in uBlock Origin 1.14.15b1 Beta (Oct 14, 2017)

  • CLOSED AS FIXED:
  • Core:
  • Specific $popup filters incorrectly converted to $popunder
  • Popup detection mistake
  • no-popups: * true rule issue

New in uBlock Origin 1.14.15b0 Beta (Oct 12, 2017)

  • CLOSED AS FIXED:
  • Core:
  • Static filtering: left-anchor / right-anchor

New in uBlock Origin 1.14.14 (Oct 9, 2017)

  • CLOSED AS FIXED:
  • Firefox Nightly:
  • has/if filters rejected if contains > char after recent changes

New in uBlock Origin 1.14.11 RC 12 (Oct 6, 2017)

  • CLOSED AS FIXED:
  • Firefox/webext:
  • Blocked Elements Still Showing Placeholder
  • Popup/popunder blocking broken after opening uBO's dashboard through popup panel

New in uBlock Origin 1.14.11 RC 1 (Sep 26, 2017)

  • Removed:
  • "KOR: Fanboy's Korean" (marked as "officially unsupported")
  • "RUS: BitBlock" (see #3019 (comment)

New in uBlock Origin 1.14.11b1 Beta (Sep 17, 2017)

  • CHANGES IN SELECTION OF STOCK FILTER LISTS:
  • Added:
  • "Adguard Generic 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 Annoyances" (in "Annoyances" section)
  • "Fanboy's Cookiemonster" (in "Annoyances" section)
  • 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)
  • "EU: Prebake" (no longer maintained)
  • 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).

New in uBlock Origin 1.14.11b0 Beta (Sep 14, 2017)

  • Firefox:
  • Sync is bogus with the new version of uBlock
  • Core:
  • Prebake - Filter Obtrusive Cookie Notices - not updated
  • The filter list category Social has been renamed to broader Annoyances.
  • Prebake, Reek's filter lists have been removed.
  • Fanboy's Cookiemonster filter list has been added to Annoyances section.
  • Adguard Annoyance filter list has been added to Annoyances section.
  • These changes will take effect next time your assets.json resource is updated.
  • Middle clicking on a link triggers popup rule
  • Unsupported genericblock causes supported generichide to be ignored
  • no-remote-fonts option not working for inlined fonts

New in uBlock Origin 1.14.10 (Sep 13, 2017)

  • Firefox 52-56 (webext):
  • 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 04a41d8.

New in uBlock Origin 1.14.9b1 Beta (Sep 12, 2017)

  • FIREFOX:
  • Sync is bogus with the new version of uBlock
  • CORE:
  • Middle clicking on a link triggers popup rule
  • no-remote-fonts option not working for inlined fonts
  • Prebake - Filter Obtrusive Cookie Notices - not updated:
  • The filter list category Social has been renamed to broader Annoyances.
  • Prebake, Reek's filter lists have been removed.
  • Fanboy's Cookiemonster filter list has been added to Annoyances section.
  • Adguard Annoyance filter list has been added to Annoyances section.
  • These changes will take effect next time your assets.json resource is updated.

New in uBlock Origin 1.14.9b0 Beta (Sep 6, 2017)

  • Closed as fixed:
  • Core: Middle clicking on a link triggers popup rule.

New in uBlock Origin 1.14.8 (Sep 4, 2017)

  • Closed as fixed:
  • Firefox 52 ESR: Cosmetic filtering broken on Firefox 52 ESR.

New in uBlock Origin 1.14.5 RC 1 (Sep 2, 2017)

  • CLOSED AS FIXED:
  • Firefox:
  • Static filters not working with urls containing latin chars. The issue affects uBO/webext on Firefox 55 only, it was fixed in Firefox 56.

New in uBlock Origin 1.14.3b1 Beta (Sep 1, 2017)

  • Closed as fixed:
  • A custom filter not working on uBO v1.13.11rc0 / v1.14.0, but working on 1.13.8 (regression from b2e89c9).

New in uBlock Origin 1.14.0 (Sep 1, 2017)

  • CLOSED AS FIXED:
  • Firefox:
  • Use indexedDB instead of browser.local.storage for cached assets
  • Core:
  • Fixed bad test (regression from fdcc951).
  • Generate better regex for hostname-anchored generic filters (there are ~4,500 such filters with default filter lists).
  • Update 1: Apparently there are more issues for people using the 32-bit version of Firefox. See https://bugzilla.mozilla.org/show_bug.cgi?id=1371255#c21. Please report such issues to Firefox devs, there is nothing I can do. I can only recommend to people with Firefox 32-bit to stay on 1.13.8, or optionally install uBlock.firefox.xpi (legacy version) from Releases section.
  • Update 2: Also, there appears to be a limit to how much data can be stored in indexedDB, so if you have many more extra filter lists, not all of them will be able to load, and this can also break the future updating of whichever filter lists could load. In short, total mess. Just as I feared, there are issues with indexedDB.

New in uBlock Origin 1.13.11 RC 1 (Aug 30, 2017)

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

New in uBlock Origin 1.13.11 RC 0 (Aug 29, 2017)

  • Fixed:
  • Fixed bad test (regression from fdcc951).
  • Generate better regex for hostname-anchored generic filters (there are ~4,500 such filters with default filter lists).

New in uBlock Origin 1.13.10 (Aug 29, 2017)

  • Firefox:
  • Annoying popup when navigating to addon detail page in Add-on Manager
  • Development Version (1.13.9) on Firefox Nightly Unusable if Cookies are not accepted
  • Core:
  • Element picker mode doesn't cover whole page on opennet.ru
  • [Performance] Reduce overhead of handling the collapsing of blocked resources
  • Please consider changing the popup icon's cross sign
  • Using an allow rule on 1st-party hostname does not prevent scriptlets injection
  • Image download fails with "Failed - Blocked" with no-large-media enabled with small max size
  • uBO doesn't apply :style() filters in some situations
  • uBlock slows browserbench.org/Speedometer
  • contentscript.js:77 Uncaught Error: uBlock Origin: aborting content scripts for http://limonte.github.io/svg/head.svg.xml

New in uBlock Origin 1.13.9b0 Beta (Jul 21, 2017)

  • Firefox WebExtensions:
  • The webext (-hybrid) version of uBO has been released to the dev channel on AMO.
  • The first time it executes, there might be a noticeable delay: this is caused by the fact that uBO will import all the data from legacy storage, into webext storage. This is done only the first time the webext (-hybrid) version is executed, after this the import step will be skipped. If you subsequently remove uBO, this will cause the webext storage to be removed by Firefox, and upon re-installing the webext version, the import code will again kick in.
  • Note that uBO/webext will still be labelled as "Legacy" in about:addons, because uBO/webext is really a webext-hybrid extension. Once the legacy storage has been imported by the thin legacy wrapper, uBO will fully function as a pure webext extension despite the "Legacy" label.
  • The legacy storage is left untouched by uBO/webext, so you can always go back to uBO/legacy (stable release) if you do not want to use the webext version in the short term.

New in uBlock Origin 1.13.8 (Jul 18, 2017)

  • Stock filter lists:
  • I added code to enable me to remove stock filter lists in a seamless way for users. There are a couple of stock filter lists I wish to remove (because no longer maintained), but I refrain from doing so because it would be rude to remove a stock filter list which might be enabled for some users out there. The added code will convert removed stock filter lists which are enabled into imported filter lists, so that no change occurs in the resulting filterset from a user's point of view.
  • Firefox WebExtensions:
  • I received an email from Firefox informing me that on September 1st, 2017, all the extensions having "featured" status which are not converted to webext on AMO will lose their "featured" status. At this point, I am considering pushing the webext-hybrid version of uBO into uBO's dev channel on AMO. I don't think the webext-hybrid qualifies as a webext, but is a necessary step to migrate user data seamlessly.
  • Closed as fixed:
  • [Performance] Extract token from regex-based filters if possible
  • Logger incorrectly shows all popups as blocked by one filter
  • One more filter parsing issue in the logger
  • How about adding "^" to static filter made from logger?

New in uBlock Origin 1.13.7b1 Beta (Jul 4, 2017)

  • Closed as fixed:
  • One more filter parsing issue in the logger
  • How about adding "^" to static filter made from logger?

New in uBlock Origin 1.13.6 (Jul 3, 2017)

  • This release contains a fix for Opera browser specifically -- no point installing it on other browsers.
  • Closed as fixed:
  • uBlock Origin opera isn't blocking ad banner, but uBlock Origin chrome does

New in uBlock Origin 1.13.4 (Jun 27, 2017)

  • FIREFOX:
  • Inconvenient default hotkey mapping activation:
  • You will have to assign yourself whatever keyboard shortcut you want, there are no longer default shortcuts.
  • Open about:config and search for ublock0.shortcuts. No value means no shortcut.
  • See modifiers for valid modifiers.
  • Modifiers and key must be dash-separated (-), example: alt-shift-Z.
  • CORE:
  • Logger color too bright for cosmetic hiding [color-blind mode]
  • Settings gear not displaying in 1.13

New in uBlock Origin 1.13.3b1 Beta (Jun 23, 2017)

  • Firefox:
  • Inconvenient default hotkey mapping activation
  • You will have to assign yourself whatever keyboard shortcut you want, there are no longer default shortcuts.
  • Open about:config and search for ublock0.shortcuts. No value means no shortcut.
  • See modifiers for valid modifiers.
  • Modifiers and key must be dash-separated (-), example: alt-shift-z.

New in uBlock Origin 1.13.3b0 Beta (Jun 22, 2017)

  • Closed as fixed:
  • Settings gear not displaying in 1.13

New in uBlock Origin 1.13.2 (Jun 22, 2017)

  • Closed as fixed:
  • Chromium-based browsers
  • Inconvenient default hotkey mapping activation
  • Reportedly, the default keyboard shortcut I picked do not work for all locales. Consequently I removed default shortcuts and users will have to pick whatever work for them.
  • Important: For those already affected by the issue, the suggested shortcuts were already added and won't be removed with this update. You will have to remove or re-assign yourself by clicking "Keyboard shortcuts" link in the page chrome://extensions -- the link is at the bottom of the page.
  • Google Chrome, with uBO installed from Chrome store:
  • The extension is disabled in chrome
  • More specifically, this is due to a Chromium bug, see #2720 (comment).
  • Chromium bug: https://bugs.chromium.org/p/chromium/issues/detail?id=720597.
  • As reported by users, if you click Repair, you will lose all your settings in uBO, see #2720 (comment).
  • Consequently, force an update of the extension, do not click "Repair" -- my understanding so far is that forcing an update will not cause all your uBO settings to be lost.
  • 1.13.0 had been released to only 20% of all Chrome store users.
  • In the unfortunate event all your uBO settings were lost, you will have to restore them. If you do not have a backup of your settings, you may give this a try.

New in uBlock Origin 1.13.0 (Jun 20, 2017)

  • NEW:
  • New static network filter option: csp=:
  • This new filter option allows to inject any Content Security Policy header in pages matching the filter. See #1930 (comment) for discussion about the rationale behind this new filter option.
  • Some existing filters may be converted internally to csp=-based filters by uBO. For example, a filter such as |blob:$script,[...] will be converted to *$csp=script-src 'self' * data: 'unsafe-inline' 'unsafe-eval',[...], in order to enforce the blocking of blob:-based URIs for scripts, something otherwise not possible through the chrome.webRequest API.
  • Element zapper:
  • Ability to zap DOM elements on the current page.
  • The purpose is to quickly deal with the removal of nuisance elements on a page without having to create one or more filters: see documentation.
  • Support for keyboard shortcuts:
  • Enter element zapper mode: default to Alt-Z.
  • Enter element picker mode: default to Alt-X.
  • Open logger: default to Alt-L
  • For Chromium or WebExtension-compatible browsers:
  • You can re-configure the shortcuts through the browser API. For Chromium-based browsers, go to chrome://extensions, scroll down then click on "Keyboard shortcuts". I suppose this depends of the browser, you will have to investigate.
  • For Firefox (non-webext version):
  • You can re-configure the default shortcuts for the above commands by opening about:config and filtering with extensions.ublock0. The default shortcuts are built-in, if you want to re-defined or un-set them, you will have to create the entries:
  • extensions.ublock0.shortcuts.launch-element-zapper
  • extensions.ublock0.shortcuts.launch-element-picker
  • extensions.ublock0.shortcuts.launch-logger
  • To disable a built-in shortcut, set the value to -.
  • To reset to a default shortcut, reset the corresponding entry in about:config.
  • These about:config shortcut values are read only at launch time, so you will have to restart uBO for the changes to take effect.
  • CHANGES:
  • Some refactoring work of static filtering engine:
  • to be more modular and hence make it easier to extent filter syntax
  • to lessen overhead overall
  • to address #2598, #2630
  • to extend filter syntax to support csp= filter option.
  • This is an important refactoring. At first my intention was to add support for csp= filter syntax, but this required some refactoring, and while at it I decided to address a lot of other details regarding static filtering engine which I meant to address since a while, hence the extent of the changes to the code.
  • As a result, I have observed that baseline memory footprint of uBO itself is 5-6 MB less with 1.13.0 compared to 1.12.4 on both Chromium and Firefox (Linux 64-bit, default uBO settings).
  • Improved compatibility with Adguard's filter lists:
  • See #2624. I do plan to add Adguard's English filter lists to uBO's stock filter lists for the next stable release.
  • Given that both Adguard and uBO support advanced filter syntax not supported by ABP (which advanced syntax benefit end users and make a filter list maintainer's life easier), and given that EasyList maintainers are limiting themselves to support no more than what ABP can support, enabling Adguard's filter lists as default list in their respective locale is something I am considering.
  • CLOSED AS FIXED:
  • Firefox Nightly:
  • uBO toolbar menu is too wide again
  • Menu has too much space on the top and bottom
  • Core:
  • ||*tube.com^ for youtube.com is not working
  • [Performance] tokenize URLs to numeric values instead of substring values
  • Support Adguard's [-ext-has="..."] syntax => convert to uBO's :if(...)
  • ABP Subscription Links Not Understood
  • uBlock Origin for Google Chrome and apiBreaker
  • [Performance] Mind the potential negative consequences of String.slice()
  • Dynamic filtering allow-all still blocks ads, log shows images allowed workers blocked
  • Cannot set exemptions to strict blocks

New in uBlock Origin 1.12.5 Beta 1 (May 13, 2017)

  • Refactoring of static filtering engine:
  • to be more modular and hence make it easier to extent filter syntax
  • to lessen overhead overall
  • to address #2598
  • to extend filter syntax to support csp= filter option

New in uBlock Origin 1.12.4 (May 13, 2017)

  • FIREFOX:
  • Unable to access logger/dashboard from popup upon session restore
  • CORE:
  • Improperly punycoded hostname for hostname-anchored filters with Unicode characters
  • Request: some unused resources are spuriously updated
  • Bad Fanboy server cache policy: This was causing uBO to use potentially severely obsolete filter lists hosted on fanboy.co.nz, or more generally putting uBO users at the mercy of flawed server caching policies.
  • Newly created filter through the element picker is ignored after quitting/launching uBO
  • GUI "gear" Blocked by Temporary Elements
  • Add adblock-iran filter list to regional lists
  • Punycode phishing attack detection:
  • Potentially ambiguous base domain names in the popup panel will be labelled Ж (a Cyrillic character), to inform the user that the domain name contains Cyrillic characters which could be confused with some ASCII characters.
  • Further reading: IDN homograph attack.
  • More longer timeout time:
  • Better handling of timeout conditions for slow connections when updating filter lists.

New in uBlock Origin 1.12.3 RC 1 (May 8, 2017)

  • FIREFOX:
  • Unable to access logger/dashboard from popup upon session restore
  • CORE:
  • Newly created filter through the element picker is ignored after quitting/launching uBO
  • GUI "gear" Blocked by Temporary Elements
  • Add adblock-iran filter list to regional lists
  • Bad Fanboy server cache policy:
  • This was causing uBO to use potentially severely obsolete filter lists hosted on fanboy.co.nz, or more generally putting uBO users at the mercy of flawed server caching policies.
  • Punycode phishing attack detection:
  • Potentially ambiguous base domain names in the popup panel will be labelled Ж (a Cyrillic character), to inform the user that the domain name contains Cyrillic characters which could be confused with some ASCII characters.
  • Further reading: IDN homograph attack (https://en.wikipedia.org/wiki/IDN_homograph_attack)
  • More longer timeout time:
  • Better handling of timeout conditions for slow connections when updating filter lists.

New in uBlock Origin 1.12.3 Beta (Apr 28, 2017)

  • FIREFOX:
  • Unable to access logger/dashboard from popup upon session restore
  • CORE:
  • GUI "gear" Blocked by Temporary Elements
  • Tabnapping prevention
  • Add adblock-iran filter list to regional lists
  • More longer timeout time:
  • Better handling of timeout conditions for slow connections.
  • Punycode phishing attack detection:
  • Potentially ambiguous base domain names in the popup panel will be labelled idn (as in "Internationalized Domain Name"), to inform the user that the domain name contains Cyrillic characters which could be confused with some ASCII characters.
  • Further reading: IDN homograph attack.

New in uBlock Origin 1.12.2 (Apr 25, 2017)

  • No code change, just a re-package with more recent filter lists to ensure uBlock Origin works out of the box with EasyPrivacy without breaking Facebook upload feature: a filter in EasyPrivacy was causing a false positive.

New in uBlock Origin 1.12.1 (Apr 18, 2017)

  • No code change, just a re-package with more recent filter lists to ensure uBlock Origin works out of the box with EasyPrivacy without breaking Facebook upload feature: a filter in EasyPrivacy was causing a false positive.
  • For existing installations, just force an update of EasyPrivacy.
  • Did not look into the details, but at first glance it seems the false positive appeared as a result of Facebook changing its code. It's unlikely sites such as Facebook (who would rather not encourage the use of blockers) would test their pages when using a blocker in order to ensure their site still works fine with a blocker.
  • A whole lot of users have no clue that most blockers work based on filter lists which can cause false positives. The Facebook issue would have happened with any blocker making use of EasyPrivacy.
  • False positives must be reported to filter list maintainers (not here), and often just forcing an update of filter lists may resolve an issue (because maybe somebody else reported the issue and it was fixed by maintainers).

New in uBlock Origin 1.12.0 (Apr 10, 2017)

  • New static network filter option: badfilter. Using this option will prevent another filter to be loaded in memory. See uBlockOrigin/uAssets#192 for rationale for having such a filter option.
  • Chromium/Firefox WebExtension:
  • Ability to support more request types from webRequest API: csp-report, font, media, websocket, and actually whatever is part of webRequest.ResourceType. This means uBO will be able to natively filter websocket connection attempts starting with Chromium 58.
  • Firefox:
  • The webext version for Firefox has been converted into a hybrid version, to allow seamless migration of uBO's settings/data from a legacy extension to webext extension. Update: due to auto-update snafu, the webext version of uBO has been given a different id than the official one, this will guarantee that auto-update won't cause issue (you will have to update manually if using the webext version).
  • Important: If you install the webext version of uBO (you need the most recent build of Nightly), this is what will happen:
  • When you launch uBO/webext for the first time, it will read all your settings/data from the old storage and migrate them to the new webext storage. This happens only if uBO/webext can find a file named ublock0.sqlite. This will happens only once, the first time you install uBO/webext. Depending of how much data there is to migrate, this may cause your browser to work hard during that first launch and delay readiness.
  • Once the data from the uBO/legacy has been migrated to uBO/webext, each version of uBO will only see its own data, meaning no change in settings in one version will be seen by the other version. If you remove uBO/webext, this also removes the storage associated to it, meaning re-installing uBO/webext following removal will cause the storage migration code to kick in again.
  • Closed as fixed:
  • Chromium:
  • Use the strictest setting for preventing the leakage of private IP addresses through WebRTC. It turns out the use of the strictest setting has (currently) the unforeseen virtuous side-effect of preventing WebRTC-delivered ads on some sites. See uBlockOrigin/uAssets#333 (comment).
  • Edge:
  • Clicking element that doesn't load due to size restriction doesn't work
  • Firefox:
  • uBO broken on Firefox mozilla-central tip (fixed by @gijsk through pull request #2493)
  • jpm sign fails (fixed by @andreicristianpetcu through pull request #2434)
  • Firefox/Webextension:
  • Webextensions under Firefox : No settings save dialog is displayed
  • Core:
  • Autogenerated filter breaks a web page
  • Cosmetic filters containing pseudo-elements like ::before and ::after are ignored
  • Unable to remove/modify dynamic filter when using wildcard
  • Dynamic URL Filtering fails to take precedence over Dynamic Filtering for worker requests
  • Enable users to create their own custom scriptlets
  • See "Advanced settings"/userResourcesLocation.

New in uBlock Origin 1.11.5 RC 5 (Apr 1, 2017)

  • Changes:
  • New static network filter option: badfilter. Using this option will prevent another filter to be loaded in memory. See uBlockOrigin/uAssets#192 for rationale for having such a filter option.
  • Chromium/Firefox WebExtension:
  • Ability to support more request types from webRequest API: csp-report, font, media, websocket, and actually whatever is part of webRequest.ResourceType. This means uBO will be able to natively filter websocket connection attempts starting with Chromium 58.
  • Firefox:
  • The webext version for Firefox has been converted into a hybrid version, to allow seamless migration of uBO's settings/data from a legacy extension to webext extension. Update: due to auto-update snafu, the webext version of uBO has been given a different id than the official one, this will guarantee that auto-update won't cause issue (you will have to update manually if using the webext version).
  • Important: If you install the webext version of uBO (you need the most recent build of Nightly), this is what will happen:
  • When you launch uBO/webext for the first time, it will read all your settings/data from the old storage and migrate them to the new webext storage. This happens only if uBO/webext can find a file named ublock0.sqlite. This will happens only once, the first time you install uBO/webext. Depending of how much data there is to migrate, this may cause your browser to work hard during that first launch and delay readiness.
  • Once the data from the uBO/legacy has been migrated to uBO/webext, each version of uBO will only see its own data, meaning no change in settings in one version will be seen by the other version. If you remove uBO/webext, this also removes the storage associated to it, meaning re-installing uBO/webext following removal will cause the storage migration code to kick in again.
  • CLOSED AS FIXED:
  • Chromium:
  • Fix https://bugs.chromium.org/p/project-zero/issues/detail?id=1225&desc=6#c10. No security issue in the case of uBO, but a web page could theoretically mess up with the functioning of uBO's content script (which main purpose is cosmetic filtering).
  • Use the strictest setting for preventing the leakage of private IP addresses through WebRTC. It turns out the use of the strictest setting has (currently) the unforeseen virtuous side-effect of preventing WebRTC-delivered ads on some sites. See uBlockOrigin/uAssets#333 (comment).
  • Edge:
  • Clicking element that doesn't load due to size restriction doesn't work
  • Firefox:
  • uBO broken on Firefox mozilla-central tip (fixed by @gijsk through pull request #2493)
  • jpm sign fails (fixed by @andreicristianpetcu through pull request #2434)
  • Core:
  • Cosmetic filters containing pseudo-elements like ::before and ::after are ignored
  • Unable to remove/modify dynamic filter when using wildcard
  • Dynamic URL Filtering fails to take precedence over Dynamic Filtering for worker requests
  • Enable users to create their own custom scriptlets

New in uBlock Origin 1.11.5b2 Beta (Mar 21, 2017)

  • CLOSED AS FIXED:
  • Edge:
  • Clicking element that doesn't load due to size restriction doesn't work
  • Firefox:
  • jpm sign fails (fixed by @andreicristianpetcu through pull request #2434)
  • Core:
  • Cosmetic filters containing pseudo-elements like ::before and ::after are ignored
  • Unable to remove/modify dynamic filter when using wildcard
  • Dynamic URL Filtering fails to take precedence over Dynamic Filtering for worker requests
  • Enable users to create their own custom scriptlets
  • See "Advanced settings"/userResourcesLocation.

New in uBlock Origin 1.11.5b0 Beta (Mar 14, 2017)

  • CHANGES:
  • New static network filter option: badfilter. Using this option will prevent another filter to be loaded in memory. See uBlockOrigin/uAssets#192 for rationale for having such a filter option.
  • Firefox:
  • The webext version for Firefox has been converted into a hybrid version, to allow seamless migration of uBO's settings/data from a legacy extension to webext extension.
  • Important: If you install the webext version of uBO (you need the most recent build of Nightly), this is what will happen: When you launch uBO for the first time, it will read all your settings/data from the old storage and migrate them to the new webext storage. This happens only if uBO can find a file named ublock0.sqlite. This will happens only once because the file will be renamed when the migration is complete. Depending of how much data there is to migrate, this may cause your browser to work hard during that first launch and delay readiness. Once the migration is completed, the old SQlite-based storage will be renamed from ublock0.sqlite to ublock0.migrated.sqlite. To go back to use the legacy version of uBO, you will have to rename ublock0.migrated.sqlite back to ublock0.sqlite before launching your browser. The location of that file is documented here. All the changes you may have performed to the settings with the webext version of uBO won't be seen by legacy uBO.
  • CLOSED AS FIXED:
  • Firefox:
  • jpm sign fails (fixed by @andreicristianpetcu through pull request #2434)
  • Core:
  • Cosmetic filters containing pseudo-elements like ::before and ::after are ignored
  • Enable users to create their own custom scriptlets. See "Advanced settings"/userResourcesLocation.

New in uBlock Origin 1.11.4 (Mar 13, 2017)

  • Closed as fixed:
  • adminSettings and filterLists: https://github.com/gorhill/uBlock/issues/2450.

New in uBlock Origin 1.11.3b0 Beta (Mar 5, 2017)

  • CHANGES:
  • The webext version for Firefox has been converted into a hybrid version, to allow seamless migration of uBO's settings/data from a legacy extension to webext extension.
  • Important: If you install the webext version of uBO (you need the most recent build of Nightly), this is what will happen:
  • When you launch uBO for the first time, it will read all your settings/data from the old storage and migrate them to the new webext storage. This happens only if uBO can find a file named ublock0.sqlite. This will happens only once because the file will be renamed when the migration is complete. Depending of how much data there is to migrate, this may cause your browser to work hard during that first launch and delay readiness.
  • Once the migration is completed, the old SQlite-based storage will be renamed from ublock0.sqlite to ublock0.migrated.sqlite.
  • To go back to use the legacy version of uBO, you will have to rename ublock0.migrated.sqlite back to ublock0.sqlite before launching your browser. The location of that file is documented here. All the changes you may have performed to the settings with the webext version of uBO won't be seen by legacy uBO.
  • CLOSED AS FIXED:
  • Enable users to create their own custom scriptlets. See "Advanced settings"/userResourcesLocation at https://github.com/gorhill/uBlock/wiki/Advanced-settings#userresourceslocation.

New in uBlock Origin 1.11.2 (Mar 3, 2017)

  • CHANGES:
  • Better support for selecting broad cosmetic filters (Ctrl-click) in element picker (1c4347d).
  • CLOSED AS FIXED:
  • Edge:
  • DOM Inspector: Fallback to .childNodes when .children not present (pull request from @nikrolls)
  • Firefox:
  • uBO incompatible with InFormEnter
  • Core:
  • Missing text in da-dk localization
  • SharedWorker [sibnet.ru]: Ability to block shared workers using |blob:-based filters.

New in uBlock Origin 1.11.1 RC 0 (Feb 20, 2017)

  • Core:
  • SharedWorker [sibnet.ru]: Ability to block shared workers using |blob:-based filters.

New in uBlock Origin 1.11.1b1 Pre-release (Feb 13, 2017)

  • CLOSED AS FIXED:
  • Core:
  • SharedWorker [sibnet.ru]: Ability to block shared workers using |blob:-based filters.

New in uBlock Origin 1.11.1b0 Pre-release (Feb 7, 2017)

  • Closed as fixed:
  • SharedWorker [sibnet.ru]

New in uBlock Origin 1.11.1b Pre-release (Feb 7, 2017)

  • Potential fix for filter auto update not working.

New in uBlock Origin 1.11.0 (Feb 6, 2017)

  • THE USER INTERFACE OF THE "3RD-PARTY FILTERS" HAS BEEN REVISITED:
  • To render better in devices with smaller screen.
  • Clicking "Update now" is no longer a blocking operation.
  • The home icon is a link to the support site for a given filter list.
  • The clock icon replaces the "purge cache" label: Click to mark a filter list as out-of-date.
  • The custom filter lists input field has been repurposed to import external filter lists, as opposed to declare external filter lists as was the case before: An imported filter list will have an X icon aside its name, to be used to remove the custom filter list.
  • You can now hide unused filter lists by clicking the global filter count at the top.
  • NEW PROCEDURAL COSMETIC FILTER OPERATORS:
  • :has-text(argument): to filter elements according to whether they have a specific text string found in them. Use /.../ to match a literal regular expression instead of plain text.
  • :if()/:if-not(argument): use to implement recursion, argument is itself a valid procedural cosmetic filter, but can also be a plain CSS selector.
  • FIREFOX:
  • Chained unwanted popups not properly filtered
  • CORE:
  • Please enable RU Adlist filter for ex-USSR/CIS locales
  • Assets management refactored
  • Logger timestamps are incorrect when system time zone is not on hour boundary
  • Not blocked websockets (worker)
  • Want to create a regex to whitelist all google but no luck
  • Duplicate filter lists
  • Ads are not blocked on bing.com web searches (issue filed for Edge, but also present on other platforms, those not supporting user styles or shadow DOM):
  • The fix needs to be tested/confirmed for the Edge version.
  • For Chromium-based browsers, use of shadow DOM has been removed in an attempt to simplify/unify generic implementation of the concept of user styles. (can be brought back if feedback shows it's needed).
  • Most reliable and low overhead cosmetic filtering is on modern Firefox (38+), all other platforms (Chromium, Edge, legacy Firefox, Safari) not providing proper "user styles" API rely on same generic implementation.

New in uBlock Origin 1.10.6 (Jan 25, 2017)

  • Closed as fixed:
  • WebRTC local IP leakage prevention ineffective (Firefox 51)

New in uBlock Origin 1.10.5b9 Beta (Jan 12, 2017)

  • Upstream changes
  • Changes ctrl+click labels to cmd+click (#15, #16)
  • Restore from file fixed (#17)

New in uBlock Origin 1.10.5b6 Beta (Jan 6, 2017)

  • Firefox:
  • Chained unwanted popups not properly filtered

New in uBlock Origin 1.10.5b2 Beta (Dec 27, 2016)

  • CHANGES:
  • Procedural cosmetic filters can now be chained and recursive (something which was planned).
  • New procedural cosmetic filter operators:
  • :has-text(argument): to filter elements according to whether they have a specific text found in them. Use /.../ to match a regular expression instead of plain text.
  • :if()/:if-not(argument): use to implement recursion, argument is itself a valid procedural cosmetic filter.
  • Any of the operator which accept a string value can also accept of literal regular expression value.
  • The :xpath() operator can now accept a plain CSS selector as prefix (i.e. example.com##.item:xpath(...)), just like all other operators. The XPath evaluation will use whatever element matches the CSS selector as the context node for the XPath.
  • The cost of parsing procedural cosmetic filters has been moved from content script-time to filter list compile-time, i.e. done only once when a filter list is updated.
  • The element picker supports all procedural cosmetic filters, i.e. it will also provide visual feedback as you enter manually such filters in the input field. Invalid filters, procedural or not, will be labelled with a bright red E.
  • Efficient procedural cosmetic filters (or any cosmetic filters really) are the ones which result in the smallest set of nodes to visit. The element picker input field will display the number of elements matching the current filter. The element picker will only consider the entered text up to the first line break, while leaving the rest as is. You can use this feature to break up your filter to find out the size of the resultset of the first part(s) of your filter: the smallest resultset the most efficient is your cosmetic filter.
  • CLOSED AS FIXED:
  • Core:
  • Want to create a regex to whitelist all google but no luck
  • Ads are not blocked on bing.com web searches (issue filed for Edge, but also present on other platforms, those not supporting user styles or shadow DOM).
  • The fix needs to be tested/confirmed for the Edge version.
  • For Chromium-based browsers, use of shadow DOM has been removed in an attempt to simplify/unify generic implementation of the concept of user styles. (can be brought back if feedback shows it's needed).
  • Most reliable and low overhead cosmetic filtering is on modern Firefox (38+), all other platforms (Chromium, Edge, legacy Firefox, Safari) not providing proper "user styles" API rely on same generic implementation.

New in uBlock Origin 1.10.5b0 Beta (Dec 20, 2016)

  • CORE:
  • Ads are not blocked on bing.com web searches (issues filed for Edge, but also present on other platforms, those not supporting user styles or shadow DOM):
  • The fix needs to be tested/confirmed for the Edge version.
  • For Chromium-based browsers, use of shadow DOM has been removed in an attempt to simplify/unify generic implementation of the concept of user styles. (can be brought back if feedback shows it's needed).
  • Most reliable and low overhead cosmetic filtering is on modern Firefox (38+), all other platforms (Chromium, Edge, legacy Firefox, Safari) not providing proper "user styles" API rely on same generic implementation.

New in uBlock Origin 1.10.4 (Dec 19, 2016)

  • Closed as fixed:
  • Untokenizable static filters not properly enforced

New in uBlock Origin 1.10.3b0 Beta (Dec 17, 2016)

  • CORE:
  • Ads are not blocked on bing.com web searches (issus filed for Edge, but also present on other platforms, those not supporting user styles or shadow DOM):
  • The fix needs to be tested/confirmed for the Edge version.
  • For Chromium-based browsers, use of shadow DOM has been removed in an attempt to simplify/unify generic implementation of the concept of user styles. (can be brought back if feedback shows it's needed).
  • Most reliable and low overhead cosmetic filtering is on modern Firefox (38+), all other platforms (Chromium, Edge, legacy Firefox, Safari) not providing proper "user styles" API rely on same generic implementation.

New in uBlock Origin 1.10.2 (Dec 15, 2016)

  • CHANGES:
  • Cosmetic filtering:
  • Implementation of cosmetic filter operator :matches-css has been revised according to the discussion at #1930 (comment) and request in uBlockOrigin/uAssets#212:
  • :matches-css now accept no more than one single style property. If more than one style property must be matched on the same node, you will need to chain them (i.e. div##matches-css(...):matches-css(...) -- ability to chain is coming for next release). Since there is only one style property, do not use trailing ;.
  • :matches-css-before() and :matches-css-after() are now also available to specifically match style property for the pseudo elements :before and :after on a node.
  • Support the use of regexes for property matching: if the first and last character of the value to match is /, the value will be deemed to be a literal regular expression which must be matched.
  • Dashboard:
  • The last dashboard's pane you visited will be automatically opened next time you open the dashboard (issue #2206).
  • CLOSED AS FIXED:
  • Edge:
  • tapping on icons in tablet mode selects them
  • Firefox:
  • Incompatibility between ABP and uBO over FETCH (json)
  • Core:
  • $generichide sometimes does not work (regression from d62059c)
  • Select last visited pane when re-opening the dashboard

New in uBlock Origin 1.10.1 RC 1 (Dec 8, 2016)

  • CLOSED AS FIXED:
  • Firefox:
  • Incompatibility between ABP and uBO over FETCH (json)
  • Core:
  • $generichide sometimes does not work (regression)
  • Select last visited pane when re-opening the dashboard

New in uBlock Origin 1.10.1b1 Pre-release (Dec 7, 2016)

  • CHANGES:
  • Cosmetic filtering:
  • Implementation of cosmetic filter operator :matches-css has been revised according to the discussion at #1930 (comment) and request in uBlockOrigin/uAssets#212:
  • :matches-css now accept no more than one single style property. If more than one style property must be matched on the same node, you will need to chain them (i.e. div##matches-css(...):matches-css(...) -- yet to be implemented). Since there is only one style property, do not use trailing ;.
  • :matches-css-before() and :matches-css-after() are now also available to specifically match style property for the pseudo elements :before and :after on a node.
  • Support the use of regexes for property matching: if the first and last character of the value to match is /, the value will be deemed to be a literal regular expression which must be matched.
  • Dashboard:
  • The last dashboard's pane you visited will be automatically opened next time you open the dashboard (issue #2206).
  • CLOSED AS FIXED:
  • Select last visited pane when re-opening the dashboard

New in uBlock Origin 1.10.1b0 Pre-release (Dec 6, 2016)

  • Implementation of cosmetic filter operator :matches-css has been revised according to the discussion at #1930 (comment) and request in uBlockOrigin/uAssets#212:
  • :matches-css now accept no more than one single style property. If more than one style property must be matched on the same node, you will need to chain them (i.e. div##matches-css(...):matches-css(...) -- yet to be implemented). Since there is only one style property, do not use trailing ;.
  • :matches-css-before() and :matches-css-after() are now also available to specifically match style property for the pseudo elements :before and :after on a node.
  • Support the use of regexes for property matching: if the first and last character of the value to match is /, the value will be deemed to be a literal regular expression which must be matched.

New in uBlock Origin 1.10.0 (Dec 6, 2016)

  • DYNAMIC FILTERING PANE:
  • The dynamic filtering pane in the popup panel is now available in read-only mode to users who did not enable "I am an advanced user" in Settings.
  • The rationale for this change is explained in issue 2010. It still is collapsed by default, but can be brought up by clicking the "requests blocked" or "domains connected" fields in the main area.
  • TEMPLATE-BASED SCRIPTLETS:
  • In order to promote the reuse of injectable scriplets across different sites, it is now possible for a scriptlet to accept arguments. The arguments are comma-separated and appear after the token, for example (a real case): golem.de##script:inject(abort-on-property-write.js, _sp_)
  • In the example above, the scriplet abort-on-property-write.js contains a placeholder for one argument, which placeholder will be replaced with the argument _sp_. Placeholders for scriplets which accept arguments will always be for string values (reminder that injectable scriplets are part of the project, never from an external party).
  • ADVANCED SETTINGS:
  • A new "Advanced settings" pane, available only to advanced users. It contains settings which are experimental, or which are of interest to advanced users who want more control over how uBO behaves internally. I do not want to bloat the Settings pane in the dashboard with settings which are of interest only to a minority of users or which are experimental: this is where the new "Advanced settings" pane is useful.
  • When you enabled "Advanced users" in the Settings pane, a cogs icon will appear next to that setting. Click this cogs icon to access those "hidden" advanced settings.
  • The UI of the advanced settings page is purposefully stern. Keep in mind that whatever settings you see in there may be experimental and could be removed at any time in the future.
  • Experimental advanced setting of interest: suspendTabsUntilReady (default to false), to prevent uBO from establishing any remote connection at launch before all filter lists/settings have been fully loaded (related issue #1327). How well it works will have to be evaluated by users.
  • WEBEXTENSIONS:
  • From now on, there will be a Firefox's WebExtension version of uBO (see uBlock0.webext.zip below, see "Temporary Installation in Firefox" on how to install on Firefox). Do not bother trying it out if you do not have Nightly 52.0a1 (2016-10-29) or later installed. Also, do not open issues here for the WebExtension version of uBO -- it is still at an experimental stage and there are things which are known to be missing in the API for uBO to fully function: see bugzilla 13099260.
  • CLOSED AS FIXED:
  • Firefox:
  • Fix to work around Firefox issue 1317173: "[non-e10s] Pop-ups opened in Private Browsing mode stay in history"
  • ublock origin "blocks" webtoepub addon on firefox (not on chromium): Added moz-extension-scheme to default whitelist directives.
  • Core:
  • Support passing arguments to injected scriplets
  • Weird logger issue (regression)
  • Dynamic filtering pane issue in v1.9.16 (regression)
  • $elemhide cannot be disabled via a counter filter flag
  • Why is redirect clause ignored in static filter?
  • Fonts on left side of advanced mode popup are too big
  • Allow dynamic filtering pane to be visible (simplified, read-only) for non-advanced users
  • For certain rules logger does not show from which list(s) it originates (regression)
  • ###5f filters not read by uBlock
  • Feature Request: Whitelist wildcard IP addresses
  • Ignoring ping filters
  • Blocking "early" requests is not possible (experimental fix)

New in uBlock Origin 0.9.5.0 (Jun 2, 2015)

  • It includes usability and performance enhancement throughout; some noteworthy changes include:
  • Firefox performance improvements.
  • Fixes Safari filter-list update issues.
  • Enhanced storage API infrastructure (this solves issues for Safari users where their preferences were being lost; it shouldn't affect Chrome/Firefox users)
  • Firefox now lets you block resources right from Web Inspector's network request log! (To try this out, just right click on an entry in the net-log). Thanks to @AlexVallat from the uBlock team for implementing this feature and what he's been doing to make uBlock awesome on Firefox.
  • UI changes and additions — you'll come across them: Dynamic filtering UI and Settings UI.
  • Note: Chrome users will notice that an extra permission is now asked for by uBlock (modifying privacy-related settings). The reason uBlock has that new permission is that it needs to modify the "Network Prediction" settings (which Chrome has enabled by default) in order to ensure more reliable blocking (there was an issue with Chrome "sneaking" certain requests so uBlock couldn't process them).
  • While uBlock modifies the network prediction setting (without reading its previous value) to ensure all requests are filtered correctly, uBlock never reads or modifies any of your other settings. Your uBlock preferences never leave your computer. We never see any of your data.

New in uBlock Origin 0.9.4.5 Beta 1 (May 15, 2015)

  • Some noteworthy new stuff to focus on:
  • Updated storage API infrastructure (this solves issues for Safari users where their preferences were being lost; it shouldn't affect Chrome/Firefox users)
  • Firefox now lets you block resources right from Web Inspector's network request log! (To try this out, just right click on an entry in the net-log). Thanks to @AlexVallat from the uBlock team for this and all the other work he's been doing to make uBlock awesome on Firefox.
  • UI changes and additions — you'll come across them as you use this beta build!
  • Dynamic filtering UI
  • Settings UI

New in uBlock Origin 0.9.4.0 (May 8, 2015)

  • We're excited to bring you uBlock 0.9.4.0 today.
  • NEW:
  • Cosmetic filtered elements are now logged in the request logger!
  • Safari: introducing support for inline-script blocking.
  • Many reliability and coverage fixes/improvements.
  • Toolbar badge performance improvements.
  • Popup behavior refinements

New in uBlock Origin 0.9.4.0 Beta 1 (May 2, 2015)

  • Highlights include:
  • Cosmetic filtered elements now show up in the request logger.
  • Request logger refinements.
  • Safari inline-script blocking support.
  • Many reliability and coverage fixes/improvements.
  • Tab icon/badge performance improvements.
  • Popup behavior refinements.

New in uBlock Origin 0.9.3.5 (Apr 20, 2015)

  • This release includes many improvements to uBlock — the areas of changes include (but are not limited to):
  • UI, icons, and color scheme refinement.
  • Reliability improvements for domain-based blocking.
  • Stability enhancements for Firefox.
  • Cosmetic filtering right from Firefox's Web Inspector.

New in uBlock Origin 0.9.4.1 (Apr 14, 2015)

  • Chromium:
  • Popup blocker problem? (only on chrome)
  • Firefox:
  • this release is totaly junk
  • uBlock and uBlock0 could not run side-by-side properly because I had missed changing an id in the fork.

New in uBlock Origin 0.9.3.0 (Apr 4, 2015)

  • The uBlock project's main development responsibilities have been transferred to Chris Aljoudi (chrisaljoudi on GitHub).
  • PLEASE CONSIDER DONATING TO KEEP DEVELOPMENT POSSIBLE:
  • uBlock is still free and open-source, and will always be free and open-source. This does not change uBlock's manifesto or values in any way.
  • NEW:
  • Site-based switches
  • A switch to block all popups for a given site, regardless of filters
  • A switch to disable strict blocking (new mode, enabled by default)
  • This used to be supported by ABP a long-time ago: "full domain blocking"
  • FIREFOX:
  • Number of items in badge not updated when newtab url is about:blank
  • FIREFOX MOBILE:
  • Closing all tabs confuses ublock
  • CORE:
  • Can't find a way to allow popups
  • External script not blocked
  • This was a core issue but problem was manifesting only on Firefox.
  • Tooltip padding
  • CHN: EasyList China will cause the firefox hanging on some website
  • 'undefined' shows up in Dynamic filtering pane when popup blocker is enabled and a popup is blocked
  • The status of adblock warning removal list won't be stored in the backup file
  • Add lists from https://adblockplus.org/en/subscriptions
  • Selected domains no longer appears in the popup
  • Whitelist wildcard not working when url contains # as wildcard
  • Ability to blanket-block popups for a given site
  • See "site-based switches" above
  • Show "3rd-party filters list" info when category is collapsed
  • Chrome-scheme not showing up in popup
  • Unable to block browser take-over scripts in malware/phishing sites, or at least block redirects to such sites
  • See "site-based switches" above
  • Re. Strict Blocking - Should we do Domain blocking based on URL part itself?
  • Color for domains with both blocked and unblocked content is too similar
  • Problem with “element hiding” filters

New in uBlock Origin 0.9.2.3 (Mar 27, 2015)

  • Closed as fixed:
  • Selected domains no longer appears in the popup
  • EasyList FR was breaking uBlock, because of that weird filter: ||^$third-party, which makes no sense as per ABP filter syntax.

New in uBlock Origin 0.9.2.1 (Mar 23, 2015)

  • NOTES:
  • There is a version 0.9.2.2, not released here, because I feel it's not worth the storage space. The only difference with this version is this commit. This commit made it into the Opera store version as v 0.9.2.2.
  • CLOSED AS FIXEd:
  • µBlock -> uBlock.
  • In case you wonder: yes, I've decided to drop the µ in favor of u, because I have seen too much arguing about how it should be pronounced, etc.
  • 0.9.2.0 is now resizing each time you open it.
  • OTHER CHANGES:
  • CHROMIUM:
  • Various small changes to ensure Chromium passes all popup tests.
  • Due to limitations to the chrome API...
  • There is just no guarantee case 6, 7 will always work. The fix was to increase as much as possible the likelihood Chromium will succeed.
  • The only way I can make case 12 succeed on Chromium is by enabling uBlock for the behind-the-scene scope.
  • CORE:
  • Various small issues with element picker related to the new feature in 0.9.2.0.

New in uBlock Origin 0.9.2.0 RC 1 (Mar 21, 2015)

  • NEW:
  • Element picker: ability to point-and-click to create wildcard-based network filters
  • Brought about as a result of issue #1044: "non technical user [...] doesnt know how to [create wildcard-based filters]"
  • Roughly, if you click more than one image from one web page, uBlock will derive a network filter which will apply to all the clicked images.
  • Kind of difficult to put in words, so here are videos:
  • https://www.youtube.com/watch?v=kO0Mh-SAkHM
  • https://www.youtube.com/watch?v=WoFC3EJWg08
  • CLOSED AS FIXED:
  • CHROMIUM:
  • Blocking differrent kind of pop-ups
  • FIREFOX FOR ANDROID:
  • ublock options ui doesnt fit on screen
  • Blocking (off) when opening new tabs in Firefox from 3rd party apps
  • This also fixes:
  • Number of connected domains makes no sense
  • FIREFOX:
  • "Make use of context menu where appropriate" not enforced nor remembered
  • Empty buttons in addon options
  • Option buttons sometimes empty in addon properties
  • CORE:
  • uBlock slow/with delay blocking ads (banners) and elements on page twitch
  • Options-only filter is not working
  • abp:subscribe links on adblockplus.me do not work with new uBlock install
  • Cosmetic filter not working after refreshing the page
  • This was caused by an invalid cosmetic filter: custom filters from ABP were imported using plain cut & paste.
  • uBlock now support importing an ABP backup through the "Import and append" button in the "My filters" pane. This ensures proper import.
  • Additionally, uBlock will now discard invalid cosmetic filters when filter lists are compiled.

New in uBlock Origin 0.9.1.1 (Mar 16, 2015)

  • Closed as fixed:
  • Workaround #1001 for Fennec breaks Google Hangout extension
  • Support importing filters from an ABP backup file

New in uBlock Origin 0.9.1.0 (Mar 14, 2015)

  • NEW:
  • Firefox for mobile (Fennec) support
  • You can thank @AlexVallat, @chengsun, @Deathamns for making this happen
  • New translations available: Lithuanian (complete), Slovenian (partial), Serbian (Cyrillic) (partial), Telugu (partial)
  • Chinese translation of README + many wiki pages
  • Korean translation of README
  • CLOSED AS FIXED:
  • Chromium:
  • Dashboard will not come to front, if it was already opened earlier
  • Fennec:
  • UI for Fennec (Firefox for Android)
  • Please support Firefox for Android
  • Firefox:
  • No element hiding upon start
  • Although uBlock's start-up time is relatively fast, there is just no way to guarantee that it will be up and ready to filter content before existing tabs are loaded. The fix ensure pages loaded before uBlock was ready are cleaned up.
  • Image fails to load on github, when page is reloaded after whitelisting image cell
  • Safari:
  • Enable creating backups to work.
  • Does not restore properly from a backup created in Firefox, works fine in Firefox/Chrome.
  • Storage below quota as requested by uBlock; now uses proper storage API.
  • Core:
  • "Open Link in New Tab" gets blocked in Behind the Scene with "* * * block"
  • The issue manifested on Fennec, but the required fix was really in core code
  • No indication of purging when clicking on the "Purge all caches" button
  • Double clicking to select word in "My rules" resets changes made
  • Global blocking stats lost when restoring/resetting settings
  • abp:subscribe, new automated import of ABP filters leads to undefined description
  • Schedule manually updating filter lists less aggressively to give time for garbage collection
  • Custom cosmetic filter fails to apply
  • 3rd-party filter list update: show status/progress indications in UI
  • How to whitelist embedded tweets?
  • Add "updated on �te" text to each filter list

New in uBlock Origin 0.9.0.1 Dev 7 (Mar 13, 2015)

  • NEW:
  • Fennec support:
  • You can thank @AlexVallat, @chengsun, @Deathamns for making this happen
  • Fennec:
  • UI for Fennec (Firefox for Android)
  • Please support Firefox for Android
  • FIREFOX:
  • Image fails to load on github, when page is reloaded after whitelisting image cell
  • CORE:
  • "Open Link in New Tab" gets blocked in Behind the Scene with "* * * block"
  • The issue manifested on Fennec, but the required fix was really in core code

New in uBlock Origin 0.9.0.1 Dev 4 (Mar 13, 2015)

  • NEW:
  • Chinese translation of README
  • Chinese translation of many wiki pages
  • Korean translation of README
  • CLOSED AS FIXED:
  • Chromium:
  • Dashboard will not come to front, if it was already opened earlier
  • FIREFOX:
  • No element hiding upon start
  • Although uBlock's start-up time is relatively fast, there is just no way to guarantee that it will be up and ready to filter content before existing tabs are loaded. The fix ensure pages loaded before uBlock was ready are cleaned up.
  • SAFARI:
  • Does not restore properly from a backup created in Firefox, works fine in Firefox/Chrome
  • Storage below quota as requested by uBlock; now uses proper storage API
  • CORE:
  • No indication of purging when clicking on the "Purge all caches" button
  • Double clicking to select word in "My rules" resets changes made
  • Global blocking stats lost when restoring/resetting settings
  • abp:subscribe, new automated import of ABP filters leads to undefined description
  • Schedule manually updating filter lists less aggressively to give time for garbage collection
  • Custom cosmetic filter fails to apply
  • 3rd-party filter list update: show status/progress indications in UI
  • Add "updated on �te" text to each filter list

New in uBlock Origin 0.9.0.1 Dev 1 (Mar 12, 2015)

  • Closed as fixed:
  • Global blocking stats lost when restoring/resetting settings
  • abp:subscribe, new automated import of ABP filters leads to undefined description
  • Custom cosmetic filter fails to apply
  • 3rd-party filter list update: show status/progress indications in UI
  • Add "updated on �te" text to each filter list

New in uBlock Origin 0.9.0.1 Dev 0 (Mar 11, 2015)

  • Add language icon (languageicon.org)
  • Better-sized language icon (languageicon.org)
  • Add language icon to README; some formatting
  • README:
  • travis link too big; smaller, cleaner alt
  • undo last commit
  • add icon to doc/img so we don't have to reference src from docs
  • cleanup, move travis badge (made smaller)
  • First attempt at cleaning up the header
  • Markdown is great for styling, right?
  • More header fixes (links, etc)
  • Cleanup markup/HTML mess; make code readable (somewhat)
  • Tweaks to spacing
  • add IPA
  • Merge pull request #959 from gorhill/readme-update …
  • Firefox: change badge color in onWidgetUnderflow
  • Firefox: update application versions ba37764
  • Safari: update locale list 0306f52
  • Safari: make it work on version 5
  • this fixes #967
  • Safari vapi-client.js minor formatting
  • this fixes #954 3544989
  • Merge branch 'master' of github.com:gorhill/uBlock
  • Commits on Mar 09, 2015
  • jshint
  • this completes fix of #954
  • re. #962
  • ba689f7
  • this fixes #810
  • jshint
  • cfadf76
  • this fixes #224 for Chromium
  • fixed description
  • f1e065f
  • handler for "abp:subscribe?" links
  • Safari: enable click to subscribe
  • Commits on Mar 10, 2015
  • better English I suppose
  • this fixes #313
  • code review: do not pollute global namespace
  • code review
  • Consistency with change made in 23083e9
  • µ to u (consistency with 23083e9); a to an
  • this fixes #976 bf50e87
  • Merge branch 'master' of github.com:gorhill/uBlock
  • More µ to u
  • Closes #948
  • Fix event variable name in subscriber.js
  • Firefox: abp:subscribe
  • github #313, crowdin issue 252799
  • Add contributing.md for issue guidelines and a template
  • Commits on Mar 11, 2015
  • this fixes #982, #978, #965 39ad158
  • translation work from https://crowdin.com/project/ublock eef5ccb
  • merge branch 'master' of github.com:gorhill/uBlock
  • interim version for dev build
  • code review
  • Safari: new storage 4720ecd
  • Safari: new storage now works; closes #985

New in uBlock Origin 0.9.0.0 (Mar 11, 2015)

  • CHANGES:
  • Network request logger: added functionalities to the network request logger
  • Dashboard: The last time of restore and/or backup is now shown in the Settings pane in the dashboard
  • Element picker: filters created from element picker will now be labeled with the time at which the filter was created and the exact URL from where it was created, as a comment above the filter entry
  • Element picker: you can now use wildcard(s) for a network filter when manually editing it
  • The element picker will highlight all the matches on the web page
  • CLOSED AS FIXED:
  • Safari:
  • [Safari] Facebook photo viewer breaks in certain cases
  • Was also causing [Safari] Some YouTube videos sometimes don't play
  • In case you missed 0.8.9.2:
  • Crash in older versions of Safari resolved; support for Safari 7.x/6.1. Details in 0.8.9.2 release notes.
  • CORE:
  • Support entering wildcard(s) in element picker's network filters
  • [Request] List the date of the last restore if the settings were restored
  • Error in filters calculation
  • Conditionally avoid Chrome-specific micro-optimisations on non-Chrome builds
  • Feature: Filter blocked/allowed requests in the statistics

New in uBlock Origin 0.8.9.3 Dev 3 (Mar 6, 2015)

  • Changes:
  • Added functionalities to the network request logger
  • Closed as fixed:
  • Safari:
  • [Safari] Facebook photo viewer breaks in certain cases
  • Was also causing [Safari] Some YouTube videos sometimes don't play
  • Core:
  • Support entering wildcard(s) in element picker's network filters
  • [Request] List the date of the last restore if the settings were restored
  • Error in filters calculation
  • Conditionally avoid Chrome-specific micro-optimisations on non-Chrome builds

New in uBlock Origin 0.8.9.3 Dev 0 (Mar 5, 2015)

  • Changes:
  • Added functionalities to the network request logger

New in uBlock Origin 0.8.9.2 (Mar 5, 2015)

  • his version of µBlock, 0.8.9.2, is identical to 0.8.9.1 for every browser except Safari.
  • Changes (only 1!):
  • µBlock now implements a workaround older Safari versions don't crash. As tested, this version of µBlock is known to work on 6.1, 7.x and 8.x.
  • How does this workaround change µBlock on Safari 8.x?
  • This should not affect µBlock's functionality at all in Safari 8 and later.
  • How does this workaround change µBlock on Safari 7.x and older?
  • In those older versions of Safari, the only difference with the default configuration is that two of the pre-packaged filter lists (namely Peter's Lowe's Ad Server List and 'Malware Domains') will have to be downloaded instead.
  • By design, this download happens automatically by default, but you can always click manually trigger the download by clicking Update Now in µBlock's Preferences -> 3rd-party filters.
  • What was the problem?
  • What follows is written by me, µBlock's Safari-guy; it doesn't necessarily express the views of all project collaborators.
  • The problem was (and still is) a bug in Safari 7 and earlier. The bug still exists in those older versions of Safari, and any extension that may happen to trigger it will cause those crashes.
  • Hopefully Apple will push a fix to those older versions of Safari (otherwise, some other extension and its users may encounter this in the future).
  • If you're curious about the bug, read on.
  • Specifics of bug
  • µBlock ships pre-packaged with copies of the filter lists it supports — that way, it has something to use for the lists enabled by default right away without having to download them from the servers first.
  • Those pre-packaged filter list files are named similarly to what their maintainers named them. For instance, EasyPrivacy can be accessed at easylist-downloads.adblockplus.org/easyprivacy.txt, so the filename for the pre-packaged version is easyprivacy.txt.
  • When µBlock is installed and it launches, it loads those files using simple XHR requests. Safari, like most browsers, gives us a way to do that: you use safari.extension.baseURI followed by the path to your file, and voilà, you can load a file you packaged with your extension.
  • This indeed works well with most things, including our example above (easyprivacy.txt). In fact, it seems like since Safari 8.0, it works perfectly. No problems whatsoever.
  • But Safari 7.x crashes miserably. This is already odd: a JavaScript program shouldn't be able to crash your whole browser no matter what.
  • After doing much investigation via VNC on a virtual machine that's actually running Mavericks, I found the problem. Two of the default filter lists:
  • those two lists were pre-packaged in files that shipped with µBlock: justdomains and serverlist. No .txt suffix.
  • Safari 7.x crashes if you try to load a file from your package whose name happens not to have an 'extension'.
  • easylist.txt? Dandy. justdomains? Boom.
  • Correct: it's not just a mere stray exception thrown, the whole browser crashes.
  • I think it was fair to conclude this was a browser bug. It's not due to negligence on µBlock's part.
  • With the obscurity and nature of this bug considered, this problem with µBlock for Safari was the result of an unfortunate incidental set of circumstances, unavoidable without the hindsight we have today.
  • As the Safari maintainer (just personally), I hope you understand. Enjoy µBloc

New in uBlock Origin 8.8.9.2 Dev 6 (Mar 4, 2015)

  • Changes:
  • Added functionalities to the network request logger
  • Closed as fixed:
  • request logger screenshot for wiki
  • for network request logger wiki
  • this fixes #919
  • translation work from https://crowdin.com/project/ublock
  • translation work from https://crowdin.com/project/ublock
  • more work on request logger
  • translation work from https://crowdin.com/project/ublock

New in uBlock Origin 8.8.9.2 Dev 5 (Mar 3, 2015)

  • request log filtering: add i18n prompt
  • Code review; fixes #920
  • trivial request logger work
  • to make using jshint convenient
  • jshint
  • this fixes obnoxious firing of net request
  • use blank string if no translation found

New in uBlock Origin 8.8.9.2 Dev 4 (Mar 3, 2015)

  • Firefox: handle behind-the-scene redirects
  • this fixes #915
  • this fixes #916
  • code review
  • Firefox: workaround for #886
  • Firefox: block popups earlier
  • gorhill hostname-based version of #915
  • request log filtering: early draft
  • code review

New in uBlock Origin 8.8.9.2 Dev 2 (Mar 3, 2015)

  • no longer needed, fix is in EasyPrivacy
  • Cheng Sun chengsun Use named "same document" constant instead of hardcoding 7a00443
  • Cheng Sun chengsun Fennec WIP #2 aa0e713
  • Deathamns Deathamns Firefox/Fennec code cleanup
  • Merge branch 'master' of github.com:gorhill/uBlock
  • this fixes sticky padlock when minimizing popup
  • mind pipe anchors when highlighting as per filter
  • Firefox/Fennec fixes
  • Fennec: fix tab title
  • support 2-letter hostname, for when using TLD alone
  • speed boost for processing high-high generics fc981ae
  • interim version for dev build
  • re-benchmarked using same settings as Chromium
  • code review
  • I misunderstood Element.matches(), reverting
  • high-high generic: do not try forever
  • Safari: XHR should explicitly fail. Fixes
  • Safari: minor scoping tweaks

New in uBlock Origin 0.8.9.1 (Mar 2, 2015)

  • Firefox:
  • Graphical Issue: Bold Black Dot Below uBlock Icon
  • Button label with number of blocked requests switches to superscript with red background
  • Core:
  • [Regression] Left-, right-anchored network filters with one wildcard broken in 0.8.9.0

New in uBlock Origin 0.8.9.0 (Feb 28, 2015)

  • Reminder:
  • Chromium (or browsers based on) still suffer from that ugly bug which causes a big chunk of memory leak each time a user opens the popup UI of an extension. Therefore, the more you use the popup UI in Chromium, the larger the memory footprint of µBlock (or any extension really) will grow. I've already seen feedback like "doesn't have a µ memory footprint at all for me. >250MB" (for µMatrix). This is important to keep this Chromium memory leak bug in mind if you make use of dynamic filtering, as this feature requires frequent access to the popup UI.
  • Closed as fixed:
  • Chrome store feedback: "any.gs/linkbucks ads"
  • Still need to be fixed for Firefox
  • Placeholders of blocked images not being shown
  • Element picker - have to hover to see buttons?
  • Dynamic Filtering: Can't use noop or allow rule for image type based on destination-hostname
  • It still not allowed, but the non-supported rules will be discarded now
  • [Firefox] Slow startup when compared to AdBlock Plus fixing
  • Clarification: Adblock Plus delays the loading of filters at launch, uBlock does not delay the loading of filters, therefore ABP just appeared faster to load, while in reality it was not if one considers that "startup" means "fully loaded and ready"
  • Despite this difference, work has been done to further improve load speed
  • Some charts

New in uBlock Origin 0.8.8.5 Dev 3 (Feb 26, 2015)

  • Closed as fixed:
  • Chrome store feedback: "any.gs/linkbucks ads"
  • Still need to be fixed for Firefox
  • Placeholders of blocked images not being shown
  • Element picker - have to hover to see buttons?
  • Dynamic Filtering: Can't use noop or allow rule for image type based on destination-hostname
  • It still not allowed, but the non-supported rules will be discarded now
  • [Firefox] Slow startup when compared to AdBlock Plus fixing
  • Clarification: Adblock Plus delays the loading of filters at launch, uBlock does not delay the loading of filters, therefore ABP just appeared faster to load, while in reality it was not if one considers that "startup" means "fully loaded and ready"
  • Despite this difference, work has been done to further improve load speed
  • Some charts (will fill in explanations as time allow)

New in uBlock Origin 0.8.8.4 (Feb 26, 2015)

  • Closed as fixed:
  • [Safari] YouTube ads not being blocked and cannot be skipped.
  • The fix for this includes major improvements to Safari blocking — added coverage of programmatic Image requests and fuller coverage of XMLHttpRequest interception.
  • [Safari] increase extension storage quota to err on the safe side.

New in uBlock Origin 0.8.8.5 Dev 2 (Feb 25, 2015)

  • this fixes #828

New in uBlock Origin 0.8.8.3 (Feb 23, 2015)

  • Closed as fixed:
  • Adultswim Player Doesn't Work
  • In some cases, the code to work around Chromium bug 410382 failed to do its workaround job.
  • Hence this only affected Chromium-based browsers.

New in uBlock Origin 0.8.8.2 (Feb 20, 2015)

  • Safari:
  • Toolbar icon now looks different on whitelisted pages.
  • Closed as fixed:
  • Sites loading as text only
  • This could happens sometimes when network requests had to be evaluated while uBlock loaded its filter lists (at launch or during an update).
  • Ability to collapse dynamic filtering pane such that only root domains show
  • Click the all cell at the top to reveal/hide subdomains
  • make textarea in My filters tab 100% wide

New in uBlock Origin 0.8.8.2 Pre 0 (Feb 17, 2015)

  • New:
  • Albanian translation thanks to bogdole.
  • Supported in Firefox, not supported in Chromium or Safari unfortunately.
  • Changes:
  • Dynamic filtering pane:
  • You can now collapse/expand the all subdomains: click on the all cell.

New in uBlock Origin 0.8.8.1 (Feb 16, 2015)

  • Emergency fix:
  • [Core] Loading local copy of an un-cached asset was broken
  • Regression bug from fix to issue #376
  • This affected Safari only

New in uBlock Origin 0.8.8.0 (Feb 16, 2015)

  • CHANGES & ENHANCEMENTS:
  • Safari:
  • Important (though minor) improvements in request capturing(d2cc20e)
  • Bonus: out-of-the-box support for HTML5 twitch.tv (some users may need to disable Flash to get the HTML5 player)
  • CORE:
  • All dynamic rules are temporary by default: Click the padlock if you want to persist the ruleset for a specific web site.
  • The padlock will be visible if and only if there is at least one temporary rule in the pane
  • This is really the optimal way to use dynamic filtering, as using this feature is often a matter of trial and error
  • This prevents ruleset pollution: your ruleset will be only those which you will have explicitly persisted
  • If you Ctrl-click to set/unset a rule, it will be immediately persisted (command ⌘-click on Mac)
  • µBlock's power button's color is now 450nm-blue-LED: green could lead to confusion given that in the dynamic filtering pane, green is used to denote that network requests won't be blocked.
  • The assets auto-updater has been rewritten, to work in a more gentle and discrete way
  • Assets which need to be updated will be fetch one by one in the background, with a good delay between each fetch (this prevents large peak in memory and network bandwidth usage)
  • Once all assets have been updated, they will then all be reloaded using their locally cached copies
  • The optimal way to update assets in µBlock is to let auto-update do the job: it is more gentle on resources locally and also more gentle to remote servers
  • CLOSED AS FIXED:
  • Firefox:
  • [Firefox] Some embedded youtube videos do not work without a global noop rule for youtube
  • [Firefox] Popup issues
  • Safari:
  • [Safari] Blob: type is included in 3rd party list, even though the path is first party
  • [Safari] can't access ublock prefs on fav page
  • Core:
  • Could not remove pcbeta's ads
  • Domains Connected Count is incorrect
  • Malware domains long-lived no longer necessary?
  • Support importing RequestPolicy export files
  • Reload button on the popup isn't disappearing on internal pages
  • Power button should not be green
  • Make a preference temporary for just this session
  • Element picker can pick its own elements
  • When updating, wait for update to complete before discarding memory used by previous filters

New in uBlock Origin 0.8.7.1 Pre 6 (Feb 14, 2015)

  • Reminder: Chromium (or browsers based on) still suffer from that ugly bug which causes a big chunk of memory leak each time a user opens the popup UI of an extension. Therefore, the more you use the popup UI in Chromium, the larger the memory footprint of µBlock (or any extension really) will grow. I've already seen feedback like "doesn't have a µ memory footprint at all for me. >250MB" (for µMatrix).
  • This is important to keep this Chromium memory leak bug in mind if you make use of dynamic filtering, as this feature requires frequent access to the popup UI.
  • Changes & Enhancements
  • The assets auto-updater has been rewritten, to work in a more gentle and discrete way
  • Assets which need to be updated will be fetch one by one in the background, with a good delay between each fetch (this prevents large peak in memory and network bandwidth usage)
  • Once all assets have been updated, they will then all be reloaded using their locally cached copies
  • The optimal way to update assets in µBlock is to let auto-update do the job: it is more gentle on resources locally and also more gentle to remote servers
  • Closed as fixed:
  • Domains Connected Count is incorrect
  • Malware domains long-lived no longer necessary?
  • Support importing RequestPolicy export files
  • Reload button on the popup isn't disappearing on internal pages
  • Power button should not be green
  • [Safari] Blob: type is included in 3rd party list, even though the path is first party
  • Make a preference temporary for just this session
  • [Firefox] Popup issues
  • [Safari] can't access ublock prefs on fav page
  • When updating, wait for update to complete before discarding memory used by previous filters

New in uBlock Origin 0.8.7.1 Pre 5 (Feb 13, 2015)

  • Changes & Enhancements:
  • All dynamic rules are temporary by default: Click the padlock if you want to persist the ruleset for a specific web site.
  • The padlock will be visible if and only if there is at least one temporary rule in the pane
  • This is really the optimal way to use dynamic filtering, as using this feature is often a matter of trial and error
  • This prevents ruleset pollution: your ruleset will be only those which you will have explicitly persisted
  • If you -click to set/unset a rule, it will be immediately persisted (command ⌘-click on Mac)
  • µBlock's power button's color is now 450nm-blue-LED: green could lead to confusion given that in the dynamic filtering pane, green is used to denote that network requests won't be blocked.
  • [Safari]: important (though minor) improvements in request capturing
  • Bonus: out-of-the-box support for HTML5 twitch.tv (some users may need to disable Flash to get the HTML5 player)

New in uBlock Origin 0.8.7.1 Pre 3 (Feb 12, 2015)

  • Changes:
  • All dynamic rules are temporary by default. Click the padlock if you want to persist the ruleset for a specific web site. The padlock will be visible if and only if there is at least one temporary rule in the pane.
  • µBlock's power button's color is now 450nm-blue-LED: green could lead to confusion given that in the dynamic filtering pane, green is used to denote that network requests won't be blocked.
  • Closed as fixed:
  • Domains Connected Count is incorrect
  • Malware domains long-lived no longer necessary?
  • Support importing RequestPolicy export files
  • Reload button on the popup isn't disappearing on internal pages
  • Power button should not be green
  • [Safari] Blob: type is included in 3rd party list, even though the path is first party
  • Make a preference temporary for just this session
  • [Safari] can't access ublock prefs on fav page

New in uBlock Origin 0.8.7.1 Pre 2 (Feb 11, 2015)

  • manifest file for Opera
  • opera-specific package
  • typo
  • gorhill this addresses 9fc136e#commitcomment-9664642
  • this fixes #745
  • this fixes #757
  • Safari update link and minor popup improvement
  • Safari: fixes #741. Now only HTTP/S requests are captured
  • Fixes #721; popover works in tabs without explicit URL
  • Safari: just extra precaution
  • Safari: don't double inject, and cleanup stray unicode
  • this fixes #758
  • Merge branch 'master' of github.com:gorhill/uBlock
  • translation work from https://crowdin.com/project/ublock
  • Oops; timer wasn't being set
  • Remove previous Safari overhead; cleanup workarounds from rest of code
  • Minor vapi-common improvement -- cache vAPI in local
  • #731: added session and permanent firewalls
  • translation work from https://crowdin.com/project/ublock
  • Merge branch 'fix-731'
  • looks like cjxlist.txt has a new home

New in uBlock Origin 0.8.7.0 (Feb 9, 2015)

  • Reminder: Chromium (or browsers based on) still suffer from that ugly bug which causes a big chunk of memory leak each time a user opens the popup UI of an extension. Therefore, the more you use the popup UI in Chromium, the larger the memory footprint of µBlock (or any extension really) will grow. I've already seen feedback like "doesn't have a µ memory footprint at all for me. >250MB" (for µMatrix).
  • This is especially important to keep this Chromium memory leak bug in mind with this release if you make use of dynamic filtering, as this feature requires frequent access to the popup UI.
  • Closed as fixed:
  • Firefox:
  • [Firefox] Context menu item capitalization
  • Safari:
  • [Safari] Performance and efficiency improvements
  • [Safari] Turning off uBlock for domain doesn't make the site load properly, disabling uBlock does
  • [Safari] Don't be lenient stopping XHR requests
  • [Safari] µBlock breaks when toolbar icon is hidden
  • [Safari] Remove site-patch injection at the expense of blocking YouTube Flash ads
  • [Safari] Resolve most commonly occurring exception in background page
  • Core:
  • [Regression #665] uBlock 0.8.7.0-dev.5 breaks website
  • [Regression #665] 3rd-party filters settings behavior is inconsistent
  • Filter list when site inaccessible is not kept
  • [Regression #682] "Connected to x distinct domain(s) out of y" gone in 0.8.7.0
  • The statistic has moved to the main pane: Quick guide: popup user interface
  • whitelisted stuff in the Romanian List?
  • Dynamic filtering's default-deny is unusable
  • This makes µBlock a complete alternative to RequestPolicy
  • Cosmetic filtering should be disabled if page is under dynamic filtering allow rule
  • contentscript-end.js: remove overhead of short-lived function expression
  • Support * * * [action] for dynamic filtering
  • µBlock fail, ABP ok
  • One part of the whole issue is fixed. The other part is duplicate of issue #498.
  • Can't open datacenter.biathlonresults.com, jQuery was not found
  • Element picker's textarea messed up on http://dailycaller.com/
  • Create a basic web page to test various net and cosmetic filters at a glance
  • It's there: http://raymondhill.net/ublock/tests.html

New in uBlock Origin 0.8.7.0 Pre 2 (Feb 7, 2015)

  • Firefox:
  • [Firefox] Context menu item capitalization
  • Safari:
  • [Safari] Performance and efficiency improvements
  • [Safari] Turning off uBlock for domain doesn't make the site load properly, disabling uBlock does
  • [Safari] Don't be lenient stopping XHR requests
  • [Safari] µBlock breaks when toolbar icon is hidden
  • [Safari] Remove site-patch injection at the expense of blocking YouTube Flash ads
  • [Safari] Resolve most commonly occurring exception in background page
  • Core:
  • Filter list when site inaccessible is not kept
  • "Connected to x distinct domain(s) out of y" gone in 0.8.7.0
  • whitelisted stuff in the Romanian List?
  • Dynamic filtering's default-deny is unusable
  • Cosmetic filtering should be disabled if page is under dynamic filtering allow rule
  • contentscript-end.js: remove overhead of short-lived function expression
  • Support * * * [action] for dynamic filtering
  • This makes µBlock a complete alternative to RequestPolicy
  • µBlock fail, ABP ok
  • One part of the whole issue is fixed. The other part is duplicate of issue #498.
  • Can't open datacenter.biathlonresults.com, jQuery was not found
  • Element picker's textarea messed up on http://dailycaller.com/
  • Create a basic web page to test various net and cosmetic filters at a glance
  • It's there: http://raymondhill.net/ublock/tests.html

New in uBlock Origin 0.8.7.0 Pre 1 (Feb 6, 2015)

  • Closed as fixed:
  • whitelisted stuff in the Romanian List?
  • Dynamic filtering's default-deny is unusable
  • Cosmetic filtering should be disabled if page is under dynamic filtering allow rule
  • contentscript-end.js: remove overhead of short-lived function expression
  • Support * * * [action] for dynamic filtering
  • [Firefox] Context menu item capitalization
  • Element picker's textarea messed up on http://dailycaller.com/
  • [Firefox] Can't open datacenter.biathlonresults.com, jQuery was not found
  • [Safari] µBlock breaks when toolbar icon is hidden
  • [Safari] remove site-patch injection at the expense of blocking YouTube Flash ads
  • Create a basic web page to test various net and cosmetic filters at a glance
  • It's there: http://raymondhill.net/ublock/tests.html

New in uBlock Origin 0.8.6.0 (Feb 2, 2015)

  • NEW:
  • Bulgarian translation by antonpenev, avp3000, ecogiko, vladev
  • Found out today that work on this translation had been started since late December and I had missed it: sorry about this
  • Korean translation by delightbot
  • Latvian translation by 7nolans, spitaligais
  • Persian translation by omid3098
  • CLOSED AS FIXED:
  • Chromium:
  • [Chromium] Sometimes web pages may not be cleaned up properly after launch
  • Somehow nobody complained of this regression bug, which probably manifested not that often when µBlock loaded from a selfie
  • [Chromium] Chromium bypassing uBlock through behind-the-scene requests
  • [Working on documentation: for now look into request logger drop down list]
  • Behind-the-scene requests can only be filtered if "advanced user" mode is enabled -- though you can examine them in the request logger regardless of mode
  • Firefox:
  • [Firefox] Popup blocker incorrectly closes user clicked window
  • Safari:
  • [Safari] Fix YouTube ClickToPlugin conflict
  • [Safari] Big fixes to Safari vAPI stuff
  • [Safari] Turning off uBlock for domain doesn't make the site load properly, disabling uBlock does
  • [Safari] Safari Extension Gallery
  • Core:
  • [Core] Element picker (nth-child usage)
  • [Core] host name not displayed in dynamic filtering frame, when inline-scripting is active..
  • [Core] dynamic-net-filtering.js length typos
  • [Core] Filters with multiple negated request types
  • [Core] Support regular expression-based network filters
  • I just got tired of the suspiciously often-repeated fallacy that uBlock was more efficient because it didn't support regular expression-based filters (only 15 of them in all of EasyList...)
  • µBlock-specific documentation for regex-based filters
  • [Core] Romanian list
  • [Core] Move µBlock.transposeType() to Chromium's platform-specific code
  • [Core] Feature Request: allow µBlock to run on chrome:// urls
  • µBlock is now active regardless of what URL is present in the address bar. For non-HTTP-like URLs, µBlock will create and use a synthetic URL internally, so that these non-standard URLs (about:config, chrome://settings, file:///..., etc.) can be whitelisted and have their own dynamic filtering rules.
  • As far as I can tell this is fully functional for Chromium. There is probably platform-specific code in need of work to have the same feature for Firefox, Safari.
  • NOTES:
  • Lots of work from volunteer translators imported from Crowdin