Commit Graph

3208 Commits

Author SHA1 Message Date
Raymond Hill 47b985a056
Fix `:matches-prop()` operator when no value provided 2024-06-20 09:21:43 -04:00
Raymond Hill aca7674bac
Add `:matches-prop()` pseudo CSS operator
`subject:matches-prop(arg)`

Description: Allows to select an element by a property name (or chain of
properties), and optionally the property value.

Chainable: Yes.

`subject`: Can be a plain CSS selector, or a procedural cosmetic filter.

`arg`: A declaration in the form `chain=value`, where `chain` is a dot-
  separated string for the target property, and `value` is the optional
  property value to match. `value` can be literal text or literal regular
  expression. When no `value` is declared, the operator only tests for
  the presence of the target property

Example:

  example.org##div:matches-prop(imanad)
  example.org##img:matches-prop(naturalWidth=160)
2024-06-19 19:06:53 -04:00
Raymond Hill d5208ee5dd
Add `isodate` as available placeholder for auto-comment
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3265
2024-06-07 08:52:30 -04:00
Raymond Hill 8f81833efc
Classify generic cosmetic filters with comma as highly generic
Related discussion:
https://old.reddit.com/r/uBlockOrigin/comments/1d3ezoy/
2024-06-01 10:46:18 -04:00
Raymond Hill 82a3992896
Raise max buffer size for response body filtering
Related discussion:
https://github.com/uBlockOrigin/uBlock-discussions/discussions/891
2024-06-01 10:42:14 -04:00
Raymond Hill 8ea1bac80b
Trim end of class tokens in generic cosmetic filtering's surveyor
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3257
2024-05-28 18:42:06 -04:00
Raymond Hill 3e7eca364b
Make logger console filter expression case-insensitive 2024-05-14 11:58:53 -04:00
Raymond Hill 0e6d607484
Add checksum validation when loading trie buffers in selfie
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3217#issuecomment-2103048654
2024-05-09 21:29:24 -04:00
Raymond Hill c098eb8625
Fix potential corruption when reading serialized data
Corrpution would occur when reading back serialized data which
contained multiple references to same instance of an object.

The issue could manifest when reading cache storage-related
data from the browser storage API, since the serializer is not
used when reading from indexedDB. Private/incognito mode
fall back on using browser storage API as cache storage.

Off the top of my head, I think the following conditions all
together could result in high likelihood of malfunction caused
by improperly deserializing data at launch time:

- Load from a selfie
- Selfie created after uBO ran for a while
- Selfie loaded from browser storage API (not the case by
  default)

Possibly related to reports of uBO malfunctioning:
https://github.com/uBlockOrigin/uBlock-issues/issues/3217#event-12686416838
2024-05-02 20:21:47 -04:00
Raymond Hill e891465775
Add more console logging for cache storage code 2024-05-02 20:15:46 -04:00
Raymond Hill 4c530b732f
Adjust element picker visuals
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3220
2024-04-22 06:08:49 -04:00
Raymond Hill 539938969d
Ensure reading last data written
Related discussion:
https://github.com/uBlockOrigin/uBlock-discussions/discussions/888
2024-04-13 16:03:17 -04:00
Raymond Hill 6e61a13e40
Open details pane only when clicking non-interactive elements
Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/discussions/3202
2024-04-11 11:12:37 -04:00
Raymond Hill 3b4f02db21
Add a console pane to the logger
The console pane will report logging information reported by
scriptlets.

Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/discussions/3096#discussioncomment-8748932

Plus other changes.
2024-04-10 11:27:40 -04:00
Raymond Hill c0b56cffab
Improve suggested candidate filters in element picker
Additionally, fix eslint warnings.
2024-04-10 10:28:11 -04:00
Raymond Hill 581c2824d0
Minor code review 2024-04-09 20:05:53 -04:00
Raymond Hill a5f6c35bb0
Fix bad date computation in auto-comment feature
Related feedback:
https://old.reddit.com/r/uBlockOrigin/comments/1bxz6oi/
2024-04-09 12:15:03 -04:00
Raymond Hill c223a8cd39
Fix regression breaking import of `file://` lists
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3199
2024-04-08 20:48:58 -04:00
Raymond Hill defd68ef7d
Fix stray lists in redesigned cache storage
Related issue:
https://old.reddit.com/r/uBlockOrigin/comments/1bxzwf9/

