Commit Graph

12498 Commits

Author SHA1 Message Date
Raymond Hill 099b9852cd
Code review for `ipaddress=` filter option
If an IP address can be extracted from the hostname portion of
a URL, the IP address matching will be performed at onBeforeRequest()
time.

Regardless, IP address matching will subsequently always be performed
at onHeadersReceived() time as the request details at that point
contain a reliable IP address value on supported platforms (Firefox-
only as of now).

The `cap_ipaddress` now evaluates to `true` in Chromium-based
browsers. Even though these browsers are unable to provide reliable
IP address value at onHeadersReceived() time, they can still
perform IP address matching for IP address extracted from hostname
portion of a URL.
2024-09-11 09:56:44 -04:00
Raymond Hill c19497db33
Update changelog 2024-09-10 15:13:28 -04:00
Raymond Hill d5f14ffa32
Avoid using dns.resolve() for proxied DNS resolution
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/1743
2024-09-10 14:58:40 -04:00
Raymond Hill 09ccfc8cfb
Make Firefox dev build auto-update 2024-09-10 12:11:03 -04:00
Raymond Hill 0ae02788b2
New revision for dev build 2024-09-10 11:56:13 -04:00
Raymond Hill 185580d23f
Update changelog 2024-09-10 11:55:53 -04:00
Raymond Hill 401d2e8ea9
[mv3] Mind unsupported `header=`/`ipaddress` options in DNR API
Properly report unsupported `header=` and `ipaddress=` option in
log file.

`header=` support may become possible soon with Chromium 128
introducing blocking according to response headers content.
2024-09-10 11:50:09 -04:00
Raymond Hill 030d7334e4
Add support for `lan`/`loopback` values to `ipaddress=` option
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/1070
2024-09-10 11:11:11 -04:00
Raymond Hill 839857dd4b
Make Firefox dev build auto-update 2024-09-09 11:15:41 -04:00
Raymond Hill faf1b15f8d
New revision for dev build 2024-09-09 10:55:57 -04:00
Raymond Hill 52dee35325
Properly reflect whether `ipaddress=` is supported 2024-09-09 10:54:47 -04:00
Raymond Hill 41c96690a5
Make Firefox dev build auto-update 2024-09-09 10:06:34 -04:00
Raymond Hill 7732df1dbd
New revision for dev build 2024-09-09 09:51:45 -04:00
Raymond Hill 2cb2ee8446
Update changelog 2024-09-09 09:51:24 -04:00
Raymond Hill c6dedd253f
New static network filter option `ipaddress=`
The purpose is to block according to the ip address of a network
request. In the current implementation, the filter option can only
be enforced at onHeadersReceived time.

The new filter option cannot be enforced in Chromium-based browsers
since the ip address of network requests is available only at
onResponseStarted time, which is not blocking.

The value assigned to `ipaddress` can either be a plain string which
must match exactly a given ip address, or a regex which will be
matched against the ip address.

The `ipaddress` option can only be enforced when the extension
framework does provide a valid ip address in a onHeadersReceived
listener. For instance, cached resources do not have a valid ip
address and thus can't be a match to `ipaddress` option.

Example:

  *$script,ipaddress=93.184.215.14
2024-09-09 09:35:23 -04:00
Raymond Hill 20115697e5
Add ability to quote static network option values
For the sake of convenience for filter list maintainers, this commit
add ability to quote static network option values, so as to avoid the
need to escape commas when parser ambiguity arises.

The quotes can be `"`, `'`, or backticks.

Example, the following filter requires escaping commas:

  example.com$xhr,replace=/"loremIpsum.*?([A-Z]"\}|"\}{2\,4})\}\]\,//,1p

Can be now rewritten with no need to escape when using quotes:

  example.com$xhr,replace='/"loremIpsum.*?([A-Z]"\}|"\}{2,4})\}\],//',1p
