Commit graph

271 commits

Author SHA1 Message Date
Raymond Hill
2b63dcdcb6
[mv3] Force register content scripts when none are found
Possibly will fix cases of no content scripts found in Safari.

Related issue:
https://github.com/uBlockOrigin/uAssets/issues/30158#issuecomment-3869144473
2026-02-09 09:25:57 -05:00
Raymond Hill
359cb070eb
[mv3] Fix minor regression in reported troubleshooting info 2026-01-29 08:38:53 -05:00
Raymond Hill
9f0c55fccb
[mv3] Minor change for when side-loaded 2026-01-23 12:31:06 -05:00
Raymond Hill
c6de97ceb7
[mv3] Add to troubleshooting info 2026-01-21 15:40:01 -05:00
Raymond Hill
b74b1a789c
[mv3] Remove obsolete comment 2026-01-17 13:28:25 -05:00
Raymond Hill
222f4fbbc1
[mv3] Fix equality test between two rulesets
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/591
2026-01-17 13:19:51 -05:00
Raymond Hill
161cc473a2
[mv3] Fine tune busy state of popup panel 2026-01-11 14:00:58 -05:00
Raymond Hill
dfeb4e79ed
[mv3] Show spinner when filtering mode change takes long
Related issue:
https://github.com/uBlockOrigin/uBOL-home/discussions/583

If the filtering mode change takes more than a second, a spinner
covering the whole popup panel will appear until the browser
API calls complete.
2026-01-11 13:26:16 -05:00
Raymond Hill
5e9b662024
[mv3] Removing multiple keys is supported 2026-01-10 12:49:17 -05:00
Raymond Hill
f6048a0804
[mv3] Fix class collision 2026-01-03 09:21:10 -05:00
Raymond Hill
9b45333e0d
[mv3] Fix "Proceed" button not working in strict-block page
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/576
2025-12-30 15:36:42 -05:00
Raymond Hill
41dd3bf5f2
[mv3] Support removing multiple keys 2025-12-28 09:21:41 -05:00
Raymond Hill
0101a47d25
[mv3] Try to address Safari's webextensions API issues
1) Reset "seen realms" when modifying enabled rulesets. The "seen
realms" code path is an attempt at mitigating an issue whereas
the DNR rules would not be enforced under certain circumstances.

2) Re-write the scripting manager to always wholly
unregister/register all content scripts instead of only the
differences before/after following a change affecting content
scripts.
2025-12-27 14:12:31 -05:00
Raymond Hill
f7f96140d9
[mv3] Add page-wide spinner when restoring/resetting settings 2025-12-27 10:12:34 -05:00
Raymond Hill
df0d21d92e
[mv3] Avoid instantiating regexes by using simple needle first
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/223
2025-12-27 09:45:25 -05:00
Raymond Hill
6063d4f0ad
[mv3] Add ability to reset to default settings 2025-12-25 16:32:38 -05:00
Raymond Hill
377cf9d86b
[mv3] Add support for regex-based extended filters
Related issues:
- https://github.com/uBlockOrigin/uBOL-home/issues/223
- https://github.com/uBlockOrigin/uAssets/issues/31261
2025-12-25 12:34:21 -05:00
Raymond Hill
c975fbb9d7
[mv3] Mind id/class attribute changes in generic cosmetic filterer
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3904
2025-12-23 10:51:15 -05:00
Raymond Hill
4e0f47f11a
[mv3] Mind anscestor hostnames when evaluating host permissions
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/569
2025-12-21 11:16:25 -05:00
Raymond Hill
a23561d79e
[mv3] Bypass cosmetic filtering when top context is set to no-filtering
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/20

Specific cosmetic filtering will be bypassed when hostname of top context
matches an entry in the no-filtering set.

This doesn't completely solve the issue:
- The browser platform must support `document.location.ancestorOrigins`
- This solution can't be applied to scriptlets
2025-12-15 16:15:13 -05:00
Raymond Hill
3855c5a648
[mv3] Fix garbage collection-related code 2025-12-14 10:26:50 -05:00
Raymond Hill
621ad89c64
[mv3] Better validate hostnames in "Filtering mode details" editor
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/564
2025-12-12 09:48:40 -05:00
Raymond Hill
0fb845d1ac
[mv3] Load specific cosmetic filtering data on-demand only
The cosmetic filtering data embedded in the content scripts has been
extracted in corresponding JSON files. When a list is enabled, the
corresponding cosmetic filtering data from the JSON files, if any, is
persisted into the extension's local storage.

The cosmetic filtering-related content scripts will load the data
from these JSON files on-demand only and matching cosmetic filters
will be extracted, then the result is cached in the session storage,
ensuring there is no longer a need to perform lookup for the rest
of the browser session.

