Commit Graph

12258 Commits

Author SHA1 Message Date
Raymond Hill a086ae1f19
Make Firefox dev build auto-update 2024-03-01 20:06:09 -05:00
Raymond Hill 2aef53a117
New revision for dev build 2024-03-01 19:59:14 -05:00
Raymond Hill ea2d5dde85
Update changelog 2024-03-01 19:58:56 -05:00
Raymond Hill 96704f2fda
Make asset updater compatible with non-persistent background page
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/2969

Additionally, modified default timing values for asset updater and
selfie creation.
2024-03-01 19:52:55 -05:00
Raymond Hill 80b66c849a
Add more benchmark tools to devtool page 2024-03-01 17:26:21 -05:00
Raymond Hill 9215fefab4
Remove Kurdish as target language
No translation work has ever be done to it.
2024-03-01 16:26:14 -05:00
Raymond Hill 953c978d59
Move dragbar to the top of element picker dialog
Also fine-tuning CSS for small screen displays.

Related feedback:
https://github.com/uBlockOrigin/uBlock-discussions/discussions/871
2024-03-01 11:56:22 -05:00
Raymond Hill 7b290e99ab
Make Firefox dev build auto-update 2024-02-29 20:35:43 -05:00
Raymond Hill bc8aba48ab
New revision for dev build 2024-02-29 20:31:23 -05:00
Raymond Hill c2c80be897
Forgot Chromium's `alarms` API is not promisified... 2024-02-29 20:29:36 -05:00
Raymond Hill d1fe023281
Make Firefox dev build auto-update 2024-02-29 20:05:38 -05:00
Raymond Hill a2ad1a67a9
New revision for dev build 2024-02-29 20:00:16 -05:00
Raymond Hill 9b60a68a75
Update changelog 2024-02-29 19:59:39 -05:00
Raymond Hill e02ea69c86
Add advanced setting `requestStatsDisabled`
To disable collating global blocked/allowed counts.

Boolean, default to `false`.

Setting to `true` will prevent uBO from loading/saving global
blocked/allowed counts, and in such case the "Blocked since
install" count instead reflects the count since uBO launched.

Setting back to `false` will cause the counts to resume from
last time they were saved.

Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3100
2024-02-29 19:53:06 -05:00
Raymond Hill e0971fe0ac
Make Firefox dev build auto-update 2024-02-29 13:36:16 -05:00
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