Commit graph

12547 commits

Author SHA1 Message Date
Raymond Hill
e98fdeb0a5
Mind urlskip= in built-in benchmark 2024-09-18 12:24:04 -04:00
Raymond Hill
7843a21428
Make Firefox dev build auto-update 2024-09-18 11:56:22 -04:00
Raymond Hill
60039ab133
New revision for release candidate 2024-09-18 11:37:06 -04:00
Raymond Hill
b06c5337ec
Update changelog 2024-09-18 11:36:39 -04:00
Raymond Hill
0a6dc47a72
Fix contextual menu quirks
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3382
2024-09-18 11:33:31 -04:00
Raymond Hill
b3ffba7238
Fine tune indent rules 2024-09-18 11:32:16 -04:00
Raymond Hill
11c3a16036
Fix exception thrown in spoof-css in Firefox
Related feedback:
https://github.com/uBlockOrigin/uAssets/issues/25358#issuecomment-2358278979
2024-09-18 10:34:18 -04:00
Raymond Hill
62d74d4f1d
Add trailing wildcard syntax to ipaddress= option
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3381
2024-09-18 09:56:46 -04:00
Raymond Hill
f0f859c685
Make Firefox dev build auto-update 2024-09-17 18:16:11 -04:00
Raymond Hill
4094f43daf
New revision for release candidate 2024-09-17 18:10:32 -04:00
Raymond Hill
fe3846b72f
Oops meant to be 5s, not 300s... 2024-09-17 18:10:09 -04:00
Raymond Hill
11f43d4a3d
Make Firefox dev build auto-update 2024-09-17 18:00:42 -04:00
Raymond Hill
3238fe48db
Import translation work from https://crowdin.com/project/ublock 2024-09-17 17:48:45 -04:00
Raymond Hill
2375ca3ca0
Update changelog 2024-09-17 17:36:12 -04:00
Raymond Hill
00d4262c0d
New revision for release candidate 2024-09-17 17:35:22 -04:00
Raymond Hill
e8f6f3ddff
Throttle down repeated scriptlet logging information
Related feedback
https://github.com/uBlockOrigin/uBlock-issues/issues/3378#issuecomment-2356422784
2024-09-17 17:33:06 -04:00
Raymond Hill
acffae6a21
Make Firefox dev build auto-update 2024-09-17 10:36:08 -04:00
Raymond Hill
58c13bacb7
new revision for release candidate 2024-09-17 10:28:54 -04:00
Raymond Hill
6a042f152b
Ignore browser-provided 0.0.0.0 ip address when DNS is proxied
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3379
2024-09-17 10:26:40 -04:00
Raymond Hill
d238baa374
Make Firefox dev build auto-update 2024-09-17 09:35:36 -04:00
Raymond Hill
7fb626850e
New revision for release candidate 2024-09-17 09:28:31 -04:00
Raymond Hill
9155a89c08
Update changelog 2024-09-17 09:28:02 -04:00
Raymond Hill
547fae4842
Improve scriptlet helper proxy-apply
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3378
2024-09-17 09:09:19 -04:00
Raymond Hill
ef1e134460
Import translation work from https://crowdin.com/project/ublock 2024-09-15 13:27:32 -04:00
Raymond Hill
b62aabda85
Import translation work from https://crowdin.com/project/ublock 2024-09-15 13:25:58 -04:00
Raymond Hill
e18a3707c7
Add an entry in _Report_ page for badware/phishing category
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3151

Entry:
"Add an entry in the reporting tool for badware issues"
2024-09-15 13:20:47 -04:00
Raymond Hill
a9d8e96675
Update changelog 2024-09-15 10:38:52 -04:00
Raymond Hill
5fda425059
Make Firefox dev build auto-update 2024-09-15 09:51:42 -04:00
Raymond Hill
096b4d9e81
New revision for dev build 2024-09-15 09:46:06 -04:00
Raymond Hill
b79fe942e1
Update changelog 2024-09-15 09:45:33 -04:00
Raymond Hill
266ec4894b
New static network filter option urlskip=
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3206

The main purpose is to bypass URLs designed to track whether a user
visited a specific URL, typically used in click-tracking links.

The `urlskip=` option ...

