Commit graph

12043 commits

Author SHA1 Message Date
Raymond Hill
70cf53067d
New revision for dev build 2024-02-29 13:29:26 -05:00
Raymond Hill
801d6500b0
Fix idbStorage.keys()
Related commit:
https://github.com/gorhill/uBlock/commit/d4efaf020b
2024-02-29 13:28:04 -05:00
Raymond Hill
d8544dc047
Forgot to declarare "alarms" permmission in manifest for Chromium
Related commit:
https://github.com/gorhill/uBlock/commit/059e4e5e28
2024-02-29 13:18:33 -05:00
Raymond Hill
727e71b328
Make Firefox dev build auto-update 2024-02-29 12:05:40 -05:00
Raymond Hill
2a27643874
Update changelog 2024-02-29 11:56:49 -05:00
Raymond Hill
275a1299e1
New revision for dev build 2024-02-29 11:54:51 -05:00
Raymond Hill
059e4e5e28
Imrpove saving request stats for non-persistent background page
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/2969

Related previous commit:
https://github.com/gorhill/uBlock/commit/5a338b7210

The save-to-storage period is back to being around ~4 minutes, but
now browser.storage.session API is used to keep track of request
stats should the extension be suspended before the period elapse.
2024-02-29 11:43:51 -05:00
Raymond Hill
09bba3199e
Import translation work from https://crowdin.com/project/ublock 2024-02-29 09:48:01 -05:00
Raymond Hill
d7154de9e9
Minor renaming of variables 2024-02-29 09:18:07 -05:00
Raymond Hill
ba95d2bc49
Minor code review of last commit
Related commit:
https://github.com/gorhill/uBlock/commit/2b16a10b82
2024-02-29 08:37:44 -05:00
Raymond Hill
2b16a10b82
First lookup matching stock lists when importing URLs
Related discussion:
https://github.com/MasterKia/PersianBlocker/discussions/224
2024-02-29 07:51:08 -05:00
Raymond Hill
b0067b79d5
Reset filter lists in worker when creating filters via "Block element"
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/968
2024-02-28 18:53:27 -05:00
Raymond Hill
c6706c1983
Make Firefox dev build auto-update 2024-02-28 17:45:38 -05:00
Raymond Hill
a2aa357dac
Update changelog 2024-02-28 17:42:38 -05:00
Raymond Hill
0dc8cf6e8a
New revision for dev build 2024-02-28 17:39:13 -05:00
Raymond Hill
d4efaf020b
Make indexedDB to default fast cache by default
Turns out it's currently the fastest among the three currently
implemented (Cache, browser.storage.session, indexedDB). Possibly
because indexedDB can natively persist structure-cloneable data,
something uBO can now benefit with the work on abstracting away
the limitations of various storages being limited to persist only
text or JSON data.

Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/2969
2024-02-28 17:31:29 -05:00
Raymond Hill
9862446b10
Various fine tuning code of recent commits 2024-02-28 13:32:24 -05:00
Raymond Hill
3c299b8632
Remove trusted-source requireement when using badfilter
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3136
2024-02-28 12:14:59 -05:00
Raymond Hill
ad03f7d86a
Make Firefox dev build auto-update 2024-02-27 21:56:01 -05:00
Raymond Hill
50271e2ba0
New revision for dev build 2024-02-27 21:47:42 -05:00
Raymond Hill
79ea85dbc4
More fine tuning of cache storage-related code 2024-02-27 21:47:06 -05:00
Raymond Hill
a9211cfa2f
Make Firefox dev build auto-update 2024-02-27 18:51:05 -05:00
Raymond Hill
96d45f12d2
New revision for dev build 2024-02-27 18:42:43 -05:00
Raymond Hill
b0fc5d3d21
Fix race condition when saving cache registry
Related to new cache storage code.
2024-02-27 18:41:10 -05:00
Raymond Hill
e8b7037ba8
Make Firefox dev build auto-update 2024-02-27 15:11:11 -05:00
Raymond Hill
ac665ba7cc
New revision for dev build 2024-02-27 15:05:25 -05:00
Raymond Hill
7590c0711d
Fine-tune cache storage related-code
Related discussion:
https://github.com/uBlockOrigin/uBlock-discussions/discussions/876

Related commit:
086766a924
2024-02-27 15:04:05 -05:00
Raymond Hill
4d88b5121c
Fine tune publishing scripts 2024-02-27 07:09:02 -05:00
Raymond Hill
65ab026f25
Make Firefox dev build auto-update 2024-02-26 18:21:19 -05:00
Raymond Hill
30036ad36f
New revision for dev build 2024-02-26 18:02:38 -05:00
Raymond Hill
385bc21ef1
Update changelog 2024-02-26 17:57:03 -05:00
Raymond Hill
086766a924
Redesign cache storage
In uBO, the "cache storage" is used to save resources which can
be safely discarded, though at the cost of having to fetch or
recompute them again.