These stray filter lists prevents uBO from properly updating
those filter lists.
2024-04-07 18:21:37 -04:00
Raymond Hill 4533f0e37e
Fix eslint warnings 2024-04-03 10:22:57 -04:00
Raymond Hill 08aa3ebe10
Fix eslint warnings 2024-03-31 13:35:11 -04:00
Raymond Hill 3919a16bb8
Do not block large media resources when loaded as top-level document
Related issues:
- https://github.com/uBlockOrigin/uBlock-issues/issues/1201
- https://github.com/uBlockOrigin/uBlock-issues/issues/3184

Top-level media resources are not meant to be blocked, see:
https://github.com/gorhill/uBlock/issues/2813#issuecomment-317177212
2024-03-26 12:44:08 -04:00
Raymond Hill 90ab1a76ab
Properly manage cache storage regarding managed user filters
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3177
2024-03-23 13:28:18 -04:00
Raymond Hill 5d60df4b1b
Fix bad eslint rule + minor code review
`webext.js` module needs to be explicitly imported.

Added time-based heuristic to decide when a webpage loses
communication with background process.
2024-03-22 14:46:57 -04:00
Raymond Hill 61e916901b
Add concept of "preferred" lists
Preferred lists will be visually listed above other lists.
2024-03-19 11:51:03 -04:00
Raymond Hill 0cb6170584
Fix various quirks with "My filters" trust-related checkbox
Simplify code to force syntax highlighter and linter to reprocess
the content when toggling trust-related checkbox.

Fix issue with using `mousedown` on searchbar widgets, related
feedback:
https://github.com/uBlockOrigin/uBlock-issues/issues/3161#issuecomment-2002112770

