1
0
mirror of https://github.com/gorhill/uBlock.git synced 2024-11-25 03:43:25 +01:00
Commit Graph

12644 Commits

Author SHA1 Message Date
Raymond Hill
9e3c978d55
Minor edit to comment 2024-10-10 11:31:57 -04:00
Raymond Hill
2e1dac5950
New revision for dev build 2024-10-10 11:22:44 -04:00
Raymond Hill
0c462e3ca1
Update changelog 2024-10-10 11:22:23 -04:00
Raymond Hill
c86ed5287b
Add regex extraction transformation step to urlskip= option
Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/issues/3206#issuecomment-2403795984

The first capture group of the regex will be used as the result of the
transformation. Example:

||podtrac.com/pts/redirect.mp3/$urlskip=/podtrac\.com\/pts\/redirect\.mp3\/(.*?\.mp3\b)/ +https

If the regex is invalid, or if it fails to extract a first capture
group, no redirection will occur.
2024-10-10 11:11:07 -04:00
Raymond Hill
913f20f0a8
Make Firefox dev build auto-update 2024-10-08 19:56:23 -04:00
Raymond Hill
a72def1cbf
New revision for dev build 2024-10-08 19:50:34 -04:00
Raymond Hill
987e198016
Update changelog 2024-10-08 19:50:14 -04:00
Raymond Hill
85877b12ed
Improve prevent-window-open scriptlet
Support triggering a `debugger` statement when `window.open()` is
called.

Related feedback:
https://github.com/uBlockOrigin/uAssets/issues/25510#issuecomment-2400067735
2024-10-08 19:47:35 -04:00
Raymond Hill
58bfe4c846
Add support to parse Adguard's [$domain=/.../] regex-based modifier
The modifier will be converted to one that is compatible with uBO, i.e.:

    [$domain=/^trgoals\d+\.xyz$/]##+js(set-constant, isShow, true)

Will parsed as equivalent of:

    /^trgoals\d+\.xyz$/##+js(set-constant, isShow, true)

Related issue:
https://github.com/AdguardTeam/FiltersCompiler/issues/204

Reference:
https://adguard.com/kb/general/ad-filtering/create-own-filters/#non-basic-domain-modifier
2024-10-08 19:19:08 -04:00
Raymond Hill
ec3852b745
Re-word: it's timing per request, not per call to SNFE.match()
A single request can require multiple calls to the static network
filtering engine (SNFE). The reported timing is the result of
going through *all* the required calls to SNFE. In effect, a
single call to SNFE.match() is a fraction of the reported timing.
2024-10-07 15:06:12 -04:00
Raymond Hill
a80c749096
Make Firefox dev build auto-update 2024-10-07 12:05:41 -04:00
Raymond Hill
f825a65f8e
New revision for dev build 2024-10-07 12:00:21 -04:00
Raymond Hill
4aae1bdf47
Minor code review 2024-10-07 11:56:22 -04:00
Raymond Hill
daa62c3081
Update README for npm package 2024-10-07 08:56:34 -04:00
Raymond Hill
9a286495a5
New npm version 2024-10-07 08:49:09 -04:00
Raymond Hill
34508a1c2d
Add demo.js to npm build
To help people to get quickly started with using the package.
2024-10-07 08:47:45 -04:00
Raymond Hill
26c0aa357e
New npm version 2024-10-07 07:38:41 -04:00
Raymond Hill
013e6db6ef
Fix typo 2024-10-06 17:05:44 -04:00
Raymond Hill
acf7f39a60
New revision for npm package 2024-10-06 17:04:08 -04:00
Raymond Hill
86aeae75df
Further fix npm documentation, minor code review 2024-10-06 17:03:18 -04:00
Raymond Hill
9233e6b7c6
Fix npm documentation
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3402
2024-10-06 16:29:42 -04:00
Raymond Hill
ccbf957f55
Make Firefox dev build auto-update 2024-10-06 15:06:21 -04:00
Raymond Hill
1f32bbc322
New revision for dev build 2024-10-06 14:57:07 -04:00
Raymond Hill
cc60dfa4c5
Update changelog 2024-10-06 14:56:47 -04:00
Raymond Hill
c746633693
Validate result type of XPath expressions
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3403

To ensure XPath expressions not meant to return a nodeset are
discarded at compile time.
2024-10-06 14:27:55 -04:00
Raymond Hill
447476ab9b
New npm package version 2024-10-06 14:27:46 -04:00
Raymond Hill
a12bf9405e
Make Firefox dev build auto-update 2024-10-06 12:40:51 -04:00
Raymond Hill
e0eb59c5d4
New revision for dev build 2024-10-06 12:34:58 -04:00
Raymond Hill
5700424716
Update changelog 2024-10-06 12:34:26 -04:00
Raymond Hill
818cb2d801
Fix npm test suite
Related commits:
- https://github.com/gorhill/uBlock/commit/02cba63331
- https://github.com/gorhill/uBlock/commit/41693407b2
2024-10-06 11:15:08 -04:00
Raymond Hill
160d7f3c33
Improve trusted-override-element-method scriptlet
Support `debug` as valid `disposition` value: to trigger a `debugger`
statement, but only if uBO's logger is opened.