Extension storage (browser.storage.local) is now always used as
cache storage backend. This has always been the default for
Chromium-based browsers.

For Firefox-based browsers, IndexedDB was used as backend for
cache storage, with fallback to extension storage when using
Firefox in private mode by default.

Extension storage is reliable since it works in all contexts,
though it may not be the most performant one.

To speed-up loading of resources from extension storage, uBO will
now make use of Cache API storage, which will mirror content of
key assets saved to extension storage. Typically loading resources
from Cache API is faster than loading the same resources from
the extension storage.

Only resources which must be loaded in memory as fast as possible
will make use of the Cache API storage layered on top of the
extension storage.

Compiled filter lists and memory snapshot of filtering engines
(aka "selfies") will be mirrored to the Cache API storage, since
these must be loaded into memory as fast as possible, and reloading
filter lists from their compiled counterpart is a common
operation.

This new design makes it now seamless to work in permanent private
mode for Firefox-based browsers, since extension storage now
always contains cache-related assets.

Support for IndexedDB is removed for the time being, except to
support migration of cached assets the first time uBO runs with
the new cache storage design.

In order to easily support all choices of storage, a new serializer
has been introduced, which is capable of serializing/deserializing
structure-cloneable data to/from a JS string.

Because of this new serializer, JS data structures can be stored
directly from their native representation, and deserialized
directly to their native representation from uBO's point of view,
since the serialization occurs (if needed) only at the storage
interface level.

This new serializer simplifies many code paths where data
structures such as Set, Map, TypedArray, RegExp, etc. had to be
converted in a disparate manner to be able to persist them to
extension storage.

The new serializer supports workers and LZ4 compression. These
can be configured through advanced settings.

With this new layered design, it's possible to introduce more
storage layers if measured as beneficial (i.e. maybe
browser.storage.session)

References:
- https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage/local
- https://developer.mozilla.org/en-US/docs/Web/API/Cache
- https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm
2024-02-26 16:50:11 -05:00
Raymond Hill
2262a129ec
Don't match network filter-derived regexes against non-network URIs
Context: element picker

Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3142
2024-02-26 16:08:12 -05:00
Raymond Hill
f7e00e4223
[mv3] Fix rule id-salvaging task 2024-02-25 20:49:25 -05:00
Raymond Hill
fcc77e7c92
[mv3] Add ability to manually add filters to a ruleset 2024-02-25 20:39:21 -05:00
Raymond Hill
c4d2dcd835
Add ability to clean dist/build/[assets-related folders] 2024-02-25 18:27:07 -05:00
Raymond Hill
439a059cca
Remove obsolete trusted directives
All supported browsers now have the concept of priviledged
pages, there is no need for these extra trusted-site directives.

Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3101
2024-02-19 11:06:39 -05:00
Raymond Hill
e527a8f9af
Support logging details of calls to json-prune-fetch-response
Example:

    example.com##+js(json-prune-fetch-response)

This will output to the logger details of all fetch() with a
Response.json() call.

Related discussion:
https://github.com/uBlockOrigin/uAssets/discussions/22556
2024-02-19 10:59:12 -05:00
Raymond Hill
fef26e234d
Make the "untrusted sources" warning always visible
It won't disappear when vertical space is restricted.
2024-02-18 08:00:34 -05:00
Raymond Hill
9666eeb9cf
Do not treat selectors as "common" when char 0x09-0x0D are in attr value 2024-02-17 20:25:41 -05:00
Raymond Hill
0096b74d46
Make Firefox dev build auto-update 2024-02-17 20:06:02 -05:00
Raymond Hill
a7e8485b32
Update changelog 2024-02-17 20:01:42 -05:00
Raymond Hill
e6e01d96a4
New revision for dev build 2024-02-17 19:59:53 -05:00
Raymond Hill
be3e366019
Escape special whitespace characters in attribute values
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3127

Reference:
https://mathiasbynens.be/notes/css-escapes
2024-02-17 19:57:44 -05:00
Raymond Hill
33749d2d3f
Use requestIdleCallback() in href-sanitizer scriptlet
Instead of requestAnimationFrame().
2024-02-17 12:53:57 -05:00
Raymond Hill
4af57e3e60
Import translation work from https://crowdin.com/project/ublock 2024-02-17 09:34:41 -05:00
Raymond Hill
557d8075a2
New version for stable release 2024-02-17 09:28:38 -05:00
Raymond Hill
d8fc4b6c68
Make Firefox dev build auto-update 2024-02-15 14:46:13 -05:00
Raymond Hill
f6d68be858
New revision for release candidate 2024-02-15 14:40:25 -05:00
Raymond Hill
0f4078901a
Update changelog 2024-02-15 14:39:50 -05:00