Fix issues reported by eslint.
2024-03-19 10:59:15 -04:00
Imre Kristoffer Eilertsen 499c80bd8a
Fixed Belgian and Nepali flags for Windows Chromium users (#3914)
* Added flagcode matching for Belgium specifically

* Added a transparent Nepal flag
2024-03-17 10:42:20 -04:00
Raymond Hill 94de4e266e
Fix popup panel when embedded in logger
Regression from commit:
https://github.com/gorhill/uBlock/commit/0d77ccded7

Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/discussions/2419#discussioncomment-8759449
2024-03-17 09:36:39 -04:00
Raymond Hill 3f7374c1f1
Mind that `tabs.sendMessage` can throw 2024-03-17 09:34:05 -04:00
Raymond Hill 1cb190e102
Append wildcard character only when filter starts & ends with `/`
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/1088
2024-03-14 13:32:36 -04:00
Raymond Hill 65b6753c69
Simpler to use an extra property than to use a new assets.json 2024-03-14 10:20:25 -04:00
Raymond Hill 8165067b9b
Act on default mouse button 2024-03-14 09:14:15 -04:00
Raymond Hill 52b46eb98b
Add procedural operator `:shadow()` -- status is experimental
For internal use by filter list maintainers, do not open issues
about this. Left undocumented on purpose.

This new procedural operator allows to target elements in the
shadow root of an element.

subject:shadow(arg)

- Description: Look-up matching elements inside the shadow root (if
  present) of _subject_.
- Chainable: Yes
- _subject_: Can be a plain or procedural selector.
- _arg_: A plain or a procedural selector for the elements to target
  inside the shadowroot.

Example:

..##body > div:not([class]):shadow(div[style]):has(:shadow([data-i18n^="#ad"]))
2024-03-13 14:28:53 -04:00
Raymond Hill 6f54317bdf
Keep search input field visuals consistent
Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/issues/3161#issuecomment-1992340127
2024-03-13 10:57:56 -04:00
Raymond Hill df5a6d1fcc
Constant name consistency 2024-03-13 10:03:05 -04:00
Raymond Hill 664dd95700
Support maximizing editor to viewport size
Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/issues/3161#issuecomment-1991066618
2024-03-12 11:25:50 -04:00
Raymond Hill 633135745f
Need new `assets.son` file for next release
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3154
2024-03-11 18:41:18 -04:00
Raymond Hill 461810d93c
Rename `scuo-` to `s14e-` 2024-03-11 15:40:50 -04:00
Raymond Hill 0d77ccded7
Add advanced setting to force popup panel orientation
Related discussion:
https://github.com/uBlockOrigin/uBlock-issues/discussions/2419#discussioncomment-8746679

Name: `popupPanelOrientation`

Supported values:
- `unset` (default): uBO decides whichever mode is best
- `landscape`: force popup panel to landscape mode
- `portrait`: force popup panel to portrait mode
2024-03-11 13:01:51 -04:00
Raymond Hill 46ea5519c1
Add checkboxes to "My filters" pane
Related issues:
- https://github.com/uBlockOrigin/uBlock-issues/issues/3161
- https://github.com/uBlockOrigin/uBlock-issues/discussions/2895#discussioncomment-8504374

Two checkboxes have been added to the "My filters "pane:

1. A checkbox to wholly disable/enable "My filters". This is equivalent
   to the checkbox for "My filters" in "Filter lists" pane.

2. A checkbox to enable/disable the trustworthiness of the content
   of "My filters". Default to untrusted.

Since toggling these checkboxes requires reloading all filter lists,
their new state must be committed through the "Apply changes" button.

Additionally: a "book" icon has been added to the top-right of the
dashboard, which is a link to the wiki according to whichever pane is
currently active.
2024-03-11 11:39:31 -04:00
Raymond Hill 4f6fa840c3
Use `100svh` everywhere `100vh` is used
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3058
2024-03-06 08:45:49 -05:00
Raymond Hill 63acdcbdeb
Assume UTF-8 when no encoding can be looked up.
This will make HTML filtering and `replace=` filter option less
likely to be bypassed by uBO, as the body response filterer
previously required an encoding to be expressly declared before
acting on the response body.

UTF-8 usage is currently reported as ~98.2%:
https://w3techs.com/technologies/history_overview/character_encoding
2024-03-05 11:11:42 -05:00
Raymond Hill 04fead8d8a
Group lists with unknown group to special section
Related issue:
https://old.reddit.com/r/uBlockOrigin/comments/1b6tad0
2024-03-05 08:02:55 -05:00
Raymond Hill 395fa7197b
Reduce TTL of serializer workers 2024-03-05 07:27:02 -05:00
Raymond Hill 238724eed1
Fix looking-up unexisting sections in "Filter lists" pane
Related feedback:
https://old.reddit.com/r/uBlockOrigin/comments/1b6tad0/i_updated_to_the_new_dev_build_1561b10_and_now/
2024-03-04 23:57:47 -05:00
Raymond Hill a557f62112
Support aborting "Pick" mode in element picker
This allows a user to go back to the previous selection after
entering interactive "Pick" mode.
2024-03-03 20:08:15 -05:00
Raymond Hill 0f4e50db07
Remove sections with no lists in "Filter lists" pane
Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/issues/3154#issuecomment-1975413427
2024-03-03 20:05:45 -05:00
Raymond Hill 21a76e32a1
Add "Social widgets", "Cookie notices" sections in "Filter lists" pane
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3154
2024-03-03 15:29:38 -05:00
Raymond Hill 270040d466
Fix disabled state of new benchmark buttons 2024-03-03 13:46:29 -05:00
Raymond Hill 7f68c62f23
Remove obsolete built-in trusted directives
Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/issues/3101#issuecomment-1974922229
2024-03-02 18:02:43 -05:00