Commit graph

397 commits

Author SHA1 Message Date
Raymond Hill
ea1b1abaee
Import translation work from https://crowdin.com/project/ublock 2024-12-04 19:43:40 -05:00
Raymond Hill
784888471a
Import translation work from https://crowdin.com/project/ublock 2024-12-03 16:53:50 -05:00
Raymond Hill
aa05cb32c6
[mv3] Implement strict blocking
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/214

This implements basic functionality for strict blocking, i.e. the
ability to block navigation to undesirable websites. This is a
first implementation, which converts only filters that are plain
hostnames.

Unlike with uBO, it is not possible to know from which ruleset a
blocking rule originates. Nonetheless, users will have to make a
choice as to whether navigation should proceed or not.

A setting has been added to the dashboard to wholly enable/disable
strict blocking. It is enabled by default.

Potential future improvements, pending investigation on feasability
in an MV3 framework:
- Extend coverage to explicit `document` filters
- Leverage and use `urlskip=` filters in the blocking page in order
  to proceed while bypassing unwanted redirects.
2024-12-03 16:41:34 -05:00
Raymond Hill
d7df6cda4a
Import translation work from https://crowdin.com/project/ublock 2024-12-01 19:46:29 -05:00
Raymond Hill
703fdf673c
[mv3] Fix mv3 build script 2024-11-27 17:55:18 -05:00
Raymond Hill
4d525f1a55
Move assets/resources into src/js/ 2024-11-27 16:47:11 -05:00
Raymond Hill
e43cb6771a
[mv3] Open options page in tab in Firefox 2024-11-25 12:31:50 -05:00
Raymond Hill
50ddedb992
Import translation work from https://crowdin.com/project/ublock 2024-11-24 10:24:08 -05:00
Raymond Hill
346b5ded7c
[mv3] Add ability for admins to disable features
New managed setting:

"disabledFeatures": {
  "title": "User interface features to disable",
  "description": "A list of tokens, each of which correspond to a user interface feature to disable.",
  "type": "array",
  "items": { "type": "string" }
}

Supported tokens:
- `dashboard`: Prevent access to all dashboard settings
- `filteringMode`: Prevent changes to the default filtering mode,
  or the current filtering mode of any site

Related feedback:
https://github.com/uBlockOrigin/uBOL-home/discussions/35#discussioncomment-11326086
2024-11-23 13:17:13 -05:00
Raymond Hill
4979aa51f5
[mv3] Do not collect matched rules by default when side-loaded
Collecting matched rules when the extension is side-loaded is now
opt-in, by enabling "Developer mode" in the dashboard.

The reason is to allow the extension to behave same as the official
released version when side-loaded.

Specifically, as side-loaded extension, uBOL's service worker would
wake up due to matched-rule listener even though it would not wake
up the worker with same configuration in stable release.
2024-11-21 12:54:28 -05:00
Raymond Hill
b2d7bb72c7
[mv3] Write log.txt file to extension folder 2024-11-20 12:55:13 -05:00
Raymond Hill
6355a17187
[mv3] Fix flaw breaking scriptlets injection in optimal/basic mode
Not all matching scriptlets were injected on a given site in Optimal
or Complete mode when default mode was set to Basic or less.

A high profile manifestation of this bug was that Youtube ads were
not being blocked when using Optimal on Youtube while default mode
was Basic.
2024-11-20 09:04:52 -05:00
Raymond Hill
3aac2a7c97
Import translation work from https://crowdin.com/project/ublock 2024-11-19 13:44:25 -05:00
Raymond Hill
f3486275e9
[mv3] Fix force-reloading repeatedly when erroring at load time
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/234
2024-11-19 13:16:56 -05:00
Raymond Hill
114acacd2e
[mv3] Batch changes thru dashboard UI to reduce worker's workload 2024-11-18 14:08:30 -05:00
Raymond Hill
17e0a35650
Import translation work from https://crowdin.com/project/ublock 2024-11-18 10:25:46 -05:00
Raymond Hill
c95b08d760
Import translation work from https://crowdin.com/project/ublock 2024-11-18 10:24:08 -05:00
Raymond Hill
d7c6b41992
[mv3] Code review re. re-worked dashboard
Related commit:
ae4754415c

Fine-tuned visuals; fixed sublist quirks related to admin-selected
lists.
2024-11-18 10:16:01 -05:00
Raymond Hill
ae4754415c
[mv3] Re-work dashboard: move list of rulesets in its own pane
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/229

Add "Filter lists" pane in dashboard

