Commit Graph

9874 Commits

Author SHA1 Message Date
Raymond Hill 9a66b37fe0
Fix github action for mv3 2022-09-08 10:16:08 -04:00
Raymond Hill 3e90742040
New revision for dev build 2022-09-08 10:08:07 -04:00
Raymond Hill 1258414f37
Report ruleset stats in popup panel 2022-09-08 10:04:08 -04:00
Raymond Hill 41d66a78ba
Report per-ruleset stats for filters-to-rules conversion 2022-09-07 13:45:55 -04:00
Raymond Hill f7205fe2e4
Fine tune build steps 2022-09-07 10:23:40 -04:00
Raymond Hill 224410a6f5
Add per-site on/off switch to mv3 experimental version 2022-09-07 10:15:36 -04:00
Raymond Hill e420b75b91
Nodejs 16 does not support fetch() 2022-09-06 15:05:01 -04:00
Raymond Hill 84ab5dbb66
New revision for dev build 2022-09-06 14:20:53 -04:00
Raymond Hill a559f5f271
Add experimental mv3 version
This create a separate Chromium extension, named
"uBO Minus (MV3)".

This experimental mv3 version supports only the blocking of
network requests through the declarativeNetRequest API, so as
to abide by the stated MV3 philosophy of not requiring broad
"read/modify data" permission. Accordingly, the extension
should not trigger the warning at installation time:

    Read and change all your data on all websites

The consequences of being permission-less are the following:

