Raymond Hill
2f387e8820
Import translation work from https://crowdin.com/project/ublock
2023-04-26 08:08:16 -04:00
Raymond Hill
348f75af7f
Reverse usage of `browser.alarms`
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2604
Related commit:
- bec6cad2c0
2023-04-26 08:00:13 -04:00
Raymond Hill
ef825245b9
Simplify lz4 instance management
2023-04-25 22:14:15 -04:00
Raymond Hill
1ffdb7d948
Various minor code review
2023-04-25 21:15:11 -04:00
Raymond Hill
ae474aae40
Remove languages with no translations, no activity
2023-04-25 14:21:46 -04:00
Raymond Hill
7e894f5e0e
Add time since version update in troubleshooting info
2023-04-25 14:01:47 -04:00
Raymond Hill
5e174c6cb5
Import translation work from https://crowdin.com/project/ublock
2023-04-25 11:09:33 -04:00
Raymond Hill
c729ac5717
Fix inaccurate description, as per feedback
2023-04-25 11:07:54 -04:00
Raymond Hill
96b3ae5e87
Import translation work from https://crowdin.com/project/ublock
2023-04-25 11:06:53 -04:00
Raymond Hill
c3fc7636f2
Add missing period (as suggested by Crowdin volunteer)
2023-04-24 12:09:26 -04:00
Raymond Hill
bf53737db4
Import translation work from https://crowdin.com/project/ublock
2023-04-24 09:47:59 -04:00
Raymond Hill
ec70f1d99e
Unconditionally listen to listset changes
2023-04-24 09:38:37 -04:00
Raymond Hill
34d2a4ea2a
Fix slice size
...
Related feedback:
ec4480e122 (r110292487)
2023-04-24 09:18:26 -04:00
Raymond Hill
e46705db00
Listen to all-filter-lists-reloaded, not all-assets-updated
...
Related commit:
- 4a92f96206
2023-04-23 16:32:38 -04:00
Raymond Hill
537d6c6b89
Import translation work from https://crowdin.com/project/ublock
2023-04-23 13:51:10 -04:00
Raymond Hill
4a92f96206
Offer opportunity to update filter lists before reporting issue
...
Related discussion:
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2582
If there exist any built-in filter list which last update time
is older than 2 hours, the "Report a filter issue" page will ask
the user to update their filter lists then verify that the issue
still exists.
Once filter lists are updated, the troubleshooting information
will reflect the change in update time.
2023-04-23 13:45:11 -04:00
Raymond Hill
ec4480e122
Fine tune troubleshooting information
2023-04-23 10:22:46 -04:00
Raymond Hill
a2725cb987
Import translation work from https://crowdin.com/project/ublock
2023-04-22 19:34:26 -04:00
Raymond Hill
98d4d24f9b
Mind rejected promises from vAPI.storage API
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2604
2023-04-22 19:29:54 -04:00
Raymond Hill
54cb5e2232
Properly handle promise rejection from webext.storage.local() API
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2604
2023-04-22 10:57:10 -04:00
Raymond Hill
6294829e68
Add more checks against unexpected conditions re. assets.json
2023-04-21 20:28:49 -04:00
Raymond Hill
3dddf4ca47
Fix compiling of negated regex-based `to=` domain
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2234#discussioncomment-5655665
2023-04-19 07:40:12 -04:00
Raymond Hill
e642195d4c
import translation work from https://crowdin.com/project/ublock
2023-04-18 11:12:28 -04:00
Raymond Hill
f539f869b9
Fix counting of error deletion in linter
...
Related feedback:
- https://github.com/uBlockOrigin/uAssets/discussions/17538#discussioncomment-5628053
2023-04-16 08:23:49 -04:00
Raymond Hill
e15951dce5
Convert remaining vAPI.setTimeout to vAPI.defer
...
Related commit:
- 91f9795023
2023-04-14 10:26:45 -04:00
Raymond Hill
19db4e57f2
Make the toolbar warning timeout configurable
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2589
2023-04-14 09:55:06 -04:00
Raymond Hill
7347a2148a
No need for async
2023-04-13 22:24:49 -04:00
Raymond Hill
986ea0691d
Use Promise the way they are meant to be used
2023-04-13 15:03:19 -04:00
Raymond Hill
c97d0ab062
Forcefully clear unprocessed-request status after a minute
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2589#issuecomment-1507084473
2023-04-13 11:41:52 -04:00
Raymond Hill
b6a5424c8d
Seems to fix search count not showing
2023-04-12 20:54:43 -04:00
Raymond Hill
bc54179edd
More aggressively clear the unprocessed-request status
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2589
2023-04-12 10:55:00 -04:00
Raymond Hill
f661196691
Revert vandalism in Czech translation from https://crowdin.com/project/ublock
2023-04-12 09:30:06 -04:00
Raymond Hill
9b3bc3874b
Import translation work from https://crowdin.com/project/ublock
2023-04-12 08:55:54 -04:00
Raymond Hill
464119af61
Link the reload button to clearing the unprocessed-requests status
2023-04-11 23:28:27 -04:00
Raymond Hill
be736b20bd
Search style should override error style
2023-04-11 22:40:44 -04:00
Raymond Hill
6f3b5df8ef
Fix errand change re. new setTimeout wrapper
2023-04-11 10:33:21 -04:00
Raymond Hill
73a63b1930
Import translation work from https://crowdin.com/project/ublock
2023-04-11 08:46:14 -04:00
Raymond Hill
f0c28f2faa
Minor CSS change
2023-04-10 19:54:16 -04:00
Raymond Hill
a495dabff9
Import translation work from https://crowdin.com/project/ublock
2023-04-10 19:37:32 -04:00
Raymond Hill
bf5f343548
Replace toolbar icon tooltip with message section in panel
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2585
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/126rn4f/yellow_toolbar_icon_exclamation_mark_badge/jfns0pc/
2023-04-10 17:10:00 -04:00
Raymond Hill
dad862f063
Properly detect incorrect usage of CSS combinators
...
Related discussion:
- https://www.reddit.com/r/uBlockOrigin/comments/12fquk4/ublock_is_on_but_im_still_getting_ads_on_this/jfpkz1g/
2023-04-10 15:13:03 -04:00
Raymond Hill
768bf7d6f6
Import translation work from https://crowdin.com/project/ublock
2023-04-10 10:22:17 -04:00
Raymond Hill
63d0f124ba
Replace requestIdleCallback() with new vAPI.defer utility
...
Related commit:
- 91f9795023
2023-04-10 10:10:19 -04:00
Raymond Hill
3b14fd915a
Fix cloud storage widget not showing (regression)
...
Related feedback:
- 50afd5ae38 (commitcomment-108294887)
2023-04-10 10:03:51 -04:00
Raymond Hill
0a1deffb02
Add missing period, as suggested
2023-04-10 08:16:01 -04:00
Raymond Hill
5baced053a
Import translation work from https://crowdin.com/project/ublock
2023-04-09 18:48:49 -04:00
Raymond Hill
fe45a0dd77
Import translation work from https://crowdin.com/project/ublock
2023-04-09 14:04:42 -04:00
Raymond Hill
3530b9dc89
Add informative tooltip re. unprocessed requests at launch
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2585
2023-04-09 14:02:01 -04:00
Raymond Hill
c5d62d9ae7
Import translation work from https://crowdin.com/project/ublock
2023-04-09 14:00:39 -04:00
Raymond Hill
91f9795023
Wrap usage of setTimeout in helper for background + auxiliary pages
...
This commit centralizes usage of setTimeout()/clearTimeout() in the
source code at one single location.
2023-04-09 13:38:16 -04:00
Raymond Hill
bec6cad2c0
Start using browser.alarms instead of setTimeout() where applicable
...
Related documentation:
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Background_scripts#convert_to_non-persistent
2023-04-07 20:24:20 -04:00
Raymond Hill
66c70cf746
Fix improper detection of quotes in quoted strings
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2586
2023-04-07 18:10:50 -04:00
Raymond Hill
8b5774a83d
Minor CSS tweak
2023-04-06 17:43:03 -04:00
Raymond Hill
f2698b097c
Fix mv3 build
2023-04-06 17:42:21 -04:00
Raymond Hill
b2894756e5
Import translation work from https://crowdin.com/project/ublock
2023-04-06 13:22:48 -04:00
Raymond Hill
bc21a1fe72
Use custom linter gutter as container for code-folding widgets
...
This allows to reduce the horizontal size of the gutter; more efficient
management of folding since we already need to parse each line for the
linter; and eventually this will also allows to detect unbalanced
!#if-!#endif directives and report such cases as errors.
Additionally, keep incrementally improving error reporting details
in the linter.
2023-04-06 13:14:42 -04:00
Raymond Hill
028eee456f
Ensure error count is decrease when an error is fixed
2023-04-04 16:55:47 -04:00
Raymond Hill
d59eeba8e2
Fix tabs.executeScript() not resolving in due time
...
Related feedback:
- 6efd8eb84a
2023-04-04 14:28:48 -04:00
Raymond Hill
0f5384ee0d
Rename reported popup panel property
2023-04-04 13:42:09 -04:00
Raymond Hill
620a96531c
Report cosmetic filters as popup panel property
2023-04-04 13:20:58 -04:00
Raymond Hill
6efd8eb84a
Add matched cosmetic filters in troubleshooting information
2023-04-04 11:15:44 -04:00
Raymond Hill
09265ef57c
Simplify linter error counting by using line events
2023-04-04 09:24:18 -04:00
Raymond Hill
9b5ed5ca86
Fine-tune underline styles used in CM editor
2023-04-04 08:36:44 -04:00
Raymond Hill
3e1030588e
Import translation work from https://crowdin.com/project/ublock
2023-04-03 10:24:47 -04:00
Raymond Hill
4aea9aa624
Better folding arrows in CodeMirror editor
2023-04-03 10:20:53 -04:00
Raymond Hill
6e8aeae283
Flush memory cache at key filtering profile changes
...
To reduce the need for hard reload after changes in filters,
rules.
2023-04-03 10:19:06 -04:00
Raymond Hill
6531b86d29
Fix search highlight with dark theme
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2542#discussioncomment-5502579
2023-04-02 13:20:22 -04:00
Raymond Hill
ae1afe0381
Import translation work from https://crowdin.com/project/ublock
2023-04-02 12:13:44 -04:00
Raymond Hill
edbe96a401
Add logging ability to `acs` scriptlet, for the benefit of filter list
...
maintainers.
To enable logging, use the JSON approach to pass parameters to
`acs` scriptlet. Example:
..##+js(acs, { "target": "document.oncontextmenu", "log": true })
Whereas "target", "needle", and "context" correspond to their
respective positional argument. Using JSON form to pass parameters
allows to specify extra paramters to facilitate debugging of that
scriptlet:
- `"log": true` => output useful information at the dev console.
- `"debug": true` => break at key locations in the scriptlet.
The added logging/debugging capabilities work only in the dev build
of uBO or if the advanced setting `filterAuthorMode` is set to
`true`.
2023-04-02 12:01:58 -04:00
Raymond Hill
95bd52d01f
Fine tuning new linter code
2023-04-02 10:40:44 -04:00
Raymond Hill
cda39709b1
Properly fail on bad network filter pattern
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1146
2023-04-02 10:05:42 -04:00
Raymond Hill
46e90b21e9
Code review of new linter code
...
As per CodeMirror's documentation, eachLine() iterator is
faster, so use this. Also no need to keep track or marked
lines, we can just find them on demand, this makes the code
simpler.
2023-04-02 09:19:32 -04:00
Raymond Hill
dd8031a508
Fine tune CSS style for errors
2023-04-01 18:11:41 -04:00
Raymond Hill
0601350995
Import translation work from https://crowdin.com/project/ublock
2023-04-01 16:51:03 -04:00
Raymond Hill
9519666fcc
Import translation work from https://crowdin.com/project/ublock
2023-04-01 16:49:15 -04:00
Raymond Hill
50afd5ae38
Add infrastructure for static filter syntax linter
...
Sort of related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1134
2023-04-01 16:42:41 -04:00
Raymond Hill
b10f15dd89
Ignore line, do not report as error
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2560#issuecomment-1492959500
2023-04-01 13:50:53 -04:00
Raymond Hill
e2d837a2db
Fix presumed network filter not being a valid network filter
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2560#issuecomment-1492959500
2023-04-01 09:05:36 -04:00
Raymond Hill
9f1c0d986b
Add support to restore from `json` file
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1956
2023-03-31 09:58:50 -04:00
Raymond Hill
0d26064a26
Make `object` equivalent of `frame` for dynamic filtering purpose
...
Related issue:
- uBlockOrigin/uBlock-issues#2496
2023-03-31 09:46:22 -04:00
Raymond Hill
b4ae2d3bf4
Make `object` equivalent of `frame` for dynamic filtering purpose
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2496
2023-03-31 09:37:53 -04:00
Raymond Hill
0d5cb8cff5
Import translation work from https://crowdin.com/project/ublock
2023-03-31 08:49:00 -04:00
Raymond Hill
e2a158d94b
Add check before accessing vAPI
2023-03-31 08:28:09 -04:00
Raymond Hill
5c85fdbc32
Fix typo in code
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2570#issuecomment-1491616007
2023-03-31 08:26:53 -04:00
Raymond Hill
b5d78a07bf
Fix type in variable name
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2570
2023-03-30 20:46:44 -04:00
Raymond Hill
a6071565a5
Import translation work from https://crowdin.com/project/ublock
2023-03-30 16:35:52 -04:00
Raymond Hill
0a899e1279
Added strings to translate
2023-03-30 16:33:32 -04:00
Raymond Hill
c3df4ced0a
Import translation work from https://crowdin.com/project/ublock
2023-03-30 16:32:24 -04:00
Raymond Hill
d58309674d
Enfore implicit `media` type for filters using `mp4`
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2568
2023-03-30 13:25:45 -04:00
Raymond Hill
42a00ec742
Better detect invalid network filter patterns
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2566
2023-03-30 12:58:19 -04:00
Raymond Hill
1835e90125
Avoid using `!` toolbar icon badge when inconsequential
...
uBO will now verify that at least one unprocessed network requests
at launch should have been blocked in order to warn users of
unprocessed network requests through the `!` toolbar icon badge.
For example, with default filter lists, there is nothing to block
on `wikipedia.org`, and hence in this case it's not useful to
present the user with the `!` badge.
Therefore uBO will not show the badge *only* when at least one
unprocessed network requests should have been blocked had uBO been
ready when it was fired by the browser.
Related commit:
- https://github.com/gorhill/uBlock/commit/769b8da664be
2023-03-30 12:30:44 -04:00
Raymond Hill
3d1c696e20
Support view source of "other" type
2023-03-30 12:29:02 -04:00
Raymond Hill
08d411a7b4
Clear network error status when list fetch succeed
2023-03-30 12:28:02 -04:00
Raymond Hill
6461393b6a
Prevent repeatedly launching emergency updates
...
Emergency update of assets could be repeatedly launched
every 15 seconds if a resource could not be fetched from
a server. A cooldown period has been added to prevent
repeatedly launching emergency updates.
2023-03-29 13:02:48 -04:00
Raymond Hill
8d445e782d
Add widget to filter firewall rows in popup panel
...
This replaces the limited "visually enhance rows" togglers.
2023-03-29 12:47:18 -04:00
Raymond Hill
189bdd685f
Properly report network error condition when importing filter list
...
Before this commit, a network error condition was not reported
when the filter list was imported, it was only reported afterward
when the imported filter list was updated.
2023-03-28 09:54:03 -04:00
Raymond Hill
391b2a4e67
Test for presence of vAPI in deferred methods
2023-03-28 08:39:36 -04:00
Raymond Hill
198c20db76
Return error when GET returns a non-plain text file
2023-03-28 08:38:34 -04:00
Raymond Hill
8507d637e5
Add support for negated hostnames in HTML filters
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/6
2023-03-28 08:35:09 -04:00
Raymond Hill
3658d70cc4
Add missing 64px icons
2023-03-27 18:18:21 -04:00
Raymond Hill
885b3ea6c0
Fix spurious update cycle attempts
...
Caused by the fact that external filter lists do not have an
`off` property even when they are not enabled.
Additionally, set the default update cycle check period to 2hr.
2023-03-27 15:04:44 -04:00
Raymond Hill
75abf77e62
Fix patching `{{args}}` when instances of `$` are present
...
Related feedback:
- https://github.com/uBlockOrigin/uAssets/issues/16715#issuecomment-1484232457
2023-03-27 09:04:35 -04:00
Raymond Hill
f7f776fb8a
Aggressively update assets when at least one is very obsolete
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1165
2023-03-26 20:32:51 -04:00
Raymond Hill
a8a46c4593
Normalize non-ASCII characters in `:matches-path()` argument
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2369
2023-03-26 15:37:15 -04:00
Raymond Hill
da672d4dbf
Add extra check to detect function declaration in scriptlets
...
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/122pqyg/
2023-03-26 13:14:00 -04:00
Raymond Hill
5c9c87e485
Add ability for scriptlets to share local data
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1741
As a result of the new capability, usage of RegExp API in `aost`
scriptlet has been shielded from the webpage tampering with the
API.
2023-03-26 12:31:36 -04:00
Raymond Hill
236fb3ad59
Add scriptlet dependencies to reduce code duplication
2023-03-26 09:13:17 -04:00
Raymond Hill
a42374199e
Fix regression in parsing scriptlet arguments
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2557
2023-03-24 15:57:48 -04:00
Raymond Hill
18a84d2819
Refactor scriptlets injection code
...
Builtin scriptlets are no longer parsed as text-based resources,
they are imported as JS functions, and `toString()` is used to
obtain text-based representation of a scriptlet.
Scriptlet parameters are now passed as function call arguments
rather than by replacing text-based occurrences of `{{i}}`. The
arguments are always string values (see below for exception).
Support for argument as Object has been added. This opens the
door to have scriptlets using named arguments rather than
positional arguments, and hence easier to extend functionality
of existing scriptlets. Example:
example.com##+js(scriplet, { "prop": "adblock", "value": false, "log": true })
Compatibility with user-provided scriptlets has been preserved.
User-provided scriptlets can benefit some of the changes:
Use the form `function(..){..}` instead of `(function(..){..})();`
in order to received scriptlet arguments as part of function call
-- instead of using `{{i}}`.
If using the form `function(..){..}`, you can choose to receive
an Object as argument -- just be sure that your scriptlet's
parameter is valid JSON notation.
2023-03-24 14:05:18 -04:00
Raymond Hill
56b8201196
Ensure astSelectorsFromSelectorList receive expected arguments
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2554
2023-03-23 14:57:31 -04:00
Raymond Hill
2cd062898c
Properly handle default list status changes in assets.json
...
This commit fix properly handling toggling off the default
status of a list such that the list will be automatically
turned off when its status change from default to non-default.
Additionally, imported lists which become stock lists will
be properly migrated from imported lists section.
2023-03-23 13:40:51 -04:00
Raymond Hill
6d989744bb
Import translation work from https://crowdin.com/project/ublock
2023-03-21 12:12:17 -04:00
Raymond Hill
72cc9a8fe8
Fix broken http header filtering
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2552
2023-03-21 10:22:32 -04:00
Raymond Hill
e8abd5dfbe
Fix report of unprocessed requests in Support pane
2023-03-18 16:20:40 -04:00
Raymond Hill
d42e9ae2a8
Add dev console boot sequence info
2023-03-18 14:37:49 -04:00
Raymond Hill
a9c7369340
Minor fine tuning
2023-03-16 14:54:45 -04:00
Raymond Hill
fd9bb02aab
Fix search widget when swapping document in new code viewer
2023-03-16 12:36:02 -04:00
Raymond Hill
5c92d95143
Prevent dashboard from loading at browser launch until ready
...
Related discussion:
- https://github.com/uBlockOrigin/uAssets/discussions/16939
Various feedback of people trying to interact with uBO's dashboard
at browser launch, before uBO's main process is fully initialized,
causing confusion, and potential loss of data.
2023-03-16 09:17:36 -04:00
Raymond Hill
39cac612c2
Use the warning toolbar icon only if unprocessed requests
...
Related discussion:
- https://github.com/uBlockOrigin/uAssets/discussions/16939
Related commit:
- 0c9576d3e6
2023-03-15 21:13:28 -04:00
Raymond Hill
8e35aa74f0
Report only launch-time value of maxAssetCacheWait
2023-03-15 08:32:56 -04:00
Raymond Hill
47c731f680
Import translation work from https://crowdin.com/project/ublock
2023-03-15 08:16:18 -04:00
Raymond Hill
464b54bbc6
Add `ext_devbuild` as preparser directive
...
In order to be able to create filters which only work with the
dev build of uBO.
2023-03-14 19:11:29 -04:00
Raymond Hill
c0529307fa
Properly handle failed fetches in code viewer
2023-03-14 08:58:52 -04:00
Raymond Hill
6ba758d007
Add button to code viewer to reload code from server
2023-03-14 08:43:23 -04:00
Raymond Hill
93ac6514bc
Import translation work from https://crowdin.com/project/ublock
2023-03-13 10:59:25 -04:00
Raymond Hill
6220c4d9d5
Improve code viewer convenience
...
- Retain cursor position, selection, undo history, etc. when swapping
documents.
- Add ability to remove a document from dropdown list
2023-03-13 10:51:55 -04:00
Raymond Hill
4bf3fe7b5b
Fix minor details in new code viewer
...
- Automatically remove quotes around URLs pasted in input field
- Fix editor not getting the focus after interacting with input
field
2023-03-12 17:47:21 -04:00
Raymond Hill
caeb848c56
Fix race condition when looking up current auto/light/dark theme
...
Related feedback:
- e2dd008388 (commitcomment-104105757)
2023-03-12 11:20:54 -04:00
Raymond Hill
ed05b1d261
"View source..." => "View source code..."
2023-03-12 10:28:35 -04:00
Raymond Hill
b690405c72
Import translation work from https://crowdin.com/project/ublock
2023-03-12 10:27:40 -04:00
Raymond Hill
7b632b32a8
Fix "View source..." context menu entry in Firefox
2023-03-12 10:21:30 -04:00
Raymond Hill
4b6ce5e402
Cleanup unused code
...
Related discussion:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1529
- https://github.com/uBlockOrigin/uBlock-issues/discussions/1958#discussioncomment-5257148
2023-03-12 10:08:20 -04:00
Raymond Hill
b63ced24d4
Fix broken filter parsing when prepended with spaces
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2540
2023-03-12 09:45:33 -04:00
Raymond Hill
f4391adc5c
Fix https://github.com/uBlockOrigin/uBlock-issues/discussions/2539
2023-03-11 20:36:05 -05:00
Raymond Hill
d6fa3e5059
Import translation work from https://crowdin.com/project/ublock
2023-03-11 16:00:51 -05:00
Raymond Hill
e2dd008388
Add 'View source...' entry in context menu
...
This new context menu entry will be available only when the
advanced setting `filterAuthorMode` is set to `true`. See:
https://github.com/gorhill/uBlock/wiki/Advanced-settings#filterauthormode
The purpose is for filter list maintainers to easily access
the source code of web pages when investigating filter issues,
without having to necessarily go through the logger.
Additionally an input field to enter URL directly has been
added to the code viewer for convenience.
2023-03-11 15:55:51 -05:00
Raymond Hill
bed362d375
Import translation work from https://crowdin.com/project/ublock
2023-03-11 15:54:07 -05:00
Raymond Hill
7bfa8f260b
Just select already existing tab when opening link from logger
2023-03-11 09:40:34 -05:00
Raymond Hill
574f30ed43
Context of `about:blank` is that of parent frame (`popup` option)
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2534#discussioncomment-5264792
2023-03-10 08:48:48 -05:00
Raymond Hill
3c4c3767a2
Report filter list of invalid filter in logger
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2534
2023-03-10 06:48:57 -05:00
Raymond Hill
7bf3f1bd20
Prevent dialog box from overflowing logger's viewport
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2497#discussioncomment-5250170
2023-03-09 07:11:10 -05:00
Raymond Hill
ccbe350d8b
Increase width of per-entry link button in logger
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2530
2023-03-08 14:28:26 -05:00
Raymond Hill
890aabaae9
Make parser take into account `filterOnHeaders` setting
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1134#issuecomment-1460638431
2023-03-08 13:49:21 -05:00
Raymond Hill
bbd9470a98
Convert resource URLs into clickable links in code viewer
2023-03-08 12:31:39 -05:00
Raymond Hill
f9b03ebeac
Report unprocessed network request count in troubleshooting info
...
Related discussion:
- https://github.com/uBlockOrigin/uAssets/discussions/16939
2023-03-08 09:36:09 -05:00
Raymond Hill
0c9576d3e6
Show a distinct toolbar icon until filtering engines are fully initialized
...
Related discussion:
- https://github.com/uBlockOrigin/uAssets/discussions/16939
Until uBO's filtering engines are properly initialized, there will
be a distinct toolbar icon to help users understand that uBO may
not be fully initialized when a webpage is loaded -- often the
cause of improper filtering of trackers/ads at browser launch.
2023-03-07 16:02:09 -05:00
Raymond Hill
bd84a7c8d5
Support rendering `xhr` requests in new code viewer
...
Related commit:
- 33c437f99f
2023-03-07 13:40:52 -05:00
Raymond Hill
a0a23085ed
Do not generate DNR block rule for `redirect=` filters
...
DNR API does not support block-then-redirect concept, hence no
point in generating a DNR block rule for `redirect=` filters.
Additionally, better handle orphaned filter anchors (`||`, `|`).
2023-03-06 13:06:57 -05:00
Raymond Hill
cd21a0bb9d
MV3 implicit Rule priority is 1, not 0
...
Related issue:
- https://github.com/uBlockOrigin/uBOL-issues/issues/30
2023-03-03 16:52:28 -05:00
Raymond Hill
82c73199e4
Simplify parser's templating code
2023-03-03 13:49:58 -05:00
Raymond Hill
033aa9cfad
Need valid tab id for scriptlet injection
2023-03-03 12:14:36 -05:00
Raymond Hill
a60a5c2772
Fix wrong syntax color highlight in "Trusted sites" pane
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2521
2023-03-02 20:50:32 -05:00
Raymond Hill
4ef6420f7c
Fine tune new code viewer
...
Remove read-only restriction -- it might be useful to
enter notes/markers/etc when investigation code flow.
2023-03-02 17:11:40 -05:00
Raymond Hill
2155284d8b
Fix broken code viewer
...
Related commit:
- 33c437f99f
2023-03-01 12:47:18 -05:00
Raymond Hill
138e6bc37f
Remove obsolete comment
2023-03-01 12:31:44 -05:00
Raymond Hill
33c437f99f
Add source code viewer (from logger)
...
This commits add the ability to open html/css/script
resources from the logger, as a formatted and syntax-
highligthed document.
The goal is to make it easier for filter list authors to
investigate filter-related issues.
2023-03-01 11:04:40 -05:00
Raymond Hill
db118483c9
Support update period below 1-day
...
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/11bfwgn/how_to_update_custom_filter_lists_automatically/ja280xu/
2023-03-01 05:26:30 -05:00
Raymond Hill
8f32bee8b9
Restore behind-the-scene origin for docless secondary resources
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2515
2023-02-28 20:08:31 -05:00
Raymond Hill
09bc4e21c7
Refine AST template's regex for hosts file entries
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2512
2023-02-27 09:07:38 -05:00
Raymond Hill
454a03a98f
Use block scope to isolate context
2023-02-24 18:02:28 -05:00
Raymond Hill
191f2f00d6
Put back reload button in logger's "Details" dialog
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2497#discussioncomment-5100726
2023-02-24 18:00:16 -05:00
Raymond Hill
d8bc7436e8
Flush cached result when adding to FilterDomainHitSet
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2507
2023-02-22 10:21:20 -05:00
Raymond Hill
1d42ef5c73
Add missing semicolon
2023-02-21 14:59:18 -05:00
Raymond Hill
e740068691
Support moving logger dialog around with touch events
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2497
2023-02-19 18:41:57 -05:00
Raymond Hill
c8c5264aca
Fix improper invalidation of inline-(font|script) types
...
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/1132loz/
2023-02-15 16:40:59 -05:00
Raymond Hill
e39f815a73
Fix mozilla warning
2023-02-13 13:14:54 -05:00
Raymond Hill
10e680c2ef
Output highly generic cosmetic filters
2023-02-13 12:43:58 -05:00
Raymond Hill
8d684271b9
Import translation work from https://crowdin.com/project/ublock
2023-02-13 12:42:30 -05:00
Raymond Hill
8f2e7ae202
Prevent context menu entries on non-HTTP documents
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1093#issuecomment-1423342620
2023-02-08 19:35:15 -05:00
Raymond Hill
ac25b2d6f3
Fix regression of exception procedural cosmetic filters
...
Related feedback/commit:
- bc19a93815 (commitcomment-99271464)
2023-02-04 08:21:17 -05:00
Raymond Hill
fe5fdfe5ed
Use precomputed AST layouts to speed up parsing
...
Related commit:
- 99ac234d12
2023-02-02 12:14:56 -05:00
Raymond Hill
bc19a93815
Ignore compilation hints when applying exception cosmetic filters
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2475
2023-02-01 11:24:07 -05:00
Raymond Hill
6eec497ae8
Minor code review
2023-02-01 10:22:13 -05:00
Raymond Hill
7881e1ace3
Fix bad cut-n-paste piece of code
...
Related commit:
- b1de8d3fe4
2023-02-01 09:16:58 -05:00
Raymond Hill
7dc79b0605
Import translation work from https://crowdin.com/project/ublock
2023-01-31 14:36:00 -05:00
Raymond Hill
81498474d6
Add support for regex-based values as target domain for static extended filters
...
Related discussion:
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2234
Example of usage:
/img[a-z]{3,5}\.buzz/##+js(nowoif)
Use sparingly, when no other solution is practical from a maintenance point
of view -- keeping in mind that uBO has to iterate through all the regex-based
values, unlike plain hosyname or entity-based values which are mere lookups.
Related commit:
- b1de8d3fe4
2023-01-31 14:15:13 -05:00
Raymond Hill
d2487b6a6d
Remove unused `interestCohort`-related code paths
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1553
2023-01-31 09:51:43 -05:00
Raymond Hill
b1de8d3fe4
Add support for regex-based values for `domain=`/`from=`/`to=` options
...
Related discussion:
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2234
Example of usage:
@@*$ghide,domain=/img[a-z]{3,5}\.buzz/
Regex-based domain values can be negated just like plain or
entity-based values:
*$domain=~/regex.../
This new syntax does not apply to static extended filters.
2023-01-30 17:00:26 -05:00
Raymond Hill
d88ec51b63
Minor code review
2023-01-30 11:14:07 -05:00
Raymond Hill
2e1cb9be9b
Ensure pattern is first unit for biditrie-ability purpose
2023-01-30 11:12:21 -05:00
Raymond Hill
c54b521345
Minor code review
2023-01-30 11:11:56 -05:00
Raymond Hill
70e2864ca4
Fix broken parser involving specific filters with Unicode characters
...
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/10obivd/
The issue was arising with filters of the form:
||example.org^$domain=[domain name with Unicode characters]
2023-01-29 16:13:43 -05:00
Raymond Hill
6fd58c9c9b
Fix improper partiness attribution for some delayed network requests
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2453
2023-01-28 11:38:53 -05:00
Raymond Hill
99ac234d12
Add fast code paths for frequent filter patterns
...
Related commit:
- 8ea3b0f64c
2023-01-28 08:44:54 -05:00
Raymond Hill
26e8771256
Fix filure to lookup filters with `header=` option
...
Related feedback:
- bde3164eb4 (commitcomment-98348215)
2023-01-27 20:18:20 -05:00
Raymond Hill
827f0e4971
Do not disallow using inline-script with real network types
...
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/10l2jjr/help_latest_ubo_developer_version_is_not_working/j5wdjjv/
2023-01-26 10:12:59 -05:00
Raymond Hill
c600cbbd3a
Fix severe regression causing infinite loop in new parser
...
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/10l2jjr/help_latest_ubo_developer_version_is_not_working/
- https://github.com/uBlockOrigin/uBlock-issues/issues/2469
2023-01-25 18:05:06 -05:00
Raymond Hill
202567497d
Import translation work from https://crowdin.com/project/ublock
2023-01-25 10:04:51 -05:00
Raymond Hill
ccdf6bd150
Fix generating NODE_TYPE_EXT_PATTERN_SCRIPTLET branch
...
Related feedback:
- 8ea3b0f64c (commitcomment-97858269)
2023-01-24 08:07:30 -05:00
Raymond Hill
8ea3b0f64c
Rewrite static filtering parser
...
This commit is a rewrite of the static filtering parser into a
tree-based data structure, for easier maintenance and better
abstraction of parsed filters.
This simplifies greatly syntax coloring of filters and also
simplify extending filter syntax.
The minimum version of Chromium-based browsers has been raised
to version 73 because of usage of String.matchAll().
2023-01-23 16:53:18 -05:00
Raymond Hill
4564e3a9b8
Add redirectable resource noop.css, as suggested
...
Related feedback:
- https://github.com/uBlockOrigin/uAssets/issues/16391#issuecomment-1396316194
2023-01-23 16:39:46 -05:00
Raymond Hill
c5baa8808b
Minor code review
2023-01-07 12:55:57 -05:00
Raymond Hill
789ee8d910
Minor code review
2023-01-07 12:52:46 -05:00
Raymond Hill
2b5efe9dcb
Improve plain CSS validation in cosmetic filters
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2442
Cosmetic filters with unknown plain CSS pseudo-classes or
unknown plain CSS pseudo-elements will be rejected, except
for pseudo-classes/pseudo-elements which start with a `-`.
2023-01-07 10:13:51 -05:00
Raymond Hill
988a352cc4
Fine tuning the logger's entry tools positioning
...
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/10483e5/new_logger_functions_in_latest_dev_build_ubo/j33tx0y/
2023-01-06 10:16:24 -05:00
Raymond Hill
d9b50fcd51
Drop as invalid unknown argument-based pseudoclass operators
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2442
These invalid pseudoclass operators were still seen as
valid when mixed with procedural pseudoclass operators.
2023-01-06 09:54:11 -05:00
Raymond Hill
7847731e9a
Remember position entry tools widget in logger
...
Related feedback:
- a9405fe36c (commitcomment-95164238)
2023-01-05 12:49:02 -05:00
Raymond Hill
cfd8d144d0
Minor CSS fine tuning in logger
2023-01-05 09:17:24 -05:00
Raymond Hill
c95088f001
Minor background color adjustment
2023-01-05 09:10:50 -05:00
Raymond Hill
5e45c7249a
Add more columns in logger for bringing up entry details
2023-01-05 09:08:26 -05:00
Raymond Hill
7b8c096270
Better validate `:upward()` argument
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2442#issuecomment-1371484554
2023-01-05 08:39:31 -05:00
Raymond Hill
3e85e51dd2
Make button font size derive from CSS variable font-size
2023-01-04 14:10:05 -05:00
Raymond Hill
a9405fe36c
Make the logger entry dialog modeless
2023-01-04 13:43:12 -05:00
Raymond Hill
dfe9d3a1da
Fix missing regex flags
...
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/1005a8f/suddenly_my_filters_doesnt_work/j2htwof/
2023-01-01 21:58:14 -05:00
Raymond Hill
45139d8fdc
Import version 1.2.0 of RegexAnalyzer
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2374
2023-01-01 10:15:24 -05:00
Raymond Hill
d80ac4f292
Import version 1.2.0 of https://github.com/foo123/RegexAnalyzer
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2374
2023-01-01 10:00:33 -05:00
Raymond Hill
f8d2bd0ebb
Set `charset` to `utf-8` for Blob-based injected scriptlets
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2431
2023-01-01 09:33:20 -05:00
Raymond Hill
72dabcac66
Disallow `-abp-...` filters if not using `#?#`
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2435#issuecomment-1367805459
2023-01-01 09:20:32 -05:00
q1800
3c9ad16359
Update about.html ( #3882 )
...
Remove GitCDN from about.html
2022-12-27 20:48:52 -05:00
Raymond Hill
357a4c7bf5
Import translation work from https://crowdin.com/project/ublock
2022-12-26 10:36:09 -05:00
Raymond Hill
3f71659aa8
Work related to keyboard shortcuts for page reload
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/896
Additionally, added the keyboard shortcuts to reload the current
tab to the logger. This changes the prior behavior of reloading
the logger content itself.
2022-12-25 10:34:53 -05:00
Raymond Hill
4157171b7f
Use "constant" property for target hntrie container
2022-12-25 08:54:18 -05:00
Raymond Hill
6a50f41aeb
Internal cell count !== visual cell count
...
Internal cell count is used to filter the output of the logger. This
commit fixes filtering according to cname alias.
2022-12-24 10:30:25 -05:00
Raymond Hill
b194baa089
Fix visual regressions in logger
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2425
2022-12-24 10:04:31 -05:00
Raymond Hill
d5f9c05d62
Take `method=` into account when evaluating whether a filter is pure hostname
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2117
2022-12-24 09:49:46 -05:00
Raymond Hill
19f8b30d57
New network filter option: `to=[list of domain names]`
...
Related discussion:
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2412#discussioncomment-4421741
The new option is `to=` and the value is a list of domain list with
similar syntax as `domain=` option. Entity-based syntax is supported,
and also negated hostname.
The main motivation is to give uBO's static network filtering engine
with an equivalent of DNR's `requestDomains` and `excludedRequestDomains`.
Essentially `to=` is a superset of `denyallow=`, but for now I decided
against deprecating `denyallow=`, which still does not support entity-
based syntax and for which negated domains are not allowed.
This commit also introduces the `from=` option, which is just an alias
for the `domain=` option. The logger will render network filters using
the `from=` version.
2022-12-23 15:52:24 -05:00
Raymond Hill
b6981877ba
Add option to filter by HTTP method in static network filters
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2117
Option: `method=`
Value: a list of `|`-separated lowercased method names. Negated
method names are allowed. These are valid methods:
- connect
- delete
- get
- head
- options
- patch
- post
- put
As per DNR's own documentation:
- https://developer.chrome.com/docs/extensions/reference/declarativeNetRequest/#type-RequestMethod
The logger shows the method used for every network request. It's
possible to filter the logger output for most-common methods: `get`,
`head`, `post`.
2022-12-22 13:15:08 -05:00
Raymond Hill
bfed6059d4
Import translation work from https://crowdin.com/project/ublock
2022-12-22 11:10:56 -05:00
Raymond Hill
3fe6846da7
Fix case-sensitiveness in :has-text() (regression)
...
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/zqot4i/is_there_a_way_to_show_only_element_with_specific/j0zl4ck/
2022-12-20 14:34:54 -05:00
Raymond Hill
74765d2cf1
Import translation work from https://crowdin.com/project/ublock
2022-12-16 10:55:32 -05:00
Raymond Hill
f596559103
Add `options` stub to `nofab` scriptlet
...
Related issue:
- https://github.com/uBlockOrigin/uAssets/issues/16010
Related AdGuard commit re. `prevent-fab-3.2.0`:
- 3bfb9b39e9
2022-12-15 13:12:37 -05:00
Raymond Hill
f78fb513a1
Support generic exception filter for HTML filtering
...
Related feedback:
- fa5e4b7769 (commitcomment-93202819)
2022-12-15 11:35:03 -05:00
Raymond Hill
a31f74325d
Fix "make lint" errors
2022-12-15 11:20:52 -05:00
Raymond Hill
fa5e4b7769
Fine tune new exceptor code
...
Related feedback:
- a91781a495 (commitcomment-93128519)
For instance, do not make exceptor widget available for
exceptions from filter lists.
2022-12-15 10:04:59 -05:00
Raymond Hill
a91781a495
Rewrite logger's "exceptor" feature
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1861
The "exceptor" feature has been rewritten, with the following
changes as a result:
- The excepted filters cease to exist when closing the logger
- It's now possible to temporary except network filters
When toggling on/off a temporary exception, filter lists are now
fully reloaded. This simplified managing temporary exceptions, and
made it easy to implement temporary exception for network filters,
but this also means there might be a perceptible delay when
adding/removing temporary exceptions. At this point I consider
this an acceptable side-effect just to bring the ability to easily
create temporary exception for network filters, while this
simplified the existing temporary exception code throughout.
2022-12-14 16:04:45 -05:00
Raymond Hill
d77331f73a
Be sure procedural filterer is present before use
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2407
2022-12-14 08:56:04 -05:00
Raymond Hill
b603e9e81e
Various code review related to extended filtering
...
Bring latest changes to procedural cosmetic filtering to uBOL.
Fix procedural filtering used in HTML filters.
Standardize quick hash algorithm used throughout to DJB2
(except that initialization step is skipped):
- http://www.cse.yorku.ca/~oz/hash.html#djb2
2022-12-13 10:23:51 -05:00
Raymond Hill
58e60d6d96
Fix various regressions in latest dev build
...
Related issues:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2404
- https://github.com/uBlockOrigin/uBlock-issues/issues/2400#issuecomment-1346050327
2022-12-12 14:02:57 -05:00
Raymond Hill
592295b978
Import translation work from https://crowdin.com/project/ublock
2022-12-11 10:23:11 -05:00
Raymond Hill
0971025b21
Use Blob URLs to reliably inject scriptlets
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/235
Fixed as suggested by <https://github.com/evilpie >, to safely
bypass a page's own CSP.
2022-12-11 10:08:10 -05:00
Raymond Hill
992255e993
Add `:remove-attr()` and `:remove-class()` pseudo selector operators
...
These two new pseudo selectors are _action_ operators, and thus can
only be used at the end of a selector. They both take as argument
a string or regex literal.
For `:remove-class()`, when the argument matches a class name, that
class name is removed.
For `:remove-attr()`, when the argument matches an attribute name,
that attribute is removed.
These operators are meant to replace `+js(remove-attr, ...)` and
`+js(remove-class, ...)`, which from now on are candidate for
deprecation in some future.
Once the next stable release is widespread, filter authors must use
these two new operators instead of their `+js()` counterparts.
2022-12-10 11:18:24 -05:00
Raymond Hill
b0a0a44c64
Revisit validation of combinators in `:not()` operator
...
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/z2ttcx/problem_with_custom_filters_in_1452/iza8nkk/
2022-12-09 11:10:39 -05:00
Raymond Hill
78a778922d
Minor code review
2022-12-08 10:14:45 -05:00
Raymond Hill
f1b19d5115
Fix reverse lookup of generic cosmetic filters
...
Related feedback:
- 26594fb902 (commitcomment-92413254)
2022-12-08 10:07:58 -05:00
Raymond Hill
bbf06ad972
Fix parsing of `:matches-attr` arguments
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2329#issuecomment-1341349992
2022-12-07 14:15:01 -05:00
Raymond Hill
1bda7e0085
Code review of reworked generic cosmetic filtering code
...
Related commit:
- 26594fb902
2022-12-07 13:48:44 -05:00
Raymond Hill
267151a732
Import translation work from https://crowdin.com/project/ublock
2022-12-07 10:42:47 -05:00
Raymond Hill
a901606b97
combinatronics is no longer a CDN provider
2022-12-07 10:37:55 -05:00
Raymond Hill
26594fb902
Rework generic cosmetic filtering code
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2248
2022-12-07 10:30:09 -05:00
Raymond Hill
76d70102f0
Add pseudo-operator `:matches-attr()`
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2329
The supported syntax is exactly as per AdGuard's documentation:
- https://kb.adguard.com/en/general/how-to-create-your-own-ad-filters#extended-css-matches-attr
Though recommended, the quotes are not mandatory in uBO if
the argument does not cause the parser to fail and if there
are no ambiguities.
Additionally, improved the code to better unquote pseudo-operator
arguments, and to bring it closer to how AdGuard does it as per
documentation. When using quotes, `"` and `\` should be escaped
to preserve these characters in the unquoted version of the
argument.
Additionally, it is now possible to have `:has-text()` match the
empty string by just quoting the empty string:
...##foo:has-text("")
2022-12-02 15:43:04 -05:00
Raymond Hill
bedfdff678
No need for arrow function for scoping
2022-11-29 12:01:16 -05:00
Raymond Hill
ef4dfb3131
Import translation work from https://crowdin.com/project/ublock
2022-11-29 10:34:51 -05:00
Raymond Hill
62601639f6
Detect invalid usage of combinators in :not() pseudoclass
...
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/z2ttcx/
2022-11-25 10:21:58 -05:00
Raymond Hill
92397baa39
Give more time for viewport to be ready
2022-11-24 11:21:13 -05:00
q1800
5811118277
Update about.html ( #3881 )
2022-11-23 13:54:50 -05:00
Raymond Hill
8d80f4788d
Trim content of Import field
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2380
2022-11-23 12:55:20 -05:00
Raymond Hill
3e4f6f9986
Import translation work from https://crowdin.com/project/ublock
2022-11-23 12:43:55 -05:00
Raymond Hill
bdc7a4c539
Handle potentially invalid CSS selector
...
Older browser versions may not support valid CSS selector syntax
in newer browser versions.
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/yzw5pt/
2022-11-21 08:57:55 -05:00
Raymond Hill
eb709335f8
Ensure state of more/less in panel reflect locked/disabled sections
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1059
2022-11-20 13:02:09 -05:00
Raymond Hill
fa216a43e4
Fix typo in string template code
...
Related commit:
- feaa338678
2022-11-20 10:17:05 -05:00
Raymond Hill
9b3ad0702c
Isolate generic cosmetic filters from specific ones in generated stylesheet
...
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/yzw5pt/
Some CSS4-based selectors are not supported in older browser versions
and this may cause cosmetic filtering to be wholly broken as a result.
The commit here is to isolate generic cosmetic filters from specific
ones in stylesheets such that unsupported CSS4 selectors in generic
cosmetic filters do not cause wholly breakage of cosmetic filtering
on all sites.
2022-11-20 10:08:28 -05:00
Raymond Hill
44753053c3
Prevent the creation of non-cosmetic extended filters in element picker
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2232
2022-11-19 12:29:10 -05:00
Raymond Hill
c818065c69
Update fix to regex library
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2374
2022-11-19 09:54:34 -05:00
Raymond Hill
4fb4ee1915
Handle negative character group
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2373
2022-11-18 13:37:48 -05:00
Raymond Hill
1c67869c42
Addendum to last commit as per feedback
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2372
2022-11-18 11:23:20 -05:00
Raymond Hill
42a7cfced3
Use already available stringified character code
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2372
2022-11-18 10:10:47 -05:00
Raymond Hill
04b8d495b6
Mind zero quantifier
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2371
2022-11-18 08:52:32 -05:00
Raymond Hill
122b84a6bc
Revert reversion
2022-11-17 13:39:19 -05:00
Raymond Hill
f46e5ef3b5
Further fix tokenization from regex
...
As per feedback/discussion:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2368
- https://github.com/uBlockOrigin/uBlock-issues/issues/2367
2022-11-17 13:17:32 -05:00
Raymond Hill
69b899d0f9
Fix commit reference
2022-11-17 10:27:40 -05:00
Raymond Hill
105c7f5446
Fix visual of DOM inspector layer in dark theme mode
...
Related discussion:
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2359
2022-11-17 09:25:20 -05:00
Raymond Hill
d9744d012a
Document changes to imported library
2022-11-17 08:53:41 -05:00
Raymond Hill
d51b7e082b
Improve extraction of tokens from regexes
...
Fixed flawed extraction of tokens with optional sequences, i.e.
when quantifier could be zero.
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2367
Ignore look-around sequences as suggested when normalizing into
tokenizable string.
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2368
Fix regex analyzer throwing with trailing `-` in character
class sequence.
Related issue:
- https://github.com/AdguardTeam/AdguardFilters/pull/134630
2022-11-17 08:53:41 -05:00
Raymond Hill
21110b0ff1
Use Unicode copyright symbol
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2336
2022-11-15 10:25:25 -05:00
Raymond Hill
2cc6835de0
Use placeholders to minimize vertical shifting at page load time
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2361
2022-11-15 09:44:19 -05:00
Raymond Hill
e68537513f
Sort of fix DOM inspector's visual with webpages in dark theme mode
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2359#discussioncomment-4126129
Removing `color-scheme` property fixes the issue. Not sure why.
2022-11-14 11:49:59 -05:00
Raymond Hill
1052dc5001
Import translation work from https://crowdin.com/project/ublock
2022-11-13 11:36:31 -05:00
Raymond Hill
4a01affa0e
Undo mistakenly committed changes to the element picker
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2360
2022-11-13 11:07:41 -05:00
Raymond Hill
73c2decdf5
Ensure procedural filters are applied at least once
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2261#discussioncomment-4123057
Cosmetic filters will be applied unconditionally at least
once at DOMContentLoaded time.
2022-11-12 11:22:49 -05:00
Raymond Hill
3d24b89078
Fix dom.text() returning textContent
2022-11-12 10:35:40 -05:00
Raymond Hill
feaa338678
Code maintenance: replace uDom.js with dom.js
...
`uDom` is old and crusty and `dom` is meant as replacement. The
goal of `dom` is to be simpler and mainly just convenience
methods for handling the DOM with vanilla JS -- this is not a
framework.
Additionally, removed keyboard shortcuts pane which was useful
only on very old versions of Firefox.
2022-11-12 09:51:22 -05:00
Raymond Hill
b1a14794bf
Test for unsupported pseudo operators after normalization
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2356
2022-11-10 10:32:22 -05:00
Raymond Hill
20181e9f18
Properly detect unsupported pseudo operators
...
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/yr8eda/
2022-11-10 09:30:52 -05:00
Raymond Hill
4d4a5f3807
Mind implicit prelude `*` element in pseudo operators
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2355
2022-11-10 08:47:54 -05:00
Raymond Hill
8a34425ca5
Avoid redundant logger entries for scriptlet injection
...
Report only when the scriptlets have been successfully injected.
2022-11-06 17:23:06 -05:00
Raymond Hill
c65114ee5e
Add support for Belarusian language
2022-11-06 17:04:56 -05:00
Raymond Hill
49df063191
Try to inject scriptlets at onResponseStarted() time
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2350
As per AdGuard findings, it's possible (though unreliable) to try
to inject scriptlets at webRequest.onResponseStarted time, which
increases scriptlet injection reliability overall when injecting
from multiple entry points.
uBO was already injecting at webNavigation.onCommitted and
main content script time, and adding webRequest.onResponseStarted
as an entry point for scriptlet injection increases reliability
for webpages which executes inline scripts at the top of the DOM.
References:
- https://github.com/AdguardTeam/AdguardBrowserExtension/issues/1029
- https://github.com/AdguardTeam/AdguardBrowserExtension/blob/9ab85be5/Extension/src/background/webrequest.js#L620
2022-11-06 16:54:32 -05:00
Raymond Hill
e0e68a24d2
Import translation work from https://crowdin.com/project/ublock
2022-11-06 13:11:23 -05:00
Raymond Hill
6574ede152
[mv3] Do not merge rules with errors
...
Related issue:
- https://github.com/uBlockOrigin/uBOL-issues/issues/10#issuecomment-1304822579
2022-11-06 11:21:02 -05:00
Raymond Hill
36bfa27c30
Rearrange code flow
2022-11-04 11:08:41 -04:00
Raymond Hill
c3d0d574d7
Fix incorrect serialization of pseudo elements
...
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/ylnvwf/how_to_block_suggestive_keyword_in_reddit_search/iv014wu/
2022-11-04 10:55:10 -04:00
Raymond Hill
42ddac5e3d
Fix unescaped backslashes in selector attribute
...
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/yjoh9p/
2022-11-02 08:32:54 -04:00
Raymond Hill
4863f3093e
Do not inject scriptlets on navigation events in Firefox
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2343
2022-10-28 11:07:46 -04:00
Raymond Hill
d992824625
Just to be sure no race condition
...
Related commit:
- d1f8a05d2d
2022-10-27 16:28:55 -04:00
Raymond Hill
d1f8a05d2d
Further ensure scriptlets are actually injected
...
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/ye6abt/
Possibly because the Opera sidebar window is a special
case, it appears the scriptlets must be injected at a
later time.
Use a global isolated window variable to detect whether
the scriptlets have really be injected, and ultimately
inject them at main content script time when it is found
they haven't been injected at that point.
2022-10-27 15:52:03 -04:00
Raymond Hill
bccd5a0264
Harden scriptlet injections
...
This commit make it so scriptlet injections will occur
at the earliest possible time on all platform.
This should also fix the case reported at:
- https://www.reddit.com/r/uBlockOrigin/comments/ye6abt/
Which is caused by the fact that there is no webNavigation
events being fired by the browser. In such case, the changes
here will make it so that uBO will detect that the scriptlet
were not injected and will inject them at main content script
injection time.
2022-10-27 14:16:21 -04:00
Raymond Hill
ae5717ea72
Just use the already existing method
2022-10-24 09:30:29 -04:00
Raymond Hill
fb4059d11c
Add missing API method in neutered resource
2022-10-24 09:11:02 -04:00
Raymond Hill
df7bedbe04
Return punycoded hostname in static extended filtering
2022-10-24 09:08:50 -04:00
q1800
08eb790145
Update support.html ( #3876 )
2022-10-21 14:17:18 -04:00
Raymond Hill
3d3ad0e386
Void elements (i.e. link) do not need self-closing slash
...
Ref.:
https://html.spec.whatwg.org/multipage/syntax.html#void-elements
2022-10-21 12:17:37 -04:00
Raymond Hill
433adac6ff
[mv3] Add ability to handle entity-based CSS and scriptlet injection filters
...
This commit adds the ability to inject entity-based plain CSS
filters and also a set of the most commonly used entity-based
scriptlet injection filters.
Since the scripting API is not compatible with entity patterns,
the entity-related content scripts are injected in all documents
and the entity-matching is done by the content script themselves.
Given this, entity-based content scripts are enabled only when
working in the Complete filtering mode, there won't be any
entity-based filters injected in lower modes.
Also, since there is no way to reasonably have access to the
Public Suffix List in the content scripts, the entity-matching
algorithm is an approximation, though I expect false positives
to be rare (time will tell). In the event of such false
positive, simply falling back to Optimal mode will fix the
issue.
The following issues have been fixed at the same time:
Fixed the no-filtering mode related rules having lower priority
then redirect rules, i.e. redirect rules would still be applied
despite disabling all filtering on a site.
Fixed improper detection of changes to the generic-related CSS
content script, potentially causing undue delays when for example
trying to access the popup panel while working in Complete mode.
The scripting MV3 can be quite slow when registering/updating
large content scripts, so uBOL does its best to call the API only
if really needed, but there had been a regression in the recent
builds preventing uBO from properly detecting unchanged content
script parameters.
2022-10-20 15:48:06 -04:00
Raymond Hill
7ec59b09ac
Fix improperly detecting ruleset changes re. dynamic URL filtering
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2330 \
2022-10-19 12:12:09 -04:00
Raymond Hill
9247072061
Import translation work from https://crowdin.com/project/ublock
2022-10-19 11:38:55 -04:00
Raymond Hill
d027a3f7c4
Fix improperly detecting ruleset changes re. dynamic URL filtering
...
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2330
2022-10-19 11:37:11 -04:00
Raymond Hill
9879b7d03c
[mv3] Fix overwriting valid DNR rules with invalid entries
...
This fixes a flaw which has existed since the first version of
uBO Lite.
Related issue:
- https://github.com/uBlockOrigin/uBOL-issues/issues/11
Related commit:
- a559f5f271
2022-10-18 16:12:30 -04:00
Raymond Hill
8aa379ef9e
Fix argument-less :watch-attr() procedural operator
...
It's valid to have no argument for `:watch-attr()`.
2022-10-18 07:35:47 -04:00
Raymond Hill
44812dd3c0
[mv3] Salvage network rules with entity syntax in domain= option
...
It's possible to salvage network rule with entity syntax-based
entries in their `domain=` option if there exists at least one
entry which is not entity syntax-based.
For negated entries, these can be unconditionally removed
safely.
2022-10-17 17:41:13 -04:00
Raymond Hill
614e65a6a5
Import translation work from https://crowdin.com/project/ublock
2022-10-17 08:24:54 -04:00
Raymond Hill
04119e9cdd
Properly handle unsupported `nth-child(an of selector)
...
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2284#issuecomment-1280325910
2022-10-17 07:26:51 -04:00