Commit Graph

9541 Commits

Author SHA1 Message Date
Raymond Hill 7888e49c00
Fix race condition when loading from selfie
All the auxiliary data structures must be fully loaded before
the data structure used as entry point is populated. The race
condition could lead to a case of the entry point data structure
being populated while the auxiliary data structures are still
unpopulated, potentially causing exceptions to be thrown at
launch when the static network filtering engine is queried.

I haven't been able to reproduce such exceptions -- but it
could happen on browsers which do not support being suspended
at launch time (i.e. chromium-based browsers).

Additionally, added convenience methods to easily
serialize/unserialize when SNFE is used as a npm package.
2021-12-05 14:05:32 -05:00
Raymond Hill 5c66310c0a
Make Firefox dev build auto-update 2021-12-05 09:22:00 -05:00
Raymond Hill ae124065af
New revision for dev build 2021-12-05 09:12:55 -05:00
Raymond Hill 0948ad7d0a
Import translation work from https://crowdin.com/project/ublock 2021-12-05 09:11:28 -05:00
Raymond Hill 634ffc9d14
Fix throttling of optimization cycles
This should help lower time-to-readiness when uBO
is launched on less powerful devices.
2021-12-05 09:07:02 -05:00
Raymond Hill 71d2466eff
Make Firefox dev build auto-update 2021-12-04 17:16:36 -05:00
Raymond Hill 4b68f28e08
New revision for dev build 2021-12-04 17:10:51 -05:00
Raymond Hill b78b277907
Add missing code to properly grow buffer
Related feedback:
- https://github.com/orgs/uBlockOrigin/teams/ublock-issues-volunteers/discussions/293

Related commit:
- 725e6931f5

Through all the changes, forgot to pay attention to scenarios
where the `filterData` needs to grow -- the buffer's defautl
size is set to accomodate default filter lists, and subscribing
to more lists would cause the static network filtering engine
to fail because the buffer was not resized when needed.
2021-12-04 17:06:09 -05:00
Raymond Hill b98836ab8e
Fix NPM package documentation 2021-12-04 12:40:43 -05:00
Raymond Hill 82f31e7863
Bump npm package version number 2021-12-04 12:34:36 -05:00
Raymond Hill 7cf079cc0f
Make Firefox dev build auto-update 2021-12-04 12:07:02 -05:00
Raymond Hill 7c6d3241bb
Import translation work from https://crowdin.com/project/ublock 2021-12-04 11:57:45 -05:00
Raymond Hill 5c10b13ade
Fix text in Support pane, as per feedback
Related feedback:
- https://crowdin.com/translate/ublock/13/enca-nl?filter=basic&value=4#1153
2021-12-04 11:53:23 -05:00
Raymond Hill 0df8986b52
Fix `make lint` warning 2021-12-04 11:48:17 -05:00
Raymond Hill e8e7294431
New revision for dev build 2021-12-04 11:45:43 -05:00
Raymond Hill 725e6931f5
Refactoring work in static network filtering engine
The original motivation is to further speed up launch time
for either non-selfie-based and selfie-based initialization
of the static network filtering engine (SNFE).

As a result of the refactoring:

Filters are no longer instance-based, they are sequence-of-
integer-based. This eliminates the need to create instances
of filters at launch, and consequently eliminates all the
calls to class constructors, the resulting churning of memory,
and so forth.

All the properties defining filter instances are now as much
as possible 32-bit integer-based, and these are allocated in a
single module-scoped typed array -- this eliminates the need
to allocate memory for every filter being instantiated.

Not all filter properties can be represented as a 32-bit
integer, and in this case a filter class can allocate slots
into another module-scoped array of references.

As a result, this eliminates a lot of memory allocations when
the SNFE is populated with filters, and this makes the saving
and loading of selfie more straightforward, as the operation
is reduced to saving/loading two arrays, one of 32-bit
integers, and the other, much smaller, an array JSON-able
values.

All filter classes now only contain static methods, and all
of these methods are called with an index to the specific
filter data in the module-scoped array of 32-bit integers.

The filter sequences (used to avoid the use of JS arrays) are
also allocated in the single module-scoped array of 32-bit
integers -- they used to be stored in their own dedicated
array.