2024-09-08 10:01:13 -04:00
Raymond Hill 1b464f75cc
Fix spurious browser error at the console 2024-09-07 16:47:43 -04:00
Raymond Hill bec5d53ce0
[mv3] Attempt at mitigation for when "internal error" occurs
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/199
2024-09-06 09:31:17 -04:00
Raymond Hill 08e5bffc76
Make Firefox dev build auto-update 2024-09-05 15:01:24 -04:00
Raymond Hill 8981d3e7fe
New revision for dev build 2024-09-05 14:52:19 -04:00
Raymond Hill 901b4ad061
Import changes from https://github.com/gorhill/uBlock/pull/3924 2024-09-05 14:51:47 -04:00
Imre Eilertsen 8631b955bf
Maintenance for the Serbo-Croatian Filters section (#3924)
* Maintenance for the Serbo-Croatian Filters section

* Implemented the request to move to contentURLs

I sure I hope I understood the request correctly, or things would get slightly awkward for me.
2024-09-05 14:49:32 -04:00
Raymond Hill 60a009c530
Further improve `prevent-fetch` scriptlet 2024-09-05 11:17:36 -04:00
Raymond Hill 1dc09b6217
Make Firefox dev build auto-update 2024-09-04 11:56:02 -04:00
Raymond Hill ae9acbf521
New revision for dev build 2024-09-04 11:37:35 -04:00
Raymond Hill f4a75ccd80
Update changelog 2024-09-04 11:37:14 -04:00
Raymond Hill e8202af11d
Improve `prevent-fetch` scriptlet
- Add support for negated matches
- Log caller's arguments when verbose logging is enabled
2024-09-04 11:32:26 -04:00
Raymond Hill 89f02098fd
Apply CSP/PP injections to `object` resources
Related feedback:
https://old.reddit.com/r/uBlockOrigin/comments/1f84tc5/
2024-09-04 11:28:45 -04:00
Raymond Hill 22fb9c4d63
Make Firefox dev build auto-update 2024-09-03 12:01:04 -04:00
Raymond Hill 08ed4b4ed8
New revision for dev build 2024-09-03 11:19:13 -04:00
Raymond Hill 6e426aeac3
Update changelog 2024-09-03 11:18:52 -04:00
Raymond Hill c8307f58a3
Improve `xml-prune` scriptlet
Related feedback:
https://github.com/uBlockOrigin/uAssets/issues/25164#issuecomment-2326358453
2024-09-03 11:15:16 -04:00
Raymond Hill 91125d29cf
Add support for `application/dash+xml` in `replace=` option
Related feedback:
https://github.com/uBlockOrigin/uAssets/issues/25164#issuecomment-2326358453
2024-09-03 10:14:15 -04:00
Raymond Hill 856dc419b5
Make Firefox dev build auto-update 2024-09-02 19:55:53 -04:00
Raymond Hill 4310732b98
New revision for dev build 2024-09-02 19:49:49 -04:00
Raymond Hill 969d3cb40b
Update changelog 2024-09-02 19:49:31 -04:00
Raymond Hill b7ed3b45ed
Add ability to directly evaluate static network filtering engine
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3362

There used to be a way to test URL against the network filtering engine,
but this was removed in a distant past during refactoring.

The ability has been brought back through uBO's own developer tools,
accessible through the _More_ button in the _Support_ pane in the
dashboard.

To query the static network filtering engine, enter the following
in the text editor:

snfe?url-to-test [type] [url-of-context]

`snfe?` is a prompt indicating the intent to query the static network
filtering engine.

At a minimum there must be a URL to test.

Optionally the type of the resource to match, default to `xhr` if
none specified. Also optionally, the context from within which the
request is made. Example:

Enter:
snfe?https://www.google-analytics.com/analytics.js

Result:
url: https://www.google-analytics.com/analytics.js
blocked: ||google-analytics.com^

Enter:
snfe?https://www.google-analytics.com/analytics.js script

Result:
url: https://www.google-analytics.com/analytics.js
type: script
blocked: ||google-analytics.com^
modified: ||google-analytics.com/analytics.js$script,redirect-rule=google-analytics_analytics.js:5

Enter:
snfe?https://example.com/

Result:
url: https://example.com/
not blocked

Enter:
snfe?https://example.com/ ping

Result:
url: https://example.com/
type: ping
blocked: *$ping,3p
2024-09-02 19:32:56 -04:00
Raymond Hill eef99e9db6
Make Firefox dev build auto-update 2024-08-31 13:11:29 -04:00
Raymond Hill 73e0cc7163
New revision for dev build 2024-08-31 12:48:12 -04:00
Raymond Hill 17183f7de5
Update changelog 2024-08-31 12:47:38 -04:00
Raymond Hill f552f655cb
Fix `prevent-window-open` for when logger is open
Related discussion:
https://github.com/uBlockOrigin/uBlock-discussions/discussions/906
2024-08-31 12:36:20 -04:00
Raymond Hill 66cf6f0a14
Make Firefox dev build auto-update 2024-08-30 10:56:51 -04:00
Raymond Hill 11e0f08c9a
New revision for dev build 2024-08-30 10:28:59 -04:00
Raymond Hill 63166ca882
Update changelog 2024-08-30 10:28:23 -04:00
Raymond Hill 7f11d6216e
Improve `prevent-window-open` scriptlet
As discussed with filter list maintainers.
2024-08-30 10:25:39 -04:00
Raymond Hill ae5dc6299e
Improve `validate-constant` scriptlet helper
Add support for `json:`-prefixed values.
2024-08-29 13:47:48 -04:00
Raymond Hill b1f28b4ce0
Make Firefox dev build auto-update 2024-08-27 13:01:04 -04:00
Raymond Hill d24bf002e2
New revision for dev build 2024-08-27 12:54:35 -04:00
Raymond Hill 1e14a2176b
Update changelog 2024-08-27 12:54:19 -04:00
Raymond Hill 0dcb985601
Improve `trusted-replace-outbound-text` scriptlet
When the replacement starts with `json:`, it will be first
decoded using JSON.parse(). Example:

example.com##+js(trusted-replace-outbound-text, somefn, json:"ok")

The doublequotes are required since this is what JSON.parse()
expects as a valid JSON string.
2024-08-27 12:49:35 -04:00