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