Assets
new revision for dev build
Assets
Assets
Assets
No change to the code, I just updated the filter lists packaged with the extension -- due to a bad EasyList filter being shipped with the previous package.
Assets
New
HTML filtering
Ability to remove DOM elements from a source document before it is parsed by the browser. The platform must support an extension API to modify the response body on the fly. Currently only Firefox 57+ allows this.
The filter syntax is similar to cosmetic filtering, except that the character ^ is used before a valid selector to denote that the filter is to be applied to the source data. Contrary to cosmetic filtering, with HTML filtering the elements matching a selector are removed from the source. Example:
twitter.com##^meta[http-equiv="refresh"]
www.google.ca##^#hplogo
boards.4chan.org##^script:has-text(7c9e3a5d51cdacfc)
Note that procedural operators are supported. Procedural operators which are senseless to use on source data will be ignored. For example, it makes no sense to use procedural operator such :matches-css(...) for HTML filtering.
Note that HTML filtering essentially brings back support for inline script tag filtering. I plan on deprecating the syntax ##script:contains(...) in favor of ##^script:has-text(...). For the time being, uBO will conveniently convert the old syntax to the new HTML filtering syntax.
Given that HTML filters are to be applied to the source data of a document, the best way to create such filters is to view-source: the document and from there analyze what should be removed. Thus the element picker won't be extended as a tool to create HTML filters.
In case it's still not clear at point: this is a big deal feature.
Sub-filter lists
Ability for filter list maintainers to force uBO to load extra filter lists from within a filter list, using an !#include directive. Example:
!#include adblock_ublock.txt
When uBO encounters the above directive inside a filter list, it tells uBO to load the extra filter list and append it to the current one. The main purpose of such directive is to allow filter list maintainers to be able to make use of uBO's extended filter syntax, without forfeiting the ABP-compatibility of their main filter list: ABP will ignore such directive since it will be seen as a mere comment.
All the details of the new directives syntax is being fleshed out at 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 sublists which are outside the directory of the main list. Typically, filter list maintainers will just use a single file name, as seen in the example above, in which case same-origin and same directory is implicit.
Changes
Logger
The logger can now be opened in a sidebar on Firefox. Just open the side bar and "uBlock₀ -- Logger" will be available as a choice.
Given this new ability, I added the following enhancements:
- A new entry in the tab selector: "Current tab":
- This will cause the logger to automatically filter out rows which do not belong to the currently active tab.
- The rows related to behind-the-scene scope are now always shown.
- If you close a tab while "Current tab" is selected, the resulting void rows will be automatically deleted.
- You can expand/collapse a single row by clicking on the time stamp cell.
Given that uBO's logger is unified, being able to open the logger in a sidebar means you could end up having multiple views opened for the logger: only one view will work at any given time.
Mind that there are minor visual issues which I have no control over:
- The maximum horizontal space is limited by the browser.
- Firefox: the font size is smaller than dictated in the DOM inspector view: I have no clue why, uBO's chosen font size is overridden by Firefox for some reasons.
-Firefox: it's not possible to select text in the logger when it is embedded in a sidebar. - If you have the logger already opened in a tab or separate window, you will have to close these for the logger-in-a-sidebar to start working. However some internal message events are lost in Firefox and as a result the logger-in-a-sidebar may take over 30 seconds to start working after you close the logger-in-a-tab or window.
Closed as fixed:
Firefox
- 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
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:injectwith 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
1.14.25rc1
gorhill
released this
Assets
New
HTML filtering
Ability to remove DOM elements from a source document before it is parsed by the browser. The platform must support an extension API to modify the response body on the fly. Currently only Firefox 57+ allows this.
The filter syntax is similar to cosmetic filtering, except that the character ^ is used before a valid selector to denote that the filter is to be applied to the source data. Contrary to cosmetic filtering, with HTML filtering the elements matching a selector are removed from the source. Example:
twitter.com##^meta[http-equiv="refresh"]
www.google.ca##^#hplogo
boards.4chan.org##^script:has-text(7c9e3a5d51cdacfc)
Note that procedural operators are supported. Procedural operators which are senseless to use on source data will be ignored. For example, it makes no sense to use procedural operator such :matches-css(...) for HTML filtering.
Note that HTML filtering essentially brings back support for inline script tag filtering. I plan on deprecating the syntax ##script:contains(...) in favor of ##^script:has-text(...). For the time being, uBO will conveniently convert the old syntax to the new HTML filtering syntax.
Given that HTML filters are to be applied to the source data of a document, the best way to create such filters is to view-source: the document and from there analyze what should be removed. Thus the element picker won't be extended as a tool to create HTML filters.
This is a first release of the feature, and I do know there is code review needed and TODOs to work on before this makes uBO ready for a release (for example, exceptions are not supported yet).
In case it's still not clear at point: this is a big deal feature.
Sub-filter lists
Ability for filter list maintainers to force uBO to load extra filter lists from within a filter list, using an !#include directive. Example:
!#include adblock_ublock.txt
When uBO encounters the above directive inside a filter list, it tells uBO to load the extra filter list and append it to the current one. The main purpose of such directive is to allow filter list maintainers to be able to make use of uBO's extended filter syntax, without forfeiting the ABP-compatibility of their main filter list: ABP will ignore such directive since it will be seen as a mere comment.
All the details of the new directives syntax is being fleshed out at 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 sublists which are outside the directory of the main list. Typically, filter list maintainers will just use a single file name, as seen in the example above, in which case same-origin and same directory is implicit.
Changes
Logger
The logger can now be opened in a sidebar on Firefox. Just open the side bar and "uBlock₀ -- Logger" will be available as a choice.
Given this new ability, I added the following enhancements:
- A new entry in the tab selector: "Current tab":
- This will cause the logger to automatically filter out rows which do not belong to the currently active tab.
- The rows related to behind-the-scene scope are now always shown.
- If you close a tab while "Current tab" is selected, the resulting void rows will be automatically deleted.
- You can expand/collapse a single row by clicking on the time stamp cell.
Given that uBO's logger is unified, being able to open the logger in a sidebar means you could end up having multiple views opened for the logger: only one view will work at any given time.
Mind that there are minor visual issues which I have no control over:
- The maximum horizontal space is limited by the browser.
- The font size is smaller than dictated in the DOM inspector view: I have no clue why, uBO's chosen font size is overridden by Firefox for some reasons.
- If you have the logger already opened in a tab or separate window, you will have to close these for the logger-in-a-sidebar to start working. However some internal message events are lost in Firefox and as a result the logger-in-a-sidebar may take over 30 seconds to start working after you close the logger-in-a-tab or window.
Closed as fixed:
Firefox
- 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
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:injectwith 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
1.14.25rc0
gorhill
released this
Assets
New
HTML filtering
Ability to remove DOM elements from a source document before it is parsed by the browser. The platform must support an extension API to modify the response body on the fly. Currently only Firefox 57+ allows this.
The filter syntax is similar to cosmetic filtering, except that the character ^ is used before a valid selector to denote that the filter is to be applied to the source data. Contrary to cosmetic filtering, with HTML filtering the elements matching a selector are removed from the source. Example:
twitter.com##^meta[http-equiv="refresh"]
www.google.ca##^#hplogo
boards.4chan.org##^script:has-text(7c9e3a5d51cdacfc)
Note that procedural operators are supported. Procedural operators which are senseless to use on source data will be ignored. For example, it makes no sense to use procedural operator such :matches-css(...) for HTML filtering.
Note that HTML filtering essentially brings back support for inline script tag filtering. I plan on deprecating the syntax ##script:contains(...) in favor of ##^script:has-text(...). For the time being, uBO will conveniently convert the old syntax to the new HTML filtering syntax.
Given that HTML filters are to be applied to the source data of a document, the best way to create such filters is to view-source: the document and from there analyze what should be removed. Thus the element picker won't be extended as a tool to create HTML filters.
This is a first release of the feature, and I do know there is code review needed and TODOs to work on before this makes uBO ready for a release (for example, exceptions are not supported yet).
In case it's still not clear at point: this is a big deal feature.
Sub-filter lists
Ability for filter list maintainers to force uBO to load extra filter lists from within a filter list, using an !#include directive. Example:
!#include adblock_ublock.txt
When uBO encounters the above directive inside a filter list, it tells uBO to load the extra filter list and append it to the current one. The main purpose of such directive is to allow filter list maintainers to be able to make use of uBO's extended filter syntax, without forfeiting the ABP-compatibility of their main filter list: ABP will ignore such directive since it will be seen as a mere comment.
All the details of the new directives syntax is being fleshed out at 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 sublists which are outside the directory of the main list. Typically, filter list maintainers will just use a single file name, as seen in the example above, in which case same-origin and same directory is implicit.
Changes
Logger
The logger can now be opened in a sidebar on Firefox. Just open the side bar and "uBlock₀ -- Logger" will be available as a choice.
Given this new ability, I added the following enhancements:
- A new entry in the tab selector: "Current tab":
- This will cause the logger to automatically filter out rows which do not belong to the currently active tab.
- The rows related to behind-the-scene scope are now always shown.
- If you close a tab while "Current tab" is selected, the resulting void rows will be automatically deleted.
- You can expand/collapse a single row by clicking on the time stamp cell.
Given that uBO's logger is unified, being able to open the logger in a sidebar means you could end up having multiple views opened for the logger: only one view will work at any given time.
Mind that there are minor visual issues which I have no control over:
- The maximum horizontal space is limited by the browser.
- The font size is smaller than dictated in the DOM inspector view: I have no clue why, uBO's chosen font size is overridden by Firefox for some reasons.
- If you have the logger already opened in a tab or separate window, you will have to close these for the logger-in-a-sidebar to start working. However some internal message events are lost in Firefox and as a result the logger-in-a-sidebar may take over 30 seconds to start working after you close the logger-in-a-tab or window.
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:injectwith 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
1.14.24
gorhill
released this
Assets
Emergency fix for "Cannot full support Domain restrictive Inverse type options".
I didn't look in all filter lists, but I searched in large high profile lists and I found:
- Two filters in EasyList
- One filter in EasyList China
Commits since 1.14.22:
1.14.22
gorhill
released this
Assets
Accepted pull requests
Closed as fixed:
Chromium
Core
1.14.20
gorhill
released this
Assets
Changes
The filter list "AAK-Cont Filters For uBlock Origin" has been removed from stock filter lists, it is no longer maintained. See #3241. Note that uBO is equipped to deal with anti-blockers, it's just a matter of users reporting instances to volunteer maintainers. Everybody is welcomed to assist in finding solutions to reported filter issues.
The DOM inspector has been improved a bit to make it more usable (see #407). Some refactoring was necessary to move forward this part, and as a result the DOM inspector is currently not available on legacy Firefox. This will be addressed only as time allow. Note that I still consider the DOM inspector to be work in progress. In case you wonder, the DOM inspector is the best way to visualize the effects of cosmetic filters on a page and to create exception cosmetic filters.
The semantic of the no-csp-reports switch has been changed from "block CSP reports from" to "block CSP reports to". This does not change the behavior of the "Block CSP reports" setting. This change of semantic makes sense, and this also removes an incompatibility with NoScript 10 (see #3260).
Accepted pull requests:
- @ kasper93: improve DOM inspector
- @ gwarser: Update supportURL for POL filters
Closed as fixed:
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
- 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