Related feedback:
https://github.com/uBlockOrigin/uAssets/issues/25510#issuecomment-2395446342
2024-10-06 11:07:42 -04:00
Raymond Hill
1f45902a61
Make Firefox dev build auto-update 2024-10-05 16:21:29 -04:00
Raymond Hill
4775c9cb45
New revision for dev build 2024-10-05 16:10:03 -04:00
Raymond Hill
4c1b1d4cdb
Update changelog 2024-10-05 16:09:41 -04:00
Raymond Hill
64b2086ba4
Add ability to lookup parameter name in urlskip=
Relate case:
https://github.com/uBlockOrigin/uBlock-issues/issues/3206#issuecomment-2395121619

Newly supported step: `&i`, meant to lookup a parameter's name at
position `i` (1-based). The parameter name will be used as the
URL (whereas `?` is meant to lookup a parameter's value).
2024-10-05 14:59:43 -04:00
Raymond Hill
02cba63331
Partially revert 4169340 2024-10-05 14:51:38 -04:00
Raymond Hill
5f2ee6caf8
Make Firefox dev build auto-update 2024-10-05 14:00:44 -04:00
Raymond Hill
73404e5988
New revision for dev build 2024-10-05 13:30:49 -04:00
Raymond Hill
5145747ac7
Update chengelog 2024-10-05 13:30:18 -04:00
Raymond Hill
6d2b3375f8
Mind that BroadcastChannel contructor can throw in Firefox
BroadcastChannel constructor throws in Firefox when Enhanced
Tracking Protection is set to "strict".

This behavior could cause scriptlet injection to wholly break
when uBO's logger was opened, as BroadcastChannel() is used
by scriptlets to report information to the logger.

This commit ensures that exceptions from BroadcastChannel
constructor are properly handled.

The scriptlets will fall back to report at the console should
they be unable to report to the logger through BroadcastChannel.
2024-10-05 12:42:30 -04:00
Raymond Hill
41693407b2
Fix npm test suite
Ensure serialization returns copy of data rather than live
references to data. This allows to immediately deserialize() the
result of serialize().

Also, adjust code to modified behavior of filterQuery().
2024-10-05 11:32:59 -04:00
Raymond Hill
3b53d8e5b7
Update changelog 2024-10-05 08:43:14 -04:00
Raymond Hill
95b0ce5e3a
Add trusted-override-element-method scriptlet
@description
Override the behavior of a method on matching elements.

@param methodPath
The method which calls must be intercepted.

@param [selector]
A CSS selector which the target element must match. If not specified,
the override will occur for all elements.

@param [disposition]
How the override should be handled. If not specified, the overridden call
will be equivalent to an empty function. If set to `throw`, an exception
will be thrown. Any other value will be validated and returned as a
supported safe constant.

@example
..##+js(trusted-override-element-method, HTMLAnchorElement.prototype.click, a[target="_blank"][style])
2024-10-05 08:35:43 -04:00
Raymond Hill
a0a33eb9b9
Code review for new trusted-prevent-dom-bypass scriptlet
Related commit:
https://github.com/gorhill/uBlock/commit/1abc864742
2024-10-05 07:41:44 -04:00
Raymond Hill
05ba71aef0
Make Firefox dev build auto-update 2024-10-04 13:30:54 -04:00
Raymond Hill
d24ffe6bb8
Import translation work from https://crowdin.com/project/ublock 2024-10-04 12:30:37 -04:00
Raymond Hill
fccda96bd7
New revision for dev build 2024-10-04 12:28:25 -04:00
Raymond Hill
5e2f94bebc
New revision for dev build 2024-10-04 12:27:57 -04:00
Raymond Hill
1abc864742
Add trusted-prevent-dom-bypass scriptlet
@description
Prevent the bypassing of uBO scriptlets through anonymous embedded context.

To ensure that a target method in the embedded context is using the
corresponding parent context's method (which is assumed to be
properly patched), or to replace the embedded context with that of the
parent context.

Root issue:
https://issues.chromium.org/issues/40202434

@param methodPath
The method which calls must be intercepted. The arguments
of the intercepted calls are assumed to be HTMLElement, anything else will
be ignored.

@param selector (optional)
A plain CSS selector which will be used in a `document.querySelector()`
call, to validate that the returned element must be processed by the
scriptlet. If no selector is provided, all elements will be processed.

@param targetMethod (optional)
The method in the embedded context which should be delegated to the
parent context. If no method is specified, the embedded context becomes
the parent one, i.e. all  properties of the embedded context will be that
of the parent context.
2024-10-04 12:24:35 -04:00
Raymond Hill
5133991f7e
Fix spurious error in content script
No guarantee vAPI.bootstrap will still be present when callback
executes.
2024-10-04 08:57:10 -04:00