The DNR API now supports enabling 50 static rulesets put of a
maximum of 100 (instead of 10 out of 50 originally). Thus given
the potentially growing number of static rulesets, the available
stock rulesets has been moved to its own pane, with the following
improvements:
- Support sublists
- Support search

Aditionally, "RU AdList: Counter" has been added as a stock
ruleset.

Other changes:
- Do not re-evaluate regexes which failed validation
- Better reduce `removeparam` rules
2024-11-17 17:27:27 -05:00
Raymond Hill
2e66d7bd55
Import translation work from https://crowdin.com/project/ublock 2024-11-14 10:40:55 -05:00
Raymond Hill
2e745f9bfb
[mv3] Remove obsolete Firefox-only workaround in scriptlet template
Related bugzilla issue:
https://bugzilla.mozilla.org/show_bug.cgi?id=1736575

The issue was fixed months ago.

The removed code block is causing uBOL to be flagged as "including
remotely hosted code".

To be clear, the removed obsolete code block was not related to
executing remote code. The referenced code was in the file itself,
not remote, and this was a workaround for when Firefox was not
supporting injecting script in the `MAIN` world.

The issue was fixed months ago in Firefox, so there is no point for
the workaround.
2024-11-13 09:10:51 -05:00
Raymond Hill
15dae359f7
[mv3] Add support to add/remove rulesets through policies
Related discussion:
https://github.com/uBlockOrigin/uBOL-home/discussions/35#discussioncomment-11157444

New policy setting: `rulesets`
Type: array
Type of array items: string

Each item in the list is a list id (as seen in `rulesets/ruleset-details.json`),
prefixed with either `+` to enable the ruleset, or `-` to disable the ruleset.

Users will not be able to enable or disable rulesets present in the `rulesets`
policy. Disabled rulesets will not appear in the dashboard.

Use `-*` to remove all non-default rulesets, except for those added
using `+[ruleset_id]`.

Additionally, some work has been done to properly handle policy changes in
a non-blocking and deferred manner, as I observed that it often takes long
for calls to `storage.manage.get` to resolve. This potentailly takes care
of the following issue:
https://github.com/uBlockOrigin/uBOL-home/issues/174
2024-11-11 13:20:54 -05:00
Raymond Hill
54ed02e302
Import translation work from https://crowdin.com/project/ublock 2024-11-05 09:25:01 -05:00
Raymond Hill
d401527e83
Import translation work from https://crowdin.com/project/ublock 2024-10-31 11:28:06 -04:00
Raymond Hill
ac4506091e
Import translation work from https://crowdin.com/project/ublock 2024-10-28 12:04:34 -04:00
Raymond Hill
9b3e94b23f
Import translation work from https://crowdin.com/project/ 2024-10-27 14:46:25 -04:00
Nadav Mermer
2782b16ecf Allow rulesets enabled in manifest.json to stay enabled when finding language defaults 2024-10-20 18:10:23 +03:00
Raymond Hill
0425bdfd35
Import translation work from https://crowdin.com/project/ublock 2024-10-17 12:44:02 -04:00
Raymond Hill
27f3612fdf
[mv3] Set Optimal as default if extension broad permission at install time
This is to prepare uBOL to be ready to set Optimal mode as default
if ever Chromium-based browsers support a way to pre-grant broad host
permissions in a policy.

