Commit graph

85 commits

Author SHA1 Message Date
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
f6048a0804
[mv3] Fix class collision 2026-01-03 09:21:10 -05:00
Raymond Hill
f7f96140d9
[mv3] Add page-wide spinner when restoring/resetting settings 2025-12-27 10:12:34 -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
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
9849b5f0b1
[mv3] Remove "Custom filters" pane when picker is forbidden
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/536
2025-11-03 09:19:22 -05:00
Raymond Hill
4b1f87710c
[mv3] Minor CSS changes 2025-09-29 12:19:11 -04:00
Raymond Hill
93c5c077a0
[mv3] Minor CSS-related change 2025-09-25 08:57:55 -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
718b3cdb97
[mv3] Fix custom filter list being unscrollable
Related discussion:
https://github.com/uBlockOrigin/uBOL-home/discussions/436
2025-08-14 08:58:57 -04:00
Raymond Hill
c8da231453
[mv3] Make new spinner in "Filter lists" pane more noticeable 2025-08-08 12:30:09 -04:00
Raymond Hill
93206e3241
[mv3] Propagate DNR API errors to "Filter lists" pane
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/317
2025-08-08 10:30:32 -04:00
Raymond Hill
b6829698cc
[mv3] Add spinner as visual feedback rulesets are being registered
Additionally, fixed a race condition where changes to rulesets would
not be ultimately registered when the changes were made during an
ongoing registration operation. This race condition would be
especially likely to occur on platforms where rulesets registration
take long.
2025-08-07 08:56:17 -04:00
Raymond Hill
5911a8ea7a
[mv3] Remove Safari-specific warning 2025-07-31 16:29:19 -04:00
Raymond Hill
1a8238e03e
[mv3] Adjust CSS for small display 2025-07-12 11:13:10 -04:00
Raymond Hill
5c57415d7a
[mv3] Minor CSS change 2025-07-11 08:36:21 -04:00
Raymond Hill
f88ffcea04
[mv3] Slightly rework popup panel layout 2025-07-10 09:30:55 -04:00
Raymond Hill
1bcb7520dd
[mv3] Minor changes 2025-07-09 11:14:51 -04:00
Raymond Hill
891b750de2
[mv3] Fine tune font size 2025-07-08 09:22:14 -04:00
Raymond Hill
d0e87d3521
[mv3] Mind long sentences in popup panel 2025-07-08 08:40:15 -04:00
Raymond Hill
4dee9cd79c
[mv3] Minor CSS change 2025-07-08 07:47:48 -04:00
Raymond Hill
1eec92419e
[mv3] Mind admin-forbidden features in popup panel 2025-07-07 11:03:23 -04:00
Raymond Hill
a2d8429738
[mv3] Remove unused CSS declarations 2025-07-07 09:48:58 -04:00
Raymond Hill
7dd6688ed3
[mv3] Minor CSS change 2025-07-06 18:47:38 -04:00
Raymond Hill
a393322f82
[mv3] Minor CSS change 2025-07-06 18:34:41 -04:00
Raymond Hill
ca222fa40e
[mv3] Minor CSS change 2025-07-06 18:33:35 -04:00
Raymond Hill
624ad67da8
[mv3] Minor CSS change 2025-07-06 17:51:54 -04:00
Raymond Hill
0b0294af4f
[mv3] Add support for custom CSS-based cosmetic filters
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/325

This is a first version, with support only for custom filters which are
plain CSS selectors. Future versions will extend support to style-based
and procedural cosmetic filters.

Manually text-editing existing custom filters is currently not supported,
this will be added in a future version in the Develop pane. To remove
existing custom filters, the "Remove a custom filter" tool can be used.
2025-07-06 16:43:22 -04:00
Raymond Hill
9c08e902bd
[mv3] Fix regression in syntax highlighting of dark theme 2025-06-24 20:44:14 -04:00
Raymond Hill
d9aba4acca
[mv3] Use custom tokens for YAML document boundaries 2025-06-24 10:41:39 -04:00
Raymond Hill
b50341089d
[mv3] Expand "Develop" pane
Move "No filtering" section in "Settings" to "Develop" pane. It is
now possible to view/edit the list of hostnames for any of the
filtering mode. This takes care of these issues:
- https://github.com/uBlockOrigin/uBOL-home/issues/270
- https://github.com/uBlockOrigin/uBOL-home/issues/297

Add ability to see all rulesets (read-only), to assist in investigating
filtering issues.
2025-06-13 12:46:05 -04:00
Raymond Hill
fad39c6ce5
[mv3] Add support for code-folding and use custom stream parser 2025-06-01 13:29:46 -04:00
Raymond Hill
9339a75952
[mv3] Add support for custom DNR rules
This feature is hidden behind the "Developer mode" setting in
the dashboard. When "Developer mode" is enabled, a tab named
"Develop" will become available in the dashboard. This tab is
meant to contain tools for technical users.

At the moment, the "Develop" pane allows to create custom DNR
rules through a (CodeMirror-based) editor.

For the sake of convenience, the DNR rule must be entered in
YAML-like format. The format is not really full compliant YAML,
just YAML-like, and very strict in order to ensure the parser
stays simple enough.