- No cosmetic filtering (##)
- No scriptlet injection (##+js)
- No redirect= filters
- No csp= filters
- No removeparam= filters

At this point there is no popup panel or options pages.

The default filterset correspond to the default filterset of
uBO proper:

Listset for 'default':
  https://ublockorigin.github.io/uAssets/filters/badware.txt
  https://ublockorigin.github.io/uAssets/filters/filters.txt
  https://ublockorigin.github.io/uAssets/filters/filters-2020.txt
  https://ublockorigin.github.io/uAssets/filters/filters-2021.txt
  https://ublockorigin.github.io/uAssets/filters/filters-2022.txt
  https://ublockorigin.github.io/uAssets/filters/privacy.txt
  https://ublockorigin.github.io/uAssets/filters/quick-fixes.txt
  https://ublockorigin.github.io/uAssets/filters/resource-abuse.txt
  https://ublockorigin.github.io/uAssets/filters/unbreak.txt
  https://easylist.to/easylist/easylist.txt
  https://easylist.to/easylist/easyprivacy.txt
  https://malware-filter.gitlab.io/malware-filter/urlhaus-filter-online.txt
  https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext

The result of the conversion of the filters in all these
filter lists is as follow:

Ruleset size for 'default': 22245
  Good: 21408
  Maybe good (regexes): 127
  redirect-rule= (discarded): 458
  csp= (discarded): 85
  removeparams= (discarded): 22
  Unsupported: 145

The fact that the number of DNR rules are far lower than the
number of network filters reported in uBO comes from the fact
that lists-to-rulesets converter does its best to coallesce
filters into minimal set of rules. Notably, the DNR's
requestDomains condition property allows to create a single
DNR rule out of all pure hostname-based filters.

Regex-based rules are dynamically added at launch time since
they must be validated as valid DNR regexes through
isRegexSupported() API call.

At this point I consider being permission-less the limiting
factor: if broad "read/modify data" permission is to be used,
than there is not much point for an MV3 version over MV2, just
use the MV2 version if you want to benefit all the features
which can't be implemented without broad "read/modify data"
permission.

To locally build the MV3 extension:

    make mv3

Then load the resulting extension directory in the browser
using the "Load unpacked" button.

From now on there will be a uBlock0.mv3.zip package available
in each release.
2022-09-06 13:47:52 -04:00
Raymond Hill 1def4e77ac
Update submodules 2022-09-05 12:04:39 -04:00
Raymond Hill 0c9ab84846
Fix redundant calls to extract image data
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2243#issuecomment-1236194011
2022-09-04 10:40:26 -04:00
Raymond Hill e3a0634945
Make Firefox dev build auto-update 2022-09-01 09:50:47 -04:00
Raymond Hill 396433578a
New revision for dev build 2022-09-01 09:45:54 -04:00
Raymond Hill bcede6f938
Fix validating argument for :not() as procedural
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2228#issuecomment-1234248802
2022-09-01 09:42:48 -04:00
Raymond Hill 377ecf3f1d
Make Firefox dev build auto-update 2022-08-31 14:05:53 -04:00
Raymond Hill 7cd22eca96
New revision for dev build 2022-08-31 14:00:09 -04:00
Raymond Hill 79451e5899
Force prodecural cosmetic filtering when explicitly stated
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2228

Using `#?#` (instead of `##` for a procedural cosmetic filter will
prevent uBO from trying to convert the filter into a declarative
one.
2022-08-31 13:57:39 -04:00
Alex b9aa791901
Update main.yml 2022-08-31 06:26:57 +01:00
Raymond Hill 988582ce55
Make Firefox dev build auto-update 2022-08-23 16:45:57 -04:00
Raymond Hill 4b77734fe3
New revision for dev build 2022-08-23 16:38:28 -04:00
Raymond Hill 8f39a457b8
Fallback procedural :has() operator when argument is not a valid plain CSS selector
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2228
2022-08-23 16:36:22 -04:00
Raymond Hill 95661c5f49
Make Firefox dev build auto-update 2022-08-21 13:01:04 -04:00
Raymond Hill 1129fc1d07
New revision for dev build 2022-08-21 12:56:22 -04:00
Raymond Hill 04114942aa
Add missing method to shim script
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2225
2022-08-21 12:54:02 -04:00
Raymond Hill b80da153b7
Make Firefox dev build auto-update 2022-08-19 07:40:31 -04:00
Raymond Hill a24bc50e40
Fix deprecated matches-css-after/matches-css-before 2022-08-18 12:04:56 -04:00
Raymond Hill 92e2b342d4
New revision for dev build 2022-08-18 12:01:01 -04:00
Raymond Hill 7bc0b5d2bd
Extend matches-css() to support any pseudo-element
This commit deprecates matches-css-before() and matches-css-after(): these
should no longer be used once 1.45.0 is published and widespread. The
deprecated syntax will eventually be removed in some future.

The syntax of procedural operator matches-css() has been extended to also
be able to target pesudo elements. Examples:

Same as before:

    example.com##p:matches-css(opacity: 0.5)

This is the new way to target an `::after` pseudo-element:

    example.com##p:matches-css(after, content: Ads)

This is the new way to target a `::before` pseudo-element:

    example.com##p:matches-css(before, content: Ads)

The new syntax also means any valid pseudo-element can now be used as
a target:

    example.com##p:matches-css(first-letter, opacity: 0.5)

If the first argument does not match the pattern "property name: value",
then it will be deemed a pseudo-element to target, and the second argument
will be the "property name: value".

Related issue:
- https://github.com/AdguardTeam/ExtendedCss/issues/150
2022-08-18 11:28:44 -04:00
Raymond Hill bdc68f3a81
New revision for stable release 2022-08-16 09:52:12 -04:00
Raymond Hill e54025d6bf
Import translation work from https://crowdin.com/project/ublock 2022-08-16 09:46:02 -04:00
Raymond Hill e7c7c37cdc
Update submodules 2022-08-16 09:41:52 -04:00
Raymond Hill 3cd8547fe4
Make Firefox dev build auto-update 2022-08-14 13:10:51 -04:00
Raymond Hill 41a6f8a34e
New revision for dev build 2022-08-14 13:07:25 -04:00
Raymond Hill c521479ef9
Add 0.5s mp3 redirectable resource
Command used to generate 0.5s mp3 file:

ffmpeg -ar 48000 -t 0.5 -f s16le -acodec pcm_s16le -ac 2 -i /dev/zero -acodec libmp3lame -aq 4 noop-0.5s.mp3

Related filter issue:
- https://github.com/uBlockOrigin/uAssets/issues/14231
2022-08-14 13:06:00 -04:00
Raymond Hill 78fccadaf2
Fix bad alias
Related feedback:
- https://github.com/DandelionSprout/adfilt/issues/63#issuecomment-1214131551
2022-08-13 09:09:36 -04:00
Raymond Hill 33d009e3ad
Make Firefox dev build auto-update 2022-08-08 15:50:44 -04:00
Raymond Hill 853260822b
New revision for release candidate 2022-08-08 15:43:53 -04:00
Raymond Hill cd50f76e74
Fix static filtering parser's validation of selectors/styles
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2170#issuecomment-1207921464
2022-08-08 12:04:17 -04:00
Raymond Hill a69250ba82
Make Firefox dev build auto-update 2022-08-05 11:45:59 -04:00
Raymond Hill ec43be8e4d
New revision for release candidate 2022-08-05 11:35:44 -04:00
Raymond Hill e62604f889
Add queue-related initialization code to AMZN shim script
This would render obsolete the AMZN-related exception at the
following URL:

https://play.mylifetime.com/shows/married-at-first-sight/season-15/episode-1

And possibly lower the likelihood of breakage on other sites.
2022-08-05 11:26:23 -04:00
Raymond Hill db992b6f4a
Make Firefox dev build auto-update 2022-08-04 14:11:23 -04:00
Raymond Hill c9272d51da
New revision for release candidate 2022-08-04 13:52:16 -04:00
Raymond Hill b01d57ab63
Fix dark theme issue in DOM inspector
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2196
2022-08-04 10:52:09 -04:00
Raymond Hill ac0cdf2d56
Update URL of new RUAdList location
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2193
2022-08-01 17:53:02 -04:00
Raymond Hill 9675aed51a
Update submodules 2022-07-29 12:20:51 -04:00
anewuser 8e60b26c05
removed /firefox from AMO link (#3871)
Removing this makes AMO redirect to either `/firefox` or `/android` depending on your user agent.

The `/android` version of the URL hides unsupported extensions from the front page.
2022-07-26 13:52:50 -04:00
Raymond Hill a78fbccfad
Make Firefox dev build auto-update 2022-07-25 10:20:34 -04:00
Raymond Hill 4d5978715c
New revision for dev build 2022-07-25 10:12:24 -04:00
Raymond Hill e2043b6554
Fix regression in handling of procedural cosmetic filters
Related commit:
- 91caed32d3

Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2185#issuecomment-1193862432
2022-07-25 10:10:44 -04:00