Related issue:
https://github.com/uBlockOrigin/uBOL-home/discussions/232
https://github.com/uBlockOrigin/uBOL-home/discussions/135
2024-10-17 12:37:21 -04:00
Raymond Hill
89c353640e
[mv3] Add EST-0 list 2024-10-17 12:27:49 -04:00
Raymond Hill
2c60bb3b07
[mv3] Issue labels cannot be set client-side 2024-10-11 16:41:13 -04:00
Raymond Hill
d24ffe6bb8
Import translation work from https://crowdin.com/project/ublock 2024-10-04 12:30:37 -04:00
Raymond Hill
0b02c7ccb6
Import translation work from https://crowdin.com/project/ublock 2024-10-01 12:27:56 -04:00
Raymond Hill
3d6984aeaf
Import translation work from https://crowdin.com/project/ublock 2024-09-29 17:06:51 -04:00
Raymond Hill
c6baa2fb51
Import translation work from https://crowdin.com/project/ublock 2024-09-29 11:15:04 -04:00
Raymond Hill
7f117e8d21
Import translation work from https://crowdin.com/project/ublock 2024-09-28 14:14:26 -04:00
Raymond Hill
99191d1363
Import translation work from https://crowdin.com/project/ublock 2024-09-28 14:12:13 -04:00
Raymond Hill
560def639f
[mv3] Add a _chat_ icon in popup panel to report filter issues
Just the same as with uBO, but for uBOL.
2024-09-28 14:08:42 -04:00
Raymond Hill
dcb86e3667
Update README.md 2024-09-27 11:04:42 -04:00
Raymond Hill
ff57f01026
Code review of fix re "internal error"
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/199
2024-09-22 12:14:52 -04:00
Raymond Hill
4c5a9353b0
Import translation work from https://crowdin.com/project/ublock 2024-09-22 11:50:20 -04:00
Raymond Hill
055973cc3f
Import translation work from https://crowdin.com/project/ublock 2024-09-20 09:16:32 -04:00
Raymond Hill
3238fe48db
Import translation work from https://crowdin.com/project/ublock 2024-09-17 17:48:45 -04:00
Raymond Hill
b62aabda85
Import translation work from https://crowdin.com/project/ublock 2024-09-15 13:25:58 -04:00
Raymond Hill
8fadfb2c5e
Import translation work from https://crowdin.com/project/ublock 2024-09-12 15:40:24 -04:00
Raymond Hill
bec5d53ce0
[mv3] Attempt at mitigation for when "internal error" occurs
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/199
2024-09-06 09:31:17 -04:00
Raymond Hill
0a048eb64e
Address eslint warnings 2024-08-22 12:36:31 -04:00
Raymond Hill
3360d3e3e1
[mv3] Remove unused file 2024-08-21 11:52:39 -04:00
Raymond Hill
520f81fcca
[mv3] Fix injection of scriptlets into embedded contexts 2024-08-20 08:18:03 -04:00
Raymond Hill
34047daa06
Import translation work from https://crowdin.com/project/ublock 2024-08-19 12:02:00 -04:00
Raymond Hill
e73eb23c90
[mv3] Don't filter out tabless requests in "logger" 2024-08-17 10:42:17 -04:00
Raymond Hill
1822d1503f
Import translation work from https://crowdin.com/project/ublock 2024-08-12 10:54:11 -04:00
Raymond Hill
665648ba97
[mv3] Re-word some text for accuracy 2024-08-07 10:03:03 -04:00
Raymond Hill
277977aa8a
[mv3] Remove useless arguments 2024-08-06 15:00:59 -04:00
Raymond Hill
ae6b53479d
[mv3] Minor change to debug output 2024-08-06 14:55:30 -04:00
Raymond Hill
fb037e97d0
[mv3] Improve remove-attr.js scriptlet
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/166
2024-08-06 14:47:03 -04:00
Raymond Hill
417dab538c
[mv3] Fix generating allowAllRequests rule when default mode is no-filtering 2024-08-04 11:59:16 -04:00
Raymond Hill
d42329a3a3
Rephrase more accurately
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/160
2024-08-03 12:03:56 -04:00
Raymond Hill
9562b19a93
Fall back to "Basic" when removing all-urls from "No filtering"
Related discussion:
https://github.com/uBlockOrigin/uBOL-home/issues/156#issuecomment-2254576670
2024-08-01 11:24:42 -04:00
Raymond Hill
a0de43aba9
Import translation work from https://crowdin.com/project/ublock 2024-07-29 16:05:15 -04:00
Raymond Hill
c7b54af0a2
[mv3] Add minimal ability to diagnose ruleset issue
A new icon has been added to the popup panel, to open a popup
window with a terse list of DNR events for the current tab, in
reverse chronological order (most recent DNR event appears at
the top).

The new ability is available only when the extension is sideloaded,
as per `declarativeNetRequestFeedback` documentation. Ref:
https://developer.chrome.com/docs/extensions/reference/api/declarativeNetRequest#event-onRuleMatchedDebug

Purposefully minimal, so as to have something rather than nothing
when having to diagnose filtering issue with the DNR API. Example:
https://github.com/uBlockOrigin/uBOL-home/issues/156

The content of the popup window does not dynamically update, force
a refresh (F5) to get the most recent DNR events. This might be
improved in the future.

The DNR event buffer is not persisted, so the buffer is empty when
service worker is restarted. This might be improved in the future
by using session storage API.

There is no output filtering ability in this first draft. This
might be improved in the future.