Additionally, some filters are now loaded more in a deferred
way, so as reduce uBO's time-to-readiness -- the outcome of
this still needs to be evaluated, time-to-readiness is
especially a concern in Firefox for Android or less powerful
computers.
2021-12-04 11:16:44 -05:00
Raymond Hill 64f427d0e5
Have `getAll()` returns at least one neutered Tracker object
Related discussion:
- https://github.com/uBlockOrigin/uAssets/issues/10731#issuecomment-986031354
2021-12-04 11:07:19 -05:00
Raymond Hill ccc4c7d41f
Log selfie-related events at launch time 2021-12-04 10:55:33 -05:00
Raymond Hill 1becd8ad18
Use `removeparam`, `queryprune` is deprecated 2021-12-04 10:52:24 -05:00
Raymond Hill 7428e117b5
Remove pointless setting from support information 2021-12-04 10:44:57 -05:00
Raymond Hill 5f7d005e3d
Fix pointless use of parenthesis in regex 2021-12-02 17:58:52 -05:00
Raymond Hill 99dfce0b44
Fix `make lint` warning 2021-12-02 17:58:17 -05:00
Raymond Hill 1ce11f72bc
New revision for stable release 2021-11-30 08:06:16 -05:00
Raymond Hill 3ff3e794f2
Update submodules 2021-11-30 08:05:07 -05:00
Raymond Hill 33ab856e86
Import translation work from https://crowdin.com/project/ublock 2021-11-30 08:04:45 -05:00
Raymond Hill 395a4e36a9
Officialize `uiPopupConfig` advanced setting
Related discussion:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1817#issuecomment-981104204
2021-11-28 10:35:50 -05:00
Raymond Hill 217bddb423
Make Firefox dev build auto-update 2021-11-28 07:56:58 -05:00
Raymond Hill 5ad4efc17e
New revision for release candidate 2021-11-28 07:48:49 -05:00
Raymond Hill aad90eb323
More fine tuning of filter issue report feature 2021-11-28 07:47:16 -05:00
Raymond Hill b66dfb1c87
Make Firefox dev build auto-update 2021-11-27 12:21:19 -05:00
Raymond Hill fe3affc777
New revision for dev build 2021-11-27 12:14:08 -05:00
Raymond Hill a06296d4e8
Import translation work from https://crowdin.com/project/ublock 2021-11-27 12:10:31 -05:00
Raymond Hill 1408422cba
Fine tune new reporting feature
Add ability to bring back logger button in popup panel through
the advanced setting `uiPopupConfig`. Adding `+logger` token
to `uiPopupConfig` will bring back the logger icon in the mobile
version of the popup panel.

Additionally, the link to the logger in the Support pane will
take into account whether the <Shift> key is pressed, so as
to behave like the logger icon in the popup panel.

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

The troubleshooting information has been further fine-tuned to
report popup panel data related to the reported page, for better
diagnosis by disclosing any customization to uBO which was
affecting the reported page.
2021-11-27 11:58:32 -05:00
Raymond Hill 6f31f07255
Make Firefox dev build auto-update 2021-11-26 12:41:54 -05:00
Raymond Hill a2444a8c25
Import translation work from https://crowdin.com/project/ublock 2021-11-26 12:30:50 -05:00
Raymond Hill 32122329c9
New revision for dev build 2021-11-26 12:27:12 -05:00
Raymond Hill 74d1f90264
Allow reporter to select a choice of URLs to report
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1836

The URL to report can now be picked from a list of related
URLs in order to allow the reporter to publish edited version
of the reported URL.

Additionally, the hash, user name, and password which could be
present in a reported URL are always removed.
2021-11-26 12:23:18 -05:00
Edward Brey 95a105da1a
Link to filter descriptions
If you click the Home button for one of the EasyList filter lists in uBlock settings, now you will go to a page that succinctly describes what the filter does. The old links took you to a forum with no clear way to find info on a given filter, especially for a new user.
2021-11-26 06:12:46 -06:00
Raymond Hill 1ac9c5ceb7
Reject generic HTML block filters
Related feedback:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1844

Generic HTML block filters will by highlighted as invalid and
rejected by uBO at compile time.
2021-11-24 18:14:09 -05:00
Raymond Hill 8bad29fbcc
New version for stable release 2021-11-22 09:10:12 -05:00
Raymond Hill 19800f0af2
Update submodules 2021-11-22 09:09:36 -05:00
Raymond Hill 3cf3ec595f
Import translation work from https://crowdin.com/project/ublock 2021-11-22 09:06:02 -05:00
Raymond Hill 374d4800e5
Arrow functions are not `instanceof Function`
But their `typeof` is `function`, so use this instead to
detect whether an argument is a function which can be
called.

Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/qyx7en/
2021-11-21 11:19:12 -05:00
Raymond Hill 9b1f59c8b2
Make Firefox dev build auto-update 2021-11-21 08:36:45 -05:00
Raymond Hill e81683b27b
New revision for dev build 2021-11-21 08:28:11 -05:00
Raymond Hill 5845aa3d73
Import translation work from https://crowdin.com/project/ublock 2021-11-21 08:00:22 -05:00
Raymond Hill 2fae1ce90e
Remove ability to unredact
Unredacted settings is unlikely to be useful after all,
and removing the ability to unredact ensure users won't
mistakenly publish unredacted information.
2021-11-21 07:53:36 -05:00
Raymond Hill a8f0461a57
Make Firefox dev build auto-update 2021-11-20 09:56:21 -05:00
Raymond Hill be034c7a66
New revision for release candidate 2021-11-20 09:40:09 -05:00
Raymond Hill a240392e07
Import translation work from https://crowdin.com/project/ublock 2021-11-20 09:39:48 -05:00