Commit Graph

7163 Commits

Author SHA1 Message Date
Raymond Hill 571db71318
Fine tune cosmetic filtering badge-related code
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/756

As per various feedbacks:

Added an advanced setting to keep the original behavior,
which can be potentially costly CPU-wise on some sites:

    popupCosmeticFilterBadgeSlow

Default to `false`. Set to `true` to restore original
method of surveying the number of elements hidden as
a result of applying cosmetic filtering.

As suggested by <https://github.com/gwarser>, skip
descendant of nodes which have been found to be a
match in order to potentially increase the number
of nodes which can be surveyed in the alloted time.
2019-11-02 19:03:07 -04:00
Raymond Hill c84c0979ce
Make Firefox dev build auto-update 2019-11-02 11:48:56 -04:00
Raymond Hill 7e004c8672
New revision for devbuild 2019-11-02 11:46:28 -04:00
Raymond Hill 4afc0764d2
Fix logic mistake in last commit
Related commit:
- 6d935c8925

Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/756
2019-11-02 11:45:18 -04:00
Raymond Hill 72837c9bda
Make Firefox dev build auto-update 2019-11-02 09:32:43 -04:00
Raymond Hill 638246126a
New revision for dev build 2019-11-02 09:19:27 -04:00
Raymond Hill 6d935c8925
Bail out when counting hidden elements is too expensive
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/756

When trying the number of hidden elements as a result of
cosmetic filtering for popup panel badge purpose, the
code will bail out if this takes too long, and in such
case the badge will be set to `?`, meaning the number
of hidden elements is undetermined.
2019-11-02 09:16:23 -04:00
Raymond Hill d30c0192b3
Make Firefox dev build auto-update 2019-11-02 08:45:22 -04:00
Raymond Hill 4797bd8273
New revision for dev build 2019-11-02 08:32:59 -04:00
Raymond Hill 8acc39581c
Fine tune script tags survey scriptlet
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/756

The code used to count expensive-to-survey particular
inline javascript occurrences will be executed if and
only if no other script tags have been found in the
DOM. This is acceptable since the badge count is to be
deemed approximate (as per documentation).
2019-11-01 14:28:15 -04:00
Raymond Hill 83834f12a1
Make Firefox dev build auto-update 2019-11-01 14:07:03 -04:00
Raymond Hill f14e5ea15d
New revision for dev build 2019-11-01 14:04:36 -04:00
Raymond Hill 987c9c1a21
Fix on-demand no-cosmetic-filtering badge when generichide in use
Related feedback:
- c090d2fde4 (commitcomment-35767596)

Mind that there might not be selectors to match as a
result of `generichide` or `no-cosmetic-filtering`.
2019-11-01 14:01:30 -04:00
Raymond Hill 2cd0d69c28
Make Firefox dev build auto-update 2019-11-01 12:48:49 -04:00
Raymond Hill 35d6785cbd
New revision for dev build 2019-11-01 12:36:03 -04:00
Raymond Hill c090d2fde4
Count hidden elements on-demand only in popup panel
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/756

The badge value for the no-cosmetic-filtering
switch will be evaluated on-demand only, when
the user hover over the switch with the mouse
cursor.

For touch screen displays, a tap on the switch
will cause the badge to be rendered if not
already done, otherwise this will toggle the
switch as usual.
2019-11-01 12:32:34 -04:00
Raymond Hill 7c0294bd5f
Fix spurious leading/trailing wildcards with valid token
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/dpcvfx/

Regression from:
- 7971b22385

Leading/trailing wildcards are useless when a valid
token can be found, and in such case they need to
be removed so as to ensure the proper filter class
is used.
2019-10-31 13:46:06 -04:00
Raymond Hill eb23c3581a
Make Firefox dev build auto-update 2019-10-31 12:57:23 -04:00
Raymond Hill 5dd57030a1
New revision for dev build 2019-10-31 12:53:33 -04:00
Raymond Hill d21b9388f3
Fix broken `csp=` filters when logger is opened
Regression from:
- 7971b22385

Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/761
2019-10-31 12:43:33 -04:00
Raymond Hill 7fdbf75c6c
Make Firefox dev build auto-update 2019-10-31 11:20:10 -04:00
Raymond Hill dbb8e15ff0
New revision for dev build 2019-10-31 11:17:02 -04:00
Raymond Hill 11c56ab540
Minor fine-tuning of URL tokenizer 2019-10-31 11:15:00 -04:00
Raymond Hill d8975ee580
Improve efficiency of per-site switches badge code
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/756

This is the code used to find out the count values
displayed as badge on the cosmetic filtering and
scripting per-site switches in the popup panel.

The issue is that document.querySelector*() -- used to
find out the number of hidden elements -- is unduly
expensive on large DOM.