As a result this further reduces the time to First Contentful Paint.

Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/557
2025-12-09 15:32:02 -05:00
Raymond Hill
0aa0d81caf
[mv3] Re-work specific cosmetic filtering-related content scripts
To minimize delay to First Contentful Paint. The idea is to avoid
complex data structures such as Map in order to speed up first content
script execution. Use stringified arrays where practical and
instanciate those arrays from their stringified representation only
when there are actual cosmetic filters to apply.

Related commit:
https://github.com/gorhill/uBlock/commit/6039ef2b6d
2025-12-05 08:54:34 -05:00
Raymond Hill
6039ef2b6d
[mv3] Generate at most two scriptlet-related files per rulesets
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/557
2025-12-04 12:57:25 -05:00
Raymond Hill
cd814ee818
[mv3] Improve automatically changing filtering mode
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/554
2025-11-29 09:41:46 -05:00
Raymond Hill
474723d9ca
[mv3] Improve management of regex-based rules
- Make place for more dynamic regex-based rules when there is a
  risk session regex-based rules could interfere

- Do not prune `allow` strict-block rules as they do not contribute
  toward the overall regex-based rule count

Possibly related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/556
2025-11-28 13:29:59 -05:00
Raymond Hill
d9055b0307
[mv3] Minor code review related to permission changes
Related commit:
801b4679e9
2025-11-14 10:01:09 -05:00
Raymond Hill
d8fb800f30
[mv3][firefox] Fix instanceof quirk; fine tune picker CSS
Related feedback:
https://github.com/uBlockOrigin/uBOL-home/discussions/548
2025-11-14 09:29:28 -05:00
Raymond Hill
801b4679e9
[mv3] Auto reload current tab when permissions granted thru browser
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/526
2025-11-12 12:16:56 -05:00
Raymond Hill
d6fc057d3b
[mv3] Minor code review 2025-10-23 08:46:33 -04:00
Raymond Hill
511255f7c7
[mv3] Automatically select optimal for newly allowed hosts
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/456
2025-10-18 10:03:10 -04:00
Raymond Hill
22d2ecc472
[mv3][safari] Workaround for user styles issue with bfcache
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/518
2025-10-11 14:46:35 -04:00
Raymond Hill
1c7b7e435e
[mv3] Improve troubleshooting information 2025-10-08 13:50:26 -04:00
Raymond Hill
be14670b76
[mv3] Decrease granularity of hashes of generic cosmetic selectors
This reduces the size of content scripts with no downside.
2025-10-04 13:32:16 -04:00
Raymond Hill
41a65315f9
[mv3] Minor code change 2025-10-03 14:45:46 -04:00
Raymond Hill
6623889920
[mv3] Improve details of troublshooting info
Also, avoid loading troubleshooting module in service worker as it's
of use only as a user interface component.
2025-09-29 13:07:59 -04:00
Raymond Hill
e91c47846b
[mv3] Fix issues with restore from file 2025-09-28 15:04:26 -04:00
Raymond Hill
be1502feb3
[mv3] Avoid mouseenter/mouseleave on mobile devices
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/478
2025-09-28 11:24:23 -04:00
Raymond Hill
80cf4d9286
[mv3] Use manifest's path value to access static rulesets
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/503
2025-09-28 11:08:48 -04:00
Raymond Hill
2581004e8f
[mv3] Add ability to backup/restore settings
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/482
2025-09-27 12:53:58 -04:00
Raymond Hill
91d36749bb
[mv3] Export using human-readable hostnames 2025-09-24 11:01:50 -04:00
Raymond Hill
8af80be5b2
[mv3] Add dashboard pane to manage custom filters
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/418
2025-09-24 10:42:18 -04:00
Raymond Hill
511a59584d
[mv3][safari] Internally disable strict-blocking in Safari
Related discussion:
https://github.com/uBlockOrigin/uAssets/issues/30118#issuecomment-3315925462
2025-09-21 09:43:21 -04:00
Raymond Hill
4fbcabbc66
[mv3] Move redirect/removeParams/modifyHeaders rules to static rulesets
Since permissions are now managed by the browsers, the browser will take
care whether to enforce those "usafe" rules according to the permissions
in effect on a given site.
2025-09-02 12:29:41 -04:00
Raymond Hill
d1a29d9899
[mv3] Ensure ui is visible even after failure 2025-08-29 11:19:24 -04:00
Raymond Hill
69fa0c2e09
[mv3] Fix regression in managing redirect rules
Regression cause by:
fad0af591f
2025-08-25 11:55:36 -04:00
Raymond Hill
052c36aada
[mv3] Fix placeholder references for regexSubstitution 2025-08-22 12:35:13 -04:00
Raymond Hill
cb62e38f50
[mv3] Improve built-in parser to convert filters to DNR rules
Ultimately and eventually, the built-in parser will be used to
convert filters to DNR rules at extension building time.
2025-08-22 08:14:52 -04:00
Raymond Hill
bc4e829427
[mv3] Support custom filters using CSS pseudo-elements
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/448
2025-08-20 10:26:45 -04:00