Commit Graph

9600 Commits

Author SHA1 Message Date
Raymond Hill 72bb89495b
Change compiled list format to a saner block id management
Just use self-described readable section identifiers instead
of difficult-to-manage arbitrary integers.
2021-12-07 11:15:14 -05:00
Raymond Hill 8309cc548e
Make Firefox dev build auto-update 2021-12-06 12:16:16 -05:00
Raymond Hill 62231b73e5
New revision for dev build 2021-12-06 12:08:58 -05:00
Raymond Hill 68e14793cc
Remove classes specialized in handling single-wildcarded patterns
Turns out the various benchmarks show no benefits when compiling
filters whose pattern contains a single wildcard character into
specialized classes which threat the pattern as two sub-patterns,
and actually there is a slight improvement in performance as per
benchamrks when treating these patterns as generic ones.

This also fixes the following related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1207
2021-12-06 12:03:52 -05:00
Raymond Hill 55fc4ba5e5
Use effective frame URL for `about:blank` frames
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1858
2021-12-06 11:59:48 -05:00
Raymond Hill 3004c8832a
Fix `dig-snfe modifiers` to properly detect changes in results 2021-12-06 08:01:05 -05:00
Raymond Hill 38a96603c1
Make Firefox dev build auto-update 2021-12-06 07:16:48 -05:00
Raymond Hill 190bbf627b
New revision for dev build 2021-12-06 07:07:22 -05:00
Raymond Hill d3fe0ccfe0
Fix regression with `csp=`, deprecate `queryprune`, etc
Fixed serious regression in previous dev build in applying
`csp=` filters. Reported internally by uBO team.

Promote usage of `removeparam` in code instead of `queryprune`,
which is to be deprecated.

Removed test against previously tested hostname in
FilterHostnameDict since as per various benchmark, the
test does not really help.

Remove serialization API in Node.js code as the API is now
present in SNFE itself.
2021-12-06 07:01:39 -05:00
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