Commit Graph

11695 Commits

Author SHA1 Message Date
Raymond Hill 979ca04379
New revision for dev build 2023-10-30 12:55:41 -04:00
Raymond Hill d05ff8ffeb
Add support for diff-patching filter lists
Related discussion:
https://github.com/ameshkov/diffupdates

The benefits of diff-patching filter lists is much shorter update
schedule and significantly less bandwidth consumed.

At the moment, only default filter lists are subject to be
diff-patched.

External filter lists can make their lists diff-patchable by
following the specification link above.

Only filter lists fetched by the auto-updater are candidate for
diff-patching.

Forcing a manual update of the filter lists will prevent the
diff-patcher from kicking in until one or more lists are
auto-updated.

Some back-of-the-envelop calculations regarding the load on free
CDN solutions used by uBO to distribute its own filter lists:

Currently, for each CDN (with lists updating after days):
~560 M req/month, ~78 TB/month

With diff-patching lists on a 6-hour schedule:
~390 M req/month, 1 TB/month

Those estimates were done according to statistics shown by
jsDelivr, which is one of 4 CDNs picked randomly when a list
updates:
https://www.jsdelivr.com/package/gh/uBlockOrigin/uAssetsCDN?tab=stats
2023-10-30 12:30:46 -04:00
Raymond Hill 032f170dba
Make update-through-link equivalent to auto-update cycle 2023-10-30 12:09:16 -04:00
Raymond Hill 4fa92f930e
Support soft-updating through update links
Where "soft-updating" means updating from CDNs, and "hard-updating"
means updating from `ublockorigin.github.io/uAssets`.
2023-10-30 10:47:38 -04:00
Raymond Hill b061db229e
Prevent `contentScripts.register` from throwing
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/2915
2023-10-30 10:44:04 -04:00
Raymond Hill bc632b5464
Make Firefox dev build auto-update 2023-10-30 00:46:15 -04:00
Raymond Hill e1ac68129c
New revision for release candidate 2023-10-30 00:36:12 -04:00
Raymond Hill c9aeb6a43b
Use minified version of badware list in package 2023-10-30 00:35:30 -04:00
Raymond Hill c378d55dfb
Minor 2023-10-29 23:44:43 -04:00
Raymond Hill d110c21db7
Ship minified version of lists in package 2023-10-29 23:39:40 -04:00
Fanboynz d51b393fdb
Add additional set-cookie names (#3902) 2023-10-29 11:01:32 -04:00
Raymond Hill 9433dc52ab
Make Firefox dev build auto-update 2023-10-29 10:35:52 -04:00
Raymond Hill 654dc20deb
New revision for release candidate 2023-10-29 10:26:04 -04:00
Raymond Hill 5244ad5baf
Do not use `bind` as a way to access native calls 2023-10-29 10:22:54 -04:00
Raymond Hill 3c4932e1a6
Make Firefox dev build auto-update 2023-10-28 07:51:22 -04:00
Raymond Hill 904e5dff7a
Import translation work from https://crowdin.com/project/ublock 2023-10-28 07:41:18 -04:00
Raymond Hill 30f5e5daff
New revision for release candidate 2023-10-28 07:38:42 -04:00
Raymond Hill fc40393c81
Improve `trusted-prune-inbound-object` scriptlet
Trap incoming argument only if it matches the properties to
prune and matches. If there is no match, the inbound object
is passed through untouched.
2023-10-28 07:35:38 -04:00
Raymond Hill 9829ee12a5
Make Firefox dev build auto-update 2023-10-27 21:36:22 -04:00
Raymond Hill 0b59ebf1c6
Import translation work from https://crowdin.com/project/ublock 2023-10-27 21:27:28 -04:00
Raymond Hill e2f5814c50
New revision for release candidate 2023-10-27 21:14:13 -04:00
Raymond Hill 07ac27e07b
Give precedence to `Last modified:` field when evaluating "age" if lists
Available network information is not very reliable and should be
used only when `Last modified:` is not available.
2023-10-27 21:09:49 -04:00
Raymond Hill ed4b31931a
Prepare to ship minified lists in package 2023-10-26 13:38:24 -04:00
Raymond Hill 88a510cf7c
Make Firefox dev build auto-update 2023-10-25 20:16:33 -04:00
Raymond Hill a87813614a
New revision for release candidate 2023-10-25 20:05:44 -04:00
Raymond Hill 51dfde8f41
Import translation work from https://crowdin.com/project/ublock 2023-10-25 20:04:58 -04:00
Dave Vandyke 0fa30a73c5
Further improve google-ima shim script (#3900)
I worked through some of the websites listed in the google-ima shim
script issue[1], to see what was going wrong. It turned out the
addEventListener method supports an optional context Object, which is
bound to the listener if provided. Some websites make use of that,
and then break when `this` is not bound correctly when events are
dispatched.

See also https://github.com/duckduckgo/tracker-surrogates/pull/24

1 - https://github.com/uBlockOrigin/uBlock-issues/issues/2265
2023-10-25 12:00:21 -04:00
Raymond Hill c2217a170e
Update user interface srings as suggested 2023-10-25 07:31:23 -04:00
Raymond Hill e2b9e090ce
Update user interface srings as suggested 2023-10-25 07:28:41 -04:00
Raymond Hill 33a9b97f25
Make Firefox dev build auto-update 2023-10-24 12:45:46 -04:00
Raymond Hill 5d4f0da5aa
New revision for release candidate 2023-10-24 12:31:56 -04:00
Raymond Hill c1657c2f9c
Import translation work from https://crowdin.com/project/ublock 2023-10-24 11:22:21 -04:00
Dave Vandyke b445f4f4cd
Improve google-ima shim script (#3899)
We made use of the google-ima shim script from uBlock in the
DuckDuckGo Privacy Essentials extension recently, but found a few
issues with website breakage. After debugging and fixing those[1], I
thought it would be worth sharing the improvements back again. Issues
we ran into:

- The AdDisplayContainer[2] constructor usually creates some DOM
  elements inside the given container. They are all nested within a
  DIV and some websites break when at least that top DIV element isn't
  created.
- While not documented (that I could see), the event listeners can be
  added using an array of event types. Some websites make use of that
  and then hang forever when the expected events aren't fired. This
  caused videos not to play on some websites.
- The Ad.prototype.getUniversalAdIds()[3] method should return an
  array of UniversalAdIdInfo Objects, instead of an Array of
  strings. When an array of strings are returned, some websites then
  break when the UniversalAdIdInfo's methods are missing.
- The UniversalAdIdInfo.prototype.getAdIdValue()[4] method had a typo
  in the name ("getAsIdValue") and was effectively missing. That
  caused some websites to break when the missing method was called.
- The google.ima.OmidVerificationVendor[5] Object was missing, which
  broke some websites that attempted to access it.

1 - 52f2999523
2 - https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/reference/js/google.ima.AdDisplayContainer
3 - https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/reference/js/google.ima.Ad#getUniversalAdIds
4 - https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/reference/js/google.ima.UniversalAdIdInfo#getAdIdValue
5 - https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/reference/js/google.ima#.OmidVerificationVendor
2023-10-24 11:16:14 -04:00
Raymond Hill d32204f984
Match `type` exactly in `prevent-addEventListener` scriptlet
Unless `type` is a regex of course.

Related feedback:
https://github.com/uBlockOrigin/uAssets/discussions/17907#discussioncomment-7362212
2023-10-23 21:15:00 -04:00
Raymond Hill b8542cb894
Make Firefox dev build auto-update 2023-10-23 10:11:19 -04:00
Raymond Hill e351551dc4
Move warning sentence to the start
Related discussion:
https://github.com/uBlockOrigin/uBlock-issues/discussions/2895#discussioncomment-7353454
2023-10-23 10:01:33 -04:00
Raymond Hill 4e0b74e562
new revision for release candidate 2023-10-23 10:00:52 -04:00
Raymond Hill 6c672c99c2
Import translation work from https://crowdin.com/project/ublock 2023-10-23 09:20:59 -04:00
Raymond Hill 3c04ae41b3
Make Firefox dev build auto-update 2023-10-22 18:41:37 -04:00
Raymond Hill 589f281f21
Fine tune CSS
Related discussion:
https://github.com/uBlockOrigin/uBlock-issues/discussions/2895#discussioncomment-7353182
2023-10-22 18:33:28 -04:00
Raymond Hill 3562cc2e4c
New revision for release candidate 2023-10-22 18:22:59 -04:00
Raymond Hill 1a1876e593
Import translation work from https://crowdin.com/project/ublock 2023-10-22 18:22:27 -04:00
Raymond Hill 82c59b4b6e
Add `domain` vararg to `trusted-set-cookie`
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/2893
2023-10-22 18:19:18 -04:00
Raymond Hill 1e745c2f4d
Emphasize warning in "My filters"
Related feedback:
f1ce3b2191 (commitcomment-130633291)
2023-10-22 17:52:38 -04:00
Raymond Hill 9bd483bec3
Enable "not permissions" filtering expression in logger
Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/discussions/2714#discussioncomment-6959861
2023-10-22 17:50:45 -04:00
Raymond Hill 7ca18f77d9
Make Firefox dev build auto-update 2023-10-22 15:51:26 -04:00
Raymond Hill 9fed114374
New revision for dev build 2023-10-22 15:40:48 -04:00
Raymond Hill 9e2c919c24
Import translation work from https://crowdin.com/project/ublock 2023-10-22 15:40:16 -04:00
Raymond Hill a9ff41ae55
Add filter expressions for logger output
Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/discussions/2714#discussioncomment-6959761
2023-10-22 15:33:21 -04:00
Raymond Hill 70019e41a6
Make Firefox dev build auto-update 2023-10-22 13:21:19 -04:00