- ... is valid only when used in a trusted filter list
- ... is enforced only on top documents
- ... is enforced on both blocked and non-blocked documents
- ... is a modifier, i.e. it cannot be used along with other
      modifier options in a single filter

The syntax is `urlskip=[steps]`, where steps is a space-separated
list of extraction directives detailing what action to perform on
the current URL.

The only supported directive in this first commit is `?name`,
which purpose is to extract the value of a named URL parameter
and use the result as the new URL. Example:

  ||example.com/path/to/tracker$urlskip=?url

The above filter will cause navigation to

  https://example.com/path/to/tracker?url=https://example.org/

to automatically bypass navigation to `example.com` and navigate
directly to

  https://example.org/

It is possible to recursively extract URL parameters by using
more than one directive, example:

  ||example.com/path/to/tracker$urlskip=?url ?to

More extraction capabilities may be added in the future.
2024-09-15 09:17:19 -04:00
Raymond Hill
4b285c0593
Dynamically load DNR conversion module on-demand
DNR conversion module is a dev tool, no point loading it by
default. This was done this way because in a distant past uBO
had to be compatible with browsers not supporting dynamically
loaded modules.

Currently all supported browser versions support dynamically
loaded modules.
2024-09-14 12:13:47 -04:00
Raymond Hill
c265e849e0
Fetch and cache cname of collated hostnames in page store
Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/discussions/3376
2024-09-14 11:50:10 -04:00
Raymond Hill
f936dfa648
Fix potential failure to unregister scriptlet
In Firefox-specific contentScripts API used to register
scriptlets. This could potentially occurs when there are
registrations pending during a reload of filter lists.
2024-09-14 09:32:37 -04:00
Raymond Hill
41d49921c8
Minor code review 2024-09-14 09:20:54 -04:00
Raymond Hill
f9ab4b7504
Make Firefox dev build auto-update 2024-09-14 00:15:41 -04:00
Raymond Hill
42700a6f76
New revision for dev build 2024-09-14 00:12:00 -04:00
Raymond Hill
5e6f78a902
Fix regression re. mp4 filter option
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3375
2024-09-14 00:10:34 -04:00
Raymond Hill
93042eced4
Use dummy dns API when it's not present 2024-09-13 11:20:37 -04:00
Raymond Hill
d1db02b04c
Make Firefox dev build auto-update 2024-09-13 10:11:27 -04:00
Raymond Hill
63e5611877
New revision for dev build 2024-09-13 10:04:13 -04:00
Raymond Hill
73ee3ffe92
Code review of DNS-related code
Related commit:
6acf97bf51
2024-09-13 10:00:41 -04:00
Raymond Hill
8fadfb2c5e
Import translation work from https://crowdin.com/project/ublock 2024-09-12 15:40:24 -04:00
Raymond Hill
671b0c540c
Make Firefox dev build auto-update 2024-09-12 12:06:26 -04:00
Raymond Hill
9b967eccc8
New revision for dev build 2024-09-12 11:42:03 -04:00
Raymond Hill
71f07b18ae
Update changelog 2024-09-12 11:41:26 -04:00
Raymond Hill
6acf97bf51
Rewrite cname uncloaking code to account for new ipaddress= option
This commit makes the DNS resolution code better suited for both
filtering on cname and ip address. The change allows early availability
of ip address so that `ipaddress=` option can be matched at
onBeforeRequest time.

As a result, it is now possible to block root document using
`ipaddress=` option -- so long as an ip address can be extracted
before first onBeforeRequest() call.

Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/2792

Caveat
------

the ip address used is the first one among the list of ip
addresses returned by dns.resolve() method. There is no way for uBO
to know which exact ip address will be used by the browser when
sending the request, so this is at most a best guess. The exact IP
address used by the browser is available at onHeadersReceived time,
and uBO will also filter according to this value, but by then the
network request has already been sent to the remote server.

Possibly a future improvement would make available the whole list
of ip addresses to the filtering engine, but even then it's impossible
to know with certainty which ip address will ultimately be used by the
browser -- it is entirely possible that the ip address used by the
browser might not be in the list received through dns.resolve().
2024-09-12 11:19:57 -04:00
Raymond Hill
44b6519db1
Make Firefox dev build auto-update 2024-09-11 10:41:19 -04:00
Raymond Hill
0e2f04eb2b
New revision for dev build 2024-09-11 10:21:50 -04:00
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