Lines starting with `#` are comments and will be ignored by the
parser.

Any line which do not match the parser's expectation will be
marked as invalid, and the whole DNR rule containing such invalid
lines will be discarded.

There must not be empty lines inside a rule definition.

Each DNR rule must be separated with a `---` line, which is
known as a YAML document separator.

String values must not be quoted, otherwise the quotes will be
considered part of the value. There is one exception: `''` will
be parsed as "an empty string".

The editor will attempt to auto-complete known DNR keywords. That
feature will improve over time.

Though the parser will identify some errors, not all invalid DNR
rules are currently identified by the parser, and these will be
reported when the rules are registered through the DNR API. Better
identifying invalid DNR rules at edit time will improve over time.

The editor will report `regexFilter` values which are not
supported by the DNR engine on the current platform.

The editor reacts to instances of `regexFilter: ...` to report
whether a regex value is supported. This means you can test for
a regex value by using `# regexFilter: ...` so that you do not
have to create an actual DNR rules just for the sake of testing.

Custom DNR rules can be exported into a JSON file (a format
known by the DNR API as a "static ruleset").

JSON-based ruleset can be imported, the content will be converted
to YAML-like syntax.

The editor will attempt to convert to YAML pasted content which
can be JSON-parsed. It's possible to paste partially or wholly
JSON-based rulesets.

When disabling "Developer mode", all custom DNR rules will be
unregistered from the DNR API. The DNR rules content will be left
intact in such case. Existing DNR rules will be registered into
the DNR API when re-enabling "Developer mode".

Administrators can prevent "Developer mode" from being enabled
by adding `develop` token to `disabledFeatures` setting.

Related discussion:
https://github.com/uBlockOrigin/uBOL-home/discussions/323

The main motivation is to give list maintainers a tool to assist
with resolving filter issues. Custom DNR rules can assist in
crafting and validating filters meant to work with uBOL.

A secondary motivation is to provide technical users the ability
to further customize their content blocker.

More conveniences will be added over time, this is a first version.
2025-05-29 09:06:02 -04:00
Raymond Hill
ecc64ae125
[mv3] Give admins ability to prevent usage of zapper
Related issue:
https://github.com/uBlockOrigin/uBOL-home/pull/341
2025-05-22 16:53:11 -04:00
Raymond Hill
4eae23065e
[mv3] Allow body element to vertically scroll
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/352
2025-05-22 13:19:02 -04:00
Raymond Hill
a59daf5978
[mv3] Forgot to commit new CSS file 2025-05-19 19:02:41 -04:00
Raymond Hill
ce4a4fcd75
[mv3] Minor CSS change 2025-05-18 08:50:54 -04:00
Raymond Hill
a551d1cc01
[mv3] Editor font size 2025-05-15 07:26:40 -04:00
Raymond Hill
fd5da3fcd2
[mv3] Use CodeMirror editor for list of no-filtering websites
This is a first step to integrate CodeMirror6 into the project.

As a side effect, this should take care of:
https://github.com/uBlockOrigin/uBOL-home/issues/297

Though most likely the list of no-filtering websites will probably
move to its own pane as in uBO in some future.
2025-05-14 17:20:55 -04:00
Raymond Hill
d12e7817d2
[mv3] Add ability to reset zapper selection on mobile devices 2025-05-14 10:02:37 -04:00
Raymond Hill
ed3a0b8ab9
[mv3] Remove hard-coded line height 2025-05-13 10:52:42 -04:00
Raymond Hill
3e39e5beab
[mv3] CSS fine tuning 2025-05-13 08:00:39 -04:00
Raymond Hill
84db4585f5
[mv3] Fix popup width for Firefox 2025-05-12 19:31:40 -04:00
Raymond Hill
9763a79c01
[mv3] Minor CSS adjustments 2025-05-12 18:00:14 -04:00
Raymond Hill
569dfea3cb
[mv3] Have the slider button size dictates all other dimensions 2025-05-12 16:55:23 -04:00
Raymond Hill
48146f8351
[mv3] Address various issues for Safari build 2025-05-02 14:33:33 -04:00
Raymond Hill
01e36db23a
Remove "permission-less" status at install time
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/326

uBOL now asks broad host permissions by default. Users can still
choose narrow host permissions by using their browser's controls
for this.

For instance in Chromium, those host permissions controls are found
in the "Site access" section in the detailed view of an extension.

One can set "Site access" to "On click" to revoke broad host
permissions, and grant host permissions to only specific site.

In such mode, uBOL will still block through the DNR API, but no
cosmetic or scriptlet filtering will occurs, as these requires
permission to "read and change data" on websites for which higher
filtering mode is desired.

Some browsers do not automatically grant broad host permissions
even when an extension asks for broad permissions at install time,
and going forward all browsers will likely adopt this approach, and
thus it no longer made sense for uBOL to default to no broad hosts
permissions at install time, especially given this leads to issues
with no solution -- issues solved with the new approach (e.g. like
the ability to deploy uBOL in Optimal mode by default).
2025-04-09 15:11:17 -04:00
Raymond Hill
2501eae25f
[mv3] Fine tune zapper's quit button
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3587
2025-03-31 17:43:51 -04:00