DNR rules are reported. The filter from which a DNR rule
originates is not reported. Given that the rulesets are optimized
after conversion from original filter lists to reduce the DNR rule
count, this is unlikely to ever be possible.
2024-07-29 14:54:46 -04:00
Raymond Hill
2bdbac1b84
Import translation work from https://crowdin.com/project/ublock 2024-07-09 13:16:17 -04:00
Raymond Hill
57ed293760
[mv3] Fix bad test re. managed storage 2024-06-28 13:39:38 -04:00
Raymond Hill
88065d0091
[mv3] Bring procdural cosmetic filtering code up to date with uBO 2024-06-22 11:09:57 -04:00
Raymond Hill
5c69159b36
[mv3] Inject procedural cosmetic filtering script earlier
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/139
2024-06-22 11:06:19 -04:00
Raymond Hill
b24793bc02
Import translation work from Crowdin 2024-06-11 07:47:26 -04:00
Raymond Hill
91ee5bdeae
Improve prevent-addEventListener scriptlet
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3061#issuecomment-2159662039
2024-06-11 07:44:43 -04:00
Raymond Hill
ad77938f24
[mv3] Raise minimum chromium version to 118
This allows to drop the special handling of `isUrlFilterCaseSensitive`
for chromium-based browsers.
2024-05-29 09:57:09 -04:00
Raymond Hill
98977971db
[mv3] Improve generic cosmetic filtering surveyor 2024-05-28 22:08:24 -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
e738eaa447
Import translation work from https://crowdin.com/project/ublock 2024-05-12 15:51:46 -04:00
Raymond Hill
e7951c2114
Import translation work from https://crowdin.com/project/ublock 2024-04-08 08:23:48 -04:00
Raymond Hill
7ca3855395
Import translation work from https://crowdin.com/project/ublock 2024-04-01 08:33:56 -04:00
Raymond Hill
08b8b875ca
Import translation work from https://crowdin.com/project/ublock 2024-03-29 09:26:56 -04:00
Raymond Hill
d3fe073149
Import translation work from https://crowdin.com/project/ublock 2024-03-28 08:21:46 -04:00
Raymond Hill
27e0db1dd2
Import translation work from https://crowdin.com/project/ublock 2024-03-26 12:47:05 -04:00
Raymond Hill
c6019e755b
Import translation work from https://crowdin.com/project/ublock 2024-03-23 13:33:08 -04:00
Raymond Hill
47ae87724a
Import translation work from https://crowdin.com/project/ublock 2024-03-22 14:53:22 -04:00
Raymond Hill
d368747235
Import translation work from https://crowdin.com/project/ublock 2024-03-22 09:49:42 -04:00
Raymond Hill
0a7e2d2ae8
Import translation work from https://crowdin.com/project/ublock 2024-03-21 13:59:06 -04:00
Raymond Hill
764a1772ba
[mv3] Add option to disable toolbar icon badge
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/119
2024-03-21 13:57:50 -04:00
Raymond Hill
62965cd34f
Import translation work from https://crowdin.com/project/ublock 2024-03-21 13:55:53 -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
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
710d8c6494
Import translation work from https://crowdin.com/project/ublock 2024-03-12 10:08:22 -04:00
Raymond Hill
2c9ab8ee04
Fix the salvaging of rule ids 2024-03-11 22:22:57 -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
0332bf163c
Import translation work from https://crowdin.com/project/ublock 2024-03-11 13:29:30 -04:00
Raymond Hill
d5c359d411
Import translation work from https://crowdin.com/project/ublock 2024-03-07 13:09:24 -05:00
Raymond Hill
8533fa74ee
[mv3] Use EasyList lists for "Annoyances" section 2024-03-07 09:14:30 -05:00
Raymond Hill
02966afb8c
[mv3] Do not pollute browser console in stable release versions 2024-03-06 12:46:12 -05:00
Raymond Hill
f18d62ee4c
Import translation work from https://crowdin.com/project/ublock 2024-03-05 08:11:39 -05:00
Raymond Hill
c7a9bcb7b2
Import translation work from https://crowdin.com/project/ublock 2024-03-04 11:38:55 -05:00
Raymond Hill
0a72745f9c
Import translation work from https://crowdin.com/project/ublock 2024-03-03 20:28:07 -05:00
Raymond Hill
aac88ac766
Import translation work from https://crowdin.com/project/ublock 2024-03-03 14:30:30 -05:00
Raymond Hill
09bba3199e
Import translation work from https://crowdin.com/project/ublock 2024-02-29 09:48:01 -05:00
Raymond Hill
fcc77e7c92
[mv3] Add ability to manually add filters to a ruleset 2024-02-25 20:39:21 -05:00
Raymond Hill
4af57e3e60
Import translation work from https://crowdin.com/project/ublock 2024-02-17 09:34:41 -05:00
Raymond Hill
7e00046b8e
[mv3] Salvage rule ids for all rulesets 2024-02-15 08:02:46 -05:00
Raymond Hill
8d47eac6e6
[mv3] Indent rulesets with fewer rules 2024-02-14 15:48:59 -05:00