The changes in this commit have focused on avoiding the
use of document.querySelector*() as much as possible.

Also, the results are cached for reuse unless DOM
mutations are detected.
2019-10-31 11:07:11 -04:00
Raymond Hill 11da758d47
Make Firefox dev build auto-update 2019-10-29 11:56:31 -04:00
Raymond Hill d6a78d8476
New revision for dev build 2019-10-29 11:49:49 -04:00
Raymond Hill a69b301d81
Fine-tune new bidi-trie code
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/761
2019-10-29 10:26:34 -04:00
Raymond Hill 49fb98dcb2
Make Firefox dev build auto-update 2019-10-28 14:07:12 -04:00
Raymond Hill 6075c929f9
New revision for dev build 2019-10-28 14:02:02 -04:00
Raymond Hill 5cc797fb47
Add WASM implementation for BidiTrieContainer.matches()
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/761
2019-10-28 13:57:35 -04:00
Raymond Hill d7b2d31180
Harden compiled/selfie format change detection at launch
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/759

This commit adds code to rely less on the state of the
cache storage to decide whether filter lists should be
re-compiled or whether the selfie is currently valid
at launch time when a change in compiled/selfie format
is detected.
2019-10-27 11:49:05 -04:00
Raymond Hill b79445320d
Force-unsuspend when starting webRequest listener
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/759

If for some reasons the launch code throws, uBO could
find itself in permanent suspend mode, thus preventing
web pages from loading in Firefox.

Though uBO should not have exceptions thrown during
it's initialization code, this commit will ensure
uBO complete its initialization process should it
ever happen for whatever reason.
2019-10-27 11:41:08 -04:00
Raymond Hill 36fb671460
Make Firefox dev build auto-update 2019-10-27 08:43:52 -04:00
Raymond Hill 2fafe8081c
New revision for dev build 2019-10-27 08:40:49 -04:00
Raymond Hill 40de7d6489
Fix WASM memory allocation in bidi-trie
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/764
2019-10-27 08:36:17 -04:00
Raymond Hill 92235adeec
Make Firefox dev build auto-update 2019-10-26 17:42:58 -04:00
Raymond Hill cdb6697e4c
new revision for dev build 2019-10-26 17:40:27 -04:00
Raymond Hill c71624d1da
Fix access to detached buffer when using WASM in bidi-trie
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/764

WebAssembly.Memory.grow() preserves the buffer content when
we grow it, no need to manually copy it. Doing so was
causing an access to a no longer valid ArrayBuffer.
2019-10-26 17:37:47 -04:00
Raymond Hill 0373410635
Fix comments in WASM code 2019-10-26 15:34:40 -04:00
Raymond Hill fb457a3dff
Make Firefox dev build auto-update 2019-10-26 15:31:34 -04:00
Raymond Hill 1f1933981d
New revision for dev build 2019-10-26 15:28:48 -04:00
Raymond Hill 6c3296958c
Fix last commit due to bad last second change
Related feedback:
- b0cbc47d9a (commitcomment-35677572)

It seems I completely forgot to test the last
"trivial" change to the WASM code.
2019-10-26 15:25:47 -04:00
Raymond Hill da8f9fa37c
Make Firefox dev build auto-update 2019-10-26 13:26:03 -04:00
Raymond Hill 1df432c2e5
Import translation work from https://crowdin.com/project/ublock 2019-10-26 13:23:31 -04:00
Raymond Hill b0cbc47d9a
Add WASM versions for some bidi-trie methods
Related issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/761

Changes related to above issue made it possible to
create WASM versions of methods used in the bidi-trie.
In this commit, WASM versions for startsWith(), indexOf()
and lastIndexOf() have been implemented.
2019-10-26 13:13:53 -04:00
Raymond Hill dd2a9faa4c
Use request as its own context when none available
Related feedback:
- https://www.reddit.com/r/uBlockOrigin/comments/dn9zso/

When a network request is tabless and contextless, i.e.
`tabId === -1` and `frameId === -1`, use the URL of
the network request as the context.
2019-10-26 10:18:32 -04:00
Raymond Hill 30393fdcf1
Exclude data type (i.e. `csp=`) from bidi-trie
We need a `matchAll()` method on the bidi-trie before
we can store filters of type `data` in it.

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

Related commit:
- 7971b22385
2019-10-22 18:14:49 -04:00
Raymond Hill 2681209828
New revision for dev build 2019-10-21 11:59:51 -04:00
Raymond Hill c137630833
Merge branch 'snfe-refactor' 2019-10-21 11:59:02 -04:00
Raymond Hill a5601b849e
Import translation work from https://crowdin.com/project/ublock 2019-10-21 10:42:52 -04:00