Commit Graph

10502 Commits

Author SHA1 Message Date
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 ce3f852bad
Fix npm dev dependencies -- this fixes "make test" 2022-12-14 10:55:02 -05:00
Raymond Hill 2cdc424b28
Make Firefox dev build auto-update 2022-12-14 09:11:36 -05:00
Raymond Hill b04fa53fd6
New revision for release candidate 2022-12-14 08:58:09 -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 8c64c3c6ac
Make Firefox dev build auto-update 2022-12-13 10:36:22 -05:00
Raymond Hill 2eb9b77ccd
New revision for release candidate 2022-12-13 10:25:31 -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 5ad2c34212
Make Firefox dev build auto-update 2022-12-12 14:16:52 -05:00
Raymond Hill 12a7d785a1
New revision for dev build 2022-12-12 14:05:26 -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 e537748988
Make Firefox dev build auto-update 2022-12-11 11:40:41 -05:00
Raymond Hill d66e9602a8
New revision for dev build 2022-12-11 11:31:45 -05:00
Raymond Hill c143ded758
Improve same-origin test for CNAME-uncloaking purpose
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1062

Related feedback:
- 161a175bb0 (commitcomment-90926455)
2022-12-11 11:30:09 -05:00
Raymond Hill fac6e6e45e
Make Firefox dev build auto-update 2022-12-11 10:31:27 -05:00
Raymond Hill 592295b978
Import translation work from https://crowdin.com/project/ublock 2022-12-11 10:23:11 -05:00
Raymond Hill 3e92a22c5e
New revision for dev build 2022-12-11 10:20:17 -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 1b63d65ac6
Make Firefox dev build auto-update 2022-12-10 11:36:03 -05:00
Raymond Hill 8d9068c84a
New revision for dev build 2022-12-10 11:25:39 -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 e959bc2832
Remove unused dependency 2022-12-09 11:28:48 -05:00
Raymond Hill a2cb425a97
Make Firefox dev build auto-update 2022-12-09 11:26:24 -05:00
Raymond Hill 34a076052c
New revision for dev build 2022-12-09 11:16:22 -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 042a56366d
Make Firefox dev build auto-update 2022-12-08 10:21:19 -05:00
Raymond Hill 78a778922d
Minor code review 2022-12-08 10:14:45 -05:00
Raymond Hill 952b5e1522
New revision for dev build 2022-12-08 10:09:30 -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 96e75770c2
Make Firefox dev build auto-update 2022-12-07 14:20:50 -05:00
Raymond Hill 520d0adeca
New revision for dev build 2022-12-07 14:16:14 -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 d7c18fd7db
Make Firefox dev build auto-update 2022-12-07 10:51:07 -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 85d614621d
New revision for dev build 2022-12-07 10:35:25 -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 6140e55589
Remove combinatronics.io as CDN 2022-12-02 11:39:32 -05:00
Raymond Hill 8f5fbcf400
Remove LooseVersion dependency in Py script 2022-11-29 12:13:11 -05:00
Raymond Hill f9fb5bcc5d
Make Firefox dev build auto-update 2022-11-29 12:11:09 -05:00
Raymond Hill 12dce5e479
new revision for dev build 2022-11-29 12:01:41 -05:00
Raymond Hill bedfdff678
No need for arrow function for scoping 2022-11-29 12:01:16 -05:00
Raymond Hill 15450e3957
Remove now irrelevant scoping 2022-11-29 12:00:38 -05:00
Raymond Hill 64909c671f
Fix crowdin import script 2022-11-29 11:05:21 -05:00
gorhill 13c0793536 Update build log file
Files changed:
M	dist/mv3/log.txt
2022-11-29 15:37:39 +00:00
Raymond Hill ef4dfb3131
Import translation work from https://crowdin.com/project/ublock 2022-11-29 10:34:51 -05:00
Raymond Hill 5c82b85335
Use currentWindow, as suggested 2022-11-25 16:01:58 -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