1
1
mirror of https://github.com/gorhill/uBlock.git synced 2025-10-05 21:32:39 +02:00

Compare commits

...

623 Commits

Author SHA1 Message Date
Raymond Hill
2a2e223fd9 Import translation work from https://crowdin.com/project/ublock 2025-10-05 10:41:10 -04:00
Raymond Hill
cdc5a4a0e7 [mv3] Use "split" mode for "incognito" manifest key
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/336
2025-10-05 10:29:58 -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
4ee38a056e Remove stray character 2025-10-04 12:53:07 -04:00
Raymond Hill
0d4f55ff30 Update changelog 2025-10-04 10:27:24 -04:00
Raymond Hill
a43d1d8c42 Improve href-sanitizer scriptlet
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3650
2025-10-04 10:22:47 -04:00
Raymond Hill
41a65315f9 [mv3] Minor code change 2025-10-03 14:45:46 -04:00
Raymond Hill
5bcdf3731d New revision for dev build 2025-10-02 12:39:24 -04:00
Raymond Hill
cc30763c57 Update changelog 2025-10-02 12:38:35 -04:00
Raymond Hill
d376adaae8 Fix editInboundObjectFn utility scriptlet 2025-10-02 12:31:13 -04:00
Raymond Hill
d8ed2c2866 Update in-source code documentation 2025-10-02 12:30:06 -04:00
Raymond Hill
52bc354bce Improve trusted-replace-argument scriptlet 2025-10-02 12:27:45 -04:00
Raymond Hill
bf09ec0b99 Update submodules 2025-10-02 07:39:59 -04:00
Raymond Hill
a03de94729 import translation work from https://crowdin.com/project/ublock 2025-10-02 07:32:16 -04:00
Raymond Hill
f36d2b8496 Add ability to test against regex in JSONPath expressions
Related discussion:
https://github.com/uBlockOrigin/uAssets/issues/30157#issuecomment-3356048999
2025-10-01 11:35:15 -04:00
Raymond Hill
2b8ef3ee8e Revert "Make Firefox dev build auto-update"
This reverts commit 9f8d74b60f.
2025-10-01 11:23:47 -04:00
Raymond Hill
9f8d74b60f Make Firefox dev build auto-update 2025-10-01 11:22:48 -04:00
Raymond Hill
0ee49bcc29 Make Firefox dev build auto-update 2025-10-01 10:19:57 -04:00
Raymond Hill
8d721f6a68 Make Firefox dev build auto-update 2025-10-01 10:14:43 -04:00
Raymond Hill
bbd12ec2f3 New revision for dev build 2025-10-01 09:26:15 -04:00
Raymond Hill
54326a350b Update changelog 2025-10-01 09:25:43 -04:00
Raymond Hill
dd4f764920 Improve proxy-apply utility scriptlet 2025-10-01 09:21:43 -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
4b1f87710c [mv3] Minor CSS changes 2025-09-29 12:19:11 -04:00
Raymond Hill
e91c47846b [mv3] Fix issues with restore from file 2025-09-28 15:04:26 -04:00
Raymond Hill
bb8e3d4d47 Import translation work from https://crowdin.com/project/ublock 2025-09-28 14:35:14 -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
f40dac91b9 Import translation work from https://crowdin.com/project/ublock 2025-09-28 09:28:14 -04:00
Raymond Hill
575f018c69 [mv3] Fine tuning details 2025-09-27 15:59:32 -04:00
Raymond Hill
6a9357e903 [mv3] Group toggle-based options all under same section 2025-09-27 13:57:00 -04:00
Raymond Hill
12418ae664 Import translation work from https://crowdin.com/project/ublock 2025-09-27 13:54:09 -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
f89de42364 Import translation work from https://crowdin.com/project/ublock 2025-09-27 12:34:44 -04:00
Raymond Hill
10e48d7ec5 Import translation work from https://crowdin.com/project/ublock 2025-09-27 12:31:08 -04:00
Raymond Hill
f441773f30 Update changelog 2025-09-26 11:57:51 -04:00
Raymond Hill
3e5ea3b03f Fix removeparam for multiple query parameters with same name
Related issue:
https://github.com/uBlockOrigin/uAssets/issues/30090
2025-09-26 11:55:38 -04:00
Raymond Hill
34d202f79d Import translation work from https://crowdin.com/project/ublock 2025-09-25 09:08:34 -04:00
Raymond Hill
93c5c077a0 [mv3] Minor CSS-related change 2025-09-25 08:57:55 -04:00
Raymond Hill
91d36749bb [mv3] Export using human-readable hostnames 2025-09-24 11:01:50 -04:00
Raymond Hill
4598ef3edc Import translation work from https://crowdin.com/project/ublock 2025-09-24 10:48:18 -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
4fb4aa1b25 New revision for dev build 2025-09-22 19:10:56 -04:00
Raymond Hill
e2325f5e79 Update changelog 2025-09-22 19:10:34 -04:00
Raymond Hill
9aa91ba111 Improve trusted-click-element scriptlet
Related discussion/issue:
- https://github.com/uBlockOrigin/uBlock-issues/issues/2917
- https://github.com/uBlockOrigin/uAssets/discussions/30124

The "list of selectors" parameter is now a "list of steps". A step
can be:

- A selector, which tells the scriptlet to click a matching element. If
  no matching element is found, the scriptlet will wait for a matching
  element  to become available.
- An integer, which tells the scriptlet to wait n ms before processing
  the next step
- A directive, which is a string starting with `!` (not implemented yet)

If the last item in the list is an integer, this tells the scriplet to
override the built-in timeout value of 10s, such that the life time of
the scriptlet can now be extended beyond 10s.

Example:

  ..##+js(trusted-click-element, '1000, a, 500, b, c, 15000')

The scriptlet filter above will perform the following steps, in order:

- Prepare the scriptlet to timeout at 15s from now
- Wait 1000 ms
- Wait for element `a` to become available then click on it
- Wait 500 ms
- Wait for element `b` to become available then click on it
- Wait for element `c` to become available then click on it
- Abort if all the steps cannot be completed before 15s

The changes keep compatiblity with older syntax or with AdGuard
syntax.
2025-09-22 18:50:58 -04:00
Raymond Hill
705e6329eb Import translation work from https://crowdin.com/project/ublock 2025-09-22 12:46:13 -04:00
Raymond Hill
8de47f250d Improve google-ima shim
Related issue:
https://github.com/uBlockOrigin/uAssets/issues/30134
2025-09-22 10:41:36 -04:00
Raymond Hill
5127e17573 Update submodules 2025-09-21 09:53:25 -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
1209119206 Unreference obsolete npm scripts
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3805
2025-09-20 09:21:14 -04:00
Raymond Hill
87dddb7d78 Add back a uBO-specific version of "CERT.PL's Warning List"
Related discussion:
https://github.com/uBlockOrigin/uBlock-issues/discussions/3793
2025-09-18 10:17:38 -04:00
Raymond Hill
836e04d110 [mv3][safari] Remove doc from removeParams rules
Related issues:
- https://github.com/uBlockOrigin/uBOL-home/issues/476
- https://github.com/uBlockOrigin/uBOL-home/issues/409
2025-09-17 13:34:28 -04:00
Raymond Hill
b3b2142fb6 [mv3][safari] Exclude "AdGuard URL Tracking Protection"
Related issues:
- https://github.com/uBlockOrigin/uBOL-home/issues/476
- https://github.com/uBlockOrigin/uBOL-home/issues/409
2025-09-16 09:15:12 -04:00
Raymond Hill
e9e1626f8e Update changelog 2025-09-15 09:34:21 -04:00
Raymond Hill
889c0eb208 Fix potential infinite loop when scanning for $ anchor
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3799

An infinite loop in the network filter parser was triggered when
the following conditions were fulfilled:

- There was a network option `$` anchor
- There were only whitespace character(s) preceding the anchor
- There was an invalid filter option following the anchor
2025-09-15 09:26:09 -04:00
Raymond Hill
cb767f4534 Remove obsolete files 2025-09-12 11:05:15 -04:00
Raymond Hill
edd26d27eb Remove obsolete files 2025-09-12 11:04:43 -04:00
Raymond Hill
9a5703fa0d Fix revision for next dev build 2025-09-12 10:52:56 -04:00
Raymond Hill
b7f4c1f5d7 Update submodules 2025-09-12 10:52:25 -04:00
Raymond Hill
3609ea66ed Make Firefox dev build auto-update 2025-09-12 09:24:50 -04:00
Raymond Hill
087bef3837 Update submodules 2025-09-11 09:52:57 -04:00
Raymond Hill
2943ef5112 [mv3] Don't use push() when large collections are possible
Otherwise this opens potential stack overflow issues.
2025-09-11 09:29:39 -04:00
Raymond Hill
e016a63f7b Lower maintenance burden: Drop assets that never result in feedback 2025-09-08 14:40:45 -04:00
Raymond Hill
126495d17a Update changelog 2025-09-08 14:20:21 -04:00
Raymond Hill
30e5e8c8ce Remove obsolete code 2025-09-08 14:09:55 -04:00
Raymond Hill
23056514cc New revision for dev build 2025-09-08 14:06:53 -04:00
Raymond Hill
e1028c299f Update changelog 2025-09-08 08:14:30 -04:00
Raymond Hill
8ce7a8d1e4 Update changelog 2025-09-08 08:13:35 -04:00
Raymond Hill
50cb780107 Fix version snafu
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3792
2025-09-08 08:11:20 -04:00
Raymond Hill
52dba4116e Allow generic exception for replace= option
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3791
2025-09-08 07:32:03 -04:00
Raymond Hill
5d88b72b47 Update README.md 2025-09-07 08:39:45 -04:00
Raymond Hill
f290d0a142 New revision for stable release 2025-09-06 12:26:03 -04:00
Raymond Hill
946a3d202c Update submodules 2025-09-06 10:23:09 -04:00
Raymond Hill
7eab358165 Fix makefile 2025-09-06 10:22:45 -04:00
Raymond Hill
0936b9b8b7 Import translation work from https://crowdin.com/project/ublock 2025-09-06 08:23:05 -04:00
Raymond Hill
abe144a79d Update submodules 2025-09-05 09:25:01 -04:00
Raymond Hill
80f7bd155a Make Firefox dev build auto-update 2025-09-05 09:17:31 -04:00
Raymond Hill
da9491c94e Update makefile 2025-09-04 09:51:02 -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
8281eaba17 Update submodules 2025-09-02 10:19:49 -04:00
Raymond Hill
e86e1db87b New revision for release candidate 2025-09-02 10:03:51 -04:00
Raymond Hill
a0a996916f Update changelog 2025-09-02 10:03:28 -04:00
Raymond Hill
d2bce26e7d Improve prevent-fetch scriptlet
Add vararg `throttle, n` where `n` is the time to wait in ms before
returning a response from proxied `fetch()`.

As discussed with filter list maintainers.
2025-09-02 10:00:27 -04:00
Raymond Hill
8cdada4899 Update npm 2025-09-01 10:10:03 -04:00
Raymond Hill
7cdd78b595 Update submodules 2025-09-01 10:00:26 -04:00
Raymond Hill
07056c2de5 Update submodules 2025-08-31 11:09:15 -04:00
Raymond Hill
64858e9b9e Minor 2025-08-30 09:58:33 -04:00
Raymond Hill
17c6334cbd Import translation work from https://crowdin.com/project/ublock 2025-08-30 09:15:19 -04:00
Raymond Hill
d1a29d9899 [mv3] Ensure ui is visible even after failure 2025-08-29 11:19:24 -04:00
Raymond Hill
bc05f31cc2 [mv3] Merge AdGuard mobile filters with uBO's own mobile filters
Related discussion:
https://github.com/uBlockOrigin/uAssets/issues/20299#issuecomment-3228879091
2025-08-29 09:23:51 -04:00
Raymond Hill
57557ea116 New revision for release candidate 2025-08-28 11:19:33 -04:00
Raymond Hill
6f6724ce1a Update changelog 2025-08-28 11:17:51 -04:00
Raymond Hill
6327aae56c Add support to strict-block from ipaddress= option
As discussed with filter list maintainers.
2025-08-28 11:13:43 -04:00
Raymond Hill
31cd8b3983 Remove unused file 2025-08-25 17:01:20 -04:00
Raymond Hill
0d442f097f File moved to its own repo 2025-08-25 15:58:47 -04:00
Raymond Hill
353e1bacc1 Update submodules 2025-08-25 15:36:22 -04:00
Raymond Hill
aab425719c Move publish scripts in their own repo for easy reuse 2025-08-25 15:26:56 -04:00
Raymond Hill
30266e5107 Improve publish scripts 2025-08-25 15:10:36 -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
f9ee5e2a64 Move to nodejs for publishing scripts 2025-08-24 17:26:04 -04:00
Raymond Hill
0e821284ab Update changelog 2025-08-23 13:05:43 -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
23d51b80df Make Firefox dev build auto-update 2025-08-21 11:08:23 -04:00
Raymond Hill
e8f6b7cd00 Update RELEASE.HEAD.md 2025-08-20 11:49:32 -04:00
Raymond Hill
c7e4ac48c3 New revision for dev build 2025-08-20 11:06:27 -04:00
Raymond Hill
9711039726 Update changelog 2025-08-20 11:06:04 -04:00
Raymond Hill
5d7e5ee3a0 Improve rendering with high-contrast theme
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3385
2025-08-20 11:02:35 -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
Raymond Hill
807d1b6cdb Fix checkbox visual when using high contrast
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3385
2025-08-19 11:50:58 -04:00
Raymond Hill
da025fef26 Update README.md 2025-08-18 09:40:32 -04:00
Raymond Hill
69b2fdf396 Reverting change of toolbar icon 2025-08-18 09:38:49 -04:00
Raymond Hill
060442c636 Revert "Add Safari toolbar icon"
This reverts commit 3f73887e47.
2025-08-18 09:36:33 -04:00
Raymond Hill
4b33b7bd7a Make Firefox dev build auto-update 2025-08-18 09:15:31 -04:00
Raymond Hill
f5d3d776d5 Make Firefox dev build auto-update 2025-08-18 09:15:17 -04:00
Raymond Hill
4814992c54 Import translation work from https://crowdin.com/project/ublock 2025-08-17 10:27:46 -04:00
Raymond Hill
895033de02 New revision for dev build 2025-08-17 08:24:01 -04:00
Raymond Hill
72e6c89b74 Update changelog 2025-08-17 08:06:06 -04:00
Raymond Hill
9327e19233 Fix undue fetch from remote server at first install
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3761

Regression from:
69fce3aa6e
2025-08-17 08:01:51 -04:00
Raymond Hill
fad0af591f [mv3] Add support for regexSubstitution from uritransform
Related commit:
aaf35d9d71
2025-08-16 15:36:52 -04:00
Raymond Hill
b7b5d926f0 Update changelog 2025-08-16 15:35:27 -04:00
Raymond Hill
4194fdec4b [mv3] Minor code review 2025-08-16 15:34:06 -04:00
Raymond Hill
5957656a5b [mv3][safari] Workaround for urlFilter with path part ending with ^
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/434
2025-08-16 14:59:22 -04:00
Raymond Hill
4d2cfd1487 [mv3][safari] Do not inject CSS in embedded contexts
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/446

Relateed WebKit issue:
https://bugs.webkit.org/show_bug.cgi?id=262491
2025-08-16 12:51:17 -04:00
Raymond Hill
a3e2cd4396 New revision for dev build 2025-08-16 09:08:00 -04:00
Raymond Hill
60ab2ad59c Fix regression in static filtering parser
Related commit:
aaf35d9d71
2025-08-16 09:06:25 -04:00
Raymond Hill
e9273470c5 New revision for dev build 2025-08-15 16:03:29 -04:00
Raymond Hill
0ce643bfc5 Update changelog 2025-08-15 16:03:06 -04:00
Raymond Hill
aaf35d9d71 Improve compatibility of uritransform= with DNR syntax
The `uritransform=` option will now be converted to a proper DNR
rule when the following condition are fulfilled:

- The value of the `uritransform` option matches `//[replacement]/`,
i.e. the pattern to match is empty, and only the replacement part is
provided.

- The filter pattern is a regex.

Is such case, the DNR rule will be a `redirect` making use of the
`regexSubstitution` property.

In case the above conditions are not fulfilled, the filter will
be discarded as incompatible with DNR syntax (as was the case
before).

This is potentially a breaking change, in cases where a filter
assumed that the part to match was the start of the path part of
a URL.

A reminder that `uritransform` is an option which requires a
trusted source, otherwise it is rejected.
2025-08-15 15:55:33 -04:00
Raymond Hill
25d9964b1e [mv3] Improve internal error reporting in troubleshooting info 2025-08-15 08:39:35 -04:00
Raymond Hill
d54c4a7052 [mv3] Fix unremovable custom filters created using older versions
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/435
2025-08-14 14:56:26 -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
f3651bd866 Make Firefox dev build auto-update 2025-08-14 07:52:37 -04:00
Raymond Hill
07a1a51256 Make Firefox dev build auto-update 2025-08-14 07:52:23 -04:00
Raymond Hill
7d4e016297 [mv3] Use Safari-specific toolbar icon only for safari platform 2025-08-13 12:55:46 -04:00
Raymond Hill
5beca43c69 Merge branch 'uncw' 2025-08-13 12:46:50 -04:00
Raymond Hill
a6c9a9e9a4 GitHub Actions-related changes 2025-08-13 12:42:29 -04:00
Raymond Hill
9be4661294 New revision for dev build 2025-08-13 12:42:29 -04:00
Raymond Hill
17a363c2ff GitHub Actions-related changes 2025-08-13 12:42:29 -04:00
Raymond Hill
972ed1e520 Update changelog 2025-08-13 12:42:28 -04:00
Raymond Hill
22c07bd68b GitHub Actions-related changes 2025-08-13 10:57:32 -04:00
Raymond Hill
264acd5b10 New revision for dev build 2025-08-13 10:54:20 -04:00
Raymond Hill
5f14c816d0 GitHub Actions-related changes 2025-08-13 10:53:12 -04:00
Raymond Hill
e5fdfbb9f7 Update changelog 2025-08-13 10:48:17 -04:00
uncw
e6a8c87e0e Change Safari toolbar icon to an outlined version 2025-08-13 20:59:15 +08:00
uncw
3f73887e47 Add Safari toolbar icon 2025-08-12 23:46:22 +08:00
Raymond Hill
704f2dd734 [mv3] Code review implementation of custom "console"
Related commit:
28ea00fd11
2025-08-12 08:29:22 -04:00
Raymond Hill
18f9acd844 [mv3] Fix target URL when reporting from a strict-blocked page
Related feedback:
https://github.com/uBlockOrigin/uAssets/issues/29594#issuecomment-3176159770
2025-08-11 18:17:26 -04:00
Raymond Hill
28ea00fd11 [mv3] Share console error in troubleshooting information
This shoould help investigating issues, especially with mobile
devices, where the browser dev tools console is not available.
2025-08-11 17:53:59 -04:00
Raymond Hill
a1a5f3690f [mv3] Fix potentially unremovable custom filters
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/426
2025-08-10 12:44:42 -04:00
Raymond Hill
19a3de901c [mv3] Disable "strict blocking" by default in Safari
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/428#issuecomment-3172663563
2025-08-10 11:40:08 -04:00
Raymond Hill
07e9f805bb Allow usage of csp=/permissions= with resource type object
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3746
2025-08-10 09:22:17 -04:00
Raymond Hill
4d4826a029 Update README.md 2025-08-10 08:28:09 -04:00
Imre Eilertsen
b0ce6b6ac7 Attempted to add a GitHub Releases row to the "Install from" table (#3943)
* Attempted to add a GitHub Releases row to the "Install from" table

* Attempted to reflect the info.
2025-08-09 16:26:01 -04:00
Raymond Hill
faff035203 JSONPath: Add ability to select root node for appending/modifying
As discussed with filter list maintainers.

Examples of usage:

  $ => result is `null`
  $+={"modifyOrCreate": "..."}

These expressions were not working with previous version.
2025-08-09 13:56:02 -04:00
Raymond Hill
5629bf8a23 New revision for dev build 2025-08-09 11:14:36 -04:00
Raymond Hill
3ecad9a8c5 Update changelog 2025-08-09 11:13:51 -04:00
Raymond Hill
38ca6d41ff JSONPath: Add ability to substitute a pattern within a string value
As discussed with filter list maintainers.

Examples of JSON path expression to replace a pattern within a string
value:

  ..book.*.author=repl({"pattern": "Melville", "replacement": "Toto"})
  ..book.*.author=repl({"regex": "e", "replacement": "o"})
  ..book.*.author=repl({"regex": "e", "flags": "g", "replacement": "o"})

If the target value is not a string, no modification will occur.
2025-08-09 11:05:27 -04:00
Raymond Hill
cf70f2abbc [mv3] Add "EasyList -- Notifications"
Related feedback:
https://old.reddit.com/r/uBlockOrigin/comments/1mlj09l/
2025-08-09 08:59:28 -04:00
Raymond Hill
b9956a8d18 [mv3] Normalize request method names to lowercase in converter
Related issue:
https://github.com/uBlockOrigin/uBOL-home/discussions/153
2025-08-09 08:34:30 -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
dfa47baddf [mv3] Remove spurious console message in content script
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/422
2025-08-08 11:50:35 -04:00
Raymond Hill
af6c247c0d [mv3] Import translation work from https://crowdin.com/project/ublock 2025-08-08 10:42:45 -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
5d0283d2ee Reduce/update npm dependencies 2025-08-08 09:03:52 -04:00
Raymond Hill
5dd0165359 [mv3] Fix link to privacy policy 2025-08-07 22:33:45 -04:00
Raymond Hill
e645fe7468 [mv3] Fix browser permissions scanning at launch
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/410
2025-08-07 12:44:27 -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
31795fb6e6 [mv3] Remove obsolete code paths in picker tool 2025-08-06 13:28:30 -04:00
Raymond Hill
2d2de3a53b [mv3] Prevent scrolling taking over moving dialog in picker 2025-08-06 13:20:18 -04:00
Raymond Hill
1e0c64076f [mv3] Fix regression with highly generic cosmetic filters CSS files
Regression from:
56ba93700c

Related feedback:
https://old.reddit.com/r/uBlockOrigin/comments/1mi8fd6/ublock_origin_lite_for_ios/n725s6l/
2025-08-05 13:25:14 -04:00
Raymond Hill
e390822930 Revert "Remove file moved to uBOL-home repo"
This reverts commit 028893fe86.
2025-08-04 15:20:47 -04:00
Raymond Hill
472e8b53cd [mv3] Set minimum browser version for Safari 2025-08-04 15:15:42 -04:00
Raymond Hill
028893fe86 Remove file moved to uBOL-home repo 2025-08-04 13:25:41 -04:00
Raymond Hill
bbfe7400ac [mv3] Support important option for removeparam option
Related discussion:
https://github.com/uBlockOrigin/uAssets/issues/29451#issuecomment-3150181993

When transposing a `removeparam` dilter to a DNR rule, the semantic of
the `important` option changes to "overrides ` allow` rules".
2025-08-04 10:09:39 -04:00
Raymond Hill
bb1d085c8c Import translation work from https://crowdin.com/project/ublock 2025-08-03 16:04:17 -04:00
Raymond Hill
32bf5ebde3 [mv3] Add support for procedural cosmetic filters
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/325
2025-08-03 15:50:22 -04:00
Raymond Hill
e713e133eb Remove "CERT.PL's Warning List" from stock lists
Far too large to be used as a default or stock list.
2025-08-03 08:06:44 -04:00
Raymond Hill
171ddd3e06 Fix incorrect test
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3736
2025-08-01 10:38:40 -04:00
Raymond Hill
14a9572c86 Remove "AdGuard Tracking Protection"from stock list
It's not needed and too likely to interfere negatively with uBO's
default lists. It was added a long, long time ago when EasyPrivacy
wasn't making use of uBO's own advanced syntax, which is no longer
an issue.
2025-07-31 16:37:10 -04:00
Raymond Hill
5911a8ea7a [mv3] Remove Safari-specific warning 2025-07-31 16:29:19 -04:00
Raymond Hill
02f90d58f4 [mv3] Use default file permissions on created temp file
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/397
2025-07-30 08:45:16 -04:00
Raymond Hill
4f273c4284 [mv3] Temporarily comment out empty list as error 2025-07-28 10:00:25 -04:00
Raymond Hill
581144eeb8 Import translation work from https://crowdin.com/project/ublock 2025-07-28 09:28:47 -04:00
Raymond Hill
a986b45433 [mv3] Fix gutter click on last line 2025-07-28 09:18:15 -04:00
Raymond Hill
7d9317bb17 Improve fingerprint2.js shim 2025-07-28 09:14:32 -04:00
Raymond Hill
abeb5d1567 Make Firefox dev build auto-update 2025-07-26 09:28:06 -04:00
Raymond Hill
beab99b54a Import translation work from https://crowdin.com/project/ublock 2025-07-25 10:44:17 -04:00
Raymond Hill
626b9c7f2d [mv3] Don't disable lists according to DNR rule count
Some lists may be composed of only static extended filters.
2025-07-23 14:04:58 -04:00
Raymond Hill
1476ae4262 Import translation work from https://crowdin.com/project/ublock 2025-07-23 11:37:18 -04:00
Raymond Hill
d88814bc12 Add filter list for experimental filters 2025-07-23 10:34:19 -04:00
Raymond Hill
348f151e36 Also report char segment size 2025-07-22 11:19:16 -04:00
Raymond Hill
a94b4e12a9 Update changelog 2025-07-20 10:58:02 -04:00
Raymond Hill
47cbb43a0e Make google-ima a valid injectable scriptlet
Related feedback:
https://www.reddit.com/r/uBlockOrigin/comments/1m4dbk1/ublock_being_detected_on_south_park_studios/
2025-07-20 10:53:56 -04:00
Raymond Hill
23155d81cd New revision for dev build 2025-07-20 10:30:43 -04:00
Raymond Hill
4baf61371c Update changelog 2025-07-20 10:30:24 -04:00
Raymond Hill
fef50e59f2 Improve abort-current-script scriptlet
Prevent webpages from tampering with `textContent`.

Borrow solution from:
c2d7378e4d/src/scriptlets/abort-current-inline-script.js (L98-L99)
2025-07-20 10:26:31 -04:00
Raymond Hill
fed7f4a0b8 [mv3] Merge all :style() filters with procedural filters 2025-07-19 13:15:43 -04:00
Raymond Hill
8ae7c1501b Import translation work from https://crowdin.com/project/ublock 2025-07-18 15:18:56 -04:00
Raymond Hill
d7686a815e [mv3] Remove hostname normalization regarding filtering mode
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/388#issuecomment-3075440422
2025-07-18 13:53:01 -04:00
Raymond Hill
e07e7bbd09 Fix potential exception in procedural operator :matches-attr
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3720
2025-07-18 10:23:11 -04:00
Raymond Hill
bb9e2c0fc7 Import translation work from https://crowdin.com/project/ublock 2025-07-17 10:30:22 -04:00
Raymond Hill
9f5893cd88 Make Firefox dev build auto-update 2025-07-17 08:07:44 -04:00
Raymond Hill
3e0462e619 New revision for dev build 2025-07-16 09:24:40 -04:00
Raymond Hill
3d155889e9 Update changelog 2025-07-16 09:24:17 -04:00
Raymond Hill
b7510eee61 Improve reporting of reason option in strict-blocked pages
Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/issues/1195#issuecomment-3072981070
2025-07-15 12:10:10 -04:00
Raymond Hill
1e955bebbe Make Firefox dev build auto-update 2025-07-15 11:28:42 -04:00
Raymond Hill
eb28988054 [mv3] Minor code review 2025-07-14 12:33:51 -04:00
Raymond Hill
2c91bfc872 [mv3] Make the slider continuous rather than granular 2025-07-14 12:12:36 -04:00
Raymond Hill
cc7e7894c7 [mv3] Fix compatibility layer code 2025-07-14 11:28:02 -04:00
Raymond Hill
e75e128a34 [mv3] Load procedural CSS code on demand 2025-07-13 17:16:04 -04:00
Raymond Hill
6bfa7245f3 [mv3] Normalize rulesets read from package
This ensures rulesets are properly rendered in DNR ruleset viewer
in Safari.
2025-07-12 11:16:29 -04:00
Raymond Hill
1a8238e03e [mv3] Adjust CSS for small display 2025-07-12 11:13:10 -04:00
Raymond Hill
255b143c80 Import translation work from https://crowdin.com/project/ublock 2025-07-11 08:49:58 -04:00
Raymond Hill
9a20412a4a Update changelog 2025-07-11 08:39:05 -04:00
Raymond Hill
5c57415d7a [mv3] Minor CSS change 2025-07-11 08:36:21 -04:00
Raymond Hill
d94107284b New revision for dev build 2025-07-11 08:35:53 -04:00
Raymond Hill
b0396029bd Improve prevent-innerHTML scriptlet
Related issue:
https://github.com/uBlockOrigin/uAssets/issues/29148
2025-07-11 08:35:10 -04:00
Raymond Hill
2809b6cd18 Update changelog 2025-07-10 12:54:15 -04:00
Raymond Hill
689182f30b New version for stable release 2025-07-10 10:50:56 -04:00
Raymond Hill
f88ffcea04 [mv3] Slightly rework popup panel layout 2025-07-10 09:30:55 -04:00
Raymond Hill
887ae607dd [mv3] Fix usage of getMatchedRules() 2025-07-09 17:20:21 -04:00
Raymond Hill
d17afabffb Import translation work from https://crowdin.com/project/ublock 2025-07-09 11:17:18 -04:00
Raymond Hill
1bcb7520dd [mv3] Minor changes 2025-07-09 11:14:51 -04:00
Raymond Hill
6b7f929ec5 [mv3] Fix spurious filter conversion when pasting in editor 2025-07-08 09:47:37 -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
28bc5905a8 Import translation work from https://crowdin.com/project/ublock 2025-07-08 07:55:56 -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
a38aa48368 Import translation work from https://crowdin.com/project/ublock 2025-07-07 09:12:52 -04:00
Raymond Hill
f1551c56ea [mv3] Add ability to assign a shortcut to "Create a custom filter" 2025-07-06 19:06:19 -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
3a4897db93 Import translation work from https://crowdin.com/project/ublock 2025-07-06 17:12:47 -04:00
Raymond Hill
ac159c5f08 Fix typo 2025-07-06 17:10:57 -04:00
Raymond Hill
45ab7feca6 Import translation work from https://crowdin.com/project/ublock 2025-07-06 17:04:28 -04:00
Raymond Hill
78305e11c9 Import translation work from https://crowdin.com/project/ublock 2025-07-06 16:59:43 -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
cf13c4b4dc Make Firefox dev build auto-update 2025-07-05 11:06:00 -04:00
Raymond Hill
7c237e8217 New revision for dev build 2025-07-05 11:01:25 -04:00
Raymond Hill
b398bd8487 [regression] Normalize header names to lowercase
Related commit:
https://github.com/gorhill/uBlock/commit/408b538e75
2025-07-05 10:59:22 -04:00
Raymond Hill
76b72c9e65 Import translation work from https://crowdin.com/project/ublock 2025-07-03 09:46:52 -04:00
Raymond Hill
eec2045645 [mv3] Fix calculation of priority value when converting redirect filters 2025-07-03 09:22:09 -04:00
Raymond Hill
b5fae23329 Make Firefox dev build auto-update 2025-06-28 06:41:18 -04:00
Raymond Hill
f23518173e New revision for dev build 2025-06-28 06:21:31 -04:00
Raymond Hill
a25564559c Update changelog 2025-06-28 06:21:11 -04:00
Raymond Hill
e27bb85222 Import translation work from https://crowdin.com/project/ublock 2025-06-28 06:20:23 -04:00
Raymond Hill
66b68b4442 Reset important option flag at header evaluation time 2025-06-28 06:07:09 -04:00
Raymond Hill
9c08e902bd [mv3] Fix regression in syntax highlighting of dark theme 2025-06-24 20:44:14 -04:00
Raymond Hill
9bcfc8ff1c [mv3] Add access to troubleshooting info in About pane 2025-06-24 17:19:49 -04:00
Raymond Hill
27936f476e [mv3] Fix newline assistant in mode editor 2025-06-24 11:45:44 -04:00
Raymond Hill
3a473f8c48 Import translation work from https://crowdin.com/project/ublock 2025-06-24 10:56:43 -04:00
Raymond Hill
d9aba4acca [mv3] Use custom tokens for YAML document boundaries 2025-06-24 10:41:39 -04:00
Raymond Hill
8bcf533fc0 [mv3] Code review of uBO filter converter
Related commit:
e8fb0e1cc9
2025-06-22 17:06:35 -04:00
Raymond Hill
56ecd04816 Make Firefox dev build auto-update 2025-06-22 13:56:16 -04:00
Raymond Hill
e33bfc1f01 [mv3] Add support to exclude lists from specific platforms
Related discussion:
https://github.com/uBlockOrigin/uBOL-home/issues/358#issuecomment-2993687480
2025-06-22 12:07:06 -04:00
Raymond Hill
219c07609f New revision for dev build 2025-06-22 11:39:06 -04:00
Raymond Hill
0b6eea542f Update chengelog 2025-06-22 11:38:47 -04:00
Raymond Hill
253ef7ade3 Complete support for reporing strict-block messages
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/1195
2025-06-22 11:28:54 -04:00
Raymond Hill
1b00490a4d Import translation work from https://crowdin.com/project/ublock 2025-06-22 11:28:39 -04:00
Raymond Hill
001bd5841f Import translation work from https://crowdin.com/project/ublock 2025-06-22 11:27:19 -04:00
Raymond Hill
e8fb0e1cc9 [mv3] Add ability to convert pasted filters to DNR rules
WHen a uBO static network filter is pasted into the "Custom DNR
rules" editor, it will be converted into a DNR rule whenever
possible. At the moment, no feedback is provided when the conversion
fails -- this will be improved in the future.
2025-06-22 09:44:32 -04:00
Raymond Hill
527b4a201f Fix broken reverse lookup of filter lists
Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/discussions/3684

Regression from:
8b696a691a
2025-06-22 08:05:34 -04:00
Raymond Hill
8d24b7130c Make Firefox dev build auto-update 2025-06-21 07:16:16 -04:00
Raymond Hill
69a2959028 New revision for dev build 2025-06-21 06:50:50 -04:00
Raymond Hill
d66d592ebb Update changelog 2025-06-21 06:50:30 -04:00
Raymond Hill
6e466cf945 Add [trusted-]edit-inbound-object scriptlets
As discussed with filter list maintainers.

@scriptlet edit-inbound-object.js
  @description
  Prune properties from an object passed as argument to a specific method.
  Properties can only be removed.
  @param propChain
  Property chain of the method to trap.
  @param argPos
  0-based position of the argument. Use negative integer for position relative
  to the end.
  @param jsonq
  A uBO-flavored JSONPath query.

@scriptlet trusted-edit-inbound-object.js
  @description
  Edit properties of an object passed as argument to a specific method.
  Properties can be assigned new values.
  @param propChain
  Property chain of the method to trap.
  @param argPos
  0-based position of the argument. Use negative integer for position relative
  to the end.
  @param jsonq
  A uBO-flavored JSONPath query.
2025-06-21 06:47:03 -04:00
Raymond Hill
754f61717a Import translation work from https://crowdin.com/project/ublock 2025-06-19 17:41:40 -04:00
Raymond Hill
d853f036c7 Import translation work from https://crowdin.com/project/ublock 2025-06-19 17:35:58 -04:00
Raymond Hill
1f5b4ccc53 Import translation work from https://crowdin.com/project/ublock 2025-06-18 12:40:48 -04:00
Raymond Hill
b73034523f Import translation work from https://crowdin.com/project/ublock 2025-06-17 12:12:14 -04:00
Raymond Hill
c1bd62ae24 [mv3] Start to implement better DNR rule assistant 2025-06-17 12:09:33 -04:00
Raymond Hill
5327502a32 [mv3] Fix content update in wrong editor mode 2025-06-16 18:17:50 -04:00
Raymond Hill
2f6fe675da Make Firefox dev build auto-update 2025-06-16 15:36:39 -04:00
Raymond Hill
7b3589b0d3 New revision for dev build 2025-06-16 15:23:34 -04:00
Raymond Hill
35750688bc Update changelog 2025-06-16 15:23:12 -04:00
Raymond Hill
0a8ea58bb7 Improve remove-cookie scriptlet
Related discussion:
afc6ff52ff (commitcomment-160172503)
2025-06-16 15:19:01 -04:00
Raymond Hill
33b92f91cb Import translation work from https://crowdin.com/project/ublock 2025-06-15 19:07:07 -04:00
Raymond Hill
f106a81052 Make Firefox dev build auto-update 2025-06-15 14:11:44 -04:00
Raymond Hill
f87d2955d5 New revision for dev build 2025-06-15 13:59:19 -04:00
Raymond Hill
59680e61f4 Update changelog 2025-06-15 13:58:48 -04:00
Raymond Hill
87e0434c90 Add json-edit-related scriptlets
edit-outbound-object-.js
 @description
 Prune properties from an object returned by a specific method.
 Properties can only be removed.
 @param jsonq
 A uBO-flavored JSONPath query.

trusted-edit-outbound-object.js
 @description
 Edit properties from an object returned by a specific method.
 Properties can be assigned new values.
 @param jsonq
 A uBO-flavored JSONPath query.

json-edit-xhr-request.js
 @description
 Edit the object sent as the body in a XHR instance.
 Properties can only be removed.
 @param jsonq
 A uBO-flavored JSONPath query.
 @param [propsToMatch, value]
 An optional vararg detailing the arguments to match when xhr.open() is
 called.

trusted-json-edit-xhr-request.js
 @description
 Edit the object sent as the body in a XHR instance.
 Properties can be assigned new values.
 @param jsonq
 A uBO-flavored JSONPath query.
 @param [propsToMatch, value]
 An optional vararg detailing the arguments to match when xhr.open() is
 called.

json-edit-fetch-request.js
 @description
 Edit the request body sent through the fetch API.
 Properties can only be removed.
 @param jsonq
 A uBO-flavored JSONPath query.
 @param [propsToMatch, value]
 An optional vararg detailing the arguments to match when fetch() is
 called.

trusted-json-edit-fetch-request.js
 @description
 Edit the request body sent through the fetch API.
 Properties can be assigned new values.
 @param jsonq
 A uBO-flavored JSONPath query.
 @param [propsToMatch, value]
 An optional vararg detailing the arguments to match when fetch() is
 called.
2025-06-15 13:55:09 -04:00
Raymond Hill
3a2bb62519 Improve trusted-set-cookie scriptlet
Ability to use regex value for `, domain, value` vararg.

Related discussion:
afc6ff52ff (commitcomment-160035082)
2025-06-14 09:26:27 -04:00
Raymond Hill
28d2326808 [mv3] Better support for toggling line comments 2025-06-13 19:08:11 -04:00
Raymond Hill
786cf0c802 License stuff 2025-06-13 18:22:26 -04:00
Raymond Hill
9ee42b26c1 [mv3] Support toggling line comment using official CodeMirror command 2025-06-13 17:54:20 -04:00
Raymond Hill
88d090b20a Import translation work from https://crowdin.com/project/ublock 2025-06-13 12:53:44 -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
a12ed895dd Import translation work from https://crowdin.com/project/ublock 2025-06-13 12:37:25 -04:00
Raymond Hill
43a883396d [mv3] Fix regression in handling important option
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/368
2025-06-13 11:11:27 -04:00
Raymond Hill
ff8c527b99 [mv3] Revert trying to transpose requestDomains
This breaks uBOL -- unclear error message but disabling rulesets
eventually unbreak the extension, thus possibly a case of going
over the rule limit as a result of transposition.

The `requestDomains` issue will have to wait for the official
Safari fix.
2025-06-12 09:32:59 -04:00
Raymond Hill
7060be775c Import translation work from https://crowdin.com/project/ublock 2025-06-11 15:23:14 -04:00
Raymond Hill
e43de8c185 [mv3] Firefox doesn't yet support condition.responseHeaders 2025-06-11 09:40:52 -04:00
Raymond Hill
950f7920b3 [mv3] Update build script 2025-06-10 15:24:53 -04:00
Raymond Hill
9f3282d74f [mv3] Safari: expand rsach requestDomains entries into own rule
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/358
2025-06-10 15:18:47 -04:00
Raymond Hill
76d8b97869 [mv3] Collect/apply highly generic cosmetic exceptions across lists
Related issues:
- https://github.com/uBlockOrigin/uBOL-home/issues/365
- https://github.com/uBlockOrigin/uAssets/issues/28770
- https://github.com/uBlockOrigin/uAssets/issues/28129
2025-06-10 15:03:14 -04:00
Raymond Hill
deb3247ea2 Update README.md 2025-06-10 09:37:01 -04:00
u-RraaLL
4803e6f69b Edge status update (#3940) 2025-06-07 06:39:46 -04:00
Raymond Hill
508138764d [mv3] Properly refresh "Developer mode" checkbox on changes 2025-06-06 08:45:19 -04:00
Raymond Hill
a960140c30 Import translation work from https://crowdin.com/project/ublock 2025-06-03 16:56:10 -04:00
Raymond Hill
b81076224c Minor 2025-06-03 16:45:16 -04:00
Imre Eilertsen
fd049c9e1f Added 4 language codes for Firefox. (#3939)
* Added 4 language codes for Firefox.

* Added 4 language codes for Firefox.

* Added Kabyle to Liste AR as well.

As opposed to just AdGuard Français.

* Added Kabyle to Liste AR as well.
2025-06-03 15:40:06 -04:00
Raymond Hill
26381a557a Minor 2025-06-03 15:38:53 -04:00
Raymond Hill
e96e380ad1 Use CodeMirror's MergeView to highlight differences between before/after
To make it easier to analyze the effect of a jsonpath.
2025-06-03 10:21:53 -04:00
Raymond Hill
b2c4242138 [mv3] Fix error reporting in registerInjectables() 2025-06-03 07:39:38 -04:00
Raymond Hill
1a9c63254c [mv3] Report custom DNR rule count in troubleshooting information
As discussed internally.

The custom DNR rule count will be reported only when it's not zero,
and the count is only for effective DNR rules, i.e. it will not be
reported if "Developer mode" is not enabled.
2025-06-03 06:05:56 -04:00
Raymond Hill
eb46f42419 Make Firefox dev build auto-update 2025-06-01 14:46:02 -04:00
Raymond Hill
0983e62437 [mv3] Fine tuning editor code 2025-06-01 14:34:57 -04:00
Raymond Hill
0dac2206c3 Import translation work from https://crowdin.com/project/ublock 2025-06-01 13:52:48 -04:00
Raymond Hill
5de5d8c4a7 New revision for dev build 2025-06-01 13:50:35 -04:00
Raymond Hill
30a271a7ff Update changelog 2025-06-01 13:50:00 -04:00
Raymond Hill
4affe343dd Force cache bypass reload when no-scripting switch is toggled
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3652
2025-06-01 13:48:23 -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
837451c17a Import translation work from https://crowdin.com/project/ublock 2025-05-31 11:32:54 -04:00
Raymond Hill
670e8dc367 [mv3] Add smart spacebar/return auto completion 2025-05-31 09:42:53 -04:00
Raymond Hill
e1f2c6f88d [mv3] Code review 2025-05-30 18:15:25 -04:00
Raymond Hill
ffb3fef073 [mv3] Add smart backspace in DNR rules editor 2025-05-30 11:23:45 -04:00
Raymond Hill
aa1c813763 Update changelog 2025-05-30 11:20:08 -04:00
Raymond Hill
55d45a6fb1 Code review: safer to split on official line separator
Will still join lines using the detected line separator.
2025-05-30 11:19:12 -04:00
Raymond Hill
008fc488c1 Make Firefox dev build auto-update 2025-05-30 11:16:22 -04:00
Raymond Hill
bc32794a47 New revision for dev build 2025-05-30 11:10:39 -04:00
Raymond Hill
44f04e3d3b Update changelog 2025-05-30 11:10:19 -04:00
Raymond Hill
ed9999efd6 Improve jsonl[...] suite of scriptlets
Reuse original line separator when reassembling JSONL lines.
2025-05-30 11:06:33 -04:00
Raymond Hill
fbb96c7234 Import translation work from https://crowdin.com/project/ublock 2025-05-30 08:06:25 -04:00
Raymond Hill
3d5d8e8220 Remove obsolete "shortcut" token from link rel="icon"
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3634
2025-05-30 06:56:10 -04:00
Raymond Hill
16a42566ff Update jsonpath tool to show transformation 2025-05-29 18:09:19 -04:00
Raymond Hill
b69f809d91 Need this to distinguish FilterMessage instances 2025-05-29 15:19:03 -04:00
Raymond Hill
c142d9af67 [mv3] Fix dnr-parser for Safari compatibility 2025-05-29 14:33:30 -04:00
Raymond Hill
6221cecf57 [mv3] Fix Safari's compatiblity layer 2025-05-29 14:18:46 -04:00
Raymond Hill
03f06ab6a9 Make Firefox dev build auto-update 2025-05-29 13:31:30 -04:00
Raymond Hill
1824a2bccf New revision for dev build 2025-05-29 13:26:57 -04:00
Raymond Hill
90547cdbf3 Update changelog 2025-05-29 13:26:13 -04:00
Raymond Hill
d8298bb067 Add support for network filter option message
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/1195
2025-05-29 13:23:56 -04:00
Raymond Hill
eb3f5a44a9 Import translation work from https://crowdin.com/project/ublock 2025-05-29 10:13:32 -04:00
Raymond Hill
6647ae55a9 Import translation work from https://crowdin.com/project/ublock 2025-05-29 10:10:27 -04:00
Raymond Hill
f2c0633216 [mv3] Add missing translatable string 2025-05-29 10:09:02 -04:00
Raymond Hill
cac62c6dc0 Import translation work from https://crowdin.com/project/ublock 2025-05-29 10:05:13 -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
4e2585545b [mv3] This is not needed for uBOL 2025-05-25 19:10:18 -04:00
Raymond Hill
686eefd6b0 [mv3] Remove CERT.PL's Warning List 2025-05-25 18:55:39 -04:00
Raymond Hill
e077d36c6e Import translation work from https://crowdin.com/project/ublock 2025-05-25 18:17:20 -04:00
Raymond Hill
93d8e639ce [mv3] Code review last commit
Related commit:
2076d42239
2025-05-23 09:49:07 -04:00
Raymond Hill
2076d42239 [mv3] Add to troubleshooting info whether webext API calls failed
Related discussion:
https://github.com/uBlockOrigin/uBOL-home/issues/327#issuecomment-2904240310
2025-05-23 09:36:21 -04:00
Raymond Hill
13886f728d [mv3] Fix tag 2025-05-23 08:28:04 -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
69d584a283 Make Firefox dev build auto-update 2025-05-22 15:06:34 -04:00
Raymond Hill
ca4430c0ba New revision for dev build 2025-05-22 14:52:59 -04:00
Raymond Hill
c5d1eb109e Update changelog 2025-05-22 14:51:19 -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
408b538e75 [mv3] Add support to convert header= option to DNR rules
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/157

The `header=` option will be converted into DNR's `responseHeaders`
condition.

There will be an attempt to convert regex-based values into DNR-
compatible syntax. Not all regex-based patterns can be converted to
use DNR's patterns with `*` and `?` special characters.

The implementation of `header=` option in uBO has been revisited to
improve compatibility with DNR syntax to minimize burden for list
maintainers when creating `header=` filters compatible with both
uBO and uBOL.

The changes:
- Header names are now case-insensitive by default
- Occurrences of `*` in non-regex-based header values now mean
  "matches any number of characters"
- Occurrences of `?` in non-regex-based header values now mean
  "matches zero or one character"

At time of commit, and as per MDN, only Chromium-based browsers
currently support filtering on repsonse headers:
https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/declarativeNetRequest/HeaderInfo

Also as per MDN, Chromium 121-127 silently ignore the `responseHeaders`
condition, potentially causing undue blocking of network requests.
Currently uBOL support Chromium 122 and later, meaning we need to mind
potential false positives in Chromium 122-127 for filters using
`header=` option.
2025-05-22 11:46:08 -04:00
Raymond Hill
c44f043ed3 Counter CodeMirror's pointer-events: none on scrollbars
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3645
2025-05-22 08:39:29 -04:00
Raymond Hill
eee279be01 [mv3] Add codemirror-ubol as submodule 2025-05-21 08:01:21 -04:00
Raymond Hill
ee7af6f005 Make Firefox dev build auto-update 2025-05-20 12:26:37 -04:00
Raymond Hill
943a63d1e6 Update changelog 2025-05-20 12:17:08 -04:00
Raymond Hill
1b0f2ac14c New revision for dev build 2025-05-20 12:15:48 -04:00
Raymond Hill
0130fdf4a1 Fix element picker issue with explicit dark theme
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3624
2025-05-20 12:14:33 -04:00
Raymond Hill
cdd46c5c7b Minor change 2025-05-20 11:59:32 -04:00
Raymond Hill
4888ec6d35 Add tool to evaluate uBO-flavored JSONpath expressions
Requires a local server in root of repo:
python3 -m http.server

Then load the following URL in the browser:
http://localhost:8000/tools/jsonpath-tool.html
2025-05-20 10:14:35 -04:00
Raymond Hill
7ee99e6875 [mv3] Add fallback fetch in case main one fails 2025-05-20 07:34:05 -04:00
Raymond Hill
a59daf5978 [mv3] Forgot to commit new CSS file 2025-05-19 19:02:41 -04:00
Raymond Hill
13b7f381b2 [mv3] Safari: warn to not open filter issues for stable Safari
Related issue:
https://github.com/uBlockOrigin/uAssets/issues/28408

Stable Safari is known to not block certain network requests due to
the current state of the DNR engine in Safari. The warning is to
ensure volunteers are not burdened by issues originating from the
browser.

Eventually Safari's DNR implementation will catch up with the
specification, at which time the warning will be removed.
2025-05-19 16:55:27 -04:00
Raymond Hill
05f7a7b8c3 [mv3] Minor code review 2025-05-19 10:41:15 -04:00
Raymond Hill
be8b6238d3 [mv3] Add browser info in troubleshooting data 2025-05-19 10:39:31 -04:00
Raymond Hill
ed10973717 [mv3] Add "AdGuard -- Mobile Ads"
Maybe related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/351

The list is enabled by default on mobile devices.
2025-05-18 09:55:20 -04:00
Raymond Hill
4c6f8222af Import translation work from https://crowdin.com/project/ublock 2025-05-18 09:00:28 -04:00
Raymond Hill
4aa16e9409 [mv3] Add missing image 2025-05-18 08:57:48 -04:00
Raymond Hill
ce4a4fcd75 [mv3] Minor CSS change 2025-05-18 08:50:54 -04:00
Raymond Hill
6d2123b196 Update README.md 2025-05-17 08:10:49 -04:00
Raymond Hill
b2c9be14cf [mv3] Code review: matches is never empty 2025-05-16 10:30:20 -04:00
Raymond Hill
aa696d0669 Ignore lib directory when linting 2025-05-16 08:52:36 -04:00
Raymond Hill
4c99471a25 [mv3] Avoid passing empty arrays to scripting.registerContentScripts
Maybe related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/344
2025-05-15 11:20:52 -04:00
Raymond Hill
a551d1cc01 [mv3] Editor font size 2025-05-15 07:26:40 -04:00
Raymond Hill
907e33ef59 Update README.md 2025-05-14 17:33:10 -04:00
Raymond Hill
2322038e8f Update README.md 2025-05-14 17:32:20 -04:00
Raymond Hill
ae461f47d3 Update README.md 2025-05-14 17:31:49 -04:00
Raymond Hill
9491fcdb2e Update README.md 2025-05-14 17:31:26 -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
Imre Eilertsen
7e239db9a8 Added AdGuard's 2 newest !#if tokens. (#3938) 2025-05-13 12:38:33 -04:00
Raymond Hill
ed3a0b8ab9 [mv3] Remove hard-coded line height 2025-05-13 10:52:42 -04:00
Raymond Hill
71244bc37b New revision for stable release 2025-05-13 09:18:38 -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
82c6d5e8ff Make Firefox dev build auto-update 2025-05-12 08:40:38 -04:00
Raymond Hill
7c5c9beda6 Update changelog 2025-05-12 07:51:41 -04:00
Raymond Hill
c02c571b3e New revision for release candidate 2025-05-12 07:50:22 -04:00
Raymond Hill
8cd6212867 Use custom blank page for embedded iframe in dashboard
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3631#issuecomment-2870424577
2025-05-12 07:48:42 -04:00
Raymond Hill
e3a3026cac Use custom blank page for embedded iframe in dashboard
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3631#issuecomment-2870424577
2025-05-12 07:46:33 -04:00
Raymond Hill
a075442e1c Import translation work from https://crowdin.com/project/ublock 2025-05-11 10:37:24 -04:00
Raymond Hill
2e7d0a07e7 [mv3] Add TODO comment 2025-05-11 10:36:21 -04:00
Raymond Hill
3ff54b7f2a [mv3] Just force a reload when URL doesn't change
Most of the time the URL doesn't change and just forcing a reload
of the page is sufficient. When a document is strict-blocked, the
URL must be updated however.
2025-05-11 10:34:49 -04:00
Raymond Hill
63eeaae5e9 Make Firefox dev build auto-update 2025-05-11 10:31:14 -04:00
Raymond Hill
3508176fcc New revision for release candidate 2025-05-11 10:23:31 -04:00
Raymond Hill
60735f88f9 New revision for release candidate 2025-05-11 10:22:56 -04:00
Raymond Hill
5c029b3532 Use color-scheme meta tag as suggested
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3631
2025-05-11 10:17:17 -04:00
Raymond Hill
3650117b4f Fix background color of navigation bar
Related commit:
b604524c2f
2025-05-11 09:41:34 -04:00
Raymond Hill
b604524c2f Explicitly set background color according to state of prefers-color-scheme
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3631
2025-05-11 09:30:34 -04:00
Raymond Hill
3292f128d2 [mv3] Mind discarded regex- or path-based entries when determining genericity
Related issue:
https://github.com/uBlockOrigin/uAssets/issues/28260
2025-05-11 07:32:32 -04:00
Raymond Hill
a83be19987 [mv3] Remove equivalence between chromium and safari 2025-05-10 12:32:09 -04:00
Raymond Hill
8a7f1589ec [mv3] Expose setExtensionActionOptions in Safari compatibility layer
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/327#issuecomment-2864897864
2025-05-10 12:21:51 -04:00
Raymond Hill
1c98faf46c [mv3] Safari works; use 3-component version for uBOL
uBOL doesn't pass validation when using 4-component versioning,
so falling back to 3-component versioning for all platforms to
avoid special case.
2025-05-08 16:53:07 -04:00
Raymond Hill
df9cd6c9a2 Import translation work from https://crowdin.com/project/ublock 2025-05-08 10:09:03 -04:00
Raymond Hill
cc2760f4d6 [mv3] New approach to toggle toolbar icon not requiring extra permissions
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/198#issuecomment-2855135571

As a result, the permissions `tabs` and `webNavigation` have been removed.
2025-05-07 08:53:59 -04:00
Raymond Hill
0ee6e3044d [mv3] No need to retry sending messages with top-level listener 2025-05-07 07:47:28 -04:00
Raymond Hill
f40b989dc8 Fix makefile 2025-05-05 08:37:26 -04:00
Raymond Hill
58f5c53fbb [mv3] Fix strict-block exceptions caused duplicate rule ids
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/304
2025-05-05 08:04:21 -04:00
Raymond Hill
3cd04c3806 Fix list name; also change for uBOL 2025-05-04 06:42:42 -04:00
Raymond Hill
47f1a19e9e Change stock UKR list to AdGuard-maintained list 2025-05-04 06:37:31 -04:00
Raymond Hill
e384f2b612 [mv3] Build script changes 2025-05-02 14:45:06 -04:00
Raymond Hill
48146f8351 [mv3] Address various issues for Safari build 2025-05-02 14:33:33 -04:00
Raymond Hill
6a088a7477 Make Firefox dev build auto-update 2025-05-02 09:22:57 -04:00
Raymond Hill
a4ba51a790 Import translation work from https://crowdin.com/project/ublock 2025-05-02 09:05:53 -04:00
Raymond Hill
e94ba8afad Update changelog 2025-05-02 09:04:30 -04:00
Raymond Hill
03bea3aafc New revision for release candidate 2025-05-02 09:02:55 -04:00
Raymond Hill
3f59f94b60 Bring zapper look in line with uBO Lite's zapper 2025-05-02 08:56:30 -04:00
Raymond Hill
ea0c400c51 Revert "Allow user to change CodeMirror input style in "My filters""
This reverts commit cf7777e9fd.
2025-05-02 08:43:47 -04:00
Raymond Hill
457dd7acdb [mv3] Remove "OpenPhish Domain Blocklist" as per "Terms of Use"
Excerpt from <https://openphish.com/terms.html>:

> Except as expressly permitted by OpenPhish in writing, you agree not
> to license, sell, rent, lease, transfer, assign, distribute, display,
> disclose, create derivative works or otherwise make all or any portion
> of the information obtained through the Services available to any
> third party.
2025-04-30 10:00:35 -04:00
Raymond Hill
1d1490523d [mv3] Fix incorrect DNR priority for redirect/important filters 2025-04-30 08:50:45 -04:00
Raymond Hill
9ac12647d1 Make Firefox dev build auto-update 2025-04-28 17:57:06 -04:00
Raymond Hill
2c4819ac74 New revision for dev build 2025-04-28 17:46:11 -04:00
Raymond Hill
8df96e4718 Fix regression in parsing of AG's [domain=...] syntax
Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/issues/3235#issuecomment-2836674712

Related commit:
8b696a691a (diff-848f3a5c8459fe07d1c65764e30b7c9471be77f9e9574674442319b831138024)
2025-04-28 17:43:44 -04:00
Raymond Hill
526af62864 [mv3] Fix overzealous strict-blocking in Safari 2025-04-28 10:56:43 -04:00
Raymond Hill
e048790036 Make Firefox dev build auto-update 2025-04-27 11:06:27 -04:00
Raymond Hill
c2eee87029 Import translation work from https://crowdin.com/project/ublock 2025-04-27 10:55:12 -04:00
Raymond Hill
daa0025157 New revision for dev build 2025-04-27 10:52:18 -04:00
Raymond Hill
cf7777e9fd Allow user to change CodeMirror input style in "My filters"
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3613
2025-04-27 10:50:21 -04:00
Raymond Hill
b4aea4ab27 [mv3] Avoid pointless messaging when no changes at beforeunload 2025-04-27 09:02:29 -04:00
Raymond Hill
6c84ae7aba [mv3] Support disabling all lists
Related discussion:
https://github.com/uBlockOrigin/uBlock-discussions/discussions/943
2025-04-27 08:22:04 -04:00
Raymond Hill
5e64ace64d [mv3] Code review of safari-specific code 2025-04-26 10:11:33 -04:00
Raymond Hill
ef9709fb07 [mv3] Safari does not support resource type object
Need to filter out DNR rules with `object`, otherwise this causes
a failure when adding the rules dynamically.
2025-04-25 19:26:16 -04:00
Raymond Hill
a56e13156f [mv3] Add more managed policies
"showBlockedCount": Boolean, to enable/disable the badge count on the
toolbar icon.

"strictBlockMode": Boolean. to enable/disable strict-blocking.

Related issues/discussion:
- https://github.com/uBlockOrigin/uBOL-home/discussions/35#discussioncomment-12567804
- https://github.com/uBlockOrigin/uBOL-home/issues/334
2025-04-25 11:25:50 -04:00
Raymond Hill
e5efe64d20 [mv3] Code review 2025-04-25 08:06:19 -04:00
Raymond Hill
e029060889 [mv3] Use safer env variable names
Related feedback:
https://github.com/uBlockOrigin/uBOL-home/issues/327#issuecomment-2823012715
2025-04-25 07:47:40 -04:00
anewuser
84ad64daea Update README.md (#3937) 2025-04-25 07:30:17 -04:00
Raymond Hill
ed66a8d157 [mv3] Code review 2025-04-24 19:47:29 -04:00
Raymond Hill
203b2235aa [mv3] Reflect no-filtering mode on the toolbar icon
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/198
2025-04-24 19:42:59 -04:00
Raymond Hill
83d62b9aca Make Firefox dev build auto-update 2025-04-24 13:44:06 -04:00
Raymond Hill
0e5dec7fbb [mv3] Separate EasyList, EasyPrivacy, PGL lists from uBlock filters
Additionally, remember `badfilter` filters across conversion of
filter lists to DNR rulesets.
2025-04-24 09:58:31 -04:00
Raymond Hill
bd6263078f New revision for dev build 2025-04-23 09:40:26 -04:00
Raymond Hill
79a77f915a Update changelog 2025-04-23 09:40:00 -04:00
Raymond Hill
0243a141a7 Ignore start_page transition for popup-blocking purpose
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/2227
2025-04-23 09:34:00 -04:00
Raymond Hill
b4eae1ef0b Make Firefox dev build auto-update 2025-04-22 09:56:04 -04:00
Raymond Hill
c86beb3a37 Update changelog 2025-04-22 09:40:21 -04:00
Raymond Hill
89ba371fbe New revision for dev build 2025-04-22 09:38:52 -04:00
Raymond Hill
59f4aca010 Exclude chrome: as valid openers for popup candidates
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/2227
2025-04-22 09:34:26 -04:00
Raymond Hill
9c523f0325 Make Firefox dev build auto-update 2025-04-21 15:51:02 -04:00
Raymond Hill
6cc63d825e New revision for dev build 2025-04-21 15:46:06 -04:00
Raymond Hill
2ee90bf22f Update changelog 2025-04-21 15:45:55 -04:00
Raymond Hill
8b964a8c54 Fetch diff patches from "reliable" servers only
Some CDN servers take too long to mirror updated resources,
potentially preventing diff-updating to work reliably as
intended.
2025-04-21 15:42:04 -04:00
Raymond Hill
b5642ba602 [mv3] Minor 2025-04-21 13:21:08 -04:00
Raymond Hill
d3f39c97d1 [mv3-safari] Fix broken zapper due to latest changes
Related commit:
22e848c9c2
2025-04-21 12:58:44 -04:00
Raymond Hill
d17da2b081 Import translation work from https://crowdin.com/project/ublock 2025-04-21 09:42:58 -04:00
Raymond Hill
1d53441456 [mv3] Simplify sendMessage
onMessage() is now a listener installed synchrnously when uBOL
executes, so no longer need to deal with failure to send messages.

Related commit:
ab458b492a
2025-04-21 08:13:16 -04:00
Raymond Hill
22e848c9c2 [mv3] Fix zapper
Regression from:
b5651417aa
2025-04-21 08:11:22 -04:00
Raymond Hill
34d6abca6d Revert "[mv3] Programmatically inject content scripts on version change"
This reverts commit d0e32a5f47.
2025-04-20 16:58:16 -04:00
Raymond Hill
d0e32a5f47 [mv3] Programmatically inject content scripts on version change
Related issue:
https://github.com/w3c/webextensions/issues/617
2025-04-20 16:44:08 -04:00
Raymond Hill
782fff35ea [mv3] Split code path for wakeup versus launch status
Additionally, leave more regex rooms for non-strictblock rules.
2025-04-20 12:17:57 -04:00
Raymond Hill
2bd09e6f84 [mv3] Code review of conversion to DNR ruleset
- Ensure no duplicates in domain collection fields
- Sort rules according to the number of entries in their
  domain collections
2025-04-20 12:14:29 -04:00
Raymond Hill
de7a406920 [mv3] Minor code review 2025-04-19 17:52:28 -04:00
Raymond Hill
39b505a52e [mv3] Fix safari build script 2025-04-19 14:39:00 -04:00
Raymond Hill
39913a8212 Fix Edge build script 2025-04-19 14:17:46 -04:00
Raymond Hill
8a14a8dc6b Import translation work from https://crowdin.com/project/ublock 2025-04-19 14:02:32 -04:00
Raymond Hill
fbe1ba018e [mv3] Remove unused file 2025-04-19 13:34:34 -04:00
Raymond Hill
b5651417aa [mv3] Merge Safari branch
Safari version of uBO Lite can now be built from master branch.

Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/327
2025-04-19 13:08:59 -04:00
Raymond Hill
8016e7733a [mv3] Move ruleset details into external config file 2025-04-19 08:37:29 -04:00
Raymond Hill
63ea23f334 [mv3] Minor change to build script 2025-04-18 07:57:21 -04:00
Raymond Hill
fd3a8720e9 Minor test to avoid code path 2025-04-16 16:14:58 -04:00
Raymond Hill
c299d39117 Import translation work from https://crowdin.com/project/ublock 2025-04-16 15:21:14 -04:00
Raymond Hill
a1689fb9d0 [mv3] Fix JSON, add description 2025-04-16 15:13:52 -04:00
Raymond Hill
b8adf5b027 [mv3] Add admin setting defaultFiltering
Setting name: "defaultFiltering"
Type: string
Valid values: "none", "basic", "optimal", "complete"

Additionally, fix default "basic" mode toggling back to "optimal"
upon extension restart when uBOL has broad host permissions. The
default mode will toggle automatically only when there is a change
in broad host permissions status.
2025-04-16 15:04:47 -04:00
Raymond Hill
3b34f9439a Import translation work from https://crowdin.com/project/ublock 2025-04-16 08:39:43 -04:00
Raymond Hill
ec19e352b1 [mv3] Mitigate issues when hitting regex-based rules limit
When there are too many regex-based rules, uBOL will start to drop
some strict-block rules to comply with the framework limit regarding
the maximum number of regex-based rules.

Related issues:
- https://github.com/uBlockOrigin/uBOL-home/issues/317
- https://github.com/w3c/webextensions/issues/744
2025-04-16 08:19:52 -04:00
Raymond Hill
e20e6addf0 [mv3] Mind excluded to= hostnames in strict-block rules 2025-04-16 08:18:26 -04:00
Raymond Hill
eaedaf5b10 Fix regexes with potential catastrophic backtracking
The quoted email below was sent to ubo-security at raymondhill dot net:

=====
Dear Raymond,

I am writing to report a potential Regular Expression Denial of Service (ReDoS)
vulnerability in the 1p-filters.js script of uBlock Origin. The vulnerability
occurs due to the use of the regular expression /\s+$/, which is used to remove
trailing whitespace. This issue can lead to a denial of service when processing
strings with a large number of trailing spaces, potentially causing a browser to
freeze.

Affected file(s)

    js/1p-filters.js

Vulnerable pattern(s)

    Lines 131 and 167: /\s+$/

Description of the issue

The regular expression /\s+$/ is applied to remove trailing whitespace in user‑
provided content. However, when the content has a large number of spaces
(e.g., ~100,000), this pattern causes excessive backtracking in the regular
expression engine, resulting in performance degradation and UI freezing. This is
a classic ReDoS attack vector.

Steps to reproduce

1. Open the uBlock Origin dashboard and navigate to the My filters tab.
2. Run the following code in the browser's DevTools Console or as a bookmarklet.
3. Observe the UI freezing for several seconds or even longer, depending on the
   number of spaces used.

PoC (Proof of Concept)

/**
 * poc.js — triggers ReDoS in 1p-filters.js
 * Expected: <1 ms; Actual: several seconds – UI freeze
 */
(() => {
  const payload = " ".repeat(100000) + "!";  // 100,000 spaces + sentinel
  const run = () => {
    if (!window.cmEditor) {
      console.error("cmEditor not ready");
      return;
    }
    // Inject payload into the editor
    cmEditor.setValue(payload);

    console.time("ReDoS");
    // Call the vulnerable function (mirroring getEditorText)
    cmEditor.getValue().replace(/\s+$/, '');
    // Alternatively, simulate a realistic user flow:
    // document.querySelector('#userFiltersApply').click();
    console.timeEnd("ReDoS");
  };

  if (document.readyState === "complete") {
    run();
  } else {
    window.addEventListener("load", run, { once: true });
  }
})();

Impact

This issue can significantly degrade the user experience, causing the page to
become unresponsive. If an attacker can inject this malicious string into the
page (for example, through XSS or other attacks), it could lead to a denial of
service (DoS). This vulnerability can be triggered repeatedly, causing the
browser to hang indefinitely.

Suggested fix

The issue can be mitigated by replacing /\s+$/ with a more efficient solution,
such as a look‑behind assertion /(?<=\S)\s+$/ (available in modern browsers)
which ensures no backtracking occurs, or using trimEnd() for legacy support:

// Example of using look-behind:
cmEditor.setValue(text.replace(/(?<=\S)\s+$/, '') + '\n\n');

// Alternatively, using trimEnd():
cmEditor.setValue(text.trimEnd() + '\n\n');

Additional information

If required, I am happy to assist in testing or provide more information.
Please feel free to contact me for further clarification.

Best regards,
[redacted]
=====
2025-04-15 12:47:02 -04:00
Raymond Hill
87007e62c0 [mv3] Ensure POL-3 list is separate from POL-0 list in uBOL 2025-04-14 09:07:46 -04:00
Raymond Hill
b5eea3ce3a [mv3] Fix Github Actions 2025-04-13 15:45:39 -04:00
Raymond Hill
e11335f5ad [mv3] Fix Github Actions 2025-04-13 15:37:07 -04:00
Raymond Hill
20f52daf9b Import translation work from https://crowdin.com/project/ublock 2025-04-13 15:23:08 -04:00
Raymond Hill
f15adcf2d5 [mv3] Ensure strict-blocking is enabled when gaining broad permissions 2025-04-13 10:24:23 -04:00
Raymond Hill
51db128dc2 [mv3] "Enable strict blocking" setting depends on broad host permissions 2025-04-13 10:13:18 -04:00
Raymond Hill
7c5c93f073 Import translation work from https://crowdin.com/project/ublock 2025-04-13 09:34:22 -04:00
Raymond Hill
dc3602985f [mv3] Update summary description 2025-04-13 09:19:25 -04:00
Raymond Hill
9bf05023c1 Import translation work from https://crowdin.com/project/ublock 2025-04-13 09:16:54 -04:00
Raymond Hill
50f87c21ea [mv3] Provide console feedback that work is ongoing when building 2025-04-13 09:04:13 -04:00
Raymond Hill
f51a4c79db [mv3] Determine "genericity" on a per-cosmetic filter basis
Related issue:
https://github.com/uBlockOrigin/uBOL-home/issues/328
2025-04-13 09:02:12 -04:00
Raymond Hill
12c8bc6c5b Make Firefox dev build auto-update 2025-04-13 07:45:55 -04:00
Raymond Hill
a33e2e4115 New revision for dev build 2025-04-13 07:39:03 -04:00
Raymond Hill
5ed1b07034 Update changelog 2025-04-13 07:38:19 -04:00
Raymond Hill
cac420a22d Rename trusted-create-element to trusted-create-html
To avoid confusion with AG's own `trusted-create-element`, which has
a different syntax and a different purpose.
2025-04-13 07:34:36 -04:00
Raymond Hill
c15dc9d8ff Fix scrollbars not following dark theme
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3604
2025-04-12 15:51:36 -04:00
Raymond Hill
dfd42ebf5f Improve noscript spoofing
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/2642
2025-04-12 15:20:18 -04:00
Raymond Hill
d1fc38c473 Make Firefox dev build auto-update 2025-04-12 11:01:06 -04:00
Raymond Hill
cc987cb072 Update changelog 2025-04-12 10:55:14 -04:00
Raymond Hill
b4a8dd0754 New revision for dev build 2025-04-12 10:54:00 -04:00
Raymond Hill
20dd606504 Add trusted-create-element scriptlet
As discussed with filter list maintainers.

* @scriptlet trusted-create-element
*
* @description
* Element(s) from a parsed HTML string are added as child element(s) to a
* specific parent element in the DOM.
*
* @param parent
* A CSS selector identifying the element to which created element(s) will be
* added.
*
* @param html
* An HTML string to be parsed using DOMParser, and which resulting elements
* are to be added as child element(s).
*
* @param duration
* Optional. If specified, the time in ms after which the added elements will
* be removed. No removal will occur if not specified.
2025-04-12 10:51:50 -04:00
Raymond Hill
a06f09acda Group POL lists together 2025-04-12 09:40:46 -04:00
Raymond Hill
ad2add4676 Code review 2025-04-12 08:08:12 -04:00
Raymond Hill
af054f7980 Make Firefox dev build auto-update 2025-04-11 18:51:21 -04:00
Raymond Hill
1e783d62e0 New revision for dev build 2025-04-11 18:44:55 -04:00
Raymond Hill
f25a437fd1 Code review re. scriptlets lookup
Possibly fixes a race condition at browser launch causing empty
scriptlets to be injected (and cached).
2025-04-11 18:20:51 -04:00
Raymond Hill
90e3c352ec Make Firefox dev build auto-update 2025-04-11 10:11:13 -04:00
Raymond Hill
ad68834479 Update changelog 2025-04-11 10:01:31 -04:00
Raymond Hill
809d4f93c4 New revision for dev build 2025-04-11 09:58:51 -04:00
Raymond Hill
11e159fd31 [mv3] Discard regex- or path-based targets in static extended filters
There is no support yet for such filters in uBO Lite.
2025-04-11 09:49:03 -04:00
Raymond Hill
15e832da8a Mind potential race condition when dynamically registering scriptlets
In Firefox, scriptlets are dynamically registered as content scripts
to ensure they execute in a timely manner.

The race condition could lead to scriptlet injection failing at
browser launch time in Firefox when the setting "Suspend network
activity until all filter lists are loaded" had been disabled[1],
even after forcing a page reload. Causing the filter lists to
reload would make the issue go away.

[1] Default is enabled in Firefox and it is strongly advised to NOT
    change this.
2025-04-11 09:35:38 -04:00
Raymond Hill
3d2f70ac56 Add POL list for regional malware
Related discussion:
https://github.com/uBlockOrigin/uBlock-discussions/discussions/890#discussioncomment-9632360
2025-04-11 09:06:28 -04:00
Raymond Hill
d1c57d3fa6 Remove stale extraneous POL-2 list
Related issue:
https://github.com/uBlockOrigin/uAssets/issues/27935
2025-04-10 09:35:19 -04:00
Raymond Hill
70bdcfbae6 Make Firefox dev build auto-update
Mistakenly ran the update script from the safari-ubol branch.
2025-04-10 09:11:56 -04:00
Raymond Hill
ae336c3688 New revision for dev build 2025-04-10 07:37:01 -04:00
Raymond Hill
d0e303ca19 Fix regression in response header filtering
Related commit:
8b696a691a
2025-04-10 07:32:09 -04:00
Raymond Hill
981be2d5b2 Make Firefox dev build auto-update 2025-04-09 18:31:38 -04:00
Raymond Hill
2679aafc17 New revision for dev build 2025-04-09 18:25:20 -04:00
Raymond Hill
9029d1d715 Fix regression in categorizing highly generic filters at load time
Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/issues/3235#issuecomment-2790807915

Regression from:
8b696a691a
2025-04-09 18:23:01 -04:00
Raymond Hill
0fdcd44794 Import translation work from https://crowdin.com/project/ublock 2025-04-09 15:29:26 -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
f6f7333b5d Code review for recent commit re path support in target
Related commit:
8b696a691a

1) There will always be a `/` at that point in the code path
2) The hostname will already be a match in that code path
2025-04-08 19:01:43 -04:00
Raymond Hill
c38101cd34 Make Firefox dev build auto-update 2025-04-08 15:51:30 -04:00
Raymond Hill
cdc63d03cf New revision for dev build 2025-04-08 15:43:13 -04:00
Raymond Hill
eb7f23b173 Fix silly test
Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/discussions/1755#discussioncomment-12769044

Related commit:
8b696a691a
2025-04-08 15:42:00 -04:00
Raymond Hill
2bb6999e3f Fix undue unchecking of setting in "My filters"
Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/discussions/2895#discussioncomment-12749154
2025-04-08 13:49:41 -04:00
Raymond Hill
d8b29cf1a3 Make Firefox dev build auto-update 2025-04-08 12:31:03 -04:00
Raymond Hill
699bf42fdb Import trabslation work from https://crowdin.com/project/ublock 2025-04-08 11:59:36 -04:00
Raymond Hill
ee53980b68 New revision for dev build 2025-04-08 11:57:49 -04:00
Raymond Hill
b55247bbcb Update changelog 2025-04-08 11:57:20 -04:00
Raymond Hill
8b696a691a Add path support as target option in static extended filtering
Support for paths allows to narrow down specific static extended
filters to specific webpages on a given site.

Examples of usage:

example.com/toto##h1
/example\.com\/toto\d+/#@#h1
2025-04-08 11:20:27 -04:00
Raymond Hill
370107b9a6 Import translation work from https://crowdin.com/project/ublock 2025-04-06 16:33:00 -04:00
Raymond Hill
6b9968d804 Add logging information re. fetched assets 2025-04-03 12:11:57 -04:00
Raymond Hill
595f9fd469 [mv3] Loosen requirements to qualify for strict-blocking 2025-04-03 12:09:20 -04:00
Raymond Hill
ac28ab58c8 Make Firefox dev build auto-update 2025-04-03 12:06:36 -04:00
Raymond Hill
09ce8f05e2 Update changelog 2025-04-03 12:02:43 -04:00
Raymond Hill
5574404358 New revision for dev build 2025-04-03 12:01:02 -04:00
Raymond Hill
4ce26b63ff Add trusted-prevent-fetch scriptlet
Related feedback:
https://github.com/uBlockOrigin/uBlock-discussions/discussions/915#discussioncomment-12077068
2025-04-03 11:59:00 -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
Raymond Hill
6ffffb7b2b [mv3] Force real origin in postMessage so that use_dynamic_url can be used
Call to postMessage was failing in the zapper when using `use_dynamic_url` in
manifest. Manually overwriting the per-session dynamic hostname with the real
extension id fixes this.
2025-03-31 16:30:17 -04:00
Raymond Hill
0c6cbb7fcb Merge in long overdue change re. UKR list in assets.json
Related discussion:
https://github.com/uBlockOrigin/uBlock-issues/issues/2692
2025-03-31 11:26:41 -04:00
Raymond Hill
58a92b91c1 Import translation work from https://crowdin.com/project/ublock 2025-03-30 17:21:18 -04:00
Raymond Hill
9351497f16 Make Firefox dev build auto-update 2025-03-30 17:06:18 -04:00
Raymond Hill
c15278522e New revision for dev build 2025-03-30 16:57:38 -04:00
Raymond Hill
8632cd6072 Fix typo causing regression in uritransform=
Related feedback:
https://github.com/uBlockOrigin/uAssets/discussions/27802
2025-03-30 16:56:04 -04:00
Raymond Hill
9adedbc30e Remove the need for parethesis for JSONPath filter selectors
As per official proposed standard:
https://www.rfc-editor.org/rfc/rfc9535.html#name-filter-selector
2025-03-30 13:57:04 -04:00
Raymond Hill
cdb1afc3b2 Make Firefox dev build auto-update 2025-03-30 12:46:26 -04:00
Raymond Hill
f4b2d48873 Update changelog 2025-03-30 12:39:34 -04:00
Raymond Hill
86210368f5 New revision for dev build 2025-03-30 12:37:56 -04:00
Raymond Hill
5587111d21 Add support for union syntax in JSONPath
This immediately useful to list maintainers.

Related commits:
- https://github.com/gorhill/uBlock/commit/d5fd1de150
- https://github.com/gorhill/uBlock/commit/b18daa53aa
- https://github.com/gorhill/uBlock/commit/caa25cdaf3
2025-03-30 12:36:37 -04:00
Raymond Hill
97e740bd2c Code viewer shouldn't be maximizable
Related feedback:
https://github.com/uBlockOrigin/uBlock-issues/issues/3161#issuecomment-2764549781
2025-03-30 09:34:22 -04:00
Raymond Hill
935ce74d3a Make Firefox dev build auto-update 2025-03-29 10:05:48 -04:00
Raymond Hill
fbdc09a7aa New revision for dev build 2025-03-29 09:57:06 -04:00
Raymond Hill
b381ceda72 Mind other old constructs for scriptlets
Related feedback:
https://old.reddit.com/r/uBlockOrigin/comments/1jmcqhn/

Related commit:
https://github.com/gorhill/uBlock/commit/44c038b9a1
2025-03-29 09:54:41 -04:00
Raymond Hill
44c038b9a1 Fix for old scriptlet syntax
Related feedback:
https://old.reddit.com/r/uBlockOrigin/comments/1jmcqhn/
2025-03-29 09:06:07 -04:00
Raymond Hill
862557fd63 Update changelog 2025-03-29 09:05:26 -04:00
Raymond Hill
5f9f7d050d Make Firefox dev build auto-update 2025-03-28 16:21:20 -04:00
Raymond Hill
564f3f3442 English 2025-03-28 10:24:21 -04:00
Raymond Hill
caa25cdaf3 Add minimal in-code documentation for JSONPath 2025-03-28 10:20:21 -04:00
Raymond Hill
b18daa53aa Add json-edit suite of scriptlets; extend replace= option
Scriptlets added:
- json-edit
- trusted-json-edit
- json-edit-xhr-response
- trusted-json-edit-xhr-response
- json-edit-fetch-response
- trusted-json-edit-fetch-response
- jsonl-edit-xhr-response
- trusted-jsonl-edit-xhr-response
- jsonl-edit-fetch-response
- trusted-jsonl-edit-fetch-response

These scriptlets are functionally similar to their `json-prune` counterpart,
except that they all use the new uBO-flavored JSONPath syntax, and the
`trusted-` versions allow to modify values instead of just removing them.

The `replace=` filter option has been extended to support applying
uBO-flavored JSONPath syntax to the response body. If the `replace=`
value starts with `json:` or `jsonl:`, the remaining of the value will
be interpreted as a JSONPath directive, which can be used to either
remove or modify property in a JSON document.
2025-03-28 09:51:38 -04:00
Raymond Hill
1ce00e4fda Import translation work from https://crowdin.com/project/ublock 2025-03-27 22:51:48 -04:00
Raymond Hill
d7f01065a5 New revision for dev build 2025-03-27 22:47:58 -04:00
Raymond Hill
0a13683167 [mv3] Remove pointless promise 2025-03-27 22:47:25 -04:00
Raymond Hill
0e303060dd [mv3] Fix CSS for dark theme
Related feedback:
https://github.com/uBlockOrigin/uBOL-home/discussions/291#discussioncomment-12403559
2025-03-27 09:11:47 -04:00
Raymond Hill
d5fd1de150 Use JSONPath-like syntax for new jsonl- scriptlets 2025-03-26 11:47:56 -04:00
Raymond Hill
5936451082 [mv3] Fix toggling of "no filtering" as default mode
A bad test prevented the "no filtering" by default mode to not take
effect immediately when activated while no site had yet been set to
"no filtering". It would however take effect as soon as a specific
site would be excluded from "no filtering".
2025-03-26 07:28:00 -04:00
Raymond Hill
d7ae3a185e [mv3] Test filters are trusted 2025-03-25 12:58:26 -04:00
Raymond Hill
760bd23c5e Minor 2025-03-25 12:29:46 -04:00
Raymond Hill
69ff3ca6fb Make Firefox dev build auto-update 2025-03-25 12:21:04 -04:00
Raymond Hill
231269808d New revision for dev build 2025-03-25 12:14:27 -04:00
Raymond Hill
419786feb7 Update changelog 2025-03-25 12:14:08 -04:00
Raymond Hill
68a256bdde Improve trusted-prevent-dom-bypass scriptlet 2025-03-25 12:12:00 -04:00
Raymond Hill
5e9737d38e [mv3] Allow copy/paste troubleshooting info 2025-03-25 08:32:42 -04:00
Raymond Hill
d0c028386a Import translation work from https://crowdin.com/project/ublock 2025-03-25 08:23:27 -04:00
Raymond Hill
e100f9e85c Import translation work from https://crowdin.com/project/ublock 2025-03-25 08:20:43 -04:00
Raymond Hill
620678fc17 Make Firefox dev build auto-update 2025-03-24 12:32:08 -04:00
Raymond Hill
3520c2fd9e New revision for dev build 2025-03-24 12:23:59 -04:00
Raymond Hill
d18311213d Improve jsonl-prune-... scriptlets 2025-03-24 12:16:10 -04:00
Raymond Hill
484ae68528 Import translation work from https://crowdin.com/project/ublock 2025-03-24 08:17:38 -04:00
Raymond Hill
0fce659bb0 Use Object.hasOwn instead of Object.prototype.hasOwnProperty
Reference:
https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwn
2025-03-24 08:15:09 -04:00
Raymond Hill
0c8de6b550 Fix prevent-innerHTML scriptlet 2025-03-24 07:33:21 -04:00
Raymond Hill
07a4a6a35d Import translation work from https://crowdin.com/project/ublock 2025-03-23 16:37:57 -04:00
Raymond Hill
fbabd4eaac Make Firefox dev build auto-update 2025-03-22 16:15:48 -04:00
Raymond Hill
f09aeef6d9 Update changelog 2025-03-22 16:13:52 -04:00
Raymond Hill
8f78faf980 Import translation work from https://crowdin.com/project/ublock 2025-03-22 16:11:10 -04:00
Raymond Hill
7bded976a8 New revision for dev build 2025-03-22 16:06:50 -04:00
Raymond Hill
a07d01285c Update changelog 2025-03-22 16:06:37 -04:00
Raymond Hill
95a3be9d56 Add jsonl-prune-xhr-response/jsonl-prune-fetch-response scriptlets
As discussed internally with filter list volunteers.
2025-03-22 16:01:43 -04:00
Raymond Hill
27e2d6a513 Import translation work from https://crowdin.com/project/ublock 2025-03-21 13:31:40 -04:00
Raymond Hill
7a2f4960d0 Import translation work from https://crowdin.com/project/ublock 2025-03-21 13:29:30 -04:00
Raymond Hill
ab458b492a [mv3] Bring back element zapper 2025-03-21 13:23:54 -04:00
Raymond Hill
0f2a374585 Make Firefox dev build auto-update 2025-03-20 12:20:46 -04:00
Raymond Hill
a88594599f Update changelog 2025-03-20 12:13:58 -04:00
Raymond Hill
2774dfe38f Update changelog 2025-03-20 12:11:05 -04:00
Raymond Hill
88fa550a96 Improve [json-prune|trusted-replace]-fetch-response scriptlets
Output more information to the logger in verbose mode.
2025-03-20 12:06:58 -04:00
Raymond Hill
451e1c24a4 New revision for dev build 2025-03-20 12:05:37 -04:00
Raymond Hill
5b81369fc2 bidiTrie is hardcoded
Thus no need to threat it as if it was a changing parameter.
2025-03-20 12:03:17 -04:00
Raymond Hill
7dba69dc48 New revision for statble release 2025-03-20 07:37:44 -04:00
Raymond Hill
e7651f73f4 Make Firefox dev build auto-update 2025-03-20 07:36:34 -04:00
Raymond Hill
d8cda00cd3 Update changelog 2025-03-20 07:23:48 -04:00
Raymond Hill
b93871117c New revision for dev build 2025-03-20 07:22:50 -04:00
Raymond Hill
76b80baaea Fix TypedArray overflow
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/3582
2025-03-20 07:14:38 -04:00
Raymond Hill
94f73015ed Make Firefox dev build auto-update 2025-03-19 12:51:26 -04:00
Raymond Hill
18349292a6 Improve logging ability in new prevent-innerHTML scriptlet 2025-03-19 12:43:36 -04:00
Raymond Hill
eda245a1a6 Update changelog 2025-03-19 12:37:52 -04:00
Raymond Hill
ebec5a1865 New revision for dev build 2025-03-19 12:36:21 -04:00
Raymond Hill
fe744816f1 Add prevent-innerHTML scriptlet
@description
Conditionally prevent assignment to `innerHTML` property.

@param [selector]
Optional. The element must matches `selector` for the prevention to take
place.

@param [pattern]
Optional. A pattern to match against the assigned value. The pattern can be
a plain string, or a regex. Prepend with `!` to reverse the match condition.

As discussed with filter list volunteers.
2025-03-19 12:34:03 -04:00
Raymond Hill
98b011f64c [mv3] Add support for explicit generichide filter option
`generichide` option is implicitly enforced on all sites unless an
exception overrides `generichide`. Though rare, sometimes a
`generichide` exception needs to be overridden so that generic
cosmetic filtering is made possible on a specific site.

This commit is to add support for restoring generic cosmetic
filtering on sites which were excluded through a `generichide`
exception.

Concretely, this is needed to ensure the test suite can properly
verify that generic cosmetic filtering is working when the
filtering mode is set to "complete":

||ublockorigin.github.io^$generichide,important
2025-03-18 17:15:35 -04:00
Raymond Hill
839e240ec1 New stable release version 2025-03-17 16:22:53 -04:00
Raymond Hill
dfe3d48fa3 Update changelog 2025-03-17 08:06:03 -04:00
Raymond Hill
d36ea89a02 Improve prevent-set[Timeout|Interval] scriptlets 2025-03-17 08:02:30 -04:00
Raymond Hill
0e8de98411 Make Firefox dev build auto-update 2025-03-16 06:01:17 -04:00
Raymond Hill
99cb84fab6 New revision for release candidate 2025-03-16 05:56:45 -04:00
Raymond Hill
2d559c43db Update changelog 2025-03-16 05:56:17 -04:00
Raymond Hill
4aebdbb0a9 Add quit button to element zapper mode
Related issue:
https://github.com/uBlockOrigin/uBlock-issues/issues/1968

Given the availability of this new quit button, the element zapper
will now default to stick around after zapping an element.
2025-03-16 05:50:53 -04:00
Raymond Hill
fba662421d [mv3] Make it easier to add filters for testing purpose 2025-03-15 15:06:51 -04:00
Raymond Hill
c3187d85e8 [mv3] Avoid re-entrance when registering content scripts 2025-03-15 13:29:26 -04:00
Raymond Hill
4d12ac788c Make Firefox dev build auto-update 2025-03-15 08:06:22 -04:00
Raymond Hill
19cc3b127a New revision for release candidate 2025-03-15 07:53:37 -04:00
Raymond Hill
1e2a7072d8 Update changelog 2025-03-15 07:53:02 -04:00
Raymond Hill
9e946ce0c3 Improve trusted-override-element-method scriptlet
As discussed with filter list maintainers:
https://github.com/uBlockOrigin/uBlock-discussions/discussions/933
2025-03-15 07:50:28 -04:00
Raymond Hill
b98a8d5c02 [mv3] Remove stray test filters 2025-03-14 12:29:01 -04:00
Raymond Hill
e84d3cd7a3 Make Firefox dev build auto-update 2025-03-14 11:06:11 -04:00
434 changed files with 28592 additions and 12463 deletions

7
.github/workflows/RELEASE.HEAD.md vendored Normal file
View File

@@ -0,0 +1,7 @@
[Commits to Master Since This Release](https://github.com/gorhill/uBlock/compare/%version%...master)
#### How to Install the Developer Build:
- **Firefox**: Signing pending <!-- Download the build from [uBlock0_%version%.firefox.signed.xpi](https://github.com/gorhill/uBlock/releases/download/%version%/uBlock0_%version%.firefox.signed.xpi). -->
uBO works best on Gecko-based browsers, check out [why](https://github.com/gorhill/uBlock/wiki/uBlock-Origin-works-best-on-Firefox).
- **Chromium**: Install directly from the [Chrome Web Store](https://chromewebstore.google.com/detail/ublock-origin-development/cgbcahbpdhpcegmbfconppldiemgcoii).

View File

@@ -29,12 +29,11 @@ jobs:
run: |
tools/make-chromium.sh ${{ env.VERSION }}
tools/make-firefox.sh ${{ env.VERSION }}
tools/make-thunderbird.sh ${{ env.VERSION }}
- name: Assemble release notes
run: |
> release.body.txt
grep -m1 -B10000 -- "----------" CHANGELOG.md >> release.body.txt
sed -e 's/%version%/${{ env.VERSION }}/g' RELEASE.HEAD.md >> release.body.txt
sed -e 's/%version%/${{ env.VERSION }}/g' .github/workflows/RELEASE.HEAD.md >> release.body.txt
- name: Create GitHub release
id: create_release
uses: softprops/action-gh-release@v2
@@ -49,4 +48,3 @@ jobs:
files: |
dist/build/uBlock0_${{ env.VERSION }}.chromium.zip
dist/build/uBlock0_${{ env.VERSION }}.firefox.xpi
dist/build/uBlock0_${{ env.VERSION }}.thunderbird.xpi

6
.gitmodules vendored Normal file
View File

@@ -0,0 +1,6 @@
[submodule "platform/mv3/extension/lib/codemirror/codemirror-ubol"]
path = platform/mv3/extension/lib/codemirror/codemirror-ubol
url = https://github.com/gorhill/codemirror-ubol.git
[submodule "publish-extension"]
path = publish-extension
url = https://github.com/gorhill/publish-extension.git

View File

@@ -1,3 +1,110 @@
- [Improve `href-sanitizer` scriptlet](https://github.com/gorhill/uBlock/commit/a43d1d8c42)
- [Fix `editInboundObjectFn` utility scriptlet](https://github.com/gorhill/uBlock/commit/d376adaae8)
- [Improve `trusted-replace-argument` scriptlet](https://github.com/gorhill/uBlock/commit/52bc354bce)
- [Add ability to test against regex in JSONPath expressions](https://github.com/gorhill/uBlock/commit/f36d2b8496)
- [Improve `proxy-apply` utility scriptlet](https://github.com/gorhill/uBlock/commit/dd4f764920)
- [Fix `removeparam` for multiple query parameters with same name](https://github.com/gorhill/uBlock/commit/3e5ea3b03f)
- [Improve `trusted-click-element` scriptlet](https://github.com/gorhill/uBlock/commit/9aa91ba111)
- [Improve `google-ima` shim](https://github.com/gorhill/uBlock/commit/8de47f250d)
- [Add back a uBO-specific version of "CERT.PL's Warning List"](https://github.com/gorhill/uBlock/commit/87dddb7d78)
----------
# 1.66.4
- [Fix potential infinite loop when scanning for `$` anchor](https://github.com/gorhill/uBlock/commit/889c0eb208)
- [Allow generic exception for `replace=` option](https://github.com/gorhill/uBlock/commit/52dba4116e)
----------
# 1.66.2
- [Fix version snafu](https://github.com/gorhill/uBlock/commit/50cb780107)
----------
# 1.66.0
- [Improve `prevent-fetch` scriptlet](https://github.com/gorhill/uBlock/commit/d2bce26e7d)
- [Add support to strict-block from `ipaddress=` option](https://github.com/gorhill/uBlock/commit/6327aae56c)
- [Improve rendering with high-contrast theme](https://github.com/gorhill/uBlock/commit/5d7e5ee3a0) (fix suggested by @emv33)
- [Fix undue fetch from remote server at first install](https://github.com/gorhill/uBlock/commit/9327e19233)
- [Improve compatibility of `uritransform=` with DNR syntax](https://github.com/gorhill/uBlock/commit/aaf35d9d71)
- [Allow usage of `csp=`/`permissions=` with resource type object](https://github.com/gorhill/uBlock/commit/07e9f805bb)
- [JSONPath: Add ability to select root node for appending/modifying](https://github.com/gorhill/uBlock/commit/faff035203)
- [JSONPath: Add ability to substitute a pattern within a string value](https://github.com/gorhill/uBlock/commit/38ca6d41ff)
- [Remove "CERT.PL's Warning List" from stock lists](https://github.com/gorhill/uBlock/commit/e713e133eb)
- [Fix incorrect CNAME-related test in advanced settings](https://github.com/gorhill/uBlock/commit/171ddd3e06)
- [Remove "AdGuard Tracking Protection"from stock list](https://github.com/gorhill/uBlock/commit/14a9572c86)
- [Add filter list for experimental filters](https://github.com/gorhill/uBlock/commit/d88814bc12)
- [Improve `fingerprint2.js` shim](https://github.com/gorhill/uBlock/commit/7d9317bb17)
- [Make `google-ima` a valid injectable scriptlet](https://github.com/gorhill/uBlock/commit/47cbb43a0e)
- [Improve `abort-current-script` scriptlet](https://github.com/gorhill/uBlock/commit/fef50e59f2)
- [Fix potential exception in procedural operator `:matches-attr`](https://github.com/gorhill/uBlock/commit/e07e7bbd09)
- [Improve reporting of `reason` option in strict-blocked pages](https://github.com/gorhill/uBlock/commit/b7510eee61)
- [Improve `prevent-innerHTML` scriptlet](https://github.com/gorhill/uBlock/commit/b0396029bd)
----------
# 1.65.0
## Fixes / changes
- [Reset `important` option flag at `header` evaluation time](https://github.com/gorhill/uBlock/commit/66b68b4442)
- [Fix broken reverse lookup of filter lists](https://github.com/gorhill/uBlock/commit/527b4a201f)
- [Add `[trusted-]edit-inbound-object` scriptlets](https://github.com/gorhill/uBlock/commit/6e466cf945)
- [Improve `remove-cookie` scriptlet](https://github.com/gorhill/uBlock/commit/0a8ea58bb7)
- [Add `json-edit`-related scriptlets](https://github.com/gorhill/uBlock/commit/87e0434c90)
- [Improve `trusted-set-cookie` scriptlet](https://github.com/gorhill/uBlock/commit/3a2bb62519)
- [Force cache bypass reload when no-scripting switch is toggled](https://github.com/gorhill/uBlock/commit/4affe343dd)
- [Improve `jsonl[...]` suite of scriptlets](https://github.com/gorhill/uBlock/commit/ed9999efd6)
- [Add support for network filter option `message`](https://github.com/gorhill/uBlock/commit/d8298bb067)
- [Complete support for reporing strict-block messages](https://github.com/gorhill/uBlock/commit/253ef7ade3)
- [Make `header=` syntax compatible with DNR rules](https://github.com/gorhill/uBlock/commit/408b538e75)
- [Counter CodeMirror's `pointer-events: none` on scrollbars](https://github.com/gorhill/uBlock/commit/c44f043ed3)
- [Fix element picker issue with explicit dark theme](https://github.com/gorhill/uBlock/commit/0130fdf4a1)
----------
# 1.64.0
## Fixes / changes
- [Use custom blank page for embedded iframe in dashboard](https://github.com/gorhill/uBlock/commit/8cd6212867)
- [Use `color-scheme` `meta` tag, as suggested](https://github.com/gorhill/uBlock/commit/5c029b3532)
- [Bring zapper look in line with uBO Lite's zapper](https://github.com/gorhill/uBlock/commit/3f59f94b60)
- [Ignore `start_page` transition for popup-blocking purpose](https://github.com/gorhill/uBlock/commit/0243a141a7)
- [Exclude `chrome:` as valid openers for popup candidates](https://github.com/gorhill/uBlock/commit/59f4aca010)
- [Fetch diff patches from "reliable" servers only](https://github.com/gorhill/uBlock/commit/8b964a8c54)
- [Add `trusted-create-html` scriptlet](https://github.com/gorhill/uBlock/commit/20dd606504)
- [Mind potential race condition when dynamically registering scriptlets](https://github.com/gorhill/uBlock/commit/15e832da8a)
- [Fix undue unchecking of setting in "My filters"](https://github.com/gorhill/uBlock/commit/2bb6999e3f)
- [Add path support as target option in static extended filtering](https://github.com/gorhill/uBlock/commit/8b696a691a)
- [Add `trusted-prevent-fetch` scriptlet](https://github.com/gorhill/uBlock/commit/4ce26b63ff)
- [Code viewer shouldn't be maximizable](https://github.com/gorhill/uBlock/commit/97e740bd2c)
- [Add `json-edit` suite of scriptlets; extend `replace=` option](https://github.com/gorhill/uBlock/commit/b18daa53aa)
- [Improve `trusted-prevent-dom-bypass` scriptlet](https://github.com/gorhill/uBlock/commit/68a256bdde)
- [Add `jsonl-prune-xhr-response`/`jsonl-prune-fetch-response` scriptlets](https://github.com/gorhill/uBlock/commit/95a3be9d56)
- [Improve `[json-prune|trusted-replace]-fetch-response` scriptlets](https://github.com/gorhill/uBlock/commit/88fa550a96)
----------
# 1.63.2
## Fixes / changes
- [Fix TypedArray overflow](https://github.com/gorhill/uBlock/commit/76b80baaea)
- [Add prevent-innerHTML scriptlet](https://github.com/gorhill/uBlock/commit/fe744816f1)
----------
# 1.63.0
## Fixes / changes
- [Improve `prevent-set[Timeout|Interval]` scriptlets](https://github.com/gorhill/uBlock/commit/d36ea89a02)
- [Add quit button to element zapper mode](https://github.com/gorhill/uBlock/commit/4aebdbb0a9)
- [Improve `trusted-override-element-method` scriptlet](https://github.com/gorhill/uBlock/commit/9e946ce0c3)
- [Disable obsolete cache-control workaround for Firefox](https://github.com/gorhill/uBlock/commit/34cea70924)
- [Improve `overlay-buster` scriptlet](https://github.com/gorhill/uBlock/commit/fc231998b9)
- [Add ability to inject scriptlets according to origin of ancestor contexts](https://github.com/gorhill/uBlock/commit/a483f7955f)

121
Makefile
View File

@@ -2,13 +2,24 @@
run_options := $(filter-out $@,$(MAKECMDGOALS))
.PHONY: all clean cleanassets test lint chromium opera firefox npm dig \
mv3-chromium mv3-firefox mv3-edge \
compare maxcost medcost mincost modifiers record wasm
mv3-chromium mv3-firefox mv3-edge mv3-safari ubol-codemirror \
compare maxcost medcost mincost modifiers record wasm \
publish-chromium publish-edge publish-firefox \
publish-dev-chromium publish-dev-firefox \
upload-firefox upload-dev-firefox
sources := $(wildcard assets/* assets/*/* dist/version src/* src/*/* src/*/*/* src/*/*/*/*)
platform := $(wildcard platform/* platform/*/* platform/*/*/* platform/*/*/*/* platform/*/*/*/*/*)
sources := ./dist/version $(shell find ./assets -type f) $(shell find ./src -type f)
platform := $(wildcard platform/*/*)
assets := dist/build/uAssets
mv3-data := $(wildcard dist/build/mv3-data/*)
mv3-sources := \
$(shell find ./src -type f) \
$(wildcard platform/mv3/*) \
$(shell find ./platform/mv3/extension -name codemirror-ubol -prune -o -type f) \
platform/mv3/extension/lib/codemirror/codemirror-ubol/dist/cm6.bundle.ubol.min.js
mv3-data := $(shell find ./dist/build/mv3-data -type f)
mv3-edge-deps := $(wildcard platform/mv3/edge/*)
mv3-safari-deps := $(wildcard platform/mv3/safari/*)
all: chromium firefox npm
@@ -44,15 +55,6 @@ init: node_modules
lint: init
npm run lint
test: npm
cd dist/build/uBlock0.npm && npm run test
test-full-battery: npm
cd dist/build/uBlock0.npm && npm run test-full-battery
check-leaks: npm
cd dist/build/uBlock0.npm && npm run check-leaks
dist/build/uBlock0.dig: tools/make-nodejs.sh $(sources) $(platform) $(assets)
tools/make-dig.sh
@@ -65,20 +67,28 @@ dig-snfe: dig
dist/build/mv3-data:
mkdir -p dist/build/mv3-data
dist/build/uBOLite.chromium: tools/make-mv3.sh $(sources) $(platform) $(mv3-data) dist/build/mv3-data
ubol-codemirror:
$(MAKE) -sC platform/mv3/extension/lib/codemirror/codemirror-ubol/ ubol.bundle
dist/build/uBOLite.chromium: tools/make-mv3.sh $(mv3-sources) $(platform) $(mv3-data) dist/build/mv3-data
tools/make-mv3.sh chromium
mv3-chromium: dist/build/uBOLite.chromium
mv3-chromium: ubol-codemirror dist/build/uBOLite.chromium
dist/build/uBOLite.firefox: tools/make-mv3.sh $(sources) $(platform) $(mv3-data) dist/build/mv3-data
dist/build/uBOLite.firefox: tools/make-mv3.sh $(mv3-sources) $(platform) $(mv3-data) dist/build/mv3-data
tools/make-mv3.sh firefox
mv3-firefox: dist/build/uBOLite.firefox
mv3-firefox: ubol-codemirror dist/build/uBOLite.firefox
dist/build/uBOLite.edge: tools/make-mv3.sh tools/make-edge.mjs $(sources) $(platform) $(mv3-data) dist/build/mv3-data
dist/build/uBOLite.edge: tools/make-mv3.sh $(mv3-sources) $(mv3-edge-deps) $(mv3-data) dist/build/mv3-data
tools/make-mv3.sh edge
mv3-edge: dist/build/uBOLite.edge
mv3-edge: ubol-codemirror dist/build/uBOLite.edge
dist/build/uBOLite.safari: tools/make-mv3.sh $(mv3-sources) $(mv3-safari-deps) $(mv3-data) dist/build/mv3-data
tools/make-mv3.sh safari
mv3-safari: ubol-codemirror dist/build/uBOLite.safari
dist/build/uAssets:
tools/pull-assets.sh
@@ -89,6 +99,77 @@ clean:
cleanassets:
rm -rf dist/build/mv3-data dist/build/uAssets
# Usage: make publish-publish version=?
publish-chromium:
node publish-extension/publish-chromium.js \
ghowner=gorhill \
ghrepo=uBlock \
ghtag=$(version) \
ghasset=chromium \
storeid=cjpalhdlnbpafiamejdnhcphjbkeiagm
# Usage: make publish-edge version=?
publish-edge:
node publish-extension/publish-edge.js \
ghowner=gorhill \
ghrepo=uBlock \
ghtag=$(version) \
ghasset=chromium \
datebasedmajor=1 \
storeid=odfafepnkmbhccpbejgmiehpchacaeak \
productid=$(shell secret-tool lookup token ubo_edge_id)
# Usage: make publish-firefox version=?
publish-firefox:
node publish-extension/publish-firefox.js \
ghowner=gorhill \
ghrepo=uBlock \
ghtag=$(version) \
ghasset=firefox \
storeid=uBlock0@raymondhill.net \
channel=listed
# Usage: make publish-dev-chromium version=?
publish-dev-chromium:
node publish-extension/publish-chromium.js \
ghowner=gorhill \
ghrepo=uBlock \
ghtag=$(version) \
ghasset=chromium \
storeid=cgbcahbpdhpcegmbfconppldiemgcoii
# Usage: make publish-dev-firefox version=?
publish-dev-firefox:
node publish-extension/publish-firefox.js \
ghowner=gorhill \
ghrepo=uBlock \
ghtag=$(version) \
ghasset=firefox \
storeid=uBlock0@raymondhill.net \
channel=unlisted \
updatepath=./dist/firefox/updates.json
# Usage: make upload-firefox version=?
upload-firefox:
node publish-extension/upload-firefox.js \
ghowner=gorhill \
ghrepo=uBlock \
ghtag=$(version) \
ghasset=firefox \
storeid=uBlock0@raymondhill.net \
channel=listed
# Usage: make upload-dev-firefox version=?
upload-dev-firefox:
node publish-extension/upload-firefox.js \
ghowner=gorhill \
ghrepo=uBlock \
ghtag=$(version) \
ghasset=firefox \
storeid=uBlock0@raymondhill.net \
channel=unlisted \
updatepath=./dist/firefox/updates.json
# Not real targets, just convenient for auto-completion at shell prompt
compare:
@echo

View File

@@ -15,25 +15,15 @@
</sub>
uBlock Origin (uBO)
</h1>
<p align="center">
<sub><a href="https://github.com/gorhill/uBlock/wiki/uBlock-Origin-is-completely-unrelated-to-the-web-site-ublock.org"><b>BEWARE!</b> uBO is (and has always been) COMPLETELY UNRELATED to the website <code>ublock.org</code></a>.</sub>
</p>
***
<p align="center">
<a href="https://addons.mozilla.org/addon/ublock-origin/"><img src="https://user-images.githubusercontent.com/585534/107280546-7b9b2a00-6a26-11eb-8f9f-f95932f4bfec.png" alt="Get uBlock Origin for Firefox"></a>
<a href="https://microsoftedge.microsoft.com/addons/detail/ublock-origin/odfafepnkmbhccpbejgmiehpchacaeak"><img src="https://user-images.githubusercontent.com/585534/107280673-a5ece780-6a26-11eb-9cc7-9fa9f9f81180.png" alt="Get uBlock Origin for Microsoft Edge"></a>
<a href="https://addons.opera.com/extensions/details/ublock/"><img src="https://user-images.githubusercontent.com/585534/107280692-ac7b5f00-6a26-11eb-85c7-088926504452.png" alt="Get uBlock Origin for Opera"></a>
<a href="https://addons.thunderbird.net/thunderbird/addon/ublock-origin/"><img src="https://user-images.githubusercontent.com/124740436/235314672-73243149-3683-4407-a2d5-ad0f2b08bc17.png" alt="Get uBlock Origin for Thunderbird"></a>
</p>
***
<p align="center">
<a href="https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm"><img src="https://user-images.githubusercontent.com/585534/107280622-91a8ea80-6a26-11eb-8d07-77c548b28665.png" alt="Get uBlock Origin for Chromium"></a><br>
<sub><a href="https://github.com/uBlockOrigin/uBlock-issues/wiki/About-Google-Chrome's-%22This-extension-may-soon-no-longer-be-supported%22"><b>IMPORTANT</b>: About Google Chrome's "This extension may soon no longer be supported"</a></sub>
</p>
| Browser | Install from ... | Status |
| :-------: | ---------------- | ------ |
| <img src="https://github.com/user-attachments/assets/b0136512-56a5-4856-8c50-4971c957a24f" alt="Get uBlock Origin for Firefox"> | <a href="https://addons.mozilla.org/addon/ublock-origin/">Firefox Add-ons</a> | [uBO works best on Firefox](https://github.com/gorhill/uBlock/wiki/uBlock-Origin-works-best-on-Firefox) |
| <img src="https://github.com/user-attachments/assets/3a7569f8-688b-4eb1-a643-8d0fe173aefe" alt="Get uBlock Origin for Microsoft Edge"> | <a href="https://microsoftedge.microsoft.com/addons/detail/ublock-origin/odfafepnkmbhccpbejgmiehpchacaeak">Edge Add-ons</a> |
| <img src="https://github.com/user-attachments/assets/938f080c-fe64-4e48-8b89-4bfceabb56e6" alt="Get uBlock Origin for Opera"> | <a href="https://addons.opera.com/extensions/details/ublock/">Opera Add-ons</a> |
| <img src="https://github.com/user-attachments/assets/5463ef88-873b-4516-8514-5277664cfde7" alt="Get uBlock Origin for Chromium"> | <a href="https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm">Chrome Web Store</a> | <a href="https://github.com/uBlockOrigin/uBlock-issues/wiki/About-Google-Chrome's-%22This-extension-may-soon-no-longer-be-supported%22">About Google Chrome's "This extension may soon no longer be supported"</a><br>End of support on Chrome 139 |
| <img src="https://github.com/user-attachments/assets/2e9037c4-836d-44c1-a716-ba96e89daaff" alt="Get uBlock Origin for Thunderbird"> | <a href="https://addons.thunderbird.net/thunderbird/addon/ublock-origin/">Thunderbird Add-ons</a> | [No longer updated and stuck at 1.49.2.](https://github.com/uBlockOrigin/uBlock-issues/issues/2928) Later versions require "GitHub - Releases". |
| <img src="https://upload.wikimedia.org/wikipedia/commons/c/c2/GitHub_Invertocat_Logo.svg" height="50" alt="Get uBlock Origin through GitHub"> | <a href="https://github.com/gorhill/uBlock/releases">GitHub - Releases</a> | Stable and development versions on Firefox, Chromium MV2, and Thunderbird. Must be placed manually into web browsers; the Chromium and Thunderbird versions usually won't auto-update.
***
@@ -105,7 +95,7 @@ In Thunderbird, uBlock Origin does not affect emails, just feeds.
[Chrome Web Store][Chrome]
[Microsoft Edge Add-ons][Edge] (Published by: [Nicole Rolls][Nicole Rolls])
[Microsoft Edge Add-ons][Edge] (Published by [Nicole Rolls][Nicole Rolls] until version 1.62. Ownership transfer at version 1.64.)
[Opera Add-ons][Opera]
@@ -148,7 +138,7 @@ If you ever want to contribute something, think about the people working hard to
[Peter Lowe's Blocklist]: https://pgl.yoyo.org/adservers/
[Malicious Blocklist]: https://gitlab.com/malware-filter/urlhaus-filter#malicious-url-blocklist
[Performance]: https://www.debugbear.com/blog/chrome-extension-performance-2021#how-do-ad-blockers-and-privacy-tools-affect-browser-performance
[Performance]: https://www.debugbear.com/blog/chrome-extensions-website-performance#the-impact-of-ad-blocking-on-website-performance
[EasyPrivacy]: https://easylist.to/#easyprivacy
[Thunderbird]: https://addons.thunderbird.net/thunderbird/addon/ublock-origin/
[Chrome Dev]: https://chromewebstore.google.com/detail/ublock-origin-development/cgbcahbpdhpcegmbfconppldiemgcoii

View File

@@ -1,12 +0,0 @@
[Commits to Master Since This Release](https://github.com/gorhill/uBlock/compare/%version%...master)
#### How to Install the Developer Build:
- **Firefox**: Download the build from [uBlock0_%version%.firefox.signed.xpi](https://github.com/gorhill/uBlock/releases/download/%version%/uBlock0_%version%.firefox.signed.xpi).
- uBO works best on Gecko-based browsers, check out [why](https://github.com/gorhill/uBlock/wiki/uBlock-Origin-works-best-on-Firefox).
- **Chromium**: Install directly from the [Chrome Web Store](https://chromewebstore.google.com/detail/ublock-origin-development/cgbcahbpdhpcegmbfconppldiemgcoii).
- **Thunderbird**: Download [uBlock0_%version%.thunderbird.xpi](https://github.com/gorhill/uBlock/releases/download/%version%/uBlock0_%version%.thunderbird.xpi) and drag it into Thunderbird's _Add-ons Manager_ (requires Thunderbird 91+).
- **Node.js**: You can import from [npm](https://www.npmjs.com/package/@gorhill/ubo-core) or download and unzip [uBlock0_%version%.npm.tgz](https://github.com/gorhill/uBlock/releases/download/%version%/uBlock0_%version%.npm.tgz).

View File

@@ -52,6 +52,10 @@
"https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/filters.min.txt",
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/filters.min.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://github.com/uBlockOrigin/uAssets"
},
"ublock-badware": {
@@ -71,6 +75,10 @@
"https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/badware.min.txt",
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/badware.min.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://github.com/uBlockOrigin/uAssets",
"instructionURL": "https://github.com/gorhill/uBlock/wiki/Badware-risks"
},
@@ -91,6 +99,10 @@
"https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/privacy.min.txt",
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/privacy.min.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://github.com/uBlockOrigin/uAssets"
},
"ublock-unbreak": {
@@ -109,6 +121,10 @@
"https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/unbreak.min.txt",
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/unbreak.min.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://github.com/uBlockOrigin/uAssets"
},
"ublock-quick-fixes": {
@@ -127,6 +143,28 @@
"https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/quick-fixes.min.txt",
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/quick-fixes.min.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://github.com/uBlockOrigin/uAssets"
},
"ublock-experimental": {
"content": "filters",
"group": "default",
"off": true,
"title": "uBlock filters Experimental",
"contentURL": "https://ublockorigin.github.io/uAssets/filters/experimental.txt",
"cdnURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/experimental.min.txt",
"https://ublockorigin.pages.dev/filters/experimental.min.txt",
"https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/experimental.min.txt",
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/experimental.min.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://github.com/uBlockOrigin/uAssets"
},
"adguard-generic": {
@@ -163,6 +201,10 @@
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/thirdparties/easylist.txt",
"https://ublockorigin.pages.dev/thirdparties/easylist.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://easylist.to/"
},
"adguard-spyware-url": {
@@ -174,14 +216,6 @@
"contentURL": "https://filters.adtidy.org/extension/ublock/filters/17.txt",
"supportURL": "https://github.com/AdguardTeam/AdguardFilters#adguard-filters"
},
"adguard-spyware": {
"content": "filters",
"group": "privacy",
"off": true,
"title": "AdGuard Tracking Protection",
"contentURL": "https://filters.adtidy.org/extension/ublock/filters/3.txt",
"supportURL": "https://github.com/AdguardTeam/AdguardFilters#adguard-filters"
},
"block-lan": {
"content": "filters",
"group": "privacy",
@@ -212,6 +246,10 @@
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/thirdparties/easyprivacy.txt",
"https://ublockorigin.pages.dev/thirdparties/easyprivacy.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://easylist.to/"
},
"urlhaus-1": {
@@ -478,6 +516,10 @@
"https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/annoyances.min.txt",
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/annoyances.min.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://github.com/uBlockOrigin/uAssets"
},
"dpollock-0": {
@@ -520,7 +562,7 @@
"off": true,
"title": "🇪🇬eg 🇸🇦sa 🇲🇦ma 🇩🇿dz: Liste AR",
"tags": "ads arabic اَلْعَرَبِيَّةُ‎",
"lang": "ar",
"lang": "ar kab",
"contentURL": "https://easylist-downloads.adblockplus.org/Liste_AR.txt",
"supportURL": "https://forums.lanik.us/viewforum.php?f=98"
},
@@ -593,7 +635,7 @@
"off": true,
"title": "🇫🇷fr 🇨🇦ca: AdGuard Français",
"tags": "ads french",
"lang": "ar br ff fr lb oc son",
"lang": "ar br ff fr kab lb oc son",
"contentURL": "https://filters.adtidy.org/extension/ublock/filters/16.txt",
"supportURL": "https://github.com/AdguardTeam/AdguardFilters#adguard-filters"
},
@@ -647,7 +689,7 @@
"off": true,
"title": "🇮🇳in 🇱🇰lk 🇳🇵np: IndianList",
"tags": "ads assamese bengali gujarati hindi kannada malayalam marathi nepali punjabi sinhala tamil telugu",
"lang": "as bn gu hi kn ml mr ne pa si ta te",
"lang": "as bn gu hi kn ml mr ne pa sat si ta te",
"contentURL": "https://easylist-downloads.adblockplus.org/indianlist.txt",
"supportURL": "https://github.com/mediumkreation/IndianList"
},
@@ -694,7 +736,7 @@
"off": true,
"title": "🇮🇹it: EasyList Italy",
"tags": "ads italian",
"lang": "it lij",
"lang": "fur it lij sc",
"contentURL": "https://easylist-downloads.adblockplus.org/easylistitaly.txt",
"supportURL": "https://forums.lanik.us/viewforum.php?f=96"
},
@@ -784,21 +826,20 @@
"off": true,
"title": "🇵🇱pl: Oficjalne Polskie Filtry do uBlocka Origin",
"tags": "ads polish polski",
"lang": "szl pl",
"lang": "szl pl _",
"contentURL": "https://raw.githubusercontent.com/MajkiIT/polish-ads-filter/master/polish-adblock-filters/adblock.txt",
"supportURL": "https://github.com/MajkiIT/polish-ads-filter/issues",
"instructionURL": "https://github.com/MajkiIT/polish-ads-filter#polish-filters-for-adblock-ublock-origin--adguard"
"supportURL": "https://github.com/MajkiIT/polish-ads-filter"
},
"POL-2": {
"POL-3": {
"content": "filters",
"group": "regions",
"parent": "🇵🇱pl: Oficjalne Polskie Filtry",
"off": true,
"title": "🇵🇱pl: Oficjalne polskie filtry przeciwko alertom o Adblocku",
"tags": "ads polish polski",
"title": "🇵🇱pl: CERT.PL's Warning List",
"tags": "malware polish polski",
"lang": "szl pl",
"contentURL": "https://raw.githubusercontent.com/olegwukr/polish-privacy-filters/master/anti-adblock.txt",
"supportURL": "https://github.com/olegwukr/polish-privacy-filters/issues"
"contentURL": "https://hole.cert.pl/domains/v2/domains_ublock.txt",
"supportURL": "https://cert.pl/lista-ostrzezen/"
},
"ROU-1": {
"content": "filters",
@@ -818,7 +859,7 @@
"parent": "🇷🇺ru 🇺🇦ua 🇺🇿uz 🇰🇿kz: RU AdList",
"off": true,
"title": "🇷🇺ru 🇺🇦ua 🇺🇿uz 🇰🇿kz: RU AdList",
"tags": "ads belarusian беларуская kazakh tatar russian русский ukrainian українська uzbek",
"tags": "ads belarusian беларуская kazakh tatar russian русский ukrainian українська uzbek uk",
"lang": "be kk tt ru uz",
"contentURL": "https://raw.githubusercontent.com/easylist/ruadlist/master/RuAdList-uBO.txt",
"cdnURLs": [
@@ -913,11 +954,11 @@
"content": "filters",
"group": "regions",
"off": true,
"title": "🇺🇦ua: Ukrainian Filters",
"title": "🇺🇦ua: AdGuard Ukrainian",
"tags": "ads ukraine україна",
"lang": "uk",
"contentURL": "https://raw.githubusercontent.com/ukrainianfilters/lists/main/combined/uBO/uBO.txt",
"supportURL": "https://github.com/ukrainianfilters/lists"
"contentURL": "https://filters.adtidy.org/extension/ublock/filters/23.txt",
"supportURL": "https://github.com/AdguardTeam/AdguardFilters#adguard-filters"
},
"VIE-1": {
"content": "filters",

View File

@@ -52,6 +52,10 @@
"https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/filters.min.txt",
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/filters.min.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://github.com/uBlockOrigin/uAssets"
},
"ublock-badware": {
@@ -71,6 +75,10 @@
"https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/badware.min.txt",
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/badware.min.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://github.com/uBlockOrigin/uAssets",
"instructionURL": "https://github.com/gorhill/uBlock/wiki/Badware-risks"
},
@@ -91,6 +99,10 @@
"https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/privacy.min.txt",
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/privacy.min.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://github.com/uBlockOrigin/uAssets"
},
"ublock-unbreak": {
@@ -109,6 +121,10 @@
"https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/unbreak.min.txt",
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/unbreak.min.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://github.com/uBlockOrigin/uAssets"
},
"ublock-quick-fixes": {
@@ -127,6 +143,28 @@
"https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/quick-fixes.min.txt",
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/quick-fixes.min.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://github.com/uBlockOrigin/uAssets"
},
"ublock-experimental": {
"content": "filters",
"group": "default",
"off": true,
"title": "uBlock filters Experimental",
"contentURL": "https://ublockorigin.github.io/uAssets/filters/experimental.txt",
"cdnURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/experimental.min.txt",
"https://ublockorigin.pages.dev/filters/experimental.min.txt",
"https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/experimental.min.txt",
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/experimental.min.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://github.com/uBlockOrigin/uAssets"
},
"adguard-generic": {
@@ -163,6 +201,10 @@
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/thirdparties/easylist.txt",
"https://ublockorigin.pages.dev/thirdparties/easylist.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://easylist.to/"
},
"adguard-spyware-url": {
@@ -174,14 +216,6 @@
"contentURL": "https://filters.adtidy.org/extension/ublock/filters/17.txt",
"supportURL": "https://github.com/AdguardTeam/AdguardFilters#adguard-filters"
},
"adguard-spyware": {
"content": "filters",
"group": "privacy",
"off": true,
"title": "AdGuard Tracking Protection",
"contentURL": "https://filters.adtidy.org/extension/ublock/filters/3.txt",
"supportURL": "https://github.com/AdguardTeam/AdguardFilters#adguard-filters"
},
"block-lan": {
"content": "filters",
"group": "privacy",
@@ -212,6 +246,10 @@
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/thirdparties/easyprivacy.txt",
"https://ublockorigin.pages.dev/thirdparties/easyprivacy.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://easylist.to/"
},
"urlhaus-1": {
@@ -478,6 +516,10 @@
"https://cdn.jsdelivr.net/gh/uBlockOrigin/uAssetsCDN@main/filters/annoyances.min.txt",
"https://cdn.statically.io/gh/uBlockOrigin/uAssetsCDN/main/filters/annoyances.min.txt"
],
"patchURLs": [
"https://ublockorigin.github.io/uAssetsCDN/filters/",
"https://ublockorigin.pages.dev/filters/"
],
"supportURL": "https://github.com/uBlockOrigin/uAssets"
},
"dpollock-0": {
@@ -520,7 +562,7 @@
"off": true,
"title": "🇪🇬eg 🇸🇦sa 🇲🇦ma 🇩🇿dz: Liste AR",
"tags": "ads arabic اَلْعَرَبِيَّةُ‎",
"lang": "ar",
"lang": "ar kab",
"contentURL": "https://easylist-downloads.adblockplus.org/Liste_AR.txt",
"supportURL": "https://forums.lanik.us/viewforum.php?f=98"
},
@@ -593,7 +635,7 @@
"off": true,
"title": "🇫🇷fr 🇨🇦ca: AdGuard Français",
"tags": "ads french",
"lang": "ar br ff fr lb oc son",
"lang": "ar br ff fr kab lb oc son",
"contentURL": "https://filters.adtidy.org/extension/ublock/filters/16.txt",
"supportURL": "https://github.com/AdguardTeam/AdguardFilters#adguard-filters"
},
@@ -647,7 +689,7 @@
"off": true,
"title": "🇮🇳in 🇱🇰lk 🇳🇵np: IndianList",
"tags": "ads assamese bengali gujarati hindi kannada malayalam marathi nepali punjabi sinhala tamil telugu",
"lang": "as bn gu hi kn ml mr ne pa si ta te",
"lang": "as bn gu hi kn ml mr ne pa sat si ta te",
"contentURL": "https://easylist-downloads.adblockplus.org/indianlist.txt",
"supportURL": "https://github.com/mediumkreation/IndianList"
},
@@ -694,7 +736,7 @@
"off": true,
"title": "🇮🇹it: EasyList Italy",
"tags": "ads italian",
"lang": "it lij",
"lang": "fur it lij sc",
"contentURL": "https://easylist-downloads.adblockplus.org/easylistitaly.txt",
"supportURL": "https://forums.lanik.us/viewforum.php?f=96"
},
@@ -784,21 +826,20 @@
"off": true,
"title": "🇵🇱pl: Oficjalne Polskie Filtry do uBlocka Origin",
"tags": "ads polish polski",
"lang": "szl pl",
"lang": "szl pl _",
"contentURL": "https://raw.githubusercontent.com/MajkiIT/polish-ads-filter/master/polish-adblock-filters/adblock.txt",
"supportURL": "https://github.com/MajkiIT/polish-ads-filter/issues",
"instructionURL": "https://github.com/MajkiIT/polish-ads-filter#polish-filters-for-adblock-ublock-origin--adguard"
"supportURL": "https://github.com/MajkiIT/polish-ads-filter"
},
"POL-2": {
"POL-3": {
"content": "filters",
"group": "regions",
"parent": "🇵🇱pl: Oficjalne Polskie Filtry",
"off": true,
"title": "🇵🇱pl: Oficjalne polskie filtry przeciwko alertom o Adblocku",
"tags": "ads polish polski",
"title": "🇵🇱pl: CERT.PL's Warning List",
"tags": "malware polish polski",
"lang": "szl pl",
"contentURL": "https://raw.githubusercontent.com/olegwukr/polish-privacy-filters/master/anti-adblock.txt",
"supportURL": "https://github.com/olegwukr/polish-privacy-filters/issues"
"contentURL": "https://hole.cert.pl/domains/v2/domains_ublock.txt",
"supportURL": "https://cert.pl/lista-ostrzezen/"
},
"ROU-1": {
"content": "filters",
@@ -818,8 +859,8 @@
"parent": "🇷🇺ru 🇺🇦ua 🇺🇿uz 🇰🇿kz: RU AdList",
"off": true,
"title": "🇷🇺ru 🇺🇦ua 🇺🇿uz 🇰🇿kz: RU AdList",
"tags": "ads belarusian беларуская kazakh tatar russian русский ukrainian українська uzbek",
"lang": "be kk tt ru uk uz",
"tags": "ads belarusian беларуская kazakh tatar russian русский ukrainian українська uzbek uk",
"lang": "be kk tt ru uz",
"contentURL": "https://raw.githubusercontent.com/easylist/ruadlist/master/RuAdList-uBO.txt",
"cdnURLs": [
"https://cdn.jsdelivr.net/gh/dimisa-RUAdList/RUAdListCDN@main/lists/ruadlist.ubo.min.txt",
@@ -909,6 +950,16 @@
"contentURL": "https://filters.adtidy.org/extension/ublock/filters/13.txt",
"supportURL": "https://github.com/AdguardTeam/AdguardFilters#adguard-filters"
},
"UKR-0": {
"content": "filters",
"group": "regions",
"off": true,
"title": "🇺🇦ua: AdGuard Ukrainian",
"tags": "ads ukraine україна",
"lang": "uk",
"contentURL": "https://filters.adtidy.org/extension/ublock/filters/23.txt",
"supportURL": "https://github.com/AdguardTeam/AdguardFilters#adguard-filters"
},
"VIE-1": {
"content": "filters",
"group": "regions",

View File

@@ -1,190 +0,0 @@
#!/usr/bin/env python3
import datetime
import json
import os
import re
import requests
import shutil
import subprocess
import sys
import tempfile
import time
import zipfile
from string import Template
# - Download target (raw) uBlock0.chromium.zip from GitHub
# - This is referred to as "raw" package
# - This will fail if not a dev build
# - Upload uBlock0.chromium.zip to Chrome store
# - Publish uBlock0.chromium.zip to Chrome store
# Find path to project root
projdir = os.path.split(os.path.abspath(__file__))[0]
while not os.path.isdir(os.path.join(projdir, '.git')):
projdir = os.path.normpath(os.path.join(projdir, '..'))
# We need a version string to work with
if len(sys.argv) >= 2 and sys.argv[1]:
version = sys.argv[1]
else:
version = input('Github release version: ')
version.strip()
if not re.search('^\d+\.\d+\.\d+(b|rc)\d+$', version):
print('Error: Invalid version string.')
exit(1)
cs_extension_id = 'cgbcahbpdhpcegmbfconppldiemgcoii'
tmpdir = tempfile.TemporaryDirectory()
raw_zip_filename = 'uBlock0_' + version + '.chromium.zip'
raw_zip_filepath = os.path.join(tmpdir.name, raw_zip_filename)
github_owner = 'gorhill'
github_repo = 'uBlock'
# Load/save auth secrets
# The tmp directory is excluded from git
ubo_secrets = dict()
ubo_secrets_filename = os.path.join(projdir, 'tmp', 'ubo_secrets')
if os.path.isfile(ubo_secrets_filename):
with open(ubo_secrets_filename) as f:
ubo_secrets = json.load(f)
def input_secret(prompt, token):
if token in ubo_secrets:
prompt += ''
prompt += ': '
value = input(prompt).strip()
if len(value) == 0:
if token not in ubo_secrets:
print('Token error:', token)
exit(1)
value = ubo_secrets[token]
elif token not in ubo_secrets or value != ubo_secrets[token]:
ubo_secrets[token] = value
exists = os.path.isfile(ubo_secrets_filename)
with open(ubo_secrets_filename, 'w') as f:
json.dump(ubo_secrets, f, indent=2)
if not exists:
os.chmod(ubo_secrets_filename, 0o600)
return value
# GitHub API token
github_token = input_secret('Github token', 'github_token')
github_auth = 'token ' + github_token
#
# Get metadata from GitHub about the release
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release
print('Downloading release info from GitHub...')
release_info_url = 'https://api.github.com/repos/{0}/{1}/releases/tags/{2}'.format(github_owner, github_repo, version)
headers = { 'Authorization': github_auth, }
response = requests.get(release_info_url, headers=headers)
if response.status_code != 200:
print('Error: Release not found: {0}'.format(response.status_code))
exit(1)
release_info = response.json()
#
# Extract URL to raw package from metadata
#
# Find url for uBlock0.chromium.zip
raw_zip_url = ''
for asset in release_info['assets']:
if asset['name'] == raw_zip_filename:
raw_zip_url = asset['url']
if len(raw_zip_url) == 0:
print('Error: Release asset URL not found')
exit(1)
#
# Download raw package from GitHub
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release-asset
print('Downloading raw zip package from GitHub...')
headers = {
'Authorization': github_auth,
'Accept': 'application/octet-stream',
}
response = requests.get(raw_zip_url, headers=headers)
# Redirections are transparently handled:
# http://docs.python-requests.org/en/master/user/quickstart/#redirection-and-history
if response.status_code != 200:
print('Error: Downloading raw package failed -- server error {0}'.format(response.status_code))
exit(1)
with open(raw_zip_filepath, 'wb') as f:
f.write(response.content)
print('Downloaded raw package saved as {0}'.format(raw_zip_filepath))
#
# Upload to Chrome store
#
# Auth tokens
cs_id = input_secret('Chrome store id', 'cs_id')
cs_secret = input_secret('Chrome store secret', 'cs_secret')
cs_refresh = input_secret('Chrome store refresh token', 'cs_refresh')
print('Uploading to Chrome store...')
with open(raw_zip_filepath, 'rb') as f:
print('Generating access token...')
auth_url = 'https://accounts.google.com/o/oauth2/token'
auth_payload = {
'client_id': cs_id,
'client_secret': cs_secret,
'grant_type': 'refresh_token',
'refresh_token': cs_refresh,
}
auth_response = requests.post(auth_url, data=auth_payload)
if auth_response.status_code != 200:
print('Error: Auth failed -- server error {0}'.format(auth_response.status_code))
print(auth_response.text)
exit(1)
response_dict = auth_response.json()
if 'access_token' not in response_dict:
print('Error: Auth failed -- no access token')
exit(1)
# Prepare access token
cs_auth = 'Bearer ' + response_dict['access_token']
headers = {
'Authorization': cs_auth,
'x-goog-api-version': '2',
}
# Upload
print('Uploading package...')
upload_url = 'https://www.googleapis.com/upload/chromewebstore/v1.1/items/{0}'.format(cs_extension_id)
upload_response = requests.put(upload_url, headers=headers, data=f)
f.close()
if upload_response.status_code != 200:
print('Upload failed -- server error {0}'.format(upload_response.status_code))
print(upload_response.text)
exit(1)
response_dict = upload_response.json();
if 'uploadState' not in response_dict or response_dict['uploadState'] != 'SUCCESS':
print('Upload failed -- server error {0}'.format(response_dict['uploadState']))
exit(1)
print('Upload succeeded.')
# Publish
print('Publishing package...')
publish_url = 'https://www.googleapis.com/chromewebstore/v1.1/items/{0}/publish'.format(cs_extension_id)
headers = {
'Authorization': cs_auth,
'x-goog-api-version': '2',
'Content-Length': '0',
}
publish_response = requests.post(publish_url, headers=headers)
if publish_response.status_code != 200:
print('Error: Chrome store publishing failed -- server error {0}'.format(publish_response.status_code))
exit(1)
response_dict = publish_response.json();
if 'status' not in response_dict or response_dict['status'][0] != 'OK':
print('Publishing failed -- server error {0}'.format(response_dict['status']))
exit(1)
print('Publishing succeeded.')
print('All done.')

View File

@@ -1,190 +0,0 @@
#!/usr/bin/env python3
import datetime
import json
import os
import re
import requests
import shutil
import subprocess
import sys
import tempfile
import time
import zipfile
from string import Template
# - Download target (raw) uBlock0.chromium.zip from GitHub
# - This is referred to as "raw" package
# - This will fail if not a dev build
# - Upload uBlock0.chromium.zip to Chrome store
# - Publish uBlock0.chromium.zip to Chrome store
# Find path to project root
projdir = os.path.split(os.path.abspath(__file__))[0]
while not os.path.isdir(os.path.join(projdir, '.git')):
projdir = os.path.normpath(os.path.join(projdir, '..'))
# We need a version string to work with
if len(sys.argv) >= 2 and sys.argv[1]:
version = sys.argv[1]
else:
version = input('Github release version: ')
version.strip()
if not re.search('^\d+\.\d+\.\d+$', version):
print('Error: Invalid version string.')
exit(1)
cs_extension_id = 'cjpalhdlnbpafiamejdnhcphjbkeiagm'
tmpdir = tempfile.TemporaryDirectory()
raw_zip_filename = 'uBlock0_' + version + '.chromium.zip'
raw_zip_filepath = os.path.join(tmpdir.name, raw_zip_filename)
github_owner = 'gorhill'
github_repo = 'uBlock'
# Load/save auth secrets
# The tmp directory is excluded from git
ubo_secrets = dict()
ubo_secrets_filename = os.path.join(projdir, 'tmp', 'ubo_secrets')
if os.path.isfile(ubo_secrets_filename):
with open(ubo_secrets_filename) as f:
ubo_secrets = json.load(f)
def input_secret(prompt, token):
if token in ubo_secrets:
prompt += ''
prompt += ': '
value = input(prompt).strip()
if len(value) == 0:
if token not in ubo_secrets:
print('Token error:', token)
exit(1)
value = ubo_secrets[token]
elif token not in ubo_secrets or value != ubo_secrets[token]:
ubo_secrets[token] = value
exists = os.path.isfile(ubo_secrets_filename)
with open(ubo_secrets_filename, 'w') as f:
json.dump(ubo_secrets, f, indent=2)
if not exists:
os.chmod(ubo_secrets_filename, 0o600)
return value
# GitHub API token
github_token = input_secret('Github token', 'github_token')
github_auth = 'token ' + github_token
#
# Get metadata from GitHub about the release
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release
print('Downloading release info from GitHub...')
release_info_url = 'https://api.github.com/repos/{0}/{1}/releases/tags/{2}'.format(github_owner, github_repo, version)
headers = { 'Authorization': github_auth, }
response = requests.get(release_info_url, headers=headers)
if response.status_code != 200:
print('Error: Release not found: {0}'.format(response.status_code))
exit(1)
release_info = response.json()
#
# Extract URL to raw package from metadata
#
# Find url for uBlock0.chromium.zip
raw_zip_url = ''
for asset in release_info['assets']:
if asset['name'] == raw_zip_filename:
raw_zip_url = asset['url']
if len(raw_zip_url) == 0:
print('Error: Release asset URL not found')
exit(1)
#
# Download raw package from GitHub
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release-asset
print('Downloading raw zip package from GitHub...')
headers = {
'Authorization': github_auth,
'Accept': 'application/octet-stream',
}
response = requests.get(raw_zip_url, headers=headers)
# Redirections are transparently handled:
# http://docs.python-requests.org/en/master/user/quickstart/#redirection-and-history
if response.status_code != 200:
print('Error: Downloading raw package failed -- server error {0}'.format(response.status_code))
exit(1)
with open(raw_zip_filepath, 'wb') as f:
f.write(response.content)
print('Downloaded raw package saved as {0}'.format(raw_zip_filepath))
#
# Upload to Chrome store
#
# Auth tokens
cs_id = input_secret('Chrome store id', 'cs_id')
cs_secret = input_secret('Chrome store secret', 'cs_secret')
cs_refresh = input_secret('Chrome store refresh token', 'cs_refresh')
print('Uploading to Chrome store...')
with open(raw_zip_filepath, 'rb') as f:
print('Generating access token...')
auth_url = 'https://accounts.google.com/o/oauth2/token'
auth_payload = {
'client_id': cs_id,
'client_secret': cs_secret,
'grant_type': 'refresh_token',
'refresh_token': cs_refresh,
}
auth_response = requests.post(auth_url, data=auth_payload)
if auth_response.status_code != 200:
print('Error: Auth failed -- server error {0}'.format(auth_response.status_code))
print(auth_response.text)
exit(1)
response_dict = auth_response.json()
if 'access_token' not in response_dict:
print('Error: Auth failed -- no access token')
exit(1)
# Prepare access token
cs_auth = 'Bearer ' + response_dict['access_token']
headers = {
'Authorization': cs_auth,
'x-goog-api-version': '2',
}
# Upload
print('Uploading package...')
upload_url = 'https://www.googleapis.com/upload/chromewebstore/v1.1/items/{0}'.format(cs_extension_id)
upload_response = requests.put(upload_url, headers=headers, data=f)
f.close()
if upload_response.status_code != 200:
print('Upload failed -- server error {0}'.format(upload_response.status_code))
print(upload_response.text)
exit(1)
response_dict = upload_response.json();
if 'uploadState' not in response_dict or response_dict['uploadState'] != 'SUCCESS':
print('Upload failed -- server error {0}'.format(response_dict['uploadState']))
exit(1)
print('Upload succeeded.')
# Publish
print('Publishing package...')
publish_url = 'https://www.googleapis.com/chromewebstore/v1.1/items/{0}/publish'.format(cs_extension_id)
headers = {
'Authorization': cs_auth,
'x-goog-api-version': '2',
'Content-Length': '0',
}
publish_response = requests.post(publish_url, headers=headers)
if publish_response.status_code != 200:
print('Error: Chrome store publishing failed -- server error {0}'.format(publish_response.status_code))
exit(1)
response_dict = publish_response.json();
if 'status' not in response_dict or response_dict['status'][0] != 'OK':
print('Publishing failed -- server error {0}'.format(response_dict['status']))
exit(1)
print('Publishing succeeded.')
print('All done.')

View File

@@ -1,331 +0,0 @@
#!/usr/bin/env python3
import datetime
import json
import jwt
import os
import re
import requests
import shutil
import subprocess
import sys
import tempfile
import time
import zipfile
from string import Template
# - Download target (raw) uBlock0.firefox.xpi from GitHub
# - This is referred to as "raw" package
# - This will fail if not a dev build
# - Modify raw package to make it self-hosted
# - This is referred to as "unsigned" package
# - Ask AMO to sign uBlock0.firefox.xpi
# - Generate JWT to be used for communication with server
# - Upload unsigned package to AMO
# - Wait for a valid download URL for signed package
# - Download signed package as uBlock0.firefox.signed.xpi
# - This is referred to as "signed" package
# - Upload uBlock0.firefox.signed.xpi to GitHub
# - Remove uBlock0.firefox.xpi from GitHub
# - Modify updates.json to point to new version
# - Commit changes to repo
# Find path to project root
projdir = os.path.split(os.path.abspath(__file__))[0]
while not os.path.isdir(os.path.join(projdir, '.git')):
projdir = os.path.normpath(os.path.join(projdir, '..'))
# Check that found project root is valid
version_filepath = os.path.join(projdir, 'dist', 'version')
if not os.path.isfile(version_filepath):
print('Version file not found.')
exit(1)
# We need a version string to work with
if len(sys.argv) >= 2 and sys.argv[1]:
tag_version = sys.argv[1]
else:
tag_version = input('Github release version: ')
tag_version.strip()
match = re.search('^(\d+\.\d+\.\d+)(?:(b|rc)(\d+))?$', tag_version)
if not match:
print('Error: Invalid version string.')
exit(1)
ext_version = match.group(1);
if match.group(2):
revision = int(match.group(3))
if match.group(2) == 'rc':
revision += 100;
ext_version += '.' + str(revision)
extension_id = 'uBlock0@raymondhill.net'
tmpdir = tempfile.TemporaryDirectory()
raw_xpi_filename = 'uBlock0_' + tag_version + '.firefox.xpi'
raw_xpi_filepath = os.path.join(tmpdir.name, raw_xpi_filename)
unsigned_xpi_filepath = os.path.join(tmpdir.name, 'uBlock0.firefox.unsigned.xpi')
signed_xpi_filename = 'uBlock0_' + tag_version + '.firefox.signed.xpi'
signed_xpi_filepath = os.path.join(tmpdir.name, signed_xpi_filename)
github_owner = 'gorhill'
github_repo = 'uBlock'
# Load/save auth secrets
# The tmp directory is excluded from git
ubo_secrets = dict()
ubo_secrets_filename = os.path.join(projdir, 'tmp', 'ubo_secrets')
if os.path.isfile(ubo_secrets_filename):
with open(ubo_secrets_filename) as f:
ubo_secrets = json.load(f)
def input_secret(prompt, token):
if token in ubo_secrets:
prompt += ''
prompt += ': '
value = input(prompt).strip()
if len(value) == 0:
if token not in ubo_secrets:
print('Token error:', token)
exit(1)
value = ubo_secrets[token]
elif token not in ubo_secrets or value != ubo_secrets[token]:
ubo_secrets[token] = value
exists = os.path.isfile(ubo_secrets_filename)
with open(ubo_secrets_filename, 'w') as f:
json.dump(ubo_secrets, f, indent=2)
if not exists:
os.chmod(ubo_secrets_filename, 0o600)
return value
# GitHub API token
github_token = input_secret('Github token', 'github_token')
github_auth = 'token ' + github_token
#
# Get metadata from GitHub about the release
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release
print('Downloading release info from GitHub...')
release_info_url = 'https://api.github.com/repos/{0}/{1}/releases/tags/{2}'.format(github_owner, github_repo, tag_version)
headers = { 'Authorization': github_auth, }
response = requests.get(release_info_url, headers=headers)
if response.status_code != 200:
print('Error: Release not found: {0}'.format(response.status_code))
exit(1)
release_info = response.json()
#
# Extract URL to raw package from metadata
#
# Find url for uBlock0.firefox.xpi
raw_xpi_url = ''
for asset in release_info['assets']:
if asset['name'] == signed_xpi_filename:
print('Error: Found existing signed self-hosted package.')
exit(1)
if asset['name'] == raw_xpi_filename:
raw_xpi_url = asset['url']
if len(raw_xpi_url) == 0:
print('Error: Release asset URL not found')
exit(1)
#
# Download raw package from GitHub
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release-asset
print('Downloading raw xpi package from GitHub...')
headers = {
'Authorization': github_auth,
'Accept': 'application/octet-stream',
}
response = requests.get(raw_xpi_url, headers=headers)
# Redirections are transparently handled:
# http://docs.python-requests.org/en/master/user/quickstart/#redirection-and-history
if response.status_code != 200:
print('Error: Downloading raw package failed -- server error {0}'.format(response.status_code))
exit(1)
with open(raw_xpi_filepath, 'wb') as f:
f.write(response.content)
print('Downloaded raw package saved as {0}'.format(raw_xpi_filepath))
#
# Convert the package to a self-hosted one: add `update_url` to the manifest
#
min_browser_version = '68';
print('Converting raw xpi package into self-hosted xpi package...')
with zipfile.ZipFile(raw_xpi_filepath, 'r') as zipin:
with zipfile.ZipFile(unsigned_xpi_filepath, 'w') as zipout:
for item in zipin.infolist():
data = zipin.read(item.filename)
if item.filename == 'manifest.json':
manifest = json.loads(bytes.decode(data))
min_browser_version = manifest['browser_specific_settings']['gecko']['strict_min_version']
manifest['browser_specific_settings']['gecko']['update_url'] = 'https://raw.githubusercontent.com/{0}/{1}/master/dist/firefox/updates.json'.format(github_owner, github_repo)
data = json.dumps(manifest, indent=2, separators=(',', ': '), sort_keys=True).encode()
zipout.writestr(item, data)
#
# Ask AMO to sign the self-hosted package
# - https://developer.mozilla.org/en-US/Add-ons/Distribution#Distributing_your_add-on
# - https://pyjwt.readthedocs.io/en/latest/usage.html
# - https://addons-server.readthedocs.io/en/latest/topics/api/auth.html
# - https://addons-server.readthedocs.io/en/latest/topics/api/signing.html
#
amo_api_key = ''
amo_secret = ''
def get_jwt_auth():
global amo_api_key
if amo_api_key == '':
amo_api_key = input_secret('AMO API key', 'amo_api_key')
global amo_secret
if amo_secret == '':
amo_secret = input_secret('AMO API secret', 'amo_secret')
amo_nonce = os.urandom(8).hex()
jwt_payload = {
'iss': amo_api_key,
'jti': amo_nonce,
'iat': datetime.datetime.utcnow(),
'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=15),
}
return 'JWT ' + jwt.encode(jwt_payload, amo_secret)
print('Ask AMO to sign self-hosted xpi package...')
with open(unsigned_xpi_filepath, 'rb') as f:
# https://blog.mozilla.org/addons/2019/11/11/security-improvements-in-amo-upload-tools/
# "We recommend allowing up to 15 minutes."
interval = 60 # check every 60 seconds
countdown = 60 * 60 / interval # for at most 60 minutes
headers = { 'Authorization': get_jwt_auth(), }
data = { 'channel': 'unlisted' }
files = { 'upload': f, }
signing_url = 'https://addons.mozilla.org/api/v4/addons/{0}/versions/{1}/'.format(extension_id, ext_version)
print('Submitting package to be signed...')
response = requests.put(signing_url, headers=headers, data=data, files=files)
if response.status_code != 202:
print('Error: Creating new version failed -- server error {0}'.format(response.status_code))
print(response.text)
exit(1)
print('Request for signing self-hosted xpi package succeeded.')
signing_request_response = response.json();
f.close()
print('Waiting for AMO to process the request to sign the self-hosted xpi package...')
# Wait for signed package to be ready
signing_check_url = signing_request_response['url']
while True:
time.sleep(interval)
sys.stdout.write('.')
sys.stdout.flush()
countdown -= 1
if countdown <= 0:
print('Error: AMO signing timed out')
exit(1)
headers = { 'Authorization': get_jwt_auth(), }
response = requests.get(signing_check_url, headers=headers)
if response.status_code != 200:
print('Error: AMO signing failed -- server error {0}'.format(response.status_code))
print(response.text)
exit(1)
signing_check_response = response.json()
if not signing_check_response['processed']:
continue
if not signing_check_response['valid']:
print('Error: AMO validation failed')
print(response.text)
exit(1)
if not signing_check_response['files'] or len(signing_check_response['files']) == 0:
continue
if not signing_check_response['files'][0]['signed']:
continue
if not signing_check_response['files'][0]['download_url']:
print('Error: AMO signing failed')
print(response.text)
exit(1)
print('\r')
print('Self-hosted xpi package successfully signed.')
download_url = signing_check_response['files'][0]['download_url']
print('Downloading signed self-hosted xpi package from {0}...'.format(download_url))
response = requests.get(download_url, headers=headers)
if response.status_code != 200:
print('Error: Download signed package failed -- server error {0}'.format(response.status_code))
print(response.text)
exit(1)
with open(signed_xpi_filepath, 'wb') as f:
f.write(response.content)
f.close()
print('Signed self-hosted xpi package downloaded.')
break
#
# Upload signed package to GitHub
#
# https://developer.github.com/v3/repos/releases/#upload-a-release-asset
print('Uploading signed self-hosted xpi package to GitHub...')
with open(signed_xpi_filepath, 'rb') as f:
url = release_info['upload_url'].replace('{?name,label}', '?name=' + signed_xpi_filename)
headers = {
'Authorization': github_auth,
'Content-Type': 'application/zip',
}
response = requests.post(url, headers=headers, data=f.read())
if response.status_code != 201:
print('Error: Upload signed package failed -- server error: {0}'.format(response.status_code))
exit(1)
#
# Remove raw package from GitHub
#
# https://developer.github.com/v3/repos/releases/#delete-a-release-asset
print('Remove raw xpi package from GitHub...')
headers = { 'Authorization': github_auth, }
response = requests.delete(raw_xpi_url, headers=headers)
if response.status_code != 204:
print('Error: Deletion of raw package failed -- server error: {0}'.format(response.status_code))
#
# Update updates.json to point to new package -- but only if just-signed
# package is higher version than current one.
#
# Be sure we are in sync with potentially modified files on remote
r = subprocess.run(['git', 'pull', 'origin', 'master'], stdout=subprocess.PIPE)
rout = bytes.decode(r.stdout).strip()
def int_from_version(version):
parts = version.split('.')
if len(parts) == 3:
parts.append('0')
return int(parts[0])*10e9 + int(parts[1])*10e6 + int(parts[2])*10e3 + int(parts[3])
print('Update GitHub to point to newly signed self-hosted xpi package...')
updates_json_filepath = os.path.join(projdir, 'dist', 'firefox', 'updates.json')
with open(updates_json_filepath) as f:
updates_json = json.load(f)
f.close()
previous_version = updates_json['addons'][extension_id]['updates'][0]['version']
if int_from_version(ext_version) > int_from_version(previous_version):
with open(os.path.join(projdir, 'dist', 'firefox', 'updates.template.json')) as f:
template_json = Template(f.read())
f.close()
updates_json = template_json.substitute(ext_version=ext_version, tag_version=tag_version, min_browser_version=min_browser_version)
with open(updates_json_filepath, 'w') as f:
f.write(updates_json)
f.close()
# - Stage the changed file
r = subprocess.run(['git', 'status', '-s', updates_json_filepath], stdout=subprocess.PIPE)
rout = bytes.decode(r.stdout).strip()
if len(rout) >= 2 and rout[1] == 'M':
subprocess.run(['git', 'add', updates_json_filepath])
# - Commit the staged file
r = subprocess.run(['git', 'status', '-s', updates_json_filepath], stdout=subprocess.PIPE)
rout = bytes.decode(r.stdout).strip()
if len(rout) >= 2 and rout[0] == 'M':
subprocess.run(['git', 'commit', '-m', 'Make Firefox dev build auto-update', updates_json_filepath])
subprocess.run(['git', 'push', 'origin', 'HEAD'])
print('All done.')

View File

@@ -1,13 +1,17 @@
{
"addons": {
"uBlock0@raymondhill.net": {
"updates": [
{
"version": "1.62.1.100",
"browser_specific_settings": { "gecko": { "strict_min_version": "79.0" } },
"update_link": "https://github.com/gorhill/uBlock/releases/download/1.62.1rc0/uBlock0_1.62.1rc0.firefox.signed.xpi"
"addons": {
"uBlock0@raymondhill.net": {
"updates": [
{
"version": "1.66.5.1",
"browser_specific_settings": {
"gecko": {
"strict_min_version": "92.0"
}
},
"update_link": "https://github.com/gorhill/uBlock/releases/download/1.66.5b1/uBlock0_1.66.5b1.firefox.signed.xpi"
}
]
}
]
}
}
}
}

View File

@@ -1,13 +0,0 @@
{
"addons": {
"uBlock0@raymondhill.net": {
"updates": [
{
"version": "$ext_version",
"browser_specific_settings": { "gecko": { "strict_min_version": "$min_browser_version" } },
"update_link": "https://github.com/gorhill/uBlock/releases/download/$tag_version/uBlock0_$tag_version.firefox.signed.xpi"
}
]
}
}
}

View File

@@ -1,195 +0,0 @@
#!/usr/bin/env python3
import datetime
import json
import os
import re
import requests
import shutil
import subprocess
import sys
import tempfile
import time
import zipfile
from string import Template
# - Download target (raw) uBOLite_*.chromium.mv3.zip from GitHub
# - This is referred to as "raw" package
# - This will fail if not a dev build
# - Upload uBOLite_*.chromium.mv3.zip to Chrome store
# - Publish uBOLite_*.chromium.mv3.zip to Chrome store
# Find path to project root
projdir = os.path.split(os.path.abspath(__file__))[0]
while not os.path.isdir(os.path.join(projdir, '.git')):
projdir = os.path.normpath(os.path.join(projdir, '..'))
# We need a version string to work with
if len(sys.argv) >= 2 and sys.argv[1]:
version = sys.argv[1]
else:
version = input('Github release version: ')
version.strip()
if not re.search('^uBOLite_\d+\.\d+\.\d+\.\d+$', version):
print('Error: Invalid version string.')
exit(1)
cs_extension_id = 'ddkjiahejlhfcafbddmgiahcphecmpfh'
tmpdir = tempfile.TemporaryDirectory()
raw_zip_filename = ''
raw_zip_filepath = ''
github_owner = 'gorhill'
github_repo = 'uBlock'
# Load/save auth secrets
# The build directory is excluded from git
ubo_secrets = dict()
ubo_secrets_filename = os.path.join(projdir, 'dist', 'build', 'ubo_secrets')
if os.path.isfile(ubo_secrets_filename):
with open(ubo_secrets_filename) as f:
ubo_secrets = json.load(f)
def input_secret(prompt, token):
if token in ubo_secrets:
prompt += ''
prompt += ': '
value = input(prompt).strip()
if len(value) == 0:
if token not in ubo_secrets:
print('Token error:', token)
exit(1)
value = ubo_secrets[token]
elif token not in ubo_secrets or value != ubo_secrets[token]:
ubo_secrets[token] = value
exists = os.path.isfile(ubo_secrets_filename)
with open(ubo_secrets_filename, 'w') as f:
json.dump(ubo_secrets, f, indent=2)
if not exists:
os.chmod(ubo_secrets_filename, 0o600)
return value
# GitHub API token
github_token = input_secret('Github token', 'github_token')
github_auth = 'token ' + github_token
#
# Get metadata from GitHub about the release
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release
print('Downloading release info from GitHub...')
release_info_url = 'https://api.github.com/repos/{0}/{1}/releases/tags/{2}'.format(github_owner, github_repo, version)
headers = { 'Authorization': github_auth, }
response = requests.get(release_info_url, headers=headers)
if response.status_code != 200:
print('Error: Release not found: {0}'.format(response.status_code))
exit(1)
release_info = response.json()
#
# Extract URL to raw package from metadata
#
# Find url for uBOLite_*.chromium.mv3.zip
raw_zip_url = ''
for asset in release_info['assets']:
if re.search('uBOLite_\d+.\d+.\d+.\d+.chromium.mv3.zip', asset['name']):
raw_zip_url = asset['url']
raw_zip_filename = asset['name']
raw_zip_filepath = os.path.join(tmpdir.name, raw_zip_filename)
if len(raw_zip_url) == 0:
print('Error: Release asset URL not found')
exit(1)
if len(raw_zip_filepath) == 0:
print('Error: Invalid release asset file not set')
exit(1)
#
# Download raw package from GitHub
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release-asset
print('Downloading raw zip package from GitHub...')
headers = {
'Authorization': github_auth,
'Accept': 'application/octet-stream',
}
response = requests.get(raw_zip_url, headers=headers)
# Redirections are transparently handled:
# http://docs.python-requests.org/en/master/user/quickstart/#redirection-and-history
if response.status_code != 200:
print('Error: Downloading raw package failed -- server error {0}'.format(response.status_code))
exit(1)
with open(raw_zip_filepath, 'wb') as f:
f.write(response.content)
print('Downloaded raw package saved as {0}'.format(raw_zip_filepath))
#
# Upload to Chrome store
#
# Auth tokens
cs_id = input_secret('Chrome store id', 'cs_id')
cs_secret = input_secret('Chrome store secret', 'cs_secret')
cs_refresh = input_secret('Chrome store refresh token', 'cs_refresh')
print('Uploading to Chrome store...')
with open(raw_zip_filepath, 'rb') as f:
print('Generating access token...')
auth_url = 'https://accounts.google.com/o/oauth2/token'
auth_payload = {
'client_id': cs_id,
'client_secret': cs_secret,
'grant_type': 'refresh_token',
'refresh_token': cs_refresh,
}
auth_response = requests.post(auth_url, data=auth_payload)
if auth_response.status_code != 200:
print('Error: Auth failed -- server error {0}'.format(auth_response.status_code))
print(auth_response.text)
exit(1)
response_dict = auth_response.json()
if 'access_token' not in response_dict:
print('Error: Auth failed -- no access token')
exit(1)
# Prepare access token
cs_auth = 'Bearer ' + response_dict['access_token']
headers = {
'Authorization': cs_auth,
'x-goog-api-version': '2',
}
# Upload
print('Uploading package...')
upload_url = 'https://www.googleapis.com/upload/chromewebstore/v1.1/items/{0}'.format(cs_extension_id)
upload_response = requests.put(upload_url, headers=headers, data=f)
f.close()
if upload_response.status_code != 200:
print('Upload failed -- server error {0}'.format(upload_response.status_code))
print(upload_response.text)
exit(1)
response_dict = upload_response.json();
if 'uploadState' not in response_dict or response_dict['uploadState'] != 'SUCCESS':
print('Upload failed -- server error {0}'.format(response_dict['uploadState']))
exit(1)
print('Upload succeeded.')
# Publish
print('Publishing package...')
publish_url = 'https://www.googleapis.com/chromewebstore/v1.1/items/{0}/publish'.format(cs_extension_id)
headers = {
'Authorization': cs_auth,
'x-goog-api-version': '2',
'Content-Length': '0',
}
publish_response = requests.post(publish_url, headers=headers)
if publish_response.status_code != 200:
print('Error: Chrome store publishing failed -- server error {0}'.format(publish_response.status_code))
exit(1)
response_dict = publish_response.json();
if 'status' not in response_dict or response_dict['status'][0] != 'OK':
print('Publishing failed -- server error {0}'.format(response_dict['status']))
exit(1)
print('Publishing succeeded.')
print('All done.')

View File

@@ -1,326 +0,0 @@
#!/usr/bin/env python3
import datetime
import json
import jwt
import os
import re
import requests
import shutil
import subprocess
import sys
import tempfile
import time
import zipfile
from string import Template
# - Download target (raw) uBlock0.firefox.xpi from GitHub
# - This is referred to as "raw" package
# - This will fail if not a dev build
# - Modify raw package to make it self-hosted
# - This is referred to as "unsigned" package
# - Ask AMO to sign uBlock0.firefox.xpi
# - Generate JWT to be used for communication with server
# - Upload unsigned package to AMO
# - Wait for a valid download URL for signed package
# - Download signed package as uBlock0.firefox.signed.xpi
# - This is referred to as "signed" package
# - Upload uBlock0.firefox.signed.xpi to GitHub
# - Remove uBlock0.firefox.xpi from GitHub
# - Modify updates.json to point to new version
# - Commit changes to repo
# Find path to project root
projdir = os.path.split(os.path.abspath(__file__))[0]
while not os.path.isdir(os.path.join(projdir, '.git')):
projdir = os.path.normpath(os.path.join(projdir, '..'))
# Check that found project root is valid
version_filepath = os.path.join(projdir, 'dist', 'version')
if not os.path.isfile(version_filepath):
print('Version file not found.')
exit(1)
# We need a version string to work with
if len(sys.argv) >= 2 and sys.argv[1]:
tag_version = sys.argv[1]
else:
tag_version = input('Github release version: ')
tag_version.strip()
match = re.search('^uBOLite_(\d+\.\d+\.\d+.\d+)$', tag_version)
if not match:
print('Error: Invalid version string.')
exit(1)
ext_version = match.group(1);
extension_id = 'uBOLite@raymondhill.net'
tmpdir = tempfile.TemporaryDirectory()
raw_xpi_filename = tag_version + '.firefox.mv3.xpi'
raw_xpi_filepath = os.path.join(tmpdir.name, raw_xpi_filename)
unsigned_xpi_filepath = os.path.join(tmpdir.name, 'uBOLite.firefox.unsigned.xpi')
signed_xpi_filename = tag_version + '.firefox.signed.mv3.xpi'
signed_xpi_filepath = os.path.join(tmpdir.name, signed_xpi_filename)
github_owner = 'gorhill'
github_repo = 'uBlock'
# Load/save auth secrets
# The tmp directory is excluded from git
ubo_secrets = dict()
ubo_secrets_filename = os.path.join(projdir, 'tmp', 'ubo_secrets')
if os.path.isfile(ubo_secrets_filename):
with open(ubo_secrets_filename) as f:
ubo_secrets = json.load(f)
def input_secret(prompt, token):
if token in ubo_secrets:
prompt += ''
prompt += ': '
value = input(prompt).strip()
if len(value) == 0:
if token not in ubo_secrets:
print('Token error:', token)
exit(1)
value = ubo_secrets[token]
elif token not in ubo_secrets or value != ubo_secrets[token]:
ubo_secrets[token] = value
exists = os.path.isfile(ubo_secrets_filename)
with open(ubo_secrets_filename, 'w') as f:
json.dump(ubo_secrets, f, indent=2)
if not exists:
os.chmod(ubo_secrets_filename, 0o600)
return value
# GitHub API token
github_token = input_secret('Github token', 'github_token')
github_auth = 'token ' + github_token
#
# Get metadata from GitHub about the release
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release
print('Downloading release info from GitHub...')
release_info_url = 'https://api.github.com/repos/{0}/{1}/releases/tags/{2}'.format(github_owner, github_repo, tag_version)
headers = { 'Authorization': github_auth, }
response = requests.get(release_info_url, headers=headers)
if response.status_code != 200:
print('Error: Release not found: {0}'.format(response.status_code))
exit(1)
release_info = response.json()
#
# Extract URL to raw package from metadata
#
# Find url for uBlock0.firefox.xpi
raw_xpi_url = ''
for asset in release_info['assets']:
if asset['name'] == signed_xpi_filename:
print('Error: Found existing signed self-hosted package.')
exit(1)
if asset['name'] == raw_xpi_filename:
raw_xpi_url = asset['url']
if len(raw_xpi_url) == 0:
print('Error: Release asset URL not found')
exit(1)
#
# Download raw package from GitHub
#
# https://developer.github.com/v3/repos/releases/#get-a-single-release-asset
print('Downloading raw xpi package from GitHub...')
headers = {
'Authorization': github_auth,
'Accept': 'application/octet-stream',
}
response = requests.get(raw_xpi_url, headers=headers)
# Redirections are transparently handled:
# http://docs.python-requests.org/en/master/user/quickstart/#redirection-and-history
if response.status_code != 200:
print('Error: Downloading raw package failed -- server error {0}'.format(response.status_code))
exit(1)
with open(raw_xpi_filepath, 'wb') as f:
f.write(response.content)
print('Downloaded raw package saved as {0}'.format(raw_xpi_filepath))
#
# Convert the package to a self-hosted one: add `update_url` to the manifest
#
min_browser_version = '114.0';
print('Converting raw xpi package into self-hosted xpi package...')
with zipfile.ZipFile(raw_xpi_filepath, 'r') as zipin:
with zipfile.ZipFile(unsigned_xpi_filepath, 'w') as zipout:
for item in zipin.infolist():
data = zipin.read(item.filename)
if item.filename == 'manifest.json':
manifest = json.loads(bytes.decode(data))
min_browser_version = manifest['browser_specific_settings']['gecko']['strict_min_version']
manifest['browser_specific_settings']['gecko']['update_url'] = 'https://raw.githubusercontent.com/{0}/{1}/master/dist/mv3/firefox/updates.json'.format(github_owner, github_repo)
data = json.dumps(manifest, indent=2, separators=(',', ': '), sort_keys=True).encode()
zipout.writestr(item, data)
#
# Ask AMO to sign the self-hosted package
# - https://developer.mozilla.org/en-US/Add-ons/Distribution#Distributing_your_add-on
# - https://pyjwt.readthedocs.io/en/latest/usage.html
# - https://addons-server.readthedocs.io/en/latest/topics/api/auth.html
# - https://addons-server.readthedocs.io/en/latest/topics/api/signing.html
#
amo_api_key = ''
amo_secret = ''
def get_jwt_auth():
global amo_api_key
if amo_api_key == '':
amo_api_key = input_secret('AMO API key', 'amo_api_key')
global amo_secret
if amo_secret == '':
amo_secret = input_secret('AMO API secret', 'amo_secret')
amo_nonce = os.urandom(8).hex()
jwt_payload = {
'iss': amo_api_key,
'jti': amo_nonce,
'iat': datetime.datetime.utcnow(),
'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=15),
}
return 'JWT ' + jwt.encode(jwt_payload, amo_secret)
print('Ask AMO to sign self-hosted xpi package...')
with open(unsigned_xpi_filepath, 'rb') as f:
# https://blog.mozilla.org/addons/2019/11/11/security-improvements-in-amo-upload-tools/
# "We recommend allowing up to 15 minutes."
interval = 60 # check every 60 seconds
countdown = 60 * 60 / interval # for at most 60 minutes
headers = { 'Authorization': get_jwt_auth(), }
data = { 'channel': 'unlisted' }
files = { 'upload': f, }
signing_url = 'https://addons.mozilla.org/api/v4/addons/{0}/versions/{1}/'.format(extension_id, ext_version)
print('Submitting package to be signed...')
response = requests.put(signing_url, headers=headers, data=data, files=files)
if response.status_code != 202:
print('Error: Creating new version failed -- server error {0}'.format(response.status_code))
print(response.text)
exit(1)
print('Request for signing self-hosted xpi package succeeded.')
signing_request_response = response.json();
f.close()
print('Waiting for AMO to process the request to sign the self-hosted xpi package...')
# Wait for signed package to be ready
signing_check_url = signing_request_response['url']
while True:
time.sleep(interval)
sys.stdout.write('.')
sys.stdout.flush()
countdown -= 1
if countdown <= 0:
print('Error: AMO signing timed out')
exit(1)
headers = { 'Authorization': get_jwt_auth(), }
response = requests.get(signing_check_url, headers=headers)
if response.status_code != 200:
print('Error: AMO signing failed -- server error {0}'.format(response.status_code))
print(response.text)
exit(1)
signing_check_response = response.json()
if not signing_check_response['processed']:
continue
if not signing_check_response['valid']:
print('Error: AMO validation failed')
print(response.text)
exit(1)
if not signing_check_response['files'] or len(signing_check_response['files']) == 0:
continue
if not signing_check_response['files'][0]['signed']:
continue
if not signing_check_response['files'][0]['download_url']:
print('Error: AMO signing failed')
print(response.text)
exit(1)
print('\r')
print('Self-hosted xpi package successfully signed.')
download_url = signing_check_response['files'][0]['download_url']
print('Downloading signed self-hosted xpi package from {0}...'.format(download_url))
response = requests.get(download_url, headers=headers)
if response.status_code != 200:
print('Error: Download signed package failed -- server error {0}'.format(response.status_code))
print(response.text)
exit(1)
with open(signed_xpi_filepath, 'wb') as f:
f.write(response.content)
f.close()
print('Signed self-hosted xpi package downloaded.')
break
#
# Upload signed package to GitHub
#
# https://developer.github.com/v3/repos/releases/#upload-a-release-asset
print('Uploading signed self-hosted xpi package to GitHub...')
with open(signed_xpi_filepath, 'rb') as f:
url = release_info['upload_url'].replace('{?name,label}', '?name=' + signed_xpi_filename)
headers = {
'Authorization': github_auth,
'Content-Type': 'application/zip',
}
response = requests.post(url, headers=headers, data=f.read())
if response.status_code != 201:
print('Error: Upload signed package failed -- server error: {0}'.format(response.status_code))
exit(1)
#
# Remove raw package from GitHub
#
# https://developer.github.com/v3/repos/releases/#delete-a-release-asset
print('Remove raw xpi package from GitHub...')
headers = { 'Authorization': github_auth, }
response = requests.delete(raw_xpi_url, headers=headers)
if response.status_code != 204:
print('Error: Deletion of raw package failed -- server error: {0}'.format(response.status_code))
#
# Update updates.json to point to new package -- but only if just-signed
# package is higher version than current one.
#
# Be sure we are in sync with potentially modified files on remote
r = subprocess.run(['git', 'pull', 'origin', 'master'], stdout=subprocess.PIPE)
rout = bytes.decode(r.stdout).strip()
def int_from_version(version):
parts = version.split('.')
if len(parts) == 3:
parts.append('0')
return int(parts[0])*10e9 + int(parts[1])*10e6 + int(parts[2])*10e3 + int(parts[3])
print('Update GitHub to point to newly signed self-hosted xpi package...')
updates_json_filepath = os.path.join(projdir, 'dist', 'mv3', 'firefox', 'updates.json')
with open(updates_json_filepath) as f:
updates_json = json.load(f)
f.close()
previous_version = updates_json['addons'][extension_id]['updates'][0]['version']
if int_from_version(ext_version) > int_from_version(previous_version):
with open(os.path.join(projdir, 'dist', 'mv3', 'firefox', 'updates.template.json')) as f:
template_json = Template(f.read())
f.close()
updates_json = template_json.substitute(ext_version=ext_version, tag_version=tag_version, min_browser_version=min_browser_version)
with open(updates_json_filepath, 'w') as f:
f.write(updates_json)
f.close()
# - Stage the changed file
r = subprocess.run(['git', 'status', '-s', updates_json_filepath], stdout=subprocess.PIPE)
rout = bytes.decode(r.stdout).strip()
if len(rout) >= 2 and rout[1] == 'M':
subprocess.run(['git', 'add', updates_json_filepath])
# - Commit the staged file
r = subprocess.run(['git', 'status', '-s', updates_json_filepath], stdout=subprocess.PIPE)
rout = bytes.decode(r.stdout).strip()
if len(rout) >= 2 and rout[0] == 'M':
subprocess.run(['git', 'commit', '-m', 'Make Firefox dev build auto-update', updates_json_filepath])
subprocess.run(['git', 'push', 'origin', 'HEAD'])
print('All done.')

View File

@@ -1,13 +0,0 @@
{
"addons": {
"uBOLite@raymondhill.net": {
"updates": [
{
"version": "1.0.23.8125",
"browser_specific_settings": { "gecko": { "strict_min_version": "114.0" } },
"update_link": "https://github.com/gorhill/uBlock/releases/download/uBOLite_1.0.23.8125/uBOLite_1.0.23.8125.firefox.signed.mv3.xpi"
}
]
}
}
}

View File

@@ -1,13 +0,0 @@
{
"addons": {
"uBOLite@raymondhill.net": {
"updates": [
{
"version": "$ext_version",
"browser_specific_settings": { "gecko": { "strict_min_version": "$min_browser_version" } },
"update_link": "https://github.com/gorhill/uBlock/releases/download/$tag_version/$tag_version.firefox.signed.mv3.xpi"
}
]
}
}
}

2
dist/version vendored
View File

@@ -1 +1 @@
1.62.1.101
1.66.5.2

183
package-lock.json generated
View File

@@ -11,8 +11,8 @@
"devDependencies": {
"@eslint/compat": "^1.2.4",
"@eslint/js": "^9.17.0",
"@eslint/json": "^0.9.0",
"eslint": "^9.17.0",
"@eslint/json": "^0.13.1",
"eslint": "^9.34.0",
"eslint-formatter-compact": "^8.40.0",
"globals": "^15.14.0"
},
@@ -22,9 +22,9 @@
}
},
"node_modules/@eslint-community/eslint-utils": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz",
"integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==",
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
"integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -64,16 +64,16 @@
}
},
"node_modules/@eslint/compat": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.4.tgz",
"integrity": "sha512-S8ZdQj/N69YAtuqFt7653jwcvuUj131+6qGLUyDqfDg1OIoBQ66OCuXC473YQfO2AaxITTutiRQiDwoo7ZLYyg==",
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.3.2.tgz",
"integrity": "sha512-jRNwzTbd6p2Rw4sZ1CgWRS8YMtqG15YyZf7zvb6gY2rB2u6n+2Z+ELW0GtL0fQgyl0pr4Y/BzBfng/BdsereRA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"peerDependencies": {
"eslint": "^9.10.0"
"eslint": "^8.40 || 9"
},
"peerDependenciesMeta": {
"eslint": {
@@ -82,13 +82,13 @@
}
},
"node_modules/@eslint/config-array": {
"version": "0.19.1",
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz",
"integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==",
"version": "0.21.0",
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz",
"integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@eslint/object-schema": "^2.1.5",
"@eslint/object-schema": "^2.1.6",
"debug": "^4.3.1",
"minimatch": "^3.1.2"
},
@@ -96,10 +96,20 @@
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/config-helpers": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz",
"integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/core": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz",
"integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==",
"version": "0.15.2",
"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz",
"integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -110,9 +120,9 @@
}
},
"node_modules/@eslint/eslintrc": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz",
"integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==",
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
"integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -147,33 +157,38 @@
}
},
"node_modules/@eslint/js": {
"version": "9.17.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz",
"integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==",
"version": "9.34.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.34.0.tgz",
"integrity": "sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw==",
"dev": true,
"license": "MIT",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"url": "https://eslint.org/donate"
}
},
"node_modules/@eslint/json": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/@eslint/json/-/json-0.9.0.tgz",
"integrity": "sha512-PTLD0Kp7+BKhTthodns+hFbuZZ+hjb3lc/iVAg7mtBAnW5hLJhkST9O4m21oMkxG94GR2+GGZQNNurG9KP8pNA==",
"version": "0.13.2",
"resolved": "https://registry.npmjs.org/@eslint/json/-/json-0.13.2.tgz",
"integrity": "sha512-yWLyRE18rHgHXhWigRpiyv1LDPkvWtC6oa7QHXW7YdP6gosJoq7BiLZW2yCs9U7zN7X4U3ZeOJjepA10XAOIMw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@eslint/plugin-kit": "^0.2.3",
"@humanwhocodes/momoa": "^3.3.4"
"@eslint/core": "^0.15.2",
"@eslint/plugin-kit": "^0.3.5",
"@humanwhocodes/momoa": "^3.3.9",
"natural-compare": "^1.4.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/object-schema": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz",
"integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==",
"version": "2.1.6",
"resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz",
"integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -181,12 +196,13 @@
}
},
"node_modules/@eslint/plugin-kit": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz",
"integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==",
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz",
"integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@eslint/core": "^0.15.2",
"levn": "^0.4.1"
},
"engines": {
@@ -246,9 +262,9 @@
}
},
"node_modules/@humanwhocodes/momoa": {
"version": "3.3.6",
"resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-3.3.6.tgz",
"integrity": "sha512-7/sAGm3YsT6xG1bDkTSHvOpQB+cR4I2InfMVw110nuOCrxZvOQHgRqBMxSoTeUQrk9RS4OU9Aw2MBMZVJgLZMg==",
"version": "3.3.9",
"resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-3.3.9.tgz",
"integrity": "sha512-LHw6Op4bJb3/3KZgOgwflJx5zY9XOy0NU1NuyUFKGdTwHYmP+PbnQGCYQJ8NVNlulLfQish34b0VuUlLYP3AXA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -256,9 +272,9 @@
}
},
"node_modules/@humanwhocodes/retry": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz",
"integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==",
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz",
"integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -270,9 +286,9 @@
}
},
"node_modules/@types/estree": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
"integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
"dev": true,
"license": "MIT"
},
@@ -284,9 +300,9 @@
"license": "MIT"
},
"node_modules/acorn": {
"version": "8.14.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
"integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
"version": "8.15.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
"bin": {
@@ -354,9 +370,9 @@
"license": "MIT"
},
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"version": "1.1.12",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -434,9 +450,9 @@
}
},
"node_modules/debug": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
"integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
"integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -472,22 +488,23 @@
}
},
"node_modules/eslint": {
"version": "9.17.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz",
"integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==",
"version": "9.34.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.34.0.tgz",
"integrity": "sha512-RNCHRX5EwdrESy3Jc9o8ie8Bog+PeYvvSR8sDGoZxNFTvZ4dlxUB3WzQ3bQMztFrSRODGrLLj8g6OFuGY/aiQg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1",
"@eslint/config-array": "^0.19.0",
"@eslint/core": "^0.9.0",
"@eslint/eslintrc": "^3.2.0",
"@eslint/js": "9.17.0",
"@eslint/plugin-kit": "^0.2.3",
"@eslint/config-array": "^0.21.0",
"@eslint/config-helpers": "^0.3.1",
"@eslint/core": "^0.15.2",
"@eslint/eslintrc": "^3.3.1",
"@eslint/js": "9.34.0",
"@eslint/plugin-kit": "^0.3.5",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.4.1",
"@humanwhocodes/retry": "^0.4.2",
"@types/estree": "^1.0.6",
"@types/json-schema": "^7.0.15",
"ajv": "^6.12.4",
@@ -495,9 +512,9 @@
"cross-spawn": "^7.0.6",
"debug": "^4.3.2",
"escape-string-regexp": "^4.0.0",
"eslint-scope": "^8.2.0",
"eslint-visitor-keys": "^4.2.0",
"espree": "^10.3.0",
"eslint-scope": "^8.4.0",
"eslint-visitor-keys": "^4.2.1",
"espree": "^10.4.0",
"esquery": "^1.5.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -542,9 +559,9 @@
}
},
"node_modules/eslint-scope": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz",
"integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==",
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
"integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -559,9 +576,9 @@
}
},
"node_modules/eslint-visitor-keys": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
"integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -572,15 +589,15 @@
}
},
"node_modules/espree": {
"version": "10.3.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz",
"integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==",
"version": "10.4.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
"integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
"acorn": "^8.14.0",
"acorn": "^8.15.0",
"acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^4.2.0"
"eslint-visitor-keys": "^4.2.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -701,9 +718,9 @@
}
},
"node_modules/flatted": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz",
"integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==",
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
"integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
"dev": true,
"license": "ISC"
},
@@ -721,9 +738,9 @@
}
},
"node_modules/globals": {
"version": "15.14.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz",
"integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==",
"version": "15.15.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
"integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -754,9 +771,9 @@
}
},
"node_modules/import-fresh": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
"integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
"integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
"dev": true,
"license": "MIT",
"dependencies": {

View File

@@ -2,9 +2,9 @@
"name": "uBlock",
"version": "1.0.0",
"description": "npm dev tools",
"main": "index.js",
"type": "module",
"scripts": {
"lint": "eslint --no-warn-ignored -- \"./src/js/*.js\" \"./src/js/**/*.js\" \"./**/*.json\" \"./platform/**/*.js\"",
"lint": "eslint --no-warn-ignored --ignore-pattern \"**/lib/\" --ignore-pattern \"**/npm/\" -- \"./src/js/*.js\" \"./src/js/**/*.js\" \"./**/*.json\" \"./platform/**/*.js\"",
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
@@ -24,8 +24,8 @@
"devDependencies": {
"@eslint/compat": "^1.2.4",
"@eslint/js": "^9.17.0",
"@eslint/json": "^0.9.0",
"eslint": "^9.17.0",
"@eslint/json": "^0.13.1",
"eslint": "^9.34.0",
"eslint-formatter-compact": "^8.40.0",
"globals": "^15.14.0"
}

View File

@@ -89,7 +89,7 @@
},
"incognito": "split",
"manifest_version": 2,
"minimum_chrome_version": "85.0",
"minimum_chrome_version": "93.0",
"name": "uBlock Origin",
"options_ui": {
"page": "dashboard.html",

View File

@@ -26,6 +26,8 @@
// so we synthetize these missing events when this happens.
// https://github.com/uBlockOrigin/uAssets/issues/10323
// Also mind whether the new tab is launched from an external application.
// https://github.com/uBlockOrigin/uBlock-issues/issues/2227
// Revert commit related to issue above.
vAPI.Tabs = class extends vAPI.Tabs {
constructor() {
@@ -66,8 +68,7 @@ vAPI.Tabs = class extends vAPI.Tabs {
const isClientRedirect =
Array.isArray(details.transitionQualifiers) &&
details.transitionQualifiers.includes('client_redirect');
const isStartPage = details.transitionType === 'start_page';
if ( isClientRedirect === false && isStartPage === false ) { return; }
if ( isClientRedirect === false ) { return; }
this.onCreatedNavigationTargetHandler({
tabId: details.tabId,
sourceTabId: details.tabId,
@@ -212,7 +213,7 @@ vAPI.scriptletsInjector = (( ) => {
const parts = [
'(',
function(details) {
if ( typeof self.uBO_scriptletsInjected === 'string' ) { return; }
if ( self.uBO_scriptletsInjected !== undefined ) { return; }
const doc = document;
const { location } = doc;
if ( location === null ) { return; }

View File

@@ -43,15 +43,12 @@ if ( vAPI.canWASM === false ) {
vAPI.supportsUserStylesheets = vAPI.webextFlavor.soup.has('user_stylesheet');
const hasOwnProperty = (o, p) =>
Object.prototype.hasOwnProperty.call(o, p);
/******************************************************************************/
vAPI.app = {
name: manifest.name.replace(/ dev\w+ build/, ''),
version: (( ) => {
let version = manifest.version;
let version = manifest.version_name || manifest.version;
const match = /(\d+\.\d+\.\d+)(?:\.(\d+))?/.exec(version);
if ( match && match[2] ) {
const v = parseInt(match[2], 10);
@@ -190,7 +187,7 @@ vAPI.browserSettings = (( ) => {
set: function(details) {
for ( const setting in details ) {
if ( hasOwnProperty(details, setting) === false ) { continue; }
if ( Object.hasOwn(details, setting) === false ) { continue; }
switch ( setting ) {
case 'prefetching': {
const enabled = !!details[setting];
@@ -1220,7 +1217,7 @@ vAPI.Net = class {
{
const wrrt = browser.webRequest.ResourceType;
for ( const typeKey in wrrt ) {
if ( hasOwnProperty(wrrt, typeKey) ) {
if ( Object.hasOwn(wrrt, typeKey) ) {
this.validTypes.add(wrrt[typeKey]);
}
}

View File

@@ -166,7 +166,9 @@ vAPI.webextFlavor = {
soup.add('ipaddress');
// Whether this is a dev build.
if ( /^\d+\.\d+\.\d+\D/.test(browser.runtime.getManifest().version) ) {
const manifest = browser.runtime.getManifest();
const version = manifest.version_name || manifest.version;
if ( /^\d+\.\d+\.\d+\D/.test(version) ) {
soup.add('devbuild');
}
@@ -178,8 +180,11 @@ vAPI.webextFlavor = {
soup.add('native_css_has');
}
const extensionOrigin = browser.runtime.getURL('');
// Order of tests is important
if ( browser.runtime.getURL('').startsWith('moz-extension://') ) {
flavor.isGecko = extensionOrigin.startsWith('moz-extension://');
if ( flavor.isGecko ) {
soup.add('firefox')
.add('user_stylesheet')
.add('html_filtering');

View File

@@ -17,10 +17,10 @@
"browser_specific_settings": {
"gecko": {
"id": "uBlock0@raymondhill.net",
"strict_min_version": "79.0"
"strict_min_version": "92.0"
},
"gecko_android": {
"strict_min_version": "79.0"
"strict_min_version": "92.0"
}
},
"commands": {

View File

@@ -287,7 +287,7 @@ vAPI.Net = class extends vAPI.Net {
if ( domainFromHostname(cn) === domainFromHostname(hn) ) { return; }
}
if ( this.cnameIgnoreList !== null ) {
if ( this.cnameIgnoreList.test(cn) === false ) { return; }
if ( this.cnameIgnoreList.test(cn) ) { return; }
}
if ( this.cnameIgnoreRootDocument ) {
const origin = hostnameFromNetworkURL(details.documentUrl || details.url);
@@ -355,7 +355,7 @@ vAPI.scriptletsInjector = (( ) => {
const parts = [
'(',
function(details) {
if ( typeof self.uBO_scriptletsInjected === 'string' ) { return; }
if ( self.uBO_scriptletsInjected !== undefined ) { return; }
const doc = document;
const { location } = doc;
if ( location === null ) { return; }

View File

@@ -7,17 +7,21 @@ The following assumes a linux environment.
1. Open Bash console
2. `git clone https://github.com/gorhill/uBlock.git`
3. `cd uBlock`
4. `make mv3-[platform]`, where `[platform]` is either `chromium` or `firefox`
5. This will fully build uBO Lite, and during the process filter lists will be downloaded from their respective remote servers
4. `git submodule init`
5. `git submodule update`
6. `make mv3-[platform]`, where `[platform]` is either `chromium`, `edge`, `firefox`, or `safari`
7. This will fully build uBO Lite, and during the process filter lists will be downloaded from their respective remote servers
Upon completion of the script, the resulting extension package will become present in:
- Chromium: `dist/build/uBOLite.chromium`
- Firefox: `dist/build/uBOLite.firefox`
- Edge: `dist/build/uBOLite.edge`
- Firefox: `dist/build/uBOLite.firefox`
- Safari: `dist/build/uBOLite.safari`
The folder `dist/build/mv3-data` will cache data fetched from remote servers, so as to avoid fetching repeatedly from remote servers with repeated build commands. Use `make cleanassets` to remove all locally cached filter lists if you want to build with latest versions of filter lists.
The file `dist/build/mv3-data/log.txt` will contain information about what happened during the build process.
The file `dist/build/uBOLite.[platform]/log.txt` will contain information about what happened during the build process.
The entry in the `Makefile` which implement the build process is `tools/make-mv3.sh [platform]`.[1] This Bash script copy various files from uBlock Origin branch and MV3-specific branch into a single folder which will be the final extension package.
@@ -27,5 +31,4 @@ All the final rulesets are present in the `dist/build/uBOLite.[platform]/ruleset
---
[1] https://github.com/gorhill/uBlock/blob/c4d324362fdb95ff8ef20f0b18f42f0eec955433/tools/make-mv3.sh
[2] https://github.com/gorhill/uBlock/blob/c4d324362fdb95ff8ef20f0b18f42f0eec955433/tools/make-mv3.sh#L103
[1] https://github.com/gorhill/uBlock/blob/c4d324362fdb95ff8ef20f0b18f42f0eec955433/tools/make-mv3.sh<br>

View File

@@ -12,12 +12,24 @@
"service_worker": "/js/background.js",
"type": "module"
},
"commands": {
"enter-zapper-mode": {
"description": "__MSG_zapperTipEnter__"
},
"enter-picker-mode": {
"description": "__MSG_pickerTipEnter__"
}
},
"declarative_net_request": {
"rule_resources": [
]
},
"default_locale": "en",
"description": "__MSG_extShortDesc__",
"host_permissions": [
"<all_urls>"
],
"incognito": "split",
"icons": {
"16": "img/icon_16.png",
"32": "img/icon_32.png",
@@ -28,9 +40,6 @@
"minimum_chrome_version": "122.0",
"name": "__MSG_extName__",
"options_page": "dashboard.html",
"optional_host_permissions": [
"<all_urls>"
],
"permissions": [
"activeTab",
"declarativeNetRequest",
@@ -51,6 +60,33 @@
"<all_urls>"
],
"use_dynamic_url": true
},
{
"resources": [
"/zapper-ui.html"
],
"matches": [
"<all_urls>"
],
"use_dynamic_url": true
},
{
"resources": [
"/picker-ui.html"
],
"matches": [
"<all_urls>"
],
"use_dynamic_url": true
},
{
"resources": [
"/unpicker-ui.html"
],
"matches": [
"<all_urls>"
],
"use_dynamic_url": true
}
]
}

View File

@@ -1,30 +1,9 @@
## Description
**uBO Lite** (uBOL), a **permission-less** [MV3 API-based](https://developer.chrome.com/docs/extensions/mv3/intro/) content blocker.
**uBO Lite** (uBOL), an efficient [MV3 API-based](https://developer.chrome.com/docs/extensions/mv3/intro/) content blocker.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is [performed reliably](https://developer.chrome.com/docs/extensions/reference/scripting/#method-registerContentScripts) by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read/modify data" [permission](https://developer.chrome.com/docs/extensions/mv3/declare_permissions/) at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read/modify data" permissions at install time. <details><summary>**However, [...]**</summary>
uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using declarative cosmetic and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
![uBOL's popup panel: no permission](https://user-images.githubusercontent.com/585534/195468156-d7e63ab9-abfa-443c-a8f6-e646a29b801e.png)
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request:
![uBOL's popup panel: browser warning](https://user-images.githubusercontent.com/585534/195342593-2b82b740-70a3-4507-a0e5-d7aee803b286.png)
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site:
![uBOL's popup panel: permissions to inject content](https://user-images.githubusercontent.com/585534/195342612-85d109d9-9006-4eb5-95a5-fec8a4f233ea.png)
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to modify and read data on all websites:
![uBOL's options: Default filtering mode](https://user-images.githubusercontent.com/585534/195343335-a0aa103e-621e-4137-9bcf-9821dc881be1.png)
</details>
The default ruleset corresponds to at least uBlock Origin's default filterset:
- uBlock Origin's built-in filter lists
@@ -33,9 +12,3 @@ The default ruleset corresponds to at least uBlock Origin's default filterset:
- Peter Lowes Ad and tracking server list
You can add more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
نسخة مبسطة (uBOL) مانع محتوى من نوع MV3 تجريبي *أقل طلبا للتصاريح* MV3-قاعدة الحظر الأساسية
uBO Lite (uBOL) هو مانع محتوى يعتمد على MV3.
تتوافق مجموعة القواعد الافتراضية مع مجموعة عوامل التصفية الافتراضية لـ uBlock Origin:
@@ -10,21 +10,3 @@
يمكنك تفعيل المزيد من مجموعات القواعد من خلال زيارة صفحة الخيارات - انقر على أيقونة _الترس_ في لوحة الإشعارات.
uBOL صريح تمامًا، مما يعني أنه لا تحتاج إلى uBOL بشكل دائم لحدوث تصفية المحتوى، يتم إجراء تصفية المحتوى من خلال إضافة CSS/JS بشكل موثوق به بواسطة المتصفح نفسه بدلًا من الإضافة. هذا يعني أن uBOL نفسه لا يستهلك موارد وحدة المعالجة المركزية/الذاكرة أثناء استمراره في حظر المحتوى.
لا يتطلب uBOL صلاحية واسعة «لقراءة البيانات وتعديلها» في وقت التثبيت، وبالتالي فإن قدراته محدودة مقارنة بـ uBlock Origin أو إضافات حظر الإعلانات الأخرى التي تتطلب صلاحية واسعة «قراءة البيانات وتعديلها» في وقت التثبيت.
ومع ذلك، يسمح لك uBOL "بوضوح" بمنح صلاحيات موسعة على مواقع محددة من اختيارك حتى يتمكن من التصفية بشكل أفضل على تلك المواقع باستخدام التصفية التجميلية وإضافة النص.
لمنح صلاحيات موسعة على موقع معين، افتح اللوحة المنبثقة واختر وضع التصفية إما الأمثل أو الكامل.
سيحذرك المتصفح من مخاطر منح صلاحيات إضافية التي يطلبها الامتداد على الموقع الحالي، وسيتعين عليك إختيار بما إذا كنت تقبل الطلب أو ترفضه.
إذا قبلت طلب uBOL بالحصول على صلاحيات إضافية على الموقع الحالي، فستتمكن من تصفية المحتوى بشكل أفضل للموقع الحالي.
بإمكانك اختيار وضع التصفية الافتراضية من خلال صفحة خيارات uBOL. إذا اخترت الوضع الأمثل أو الكامل باعتباره الوضع الافتراضي، فستحتاج إلى منح uBOL الإذن لقراءة البيانات وتعديلها على جميع مواقع الويب.
ضع في اعتبارك أن هذا لا يزال عملًا قيد التنفيذ، هذه هي الأهداف النهائية:
لا يمكنك تحديد الأذونات المستخدمة لاحقًا في التثبيت، تحديدك للأذونات سيكون خلال زيارتك لكل موقع.
تقريري تمامًا للموثوقية ولكفاءة وحدة المعالجة المركزية/الذاكرة.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) *icazəsiz* MV3 əsaslı məzmun bloklayıcısıdır.
uBO Lite (uBOL) is an MV3-based content blocker.
Defolt qaydalar dəsti uBlock Origin-in defolt filtr dəstinə uyğundur:
@@ -10,21 +10,3 @@ Defolt qaydalar dəsti uBlock Origin-in defolt filtr dəstinə uyğundur:
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
uBO Лайт (uBOL) гэта блакіроўшчык кантэнту з меншымі патрабаваннямі да дазволаў заснаваны на MV3
uBO Lite (uBOL) гэта базаваны на MV3 блакавальнік змесціва.
Прадвызначаны набор правіл адпавядае тыпавому набору фільтраў uBlock Origin:
@@ -7,24 +7,6 @@ uBO Лайт (uBOL) гэта блакіроўшчык кантэнту з мен
- EasyPrivacy
- Спіс сервераў з рэкламай і адсочвання ад Peter Lowe
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
Вы можаце ўключыць больш набораў правіл праз старонку налад -- націсніце на значок _Шасцярэнькі_ на ўсплывальнай панэлі.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- Адсутнасць шырокіх дазволаў на вузел падчас усталявання. Пашыраныя дазволы выдаюцца карыстальнікам для кожнага сайта асобна.
- Цалкам дэкларатыўная ацэнка надзейнасці і эфектыўнасці работы працэсара/памяці.
uBOL цалкам дэкларатыўны, то-бок не мае неабходнасці ў сталым uBOL працэсе дзеля фільтрацыі, а фільтрацыя змесціва на аснове інʼекцыі CSS/JS надзейна выконваецца пераважна самім браўзерам замест пашырэння. Гэта значыць, што uBOL не спажывае рэсурсаў працэсара/памяці пры блакаванні зместу -- службовы працэс uBOL патрэбны _толькі_ падчас узаемадзеяння з усплывальнай панэллю або наладамі.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) е блокер за съдържание *без разрешения*, базиран на MV3.
uBO Lite (uBOL) е блокер за съдържание, базиран на MV3.
Наборът от правила по подразбиране съответства на набора от филтри по подразбиране на uBlock Origin:
@@ -10,21 +10,3 @@ uBO Lite (uBOL) е блокер за съдържание *без разреше
Можете да включите още набори от правила, като посетите страницата с опции щракнете върху иконата „зъбно колело“ в изскачащия панел.
uBOL е изцяло декларативен, което означава, че няма нужда от постоянен процес на uBOL за филтриране, а филтрирането на съдържание, базирано на инжектиране на CSS/JS, се извършва надеждно от самия браузър, а не от разширението. Това означава, че самият uBOL не консумира ресурси на процесора/паметта, докато тече блокирането на съдържанието работният процес на услугата на uBOL е необходим _само_ когато взаимодействате с изскачащия панел или страниците с опции.
uBOL не изисква широко разрешение за "четене и промяна на данни" по време на инсталиране, поради което възможностите му са ограничени в сравнение с uBlock Origin или други блокери на съдържание, изискващи широко разрешение за "четене и промяна на данни" по време на инсталиране.
Въпреки това uBOL ви позволява да предоставите *изрично* разширени разрешения за определени сайтове по ваш избор, за да може да филтрира по-добре тези сайтове, като използва козметично филтриране и инжектиране на скриптове.
За да предоставите разширени разрешения за даден сайт, отворете изскачащия панел и изберете по-висок режим на филтриране, например Оптимален или Пълен.
След това браузърът ще ви предупреди за последиците от предоставянето на допълнителните разрешения, поискани от разширението, за текущия сайт и ще трябва да кажете на браузъра дали приемате или отхвърляте искането.
Ако приемете искането на uBOL за допълнителни разрешения за текущия сайт, той ще може да филтрира по-добре съдържанието на текущия сайт.
Можете да зададете режима на филтриране по подразбиране от страницата с опции на uBOL. Ако изберете оптимален или пълен режим по подразбиране, ще трябва да предоставите на uBOL разрешение за четене и промяна на данни във всички уебсайтове.
Имайте предвид, че това все още е в процес на разработка с тези крайни цели:
- По време на инсталацията няма широки разрешения за хоста разширените разрешения се предоставят изрично от потребителя за всеки сайт.
- Изцяло декларативен за надеждност и ефективност на процесора/паметта.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) হল একটি *অনুমতি-হীন* MV3-ভিত্তিক কনটেন্ট ব্লকার
uBO Lite (uBOL) হল একটি ম্যানিফেস্ট ভার্সন ৩ ভিত্তিক কনটেন্ট ব্লকার
পূর্ব নির্ধারিত নিয়ম সেট uBlock অরিজিনের ডিফল্ট ফিল্টারসেটের সাথে মিলে যায়:
@@ -10,21 +10,3 @@ uBO Lite (uBOL) হল একটি *অনুমতি-হীন* MV3-ভিত
তুমি অপশন পাতায় গিয়ে আরও নিয়ম যোগ করতে পারো -- পপআপ প্যানেলে _গিয়ার_ আইকনে ক্লিক করে।
uBOL সম্পূর্ণরূপে ঘোষণামূলক, অর্থাৎ ফিল্টারিং করতে একটি স্থায়ী uBOL প্রক্রিয়ার প্রয়োজন নেই, এবং CSS/JS ইনজেকশন-ভিত্তিক বিষয়বস্তু ফিল্টারিং এক্সটেনশনের পরিবর্তে ব্রাউজার নিজেই নির্ভরযোগ্যভাবে এই কাজ করে থাকে। এর মানে হল যে কন্টেন্ট ব্লকিং চলমান থাকা অবস্থায় uBOL নিজেই CPU/মেমরি রিসোর্স ব্যবহার করে না -- uBOL-এর পরিষেবার প্রক্রিয়ার প্রয়োজন শুধুমাত্র_ যখন আপনি পপআপ প্যানেল বা অপশন পেজগুলির সাথে ইন্টারঅ্যাক্ট করেন।
uBOL-এর ইন্সটল করার সময় বিস্তৃত "পড়ার ও ডেটা পরিবর্তন করার" অনুমতির প্রয়োজন হয় না, তাই ইউব্লক অরিজিন বা অন্যান্য কনটেন্ট ব্লকের তুলনায় এটির সীমিত ক্ষমতা বাক্সের বাইরে রয়েছে যার জন্য ইন্সটল করার সময় বিস্তৃত "ডেটা পড়ুন এবং পরিবর্তন করুন" অনুমতি প্রয়োজন।
যাইহোক, uBOL আপনাকে আপনার পছন্দের নির্দিষ্ট সাইটে *স্পষ্টভাবে* বর্ধিত অনুমতি প্রদান করে যাতে এটি কসমেটিক ফিল্টারিং এবং স্ক্রিপ্টলেট ইনজেকশন ব্যবহার করে সেই সাইটগুলিতে আরও ভাল ফিল্টার করতে পারে।
একটি সাইটে বর্ধিত অনুমতি প্রদানের জন্য, পপআপ প্যানেল খুলুন এবং একটি উচ্চতর ফিল্টারিং মোড বাছাই করুন যেমন অপটিমাল বা কমপ্লিট।
ব্রাউজারটি তখন বর্তমান সাইটে এক্সটেনশন দ্বারা অনুরোধ করা অতিরিক্ত অনুমতি প্রদানের প্রভাব সম্পর্কে আপনাকে সতর্ক করবে এবং আপনি অনুরোধটি গ্রহণ করবেন বা প্রত্যাখ্যান করবেন কিনা তা আপনার ব্রাউজারকে বলতে হবে।
আপনি যদি বর্তমান সাইটে অতিরিক্ত অনুমতির জন্য uBOL-এর অনুরোধ গ্রহণ করেন, তাহলে এটি বর্তমান সাইটের জন্য আরও ভালভাবে ফিল্টার করতে সক্ষম হবে।
আপনি uBOL এর বিকল্প পৃষ্ঠা থেকে ডিফল্ট ফিল্টারিং মোড সেট করতে পারেন। আপনি যদি অপটিমাল বা কমপ্লিট মোডটিকে ডিফল্ট হিসেবে বেছে নেন, তাহলে আপনাকে uBOL-কে সমস্ত ওয়েবসাইটের ডেটা পড়তে এবং পরিবর্তন করার অনুমতি দিতে হবে।
মনে রাখবেন এই শেষ লক্ষ্যগুলির ফলাফলের সাথে এখনও সংস্করণ কাজ চলছে:
- ইনস্টল করার সময় কোনও বিস্তৃত অনুমতি নেই -- বর্ধিত অনুমতিগুলি প্রতি-সাইট ভিত্তিতে ব্যবহারকারীর দ্বারা স্পষ্টভাবে প্র্রদান করা হয়।
- নির্ভরযোগ্যতা এবং CPU/মেমরি দক্ষতার জন্য সম্পূর্ণরূপে পূর্বঘোষণামুূলক।

View File

@@ -1,30 +1,12 @@
uBO Lite (uBOL) zo ur stanker noazadurioù *hep aotre rekis ebet* diazezet war ar manifesto MV3.
uBO Lite (uBOL) zo ur stanker noazadurioù diazezet war ar manifesto MV3.
Ar reolennoù dre ziouer a glot gant silañ dre ziouer uBlock Origin:
- Rolloù siloù genidik a uBlock Origin
- EasyList
- EasyPrivacy
- Roll bruderezh ha servijerioù heuliañ Peter Lowe
- Roll ar servijerioù brudañ ha heuliañ eus Peter Lowe
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
Tu zo deoc'h ouzhpennañ reolennoù all en arventennoù -- klikit war an ikon _kendentadur_ er banell popup.
Disklêriañ a ra uBOL penn-da-benn, da lavaret eo n'eus ket ezhomm eus un argerzh uBOL padus evit ma c'hoarvezfe ar silañ, ha silañ endalc'hadoù diazezet war enlakaat CSS/JS a vez graet en un doare fizius gant ar merdeer e-unan kentoc'h eget gant an astenn. Kement-se a dalvez ne vez ket gounezet gant uBOL e-unan arc'hwelioù CPU/memor e-pad ma vez stanket an endalc'hadoù -- ezhomm zo eus argerzh al labourer servij uBOL _nemet_ pa vez etregweredet gant ar banell digeriñ pe ar pajennoù dibarzhioù.
UBOL n'en deus ket ezhomm eus aotreoù ledan "lenn ha kemmañ roadennoù" e-pad ar staliañ, setu perak e c'halloudoù bevennet e-keñver uBlock Origin pe stankerien endalc'hadoù all a c'houlenn aotreoù ledan "lenn ha kemmañ roadennoù" e-pad ar staliañ.
Koulskoude ez eus tu deoc'h reiñ *sklaer* aotreoù ouzhpenn da uBOL el lec'hiennoù ma fell deoc'h, mod-se e vint silet gwelloc'h en ur implij siloù kened hag ensinkladurioù scriplet.
Evit reiñ aotreoù ouzhpenn da uBOL en ul lec'hienn bennak, n'ho peus nemet digeriñ ar prenestr pop-up ha diuzañ ul live silañ uheloc'h evel ar mod Gwellañ pe ar mod Klok
Goude-se e vo kelaouet ac'hanoc'h gant ar merdeer diwar-benn efedoù reiñ an aotreoù ouzhpenn goulennet gant an astenn war al lec'hienn bremanel, ha ret e vo deoc'h lâret d'ar merdeer hag-eñ e vo degemeret pe nac'het ar goulenn ganeoc'h.
Ma asantit da reiñ muioc'h a aotreoù da uBOL war ar bajenn-mañ e vo silet gwelloc'h.
Gallout a rit termeniñ ar mod silañ dre ziouer e pajenn arventennoù uBOL. Ma tibabit ar mod Gwellañ pe an hini Klok evel ar mod dre ziouer e vo ret deoc'h aotren uBOL da lenn ha kemmañ roadennoù en holl lec'hiennoù.
Dalc'hit soñj ez eo uBOL ur raktres war ober c'hoazh hag a zo e bal:
- Aotreoù ostiz ledan ebet e-pad ar staliañ -- aotreoù astennet a vez roet splann gant an implijer dre lec'hienn.
- Disklêriañ penn-da-benn evit ar fiziañs hag an efedusted CPU/memor.

View File

@@ -1,30 +1,12 @@
uBO Lite (uBOL) je blokator sadržaja zasnovan na MV3 *bez dozvole*.
uBO Lite (uBOL) je blokator sadržaja baziran na MV3.
Zadani skup pravila odgovara zadanom skupu filtera uBlock Origin:
- UBlock Origin ugrađene liste filtera
- EasyList
- EasyPrivacy
- Oglas Peter Lowe i lista servera za praćenje
- Peter Lowe-ova lista servera za oglase i praćenje
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
Možete omogućiti više skupova pravila posjetom stranice s opcijama -- kliknite na ikonu _Cogs_ u skočnom panelu.
uBOL je potpuno deklarativno, što znači da nema potrebe za trajnim uBOL procesom da bi se filtriranje dogodilo, a filtriranje sadržaja zasnovano na CSS/JS injekcijama se pouzdano izvodi od strane samog pretraživača, a ne ekstenzije. To znači da sam uBOL ne troši CPU/memorijske resurse dok je blokiranje sadržaja u toku -- proces uBOL-a servisnog radnika je potreban _samo_ kada stupite u interakciju sa iskačućim panelom ili stranicama sa opcijama.
uBOL ne zahtijeva široku dozvolu za "čitanje i modificiranje podataka" u vrijeme instalacije, stoga su njegove ograničene mogućnosti izvan kutije u poređenju sa uBlock Origin-om ili drugim blokatorima sadržaja koji zahtijevaju široke dozvole za "čitanje i modificiranje podataka" u vrijeme instalacije.
Međutim, uBOL vam omogućava da *eksplicitno* dodijelite proširene dozvole na određenim web lokacijama po vašem izboru kako bi mogao bolje filtrirati te stranice koristeći kozmetičko filtriranje i injekcije skriptleta.
Da biste dali proširene dozvole za datu web lokaciju, otvorite iskačući panel i odaberite viši način filtriranja kao što je Optimal ili Complete.
Pregledač će vas tada upozoriti na efekte odobravanja dodatnih dozvola koje ekstenzija traži na trenutnoj web stranici, a vi ćete morati reći pretraživaču da li prihvatate ili odbijate zahtjev.
Ako prihvatite uBOL-ov zahtjev za dodatnim dozvolama na trenutnoj stranici, moći će bolje filtrirati sadržaj za trenutnu stranicu.
Možete postaviti zadani način filtriranja sa uBOL-ove stranice sa opcijama. Ako odaberete Optimal ili Kompletan način kao zadani, morat ćete dati uBOL-u dozvolu da čita i mijenja podatke na svim web stranicama.
Imajte na umu da je ovo još uvijek u toku, sa ovim krajnjim ciljevima:
- Nema širokih dozvola za host u vrijeme instalacije - proširene dozvole se eksplicitno dodeljuju od strane korisnika na bazi po lokaciji.
- Potpuno deklarativno za pouzdanost i efikasnost CPU/memorije.

View File

@@ -1,4 +1,4 @@
L'uBO Lite (uBOL) és un blocador de contingut *sense permisos* basat en MV3.
L'uBO Lite (uBOL) és un blocador de contingut basat en MV3.
El conjunt de regles per defecte correspon al conjunt de filtres per defecte d'uBlock Origin:
@@ -12,21 +12,3 @@ Podeu habilitar més conjunts de regles si visiteu la pàgina d'opcions: feu cli
L'uBOL és totalment declaratiu, és a dir, no cal un procés uBOL permanent perquè es produeixi el filtratge, i el filtratge de contingut basat en injecció CSS/JS es realitza de manera fiable pel propi navegador més que per l'extensió.
Això vol dir que l'uBOL en si no consumeix recursos de CPU/memòria mentre el bloqueig de contingut està en curs; el procés de treballador de servei d'uBOL només es requereix quan interactueu amb el tauler emergent o les pàgines d'opcions.
L'uBOL no requereix un ampli permís de "lectura i modificació de dades" en el moment de la instal·lació, per tant, les seves capacitats limitades en comparació amb l'uBlock Origin o altres blocadors de contingut que requereixen amplis permisos de "lectura i modificació de dades" en el moment de la instal·lació.
Tanmateix, l'uBOL us permet concedir *explícitament* permisos ampliats en llocs específics que trieu perquè pugui filtrar millor en aquests llocs mitjançant filtres cosmètics i injeccions de scriptlet.
Per concedir permisos ampliats en un lloc determinat, obriu el tauler emergent i seleccioneu un mode de filtrat superior, com ara Òptim o Complet.
Aleshores, el navegador us avisarà sobre els efectes de la concessió dels permisos addicionals sol·licitats per l'extensió al lloc actual, i haureu d'indicar-li al navegador si accepteu o rebutgeu la sol·licitud.
Si accepteu la sol·licitud d'uBOL de permisos addicionals al lloc actual, podrà filtrar millor el contingut del lloc actual.
Podeu establir el mode de filtratge per defecte des de la pàgina d'opcions d'uBOL. Si trieu el mode Òptim o Complet per defecte, haureu de concedir a l'uBOL el permís per llegir i modificar dades a tots els llocs web.
Tingueu en compte que encara és un treball en curs, amb aquests objectius finals:
- No hi ha permisos d'amfitrió amplis en el moment de la instal·lació; els permisos ampliats els concedeix explícitament l'usuari per lloc.
- Totalment declaratiu per a la fiabilitat i l'eficiència de la CPU/memòria.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) je blokovač obsahu vyžadující méně oprávnění, založený na MV3.
uBO Lite (uBOL) je blokovač obsahu založený na MV3.
Výchozí sada pravidel koresponduje k výchozím sadám filtrů uBlock Origin:
@@ -10,21 +10,3 @@ Výchozí sada pravidel koresponduje k výchozím sadám filtrů uBlock Origin:
Další sady pravidel můžete povolit na stránce nastavení - klikněte na ikonu _Ozubeného kolečka_ ve vyskakovacím panelu.
uBOL je zcela deklarativní, což znamená, že pro filtrování není potřeba permanentní proces uBOL a filtrování obsahu založené na vstřikování CSS/JS je spolehlivě prováděno samotným prohlížečem, nikoli rozšířením. To znamená, že samotný uBOL nespotřebovává zdroje CPU/paměti, zatímco probíhá blokování obsahu proces servisního pracovníka uBOL je vyžadován _pouze_ při interakci s vyskakovacím panelem nebo stránkami nastavení.
uBOL nevyžaduje rozsáhlá oprávnění ke "čtení a úpravě dat" v době instalace, a proto má ihned po instalaci omezené možnosti ve srovnání s uBlock Origin nebo jinými blokovači obsahu, které vyžadují rozsáhlá oprávnění ke "čtení a úpravě dat" v době instalace.
Nicméně, uBOL vám umožňuje *explicitně* udělit rozšířená oprávnění na konkrétních webech podle vašeho výběru, aby mohl na těchto webech lépe filtrovat pomocí kosmetického filtrování a vstřikování skriptů.
Chcete-li na daném webu udělit rozšířená oprávnění, otevřete vyskakovací panel a vyberte vyšší režim filtrování, například optimální nebo kompletní.
Prohlížeč vás poté upozorní na důsledky udělení dalších oprávnění požadovaných rozšířením na aktuálním webu a vy budete muset prohlížeči sdělit, zda žádost přijímáte nebo odmítáte.
Pokud přijmete žádost uBOL o další oprávnění na aktuálním webu, bude moci lépe filtrovat obsah aktuálního webu.
Výchozí filtrovací režim můžete nastavit na stránce nastavení uBOL. Pokud jako výchozí zvolíte režim optimální nebo kompletní, budete muset uBOL udělit oprávnění ke čtení a úpravě dat na všech webových stránkách.
Mějte na paměti, že toto je stále nedokončená práce s těmito konečnými cíli:
- Žádná rozsáhlá oprávnění hostitele v době instalace -- rozšířená oprávnění uděluje explicitně uživatel na jednotlivých stránkách.
- Zcela deklarativní pro spolehlivost a efektivitu CPU/paměti.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
uBO Lite (uBOL) is an MV3-based content blocker.
The default ruleset corresponds to uBlock Origin's default filterset:
@@ -10,21 +10,3 @@ The default ruleset corresponds to uBlock Origin's default filterset:
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) yw blocwr cynnwys MV3 sy'n gweithredu heb ganiatâd safonol.
uBO Lite (uBOL) is an MV3-based content blocker.
Mae'r set reolau ddiofyn yn cyfateb i set hidlo diofyn uBlock Origin:
@@ -10,21 +10,3 @@ Mae'r set reolau ddiofyn yn cyfateb i set hidlo diofyn uBlock Origin:
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) er en *tilladelsesløs* MV3-baseret indholdsblocker.
uBO Lite (uBOL) er en MV3-baseret indholdsblocker.
Standardregelsættet svarer til uBlock Origins standardfiltersæt:
@@ -10,21 +10,3 @@ Standardregelsættet svarer til uBlock Origins standardfiltersæt:
Flere regelsæt kan aktiveres ved at gå til indstillingssiden -- klik på ikonet _Tandhjul_ i pop op-panelet.
uBOL er fuldstændig deklarativ, hvilket betyder, at ingen permanent uBOL-proces behøves for at filtreringen kan finde sted, og CSS/JS-injektionsbaseret indholdsfiltrering udføres pålideligt af browseren selv i stedet for af udvidelsen. Dette betyder, at uBOL ikke selv forbruger CPU-/hukommelsesressourcer under indholdsblokeringen -- uBOLs tjenestearbejdsproces er _kun_ nødvendig under interaktion med pop op-panelet eller indstillingssiderne.
uBOL kræver ikke en omfattende "læse og ændre data" tilladelse under installationen, derfor dens begrænsede egenskaber fra start af sammenlignet med uBlock Origin eller andre indholdsblockere, som kræver omfattende "læse/ændre data" tilladelser under installationen.
uBOL giver dog mulighed for *eksplicit* at tildele udvidede tilladelser på bestemte websteder efter eget valg, så den bedre kan filtrere på disse websteder vha. kosmetisk filtrering og scriptlet-injektioner.
For at tildele udvidede tilladelser på et givent websted, åbn pop op-panelet og vælg en højere filtreringstilstand, såsom Optimal eller Komplet.
Browseren advarer derefter om virkningerne af de ekstra tildelte tilladelser, som udvidelsen anmoder om på det aktuelle websted, og man vil skulle fortælle browseren, hvorvidt anmodningen accepteres eller afslås.
Accepteres uBOLs anmodning om ekstra tilladelser på det aktuelle websted, vil den bedre kunne filtrere indhold på webstedet.
Standardfiltreringstilstanden kan angives via uBOLs indstillingsside. Hvis tilstanden Optimal eller Komplet vælges som standardtilstand, skal uBOL tildeles tilladelse til at læse og ændre data på alle websteder.
Husk dog, at dette stadig er et igangværende arbejde med disse slutmål:
- Ingen omfattende værtstilladelser under installationen -- udvidede tilladelser tildeles eksplicit af brugeren på webstedsbasis.
- Fuldstændig deklarativ for pålidelighed og CPU-/hukommelseseffektivitet.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) ist ein Inhaltsblocker, der *ohne Berechtigungen* auskommt und auf MV3 basiert.
uBO Lite (uBOL) ist ein MV3-basierter Inhaltsblocker.
Die Standardregeln entsprechen den Standardfiltern von uBlock Origin:
@@ -10,21 +10,3 @@ Die Standardregeln entsprechen den Standardfiltern von uBlock Origin:
Sie können weitere Regeln aktivieren, indem Sie die Einstellungen aufrufen — klicken Sie dazu im Pop-up-Fenster auf das Symbol mit den _Zahnrädern_.
uBOL ist vollständig deklarativ, d. h. es ist kein dauerhafter uBOL-Prozess für das Filtern erforderlich, und die auf CSS/JS-Injektion basierende Inhaltsfilterung wird zuverlässig vom Browser selbst und nicht von der Erweiterung durchgeführt. Das bedeutet, dass uBOL selbst keine CPU-/Speicherressourcen verbraucht, während der Inhalt blockiert wird — der uBOL-Service-Worker-Prozess wird _nur_ benötigt, wenn Sie mit dem Pop-up-Fenster oder den Optionen interagieren.
uBOL erfordert bei der Installation keine weitreichende Berechtigung zum Lesen und Ändern von Daten, daher sind die Möglichkeiten im Vergleich zu uBlock Origin oder anderen Inhaltsblockern, die bei der Installation weitreichende Berechtigungen zum Lesen und Ändern von Daten erfordern, von vornherein begrenzt.
Allerdings können Sie mit uBOL *explizit* erweiterte Berechtigungen für bestimmte Websites Ihrer Wahl erteilen, sodass diese Websites durch kosmetisches Filtern und Scriptlet-Injektionen besser gefiltert werden können.
Um erweiterte Berechtigungen für eine bestimmte Website zu erteilen, öffnen Sie das Pop-up-Fenster und wählen Sie einen stärkeren Filtermodus wie »Optimal« oder »Vollständig«.
Der Browser warnt Sie anschließend über die Auswirkungen der zusätzlichen Berechtigungen, die von der Erweiterung für die aktuelle Website angefordert werden, und Sie können entscheiden, ob Sie zustimmen oder ablehnen.
Wenn Sie die Anfrage von uBOL nach zusätzlichen Berechtigungen für die aktuelle Website zustimmen, kann uBOL die Inhalte für die aktuelle Website besser filtern.
Sie können den Standardfiltermodus in den Optionen von uBOL festlegen. Wenn Sie den Modus »Optimal« oder »Vollständig« als Standardmodus wählen, müssen Sie uBOL die Berechtigung erteilen, Daten auf allen Websites lesen und ändern zu dürfen.
Denken Sie daran, dass sich dieses Projekt noch in Entwicklung befindet und folgende Ziele verfolgt:
- Keine weitreichenden Host-Berechtigungen bei der Installation — erweiterte Berechtigungen werden explizit von Ihnen für jede einzelne Website erteilt.
- Vollständig deklarativ für Zuverlässigkeit und CPU-/Speichereffizienz.

View File

@@ -1,4 +1,4 @@
Το uBO Lite (uBOL) είναι πρόσθετο φραγής περιεχομένου που *δεν απαιτεί δικαιώματα* και βασίζεται στο MV3.
Το uBO Lite (uBOL) είναι εργαλείο φραγής περιεχομένου, που βασίζεται στο MV3.
Το προεπιλεγμένο σύνολο κανόνων αντιστοιχεί στο προεπιλεγμένο σύνολο φίλτρων του uBlock Origin:
@@ -10,21 +10,3 @@
Μπορείτε να προσθέσετε περισσότερα σύνολα κανόνων από τη σελίδα επιλογών -- κάντε κλικ στο εικονίδιο _γρανάζι_ στον αναδυόμενο πίνακα.
Το uBOL είναι εξ'ολοκλήρου δηλωτικό, πράγμα που σημαίνει ότι δεν υπάρχει ανάγκη για μόνιμη διαδικασία uBOL για να πραγματοποιηθεί το φιλτράρισμα, και το φιλτράρισμα περιεχομένου που βασίζεται σε έγχυση CSS/JS εκτελείται αξιόπιστα από το ίδιο το πρόγραμμα περιήγησης και όχι από την επέκταση. Αυτό σημαίνει ότι το ίδιο το uBOL δεν καταναλώνει πόρους CPU/μνήμης ενώ ο αποκλεισμός περιεχομένου είναι σε εξέλιξη -- η διαδικασία του service worker του uBOL απαιτείται _μόνο_ όταν αλληλεπιδράτε με τον αναδυόμενο πίνακα ή τις σελίδες επιλογών.
Το uBOL δεν απαιτεί ευρεία άδεια "ανάγνωσης και τροποποίησης δεδομένων" κατά τον χρόνο εγκατάστασης, επομένως έχει εξαρχής περιορισμένες δυνατότητές σε σύγκριση με το uBlock Origin ή άλλα προγράμματα αποκλεισμού περιεχομένου που απαιτούν ευρείες άδειες "ανάγνωσης/τροποποίησης δεδομένων" κατά την εγκατάσταση.
Ωστόσο, το uBOL σάς επιτρέπει *ρητά* να εκχωρείτε εκτεταμένες άδειες σε συγκεκριμένους ιστότοπους της επιλογής σας, ώστε να μπορεί να φιλτράρει καλύτερα σε αυτούς τους ιστότοπους χρησιμοποιώντας κοσμητικό φιλτράρισμα και έγχυση scriptlet.
Για να εκχωρήσετε εκτεταμένα δικαιώματα σε έναν δεδομένο ιστότοπο, ανοίξτε το αναδυόμενο πλαίσιο και επιλέξτε μια υψηλότερη λειτουργία φιλτραρίσματος, όπως Βέλτιστη ή Ολοκληρωμένη.
Στη συνέχεια, το πρόγραμμα περιήγησης θα σας προειδοποιήσει για τα αποτελέσματα της χορήγησης των πρόσθετων δικαιωμάτων που ζητούνται από την επέκταση στον τρέχοντα ιστότοπο και θα πρέπει να ενημερώσετε το πρόγραμμα περιήγησης εάν αποδέχεστε ή απορρίπτετε το αίτημα.
Εάν αποδεχτείτε το αίτημα του uBOL για πρόσθετα δικαιώματα στον τρέχοντα ιστότοπο, θα μπορεί να φιλτράρει καλύτερα το περιεχόμενο για τον τρέχοντα ιστότοπο.
Μπορείτε να ορίσετε την προεπιλεγμένη λειτουργία φιλτραρίσματος από τη σελίδα επιλογών του uBOL. Εάν επιλέξετε τη λειτουργία Βέλτιστη ή Ολοκληρωμένη ως προεπιλεγμένη, θα πρέπει να εκχωρήσετε στην uBOL την άδεια ανάγνωσης και τροποποίησης δεδομένων σε όλους τους ιστότοπους.
Λάβετε υπόψη ότι αυτό είναι ακόμη ένα έργο σε εξέλιξη, με αυτούς τους τελικούς στόχους:
- Να μην υπάρχουν ευρείες άδειες hosts κατά την εγκατάσταση -- οι εκτεταμένες άδειες παραχωρούνται ρητά από τον χρήστη σε βάση ανά τοποθεσία.
- Εντελώς δηλωτικό για αξιοπιστία και απόδοση CPU/μνήμης.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
uBO Lite (uBOL) is an MV3-based content blocker.
The default ruleset corresponds to uBlock Origin's default filterset:
@@ -10,21 +10,3 @@ The default ruleset corresponds to uBlock Origin's default filterset:
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
uBO Lite (uBOL) is an MV3-based content blocker.
The default ruleset corresponds to uBlock Origin's default filterset:
@@ -10,21 +10,3 @@ The default ruleset corresponds to uBlock Origin's default filterset:
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) es un bloqueador de contenido con *menos permisos* basado en MV3.
uBO Lite (uBOL) es un bloqueador de contenido basado en MV3.
Por defecto ya trae configuradas las siguientes listas de filtros:
@@ -10,21 +10,3 @@ Por defecto ya trae configuradas las siguientes listas de filtros:
Puedes habilitar más conjuntos de reglas visitando la página de opciones, haz clic en el icono de _engranaje_ del panel emergente.
uBOL es completamente declarativo, lo que significa que no hay necesidad de un proceso uBOL permanente para que se produzca el filtrado, y el filtrado de contenido basado en la inyección de CSS/JS se realiza de forma confiable por el propio navegador en lugar de la extensión. Esto significa que uBOL en sí mismo no consume recursos de CPU/memoria mientras el bloqueo de contenido está en curso, el proceso service worker de uBOL se requiere _solo_ cuando se interactúa con el panel emergente o las páginas de opciones.
uBOL no requiere amplios permisos para "leer y modificar datos" en el momento de la instalación, de ahí sus capacidades limitadas en comparación con uBlock Origin u otros bloqueadores de contenido que requieren amplios permisos para "leer y modificar datos" en el momento de la instalación.
Sin embargo, uBOL te permite otorgar *explícitamente* permisos extendidos en sitios específicos de tu elección para que pueda filtrar mejor en esos sitios usando filtrado cosmético e inyecciones de scriptlet.
Para otorgar permisos extendidos en un sitio determinado, abre el panel emergente y elige un modo de filtrado superior, como óptimo o completo.
Después el navegador te advertirá sobre los efectos de otorgar los permisos adicionales solicitados por la extensión en el sitio actual, y deberás indicar al navegador si aceptas o rechazas la solicitud.
Si aceptas la solicitud de uBOL para permisos adicionales en el sitio actual, será capaz de filtrar mejor el contenido para el sitio actual.
Puedes establecer el modo de filtrado predeterminado desde la página de opciones de uBOL. Si eliges como predeterminado el modo óptimo o completo, tendrás que otorgar a uBOL el permiso para leer y modificar datos en todos los sitios web.
Téngase en cuenta que esto todavía es un trabajo en progreso, con estos objetivos finales:
- Sin amplios permisos de host en el momento de la instalación, los permisos ampliados son otorgados explícitamente por el usuario en cada sitio.
- Completamente declarativo para confiabilidad y eficiencia de la CPU/memoria.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) on MV3-l põhinev *lubadeta* sisutõkestaja.
uBO Lite (uBOL) on MV3-l põhinev sisutõkestaja.
Tavaline reeglitekogum vastab uBlock Origini tavalisele filtritekogumile:
@@ -10,21 +10,3 @@ Peter Lowe'i reklaamide ja jälitusserverite loend
Rohkem reegleid valikutest ehk toksake _Cogs_ ikooni hüpikpaneelis.
uBOL on läbinisti deklaratiivne ehk filtreerimiseks pole vaja kogu aeg töötavat uBOLi protsessi ja CSS/JS süstipõhist sisu filtreerib tegelikult brauser, mitte laiendus. Teisisõnu, uBOL ei kasuta sisu tõkestamisel protsessori/mälu ressursse. uBOLi teenuse toimimise protsessi on vaja _vaid_ juhul, kui kasutate hüpikpaneeli või valikute lehekülgi.
uBOL ei nõua paigaldamise ajal teadatuntud andmete lugemise ja muutmise luba, seega võrreldes seda nõudva laiendusega uBlock Origin või muu sisutõkestiga on uBOL-i piiratus üks selle funktsioonidest.
Kuid uBOL võimaldab *selgesõnaliselt* anda täpsemaid lubasid teie valitud veebilehtedele, et neid saaks paremini filtreerida ilufiltrite ja skriptisüstidega.
Veebilehele täpsustatud lubade andmiseks ava hüpikpaneel ja vali põhjalikum filtreerimisrežiim, näiteks Optimaalne või Põhjalik.
Seejärel hoiatab veebilehitseja praeguse veebilehe laienduse taotletud täiendavate õiguste andmise tagajärgede eest ja peate veebilehitsejale ütlema, kas nõustute taotlusega või keeldute sellest.
Kui nõustute uBOLi taotlusega täiendavate õiguste saamiseks praegusel veebilehel, saab see praeguse veebilehe sisu paremini filtreerida.
Fltreerimise tavarežiimi saate määrata uBOLi valikute lehelt. Kui määrate optimaalse või põhjaliku režiimi tavaliseks, peate andma uBOLile loa kõikide veebilehtede andmete lugemiseks ja muutmiseks.
Pidage meeles, et see on veel arendamisel, mille lõppeesmärgid on järgmised:
- Paigaldamise ajal laialdased hostiõigused puuduvad kasutaja annab laiendatud load selgesõnaliselt ja veebilehe põhiselt.
- Täiesti deklaratiivne töökindluse ja protsessori/mälu tõhususe osas.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) irakargarri blokeatzailea de, baimen gutxiekin eta MV3ean basatua
uBO Lite (uBOL) is an MV3-based content blocker.
Lehenespenez, iragazki-zerrenda hauek ditu konfiguratuta:
@@ -10,21 +10,3 @@ Peter Lowe-ren Ad and tracker zerrenda
Ruleta gehiago aktibatu ahal duzu aukerak orria --klikatu _Cogs_ ikonoa panelearen lehioan
uBOL guztiz deklaratiboa da, hau da, ez dago uBOL prozesu iraunkor baten beharrik iragazketa gertatzeko, eta CSS/JS injekzioan oinarritutako edukien iragazketa nabigatzaileak berak egiten du fidagarritasunez, luzapenaren arabera beharrean. Horrek esan nahi du uBOLek berak ez duela CPU/memoria baliabiderik kontsumitzen edukien blokeoa martxan dagoen bitartean... uBOLren zerbitzuko langileen prozesua _only_ behar da popup panelarekin edo aukera orriekin elkarreragiten denean.
uBOLek ez du "irakurtzeko eta aldatzeko datuak" baimen zabalik behar instalazio-unean, horregatik bere gaitasun mugatuak uBlock Origin-ekin alderatuta edo beste eduki-blokeatzaile batzuekin alderatuta, "irakurtzeko eta aldatzeko datuak" baimen zabalak behar dituzten instalazio garaian.
Hala ere, uBOLek aukera ematen dizu *esplizituki* baimen hedatuak zure aukeratutako gune espezifikoetan, gune horietan hobeto iragazteko iragazte kosmetikoak eta scriptlet injekzioak erabiliz.
Leku jakin batean baimenak emateko, ireki panel emergentea eta aukeratu goiko iragazteko modu bat, optimo edo oso gisa.
Nabigatzaileak orduan jakinaraziko dizu zer ondorio dituen luzapenak eskatutako baimen gehigarriak emateak egungo gunean, eta nabigatzaileari esan beharko diozu eskaera onartzen duzun edo uko egiten diozun.
Baimen gehigarrien eskaera onartzen baduzu, oraingo gunean edukiak hobeto iragazi ahal izango ditu.
Iragazki modu lehenetsia uBOL-en aukeren orrialdetik ezar dezakezu. Modu hoberena edo osoa aukeratzen baduzu lehenetsitako moduan, uBOL-i webgune guztietako datuak irakurtzeko eta aldatzeko baimena eman beharko diozu.
Gogoan izan oraindik lan bat dela, azken helburu hauekin:
- Instalatzeko garaian, ez dago baimen zabalik. Erabiltzaileak esplizituki ematen ditu baimen zabalduak.
- Erabat deklaratiboa fidagarritasunagatik eta CPU/memoriaren eraginkortasunagatik.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
uBO Lite (uBOL) is an MV3-based content blocker.
مجموعه قوانین پیش فرض آن مطابق با مجموعه قوانین پیش فرض uBlock Origin است:
@@ -10,21 +10,3 @@ uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) on *käyttöoikeudeton* MV3-pohjainen sisällönestotyökalu.
uBO Lite (uBOL) on MV3-pohjainen sisällönestotyökalu.
Oletusarvoiset sääntömääritykset vastaavat uBlock Origin -laajennuksen oletuksia:
@@ -10,21 +10,3 @@ Oletusarvoiset sääntömääritykset vastaavat uBlock Origin -laajennuksen olet
Voit aktivoida lisää sääntömäärityksiä laajennuksen asetuksista paina ponnahduspaneelin _Ratas_-kuvaketta.
uBOL on täysin deklaratiivinen, eli suodatus ei edellytä pysyvää uBOL-prosessia ja CSS-/JS-koodin manipulointiin perustuva sisällönsuodatuksen suorittaa laajennusprosessin sijaan luotettavasti selainsovellus. Tämän ansiosta itse uBOL ei kuormita prosessoria tai keskusmuistia sisällöneston tapahtuessa -- uBOL:n työprosessia tarvitaan _ainoastaan_ ponnahduspaneelia ja asetussivuja käytettäessä.
uBOL ei edellytä laajan tietojen luku- ja muokkausoikeuden myöntämistä asennuksen yhteydessä, jonka vuoksi sen oletusarvoiset valmiudet ovat uBlock Originia ja muita vastaavia sisällönestotyökaluja rajallisemmat.
On kuitenkin mahdollista myöntää *yksinomaisesti* uBOL:lle laajennetut käyttöoikeudet sivustokohtaisesti niiden suodatuksen tehostamiseksi kosmeettisella suodatuksella ja scriplet-injektoinnilla.
Laajemmat oikeudet myönnetään avoimelle sivustolle avaamalla ponnahduspaneeli ja valitsemalla korkeampi suodatustaso, kuten "Optimaalinen" tai "Täysi".
Tällöin selain varoittaa laajennuksen avoimelle sivustolle pyytämien käyttöoikeuksien seurauksista ja pyytää hyväksymään tai hylkäämään pyynnön.
Jos uBOL:n käyttöoikeuspyyntö avoimelle sivustolle hyväksytään, se pystyy suodattamaan sivuston sisältöä tehokkaammin.
Voit asettaa oletusarvoisen suodatustilan uBOL:n asetussivulta. Jos valitset oletustilaksi Optimaalinen tai Täysi, on uBOL:lle myönnettävä oikeus lukea ja muokata tietojasi kaikilla verkkosivustoilla.
Huomioithan, että laajennuksen kehitys vielä kesken, seuraavilla tavoitteilla:
- Laajoja käyttöoikeuksia ei tarvita asennusvaiheesssa, vaan laajennetut oikeudet myönnetään aina sivustokohtaisesti käyttäjän toimesta.
- Täysin deklaratiivinen luotettavuutta ja prosessorin/muistin kuormituksen keventämiseksi.

View File

@@ -1,4 +1,4 @@
Ang uBO Lite (uBOL) ay isang eksperimental at *permission-less* na tagaharang ng content na nakabase sa MV3.
Isang content blocker na nakabase sa MV3 ang uBO Lite (uBOL).
Tulad ng uBlock Origin, ito rin ang mga default na listahan ng mga filter:
@@ -7,24 +7,6 @@ Tulad ng uBlock Origin, ito rin ang mga default na listahan ng mga filter:
- EasyPrivacy
- Listahan ni Peter Lowe sa mga ad at tracking server (Peter Lowes Ad and tracking server list)
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
Maaring magpagana ng mas maraming ruleset sa page ng options -- pindutin ang _Cogs_ sa popup na panel.
Deklaratibo lamang ang uBOL, kaya hindi nito kailangan ng permanenteng proseso upang mag-filter, at mainam na ginagawa ng browser mismo imbes na ekstensyon ang pagfi-filter sa content na nakabase sa CSS o JS. Ibig-sabihin, hindi kumokonsyumo ng CPU o memorya ang uBOL habang nanghaharang -- ang proseso ng trabahante ng serbisyo ay kailangan _lang_ kung nasa popup panel o pahina ng opsyon ka.
Hindi kailangan ng uBOL ang malawakang pahintulot para "basahin at baguhin ang data" pagka-install, kaya kung bago pa lang itong install ay limitado ang kakayahan nito kumpara sa uBlock Origin o iba pang mga pangharang ng content na nangangailangan ng malawakang pahintulot para "basahin at baguhin ang data" pagka-install.
Ngunit, pwede mong *pasadyang* pahintulutan ang uBOL na magkaroon ng pinalawak na pahintulot sa mga website na pipiliin mo para mas mapabuti ang pagfi-filter sa mga site na iyon gamit ang kosmetikong pagfi-filter at injeksyon ng scriptlet.
Upang bigyan ito ng pinalawak na pahintulot sa isang site, buksan ang popup panel at pumili ng isang mode sa pagfi-filter tulad ng Pinainam o Kumpleto.
Babalaan ka ng browser tungkol sa mga epekto ng pagbibigay ng karagdagang pahintulot na hinihiling ng ekstensyon sa kasalukuyang site, at kailangan mong tumugon kung pinapahintulutan mo ba ito o hindi.
Kung tatanggapin mo ang hiling ng uBOL para sa karagdagang mga pahintulot sa kasalukuyang site, mas magiging mainam ang pagfi-filter nito sa content para sa kasalukuyang site.
Maitatakda mo ang default na mode sa pagfi-filter sa pahina ng mga opsyon ng uBOL. Kailangan mong pahintulutan ang uBOL na basahin o baguhin ang datos sa lahat ng mga website kung pipiliin mo ang Pinainam o Kumpleto bilang default na mode sa pagfi-filter.
Tandaang kasalukuyan pang binubuo ang ekstensyong ito, at nilalayon nitong:
- Walang kakailanganing malawakang pahintulot pagka-install -- ibibigay lang ng user ang karagdagang pahintulot sa mga piling site.
- Deklaratibo lamang upang maging mapagkakatiwalaan at matipid sa CPU at memorya.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) est un bloqueur de contenu *sans permission* basé sur le manifeste MV3.
uBO Lite (uBOL) est un bloqueur de contenu basé sur le manifeste MV3.
Les règles par défaut correspondent au filtrage par défaut d'uBlock Origin :
@@ -10,21 +10,3 @@ Les règles par défaut correspondent au filtrage par défaut d'uBlock Origin :
Vous pouvez ajouter plus de règles en consultant la page des paramètres -- Cliquez sur l'icône de l'_Engrenage_ dans le panneau pop-up.
uBOL est entièrement déclarative, c'est-à-dire qu'il n'y a pas besoin d'un processus uBOL permanent pour filtrer, et le filtrage basé sur l'injection CSS/JavaScript se fait en toute fiabilité par le navigateur lui-même. Cela veut dire qu'en soi, uBOL ne consomme pas de ressources processeur/mémoire pendant le blocage de contenu -- l'agent de service d'uBOL n'est sollicité _que_ quand vous interagissez avec le panneau pop-up ou la page des paramètres.
Contrairement à uBlock Origin ou d'autres extensions de blocage, uBOL ne nécessite pas de larges permissions de "lecture/modification des données" au moment de l'installation, ce qui explique ses capacités au départ limitées.
Cependant, uBOL vous permet *explicitement* d'accorder des permissions étendues sur les sites Web de votre choix, pour qu'elle puisse mieux les filtrer en utilisant le filtrage esthétique et des injections de scriptlet.
Pour accorder des permissions étendues sur un site Web donné, ouvrez le panneau pop-up et choisissez un mode de filtrage plus élevé comme le mode Optimal ou le mode Complet.
Le navigateur vous préviendra alors des effets de l'accord de permissions additionnelles requises par l'extension sur le site Web en cours de consultation et vous devrez indiquer votre choix au navigateur (Accepter/Refuser).
Si vous acceptez la requête d'uBOL pour des permissions additionnelles sur le site Web en cours de consultation, le filtrage de son contenu sera renforcé.
Vous pouvez définir le mode de filtrage par défaut depuis la page des paramètres d'uBOL. Si vous choisissez le mode Optimal ou Complet en tant que mode par défaut, vous devrez accorder à uBOL l'autorisation de lire et de modifier des données sur tous les sites Web.
Gardez à l'esprit que c'est en cours de développement, avec comme objectifs :
- De ne pas accorder de permissions globales au moment de l'installation -- les permissions étendues s'accordent explicitement par l'utilisateur site par site.
- De travailler de manière entièrement déclarative pour la fiabilité et l'efficacité processeur/mémoire.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) is in *tastimmingsleaze* MV3-basearre ynhâldsblokkearder.
uBO Lite (uBOL) is in MV3-basearre ynhâldsblokkearder.
De standert regelset komt oerien mei de standert filterset fan uBlock Origin:
@@ -10,21 +10,3 @@ De standert regelset komt oerien mei de standert filterset fan uBlock Origin:
Jo kinne mear regelsets ynskeakelje troch de opsjesside te besykjen klik op it _tântsjilpiktogram_ yn it pop-uppaniel.
uBOL is folslein deklaratyf, wat betsjut dat in permanint uBOL-proses foar de filtering net nedich is, en ynhâldsfiltering op basis fan CSS/JS-ynjeksje op in betroubere manier troch de browser sels útfierd wurdt yn stee fan de útwreiding. Dit betsjut dat uBOL sels gjin CPU-/ûnthâldboarnen brûkt wylst ynhâldsblokkearring aktyf is it serviceworker-proses fan uBOL is _allinnich_ fereaske as jo mei it pop-uppaniel of de opsjessiden wurkje.
uBOL fereasket gjin brede tastimming foar it lêzen en oanpassen fan gegevens wylst ynstallaasje, fan dêr de beheinde ynboude mooglikheden dêrfan yn fergeliking mei uBlock Origin of oare ynhâldsblokkearders dyt brede tastimmingen foar it lêzen en oanpassen fan gegevens fereaskje wylst de ynstallaasje.
Jo kinne yn uBOL echter *eksplisyt* wiidweidige tastimmingen ferliene op bepaalde websites fan jo kar, sadat it op dy websites better filterje kin fia kosmetyske filtering en scriptlet-ynjeksjes.
Om wiidweidige tastimmingen op in bepaalde website te ferlienen, iepenje jo it pop-uppaniel en kieze jo in hegere filtermodus, lykas Optimaal of Folslein.
De browser warskôget jo dan oer de gefolgen fan it ferlienen fan de troch de útwreiding oanfrege oanfoljende tastimmingen op de aktuele website, en jo moatte de browser witte litte oft jo de oanfraach akseptearje of wegerje.
As jo de oanfraach fan uBOL foar oanfoljende tastimmingen op de aktuele website akseptearje, sil it ynhâld foar de aktuele website better filterje kinne.
Jo kinne de standert filtermodus ynstelle fan de opsjesside fan uBOL ôf. As jo de modus Optimaal of Folslein as de standertmodus kieze, moatte jo uBOL de tastimming foar it lêzen en oanpassen fan gegevens op alle websites te ferlienen.
Unthâld dat dit noch wurk yn útfiering is, mei dizze eindoelen:
- Gjin brede host-tastimmingen wylst ynstallaasje wiidweidige tastimmingen wurde eksplisyt en per website ferliend troch de brûker.
- Folslein deklaratyf omwille fan betrouberheid en CPU-/ûnthâldeffisjinsje.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) é un bloqueador de contido baseado en MV3 *sen permisos.
uBO Lite (uBOL) é un bloqueador de contido baseado en MV3.
O conxunto de regras predeterminado corresponde ao conxunto de filtros predeterminado de uBlock Origin:
@@ -10,21 +10,3 @@ Lista de servidores de seguimento e anuncios de Peter Lowe
Podes activar máis grupos de regras indo á páxina de opcións -- preme na roda dentada no panel emerxente.
uBOL é totalmente declarativo, o que significa que non é necesario un proceso permanente de uBOL para que se produza o filtrado e o filtrado de contido baseado en inxección de CSS/JS realízao de forma fiable o propio navegador en lugar da extensión. Isto significa que o propio uBOL non consume recursos de CPU/memoria mentres o bloqueo de contido está en curso -- o proceso do traballador do servizo de uBOL é necesario _só_ cando interactúas co panel emerxente ou coas páxinas de opcións.
uBOL non require amplos permisos de "ler e modificar datos" no momento da instalación, de aí as súas capacidades limitadas fóra da caixa en comparación con uBlock Origin ou outros bloqueadores de contido que requiren amplos permisos de "ler e modificar datos" no momento da instalación.
Non obstante, uBOL permítelle *de forma explícita* conceder permisos estendidos en sitios específicos da súa elección para que poida filtrar mellor neses sitios mediante filtrado cosmético e inxeccións de scriptlet.
Para conceder permisos estendidos nun sitio determinado, abra o panel emerxente e escolle un modo de filtrado superior, como Óptimo ou Completa.
A continuación, o navegador avisará sobre os efectos da concesión dos permisos adicionais solicitados pola extensión no sitio actual, e terá que indicarlle ao navegador se acepta ou rexeita a solicitude.
Se aceptas a solicitude de uBOL de permisos adicionais no sitio actual, poderá filtrar mellor o contido do sitio actual.
Podes establecer o modo de filtrado predeterminado desde a páxina de opcións de uBOL. Se escolle o modo Óptimo ou Completo como o predeterminado, terá que conceder a uBOL o permiso para ler e modificar datos en todos os sitios web.
Teña en conta que este aínda é un traballo en curso, cos seguintes obxectivos finais:
- Non hai permisos de host amplos no momento da instalación. Os permisos estendidos son concedidos explícitamente polo usuario por cada sitio.
- Totalmente declarativo para a fiabilidade e a eficiencia da CPU/memoria.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
uBO Lite (uBOL) is an MV3-based content blocker.
The default ruleset corresponds to uBlock Origin's default filterset:
@@ -10,21 +10,3 @@ The default ruleset corresponds to uBlock Origin's default filterset:
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) הוא חוסם תוכן *ללא הרשאות* מבוסס MV3.
uBO Lite (uBOL) הוא חוסם תוכן מבוסס MV3.
ערכת הכללים ברירת מחדל שמתכתבת עם ערכת המסננים של uBlock Origin:
@@ -10,21 +10,3 @@ uBO Lite (uBOL) הוא חוסם תוכן *ללא הרשאות* מבוסס MV3.
ניתן לאפשר קבוצות חוקים נוספות בדף האפשרויות - עם לחיצה על סמליל _גלגלי השיניים_ בחלונית הקופצת.
uBOL הוא הכרזתי לחלוטין, כלומר אין צורך בתהליך uBOL קבוע כדי שהסינון יתרחש, וסינון תוכן מבוסס הזרקת CSS/JS מבוצע באופן אמין על ידי הדפדפן עצמו ולא על ידי ההרחבה. המשמעות היא ש־uBOL עצמו לא צורכך משאבי מעבד/זיכרון בזמן שחסימת התוכן מתרחשת תהליך ה־service worker של uBOL נדרש _אך ורק_ בזמן הידוד עם החלון הקופץ או עם עמוד האפשרויות.
uBOL לא דורש הרשאת "קריאה ושינוי נתונים" נרחבות במהלך ההתקנה, לכן היכולות המוגבלות שלה הישר מהקופסה בהשוואה ל־uBlock Origin או חוסמי תוכן אחרים הדורשים הרשאות "קריאה ושינוי נתונים" נרחבות כבר בזמן ההתקנה.
עם זאת, uBOL מאפשר להעניק *באופן מפורש* הרשאות נרחבות לאתרים מסויימים על פי בחירה, למיטוב הסינון באתרים אלה, באמצעות סינון קוסמטי והזרקות סקריפלטים.
כדי להעניק הרשאות נרחבות באתר נתון, נא לפתוח את הלוח הקופץ ולבחור באופן סינון גבוה יותר כגון מיטבי או מלא.
לאחר מכן, תוצג אזהרת דפדפן על השפעות מתן הרשאות נוספות אותן מבקשת ההרחה באתר הנוכחי, הדפדפן ימתין לקבלת תשובה האם לקבל או לדוחות את בקשת ההרשאה.
אם תקבל את הבקשה של uBOL להרשאות נוספות באתר הנוכחי, הוא יוכל לסנן טוב יותר תוכן עבור האתר הנוכחי.
ניתן להגדיר את מצב הסינון המוגדר כברירת מחדל מדף האפשרויות של uBOL. אם הבחירה היתה באופןסינון מיטבי או מלא כברירת המחדל, יידרש להעניק ל־uBOL הרשאת קריאה שנוי נתונים בכל אתרי הרשת.
יש לזכור שזו עדיין 'עבודה בתהליך', עם המטרות הבאות:
- אין הרשאות מארח רחבות בזמן ההתקנה -- הרשאות מורחבות מוענקות במפורש על ידי המשתמש על בסיס לכל אתר.
הכרזתי לחלוטין, אמין ויעיל בצריכת משאבי מעבד/זיכרון.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) एक *अनुमति-रहित* MV3-आधारित कन्टेन्ट ब्लॉकर है।
uBO Lite (uBOL) is an MV3-based content blocker.
डिफ़ॉल्ट रूलसेट uBlock Origin के डिफ़ॉल्ट फ़िल्टर सेट के अनुरूप होता है:
@@ -10,21 +10,3 @@ uBO Lite (uBOL) एक *अनुमति-रहित* MV3-आधारित
आप विकल्प पृष्ठ पर जाकर और अधिक नियम-सेट सक्षम कर सकते हैं -- पॉपअप पैनल में _Cogs_ आइकन पर क्लिक करें।
uBOL पूरी तरह से वर्णनात्मक है, जिसका यह अर्थ है कि फ़िल्टरिंग के लिए एक स्थायी uBOL प्रक्रिया की कोई आवश्यकता नहीं है, और CSS/JS इंजेक्शन-आधारित कन्टेन्ट फ़िल्टरिंग एक्सटेंशन के बजाय ब्राउज़र द्वारा विश्वसनीय रूप से की जाती है। इसका यह अर्थ है कि कन्टेन्ट ब्लॉक करते समय uBOL द्वारा सीपीयू/मेमोरी संसाधनों का उपभोग स्वयं नहीं किया जाता है -- uBOL की सर्विस प्रोसेस की आवश्यकता _केवल_ तब होती है जब आप पॉपअप पैनल या विकल्प पृष्ठों पर कोई अंत:क्रिया करते हैं।
uBOL को इन्सटॉल करते समय "डेटा को पढ़ने और संशोधित करने" की व्यापक अनुमति की आवश्यकता नहीं होती है, अतः इसकी सीमित क्षमताओं तत्काल उपयोगिता की तुलना में uBlock Origin या अन्य कन्टेन्ट ब्लॉकर को इन्सटॉलेशन के समय "डेटा को पढ़ने और संशोधित करने" की व्यापक अनुमतियों की आवश्यकता होती है।
हालांकि, uBOL आपको अपनी मनपसंद विशिष्ट साइटों पर विस्तारित अनुमतियां देना *स्पष्ट रूप से* अनुमत करता है ताकि यह कॉस्मेटिक फ़िल्टरिंग और स्क्रिप्टलेट इंजेक्शन का उपयोग करके उन साइटों पर अच्छी तरह से फ़िल्टर कर सके।
किसी एक साइट पर विस्तारित अनुमतियां देने के लिए, पॉपअप पैनल खोलें और उच्च फ़िल्टरिंग मोड, जैसे कि 'अनुकूलतम' (ऑप्टिमल) या 'पूर्ण' (कंपलीट) चुनें।
इसके बाद ब्राउज़र द्वारा आपको वर्तमान साइट पर एक्सटेंशन द्वारा अनुरोधित अतिरिक्त अनुमतियों को देने के प्रभावों के बारे में चेतावनी दी जाएगी, और आपको ब्राउज़र को यह बताना होगा कि आप अनुरोध को स्वीकार करते हैं या अस्वीकार करते हैं।
यदि आप वर्तमान साइट पर अतिरिक्त अनुमतियों के लिए uBOL के अनुरोध को स्वीकार करते हैं, तो यह वर्तमान साइट के लिए कन्टेन्ट अच्छी तरह से फ़िल्टर करने में सक्षम होगा।
आप uBOL के विकल्प पृष्ठ से डिफ़ॉल्ट फ़िल्टरिंग मोड को सेट कर सकते हैं। यदि आप 'अनुकूलतम' (ऑप्टिमल) या 'पूर्ण' (कंपलीट) मोड को डिफ़ॉल्ट रूप से चुनते हैं, तो आपको uBOL को सभी वेबसाइटों पर डेटा को पढ़ने और संशोधित करने के लिए अनुमत करना होगा।
ध्यान रखें कि यह कार्य अभी भी प्रगतिधीन है, और इसके न‍िम्नांकित अंतिम लक्ष्यों तय किये गए हैं:
- इन्सटॉल करते समय कोई व्यापक होस्ट अनुमतियां नहीं -- विस्तारित अनुमतियां उपयोगकर्ता द्वारा हर एक साइट के आधार पर स्पष्ट रूप से दी जाती हैं।
- विश्वसनीयता और सीपीयू/मेमोरी दक्षता के लिए पूरी तरह वर्णनात्मक।

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) je bloker sadržaja *bez dopuštenja* baziran na MV3.
uBO Lite (uBOL) je bloker sadržaja baziran na MV3.
Zadana lista pravila odgovara uBlock Origin-ovoj zadanoj listi filtera:
@@ -10,21 +10,3 @@ Zadana lista pravila odgovara uBlock Origin-ovoj zadanoj listi filtera:
Možete omogućiti više skupova pravila tako što ćete posjetiti stranicu s opcijama -- kliknite ikonu _Cogs_ na skočnoj ploči.
uBOL je u potpunosti deklarativan, što znači da nema potrebe za trajnim uBOL procesom za filtriranje, a filtriranje sadržaja temeljeno na ubacivanju CSS/JS pouzdano izvodi sam preglednik, a ne ekstenzija. To znači da sam uBOL ne troši CPU/memorijske resurse dok je blokiranje sadržaja u tijeku -- uBOL-ov servisni radni proces potreban je _samo_ kada komunicirate s skočnom pločom ili stranicama s opcijama.
uBOL ne zahtijeva široku dozvolu za "čitanje i izmjenu podataka" u vrijeme instalacije, stoga ima zadane ograničene mogućnosti u usporedbi s uBlock Origin ili drugim blokatorima sadržaja koji zahtijevaju veću dozvolu za "čitanje i izmjenu podataka" u vrijeme instalacije.
Međutim, uBOL vam omogućuje da *eksplicitno* dodijelite proširena dopuštenja na određenim web-stranicama po vašem izboru tako da može bolje filtrirati te web-stranice koristeći kozmetičko filtriranje i injekcijske skripte.
Da biste dodijelili proširena dopuštenja na određenoj web stranici, otvorite skočnu ploču i odaberite viši način filtriranja kao što je Optimalno ili Potpuno.
Preglednik će vas tada upozoriti o učincima dodjele dodatnih dopuštenja koje traži ekstenzija na trenutnom mjestu, a vi ćete morati reći pregledniku prihvaćate li ili odbijate zahtjev.
Ako prihvatite uBOL-ov zahtjev za dodatnim dozvolama na trenutnoj stranici, moći će bolje filtrirati sadržaj na njoj.
Zadani način filtriranja možete postaviti na stranici s opcijama uBOL-a. Ako kao zadano odaberete Optimalni ili Potpuni način rada, morati ćete dati uBOL-u dopuštenje za čitanje i izmjenu podataka na svim web stranicama.
Imajte na umu da je ovo još u tijeku, sa sljedećim krajnjim ciljevima:
- Nema širokih dopuštenja hosta u vrijeme instalacije -- proširena dopuštenja izričito dodjeljuje korisnik za svaku pojedinačnu stranicu.
- Potpuno deklarativno za pouzdanost i učinkovitost CPU/memorije.

View File

@@ -1,4 +1,4 @@
A uBO Lite (uBOL) egy *engedélyt nem igénylő* MV3-alapú tartalomblokkoló.
A uBO Lite (uBOL) egy MV3-alapú tartalomblokkoló.
Az alapértelmezett szabálykészlet megfelel a uBlock Origin alapértelmezett szűrőkészletének:
@@ -10,21 +10,3 @@ Az alapértelmezett szabálykészlet megfelel a uBlock Origin alapértelmezett s
További szabályokat engedélyezhet a beállítások oldalon kattintson a _Fogaskerekek_ ikonra a felugró panelen.
A uBOL teljes mértékben deklaratív, vagyis nincs szükség állandó uBOL folyamatra a szűréshez, és a CSS/JS injektálás-alapú tartalomszűrést maga a böngésző végzi megbízhatóan, nem pedig a kiegészítő. Ez azt jelenti, hogy az uBOL maga nem fogyaszt CPU/memória erőforrásokat, amíg a tartalom blokkolása folyamatban van az uBOL service worker folyamatára _csak_ akkor van szükség, amikor az felugró panellel vagy a beállítási oldalakkal érintkezik.
A uBOL nem igényel széles körű „adatok módosítása és olvasása” engedélyt a telepítéskor, ezért korlátozott képességei vannak a uBlock Originhez vagy más tartalomblokkolókhoz képest, amelyek széles körű „adatok olvasása és módosítása” engedélyeket igényelnek a telepítésükkor.
Az uBOL azonban lehetővé teszi, hogy *kifejezetten* kiterjesztett engedélyeket adjon az Ön által választott bizonyos webhelyeknél, hogy jobban szűrhessen ezeken a webhelyeken kozmetikai szűréssel és parancsfájlbeillesztéssel.
Ha kiterjesztett engedélyeket szeretne adni egy adott webhelyen, nyissa meg a felugró panelt, és válasszon magasabb szűrési módot, mint az Optimális vagy a Teljes.
A böngésző ekkor figyelmezteti Önt a bővítmény által kért további engedélyek megadásának hatásaira az aktuális webhelyen, és közölnie kell a böngészővel, hogy elfogadja-e vagy elutasítja a kérést.
Ha elfogadja az uBOL további engedélyekre vonatkozó kérését az aktuális webhelyen, akkor jobban tudja szűrni az aktuális webhely tartalmát.
Az alapértelmezett szűrési módot az uBOL beállítási oldalán állíthatja be. Ha az Optimális vagy a Teljes módot választja alapértelmezettként, akkor az uBOL-nak engedélyt kell adnia az adatok olvasására és módosítására az összes webhelyen.
Ne feledje, hogy ez még egy folyamatban lévő fejlesztés, a következő célokkal:
- Nincsenek széles körű kiszolgálókra vonatkozó engedélyek a telepítés során a kiterjesztett engedélyeket a felhasználó kifejezetten webhelyenként adja meg.
- Teljesen deklaratív a nagyobb megbízhatóság, illetve CPU- és memóriahatékonyság érdekében.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL)-ը բովանդակության արգելափակիչ է, որը *չի պահանջում թույլտվություններ*, և հիմնված է MV3-ի վրա։
uBO Lite (uBOL) is an MV3-based content blocker.
Կանոնների լռելյայն փաթեթը համապատասխանում է uBlock Origin-ի լռելյայն զտիչների փաթեթին։
@@ -10,23 +10,3 @@ uBO Lite (uBOL)-ը բովանդակության արգելափակիչ է, որ
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL-ն ամբողջությամբ դեկլարատիվ է, այսինքն՝ զտման համար անընդհատ կատարվող uBOL գործընթացի կարիք չկա, իսկ CSS/JS արմատավորման վրա հիմնված բովանդակության զտումը հուսալիորեն իրականացվում է զննիչի կողմից, այլ ոչ թե ընդլայնման միջոցով։ Սա նշանակում է, որ uBOL հավելումը չի սպառում մշակիչի/հիշողության որևէ ռեսուրս, երբ տեղի է ունենում գովազդի արգելափակումը. uBOL աշխատանքային գործընթացն աշխատում է _միայն_ երբ Դուք փոփոխություններ եք կատարում դուրս լողացող վահանակում կամ ընտրանքների էջում։
uBOL-ը տեղադրման ժամանակ «տվյելները լիովին ընթերցելու և փոփոխելու» թույլտվություն չի պահանջում, ուստի այն ունի սահմանափակ հնարավորություններ՝ համեմատած uBlock Origin-ի և բովանդակության այլ արգելափակիչների հետ, որոնք տեղադրման ժամանակ պահանջում են այդպիսի թույլտվություն։
Однако uBOL позволяет *намеренно* давать расширенные разрешения для определенных сайтов - по вашему усмотрению, чтобы эффективнее работать, используя косметическую фильтрацию и scriptlet-внедрения.
Այնուամենայնիվ, uBOL-ը թույլ է տալիս *դիտմամբ* տրամադրել ընդլայնված թույլտվություններ Ձեր ընտրած կայքերի համար, որպեսզի այն կարողանա էլ ավելի լավ զտել այդ կայքերը՝ օգտագործելով կոսմետիկ զտումը և սցենարների արմատավորումները։
Ընթացիկ կայքում ընդլայնված թույլտվություններ տրամադրելու համար բացեք դուրս լողացող վահանակը և ընտրեք ընդլայնված զտման ռեժիմ՝ Գերադասելի կամ Ամբողջական։
Այնուհետև զննիչը կզգուշացնի Ձեզ ընթացիկ կայքում ընդլայնման կողմից պահանջվող լրացուցիչ թույլտվությունների տրամադրման հետևանքների մասին, և Դուք պետք է ընտրեք՝ ընդունում եք, թե մերժում եք հայտը։
Եթե ​​ընդունեք uBOL-ին լրացուցիչ թույլտվություններ տալու հայտը, ապա այն կկարողանա ավելի արդյունավետ կերպով զտել ընթացիկ կայքի բովանդակությունը։
Դուք կարող եք սահմանել զտման լռելյայն ռեժիմը uBOL-ի ընտրանքների էջում։ Եթե ​​որպես լռելյայն ընտրեք «Գերադասելի» կամ «Ամբողջական» ռեժիմը, պետք կլինի uBOL-ին թույլտվություն տրամադրեք կարդալու և փոփոխելու տվյալները բոլոր կայքերում։
Հիշեք, որ այս նախագիծը մշակման ակտիվ փուլում է, որ ունի հետևյալ նպատակները.
- Տեղադրման ընթացքում Սահմանափակ թույլտվություններով աշխատանք տեղադրման ժամանակ. օգտվողը ընդլայնված թույլտվություններ է տալիս իր հայեցողությամբ, յուրաքանչյուր կայքի համար առանձին։
- Ամբողջովին դեկլարատիվ է հուսալիության և մշակիչի/հիշողության արտադրողականության համար։

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) adalah pemblokir konten berbasis MV3 yang membutuhkan lebih sedikit perizinan.
uBO Lite (uBOL) adalah pemblokir konten berbasis MV3.
Kumpulan aturan bawaan sesuai dengan kumpulan penyaringan bawaan uBlock Origin:
@@ -7,24 +7,6 @@ Kumpulan aturan bawaan sesuai dengan kumpulan penyaringan bawaan uBlock Origin:
- EasyPrivacy
- Daftar server iklan dan pelacak Peter Lowe
Anda dapat mengaktifkan lebih banyak kumpulan pengaturan dengan mengunjungi halaman opsi - klik ikon _Cogs_ pada panel popup.
Anda dapat mengaktifkan lebih banyak rangkaian aturan dengan mengunjungi halaman opsi -- klik ikon _Cogs_ di panel popup.
uBOL sepenuhnya deklaratif, yang mana tidak membutuhkan proses permanen uBOL agar penyaringan dapat terjadi, dan penyaringan konten berbasis injeksi CSS/JS dilakukan sepenuhnya oleh peramban itu sendiri ketimbang oleh ekstensi. Ini berarti bahwa uBOL sendiri tidak mengkonsumsi sumber daya CPU/memori selama melakukan pemblokiran konten -- proses pekerja layanan uBOL dibutuhkan _hanya_ ketika Anda berinteraksi dengan panel popup atau opsi halaman.
uBOL tidak membutuhkan izin "baca dan modifikasi data" pada waktu penginstalan, maka kemampuannya lebih terbatas jika dibandingkan dengan uBlock Origin atau pemblokir konten lain yang memerlukan izin "baca dan modifikasi data" pada waktu penginstalan.
Namun, uBOL memberi anda opsi untuk *secara eksplisit* memberikan izin tambahan pada situs pilihan Anda, sehingga dapat memfilter situs tersebut dengan lebih baik menggunakan pemfilteran kosmetik dan injeksi scriptlet.
Untuk memberikan izin tambahan pada situs tertentu, buka panel popup dan pilih mode pemfilteran yang lebih tinggi seperti Optimal atau Complete.
Perambaan kemudian akan memperingatkan anda tentang efek memberikan izin tambahan yang diminta oleh ekstensi pada situs saat ini, dan Anda harus memberitahu perambaan apakah anda menyetujui atau menolak permintaan.
Jika Anda menyetujui permintaan uBOL untuk izin tambahan pada situs terkini, uBOL akan dapat menyaring konten dengan lebih baik untuk situs terkini.
Anda dapat menentukan mode penyaringan bawaan dari halaman pengaturan uBOL Jika Anda memilih mode Optimal atau Complete sebagai mode bawaan, Anda perlu memberikan uBOL izin untuk membaca dan mengubah data pada semua situs web.
Mohon diingat bahwa ini msaih dalam tahap proses pengerjaan, dengan tujuan akhir sebagai berikut:
- Tidak ada izin pengguna yang luas saat penginstalan -- izin tambahan diberikan secara eksplisit oleh pengguna berdasarkan tiap situs.
- Sepenuhnya delkaratif untuk reliabilitas dan CPU/efisiensi memori.
uBOL sepenuhnya bersifat deklaratif, artinya tidak diperlukan proses uBOL permanen agar penyaringan dapat terjadi, dan penyaringan konten berbasis injeksi CSS/JS dilakukan secara andal oleh browser itu sendiri dan bukan oleh ekstensi. Artinya uBOL sendiri tidak mengonsumsi sumber daya CPU/memori saat pemblokiran konten sedang berlangsung -- proses pekerja layanan uBOL diperlukan _hanya_ saat Anda berinteraksi dengan panel popup atau halaman opsi.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) è un sistema per bloccare contenuti che *non richiede autorizzazioni* basato su MV3.
uBO Lite (uBOL) è un sistema di blocco dei contenuti basato su MV3.
L'insieme di regole predefinito corrisponde all'insieme di filtri predefinito di uBlock Origin:
@@ -10,21 +10,3 @@ L'insieme di regole predefinito corrisponde all'insieme di filtri predefinito di
Puoi abilitare altri set di regole visitando la pagina delle opzioni: clicca sull'icona _Cogs_ nel pannello a comparsa.
uBOL è interamente dichiarativo, ovvero non è necessario che ci sia un processo di uBOL permanente per poter eseguire il filtraggio; e il filtraggio dei contenuti basato sull'iniezione di elementi CSS/JS viene eseguito in modo affidabile dal browser stesso piuttosto che dall'estensione. Ciò significa che lo stesso uBOL non consuma risorse di CPU o memoria mentre il blocco dei contenuti viene eseguito: il processo che esegue il servizio di uBOL è richiesto _solamente_ quando interagisci con il pannello a comparsa o con le pagine delle opzioni.
uBOL non richiede un'ampia autorizzazione di "lettura e modifica dei dati" al momento dell'installazione, da qui le sue capacità limitate rispetto a uBlock Origin o ad altre estensioni che richiedono ampie autorizzazioni di "lettura e modifica dei dati" al momento dell'installazione.
Tuttavia, uBOL consente di concedere *esplicitamente* permessi estesi a siti specifici di vostra scelta, in modo da poter filtrare meglio tali siti utilizzando il filtraggio cosmetico e le iniezioni di scriptlet.
Per concedere autorizzazioni estese su un determinato sito, apri il pannello popup e scegli una modalità di filtraggio più elevata come Ottimale o Completa.
Il browser quindi ti avviserà degli effetti della concessione delle autorizzazioni aggiuntive richieste dall'estensione sul sito corrente e dovrai comunicare al browser se accetti o rifiuti la richiesta.
Se accetti la richiesta di uBOL per autorizzazioni aggiuntive sul sito corrente, esso sarà in grado di filtrare meglio il contenuto per il sito corrente.
Puoi impostare la modalità di filtraggio predefinita dalla pagina delle opzioni di uBOL. Se scegli come predefinita la modalità Ottimale o Completa, dovrai concedere a uBOL il permesso di leggere e modificare i dati di tutti i siti web.
Tieni presente che questo è ancora un work in progress, con questi obiettivi finali:
- Nessuna autorizzazione estesa degli host al momento dell'installazione; le autorizzazioni estese vengono concesse esplicitamente dall'utente in base al sito.
- Interamente dichiarativo per l'affidabilità e l'efficienza della CPU/memoria.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) は権限を必要としない MV3 ベースのコンテンツブロッカーです。
uBO Lite (uBOL) は MV3 ベースのコンテンツブロッカーです。
デフォルトのルールセットは以下の通りです。uBlock Origin のデフォルトフィルターセットと同じです。
@@ -10,21 +10,3 @@ uBO Lite (uBOL) は権限を必要としない MV3 ベースのコンテンツ
オプションページでルールセットを有効化できます。ポップアップパネルの「歯車」アイコンをクリックしてください。
uBOL は完全に宣言的です。つまり、フィルタリングを行うための恒久的な uBOL プロセスは必要なく、CSS/JS インジェクション ベースのコンテンツフィルタリングは拡張機能ではなくブラウザによって、確実に実行されます。 これは uBOL がコンテンツブロッキングの際に CPU、メモリを消費しないことを意味します。uBOL のサービス ワーカーは ポップアップ パネルや設定ページでのみ必要とされます。
uBOL はインストール時に広範な「データの読み取りと変更」の権限を要求しません。したがって uBlock Origin やその他の、インストール時に広範な「データの読み取りと変更」の権限を要求するコンテンツブロッカーに比べて、行えることが制限されています。
しかし、ユーザーの選んだ特定のサイトに対する拡張権限を「明示的に」付与すれば、そのサイト上で整形フィルターやスクリプトレットの挿入を用いた優れたフィルタリングを行うことができます。
特定のサイトで拡張された権限を付与するには、ポップアップ パネルを開いて、「最適」や「完全」のようなより高いフィルタリングモードを選択します。
ブラウザーは、現在のサイトで拡張機能によってリクエストされた追加の権限を付与することによってもたらされる影響について警告します。承認または拒否することができます。
現在のサイトでの uBOL のリクエストを承認すると、現在のサイトにより良いフィルターを適用できるようになります。
uBOL の設定ページで既定のフィルタリングモードを設定できます。 「最適」または「完全」を規定のフィルタリング モードに設定した場合、すべてのWebサイトで「データの読み取りと変更」権限を付与する必要があります。
注意として、uBOL はまだ開発途中で、これらの開発目標があります。
- インストール時に広範なホスト権限は不要 -- 拡張された権限はサイトごとにユーザーによって明示的に付与されます。
- 完全に宣言的で、CPU、メモリの効率性が良い

View File

@@ -1,30 +1,12 @@
uBO Lite (uBOL) *ნებართვებისგან თავისუფალი* MV3-ზე დაფუძნებული შიგთავსის შემზღუდავი.
uBO Lite (uBOL) შიგთავის შემზღუდავია MV3-ის მიხედვი.
წესების ნაგულისხმევი კრებული იგივეა, რასაც uBlock Origin იყენებს:
- uBlock Origin ფილტრების ჩაშენებული სიები
- ჩაშენებული ფილტრებით, uBlock Origin რომ იყენებს
- EasyList
- EasyPrivacy
- Peter Lowe სარეკლამო სერვერების სია
შეგიძლიათ სხვა კრებულებიც აამოქმედოთ პარამეტრების გვერდიდან -- დაწკაპეთ _Cogs_ ხატულაზე ამომხტომ არეში.
uBOL სრულად დეკლარაციულია, ანუ არაა საჭირო მუდმივად იყოს გაშვებული uBOL-პროცესი გასაფილტრად, CSS/JS ჩანაცვლებით შიგთავსის გაფილტვრას თავად ბრაუზერი უზრუნველყოფს ნაცვლად გაფართოებისა, რაც მეტად საიმედოა. შესაბამისად, uBOL თავად არ დატვირთავს პროცესორს/ოპერატიულს შიგთავსის შეზღუდვის დროს -- uBOL-ის შუამავალ მომსახურე პროცესი საჭიროა _მხოლოდ_ მაშინ, როცა ამომხტომ არესთან ურთიერთქმედებთ ან ცვლით პარამეტრებს.
uBOL არ საჭიროებს „მონაცემთა წაკითხვისა და შეცვლის“ სრულ ნებართვას დაყენებისას, ვინაიდან მოკვეცილი შესაძლებლობებითაა წარმოდგენილი uBlock Origin-თან ან რეკლამის სხვა შემზღუდავებთან შედარებით, რომლებიც ერთბაშად ითხოვს „მონაცემთა წაკითხვისა და შეცვლის“ უფლებას დაყენებისთანავე.
ამასთანავე, uBOL საშუალებას გაძლევთ *მკაფიო* თანხმობით მიუთითოთ გაფართოებული ნებართვები ცალკეულ საიტებზე სურვილისამებრ, რომ უკეთ შეიზღუდოს შიგთავსი ხილული ელემენტების გაფილტვრითა და პროგრამული ჩამატებებით.
გაფართოებული ნებართვების მისაცემად მითითებულ საიტზე, გახსენით ამომხტომი არე და აირჩიეთ ფილტრაციის უფრო მაღალი დონე, როგორიცაა „წონასწორული“ ან „სრული“.
შემდეგ ბრაუზერი გაგაფრთხილებთ გაფართოების მიერ დამატებითი ნებართვების მოთხოვნის შესახებ მოცემულ საიტზე და აირჩევთ, დათანხმდებით თუ უარყოფთ მოთხოვნას.
თუ დათანხმდებით uBOL-ს მოთხოვნას დამატებითი ნებართვებისთვის მიმდინარე საიტზე, უკეთ შეძლებს შიგთავსის შეზღუდვას აღნიშნულ საიტზე.
შეგიძლიათ მიუთითოთ გაფილტვრის ნაგულისხმევი რეჟიმი uBOL-ის პარამეტრების გვერდიდან. თუ აირჩევთ „წონასწორულ“ ან „სრულ“ რეჟიმს ნაგულისხმევად, uBOL-ს უნდა დართოთ ყველა საიტზე მონაცემთა წაკითხვისა და შეცვლის ნება.
დაიხსომეთ, რომ ჯერ კიდევ მუშავდება შემდეგი მიზნებისთვის:
- არანაირი სრული ნებართვების ერთბაშად მოთხოვნა დაყენებისას -- დამატებითი უფლებები შეიძლება მიეცეს მომხმარებლის მკაფიო თანხმობით თითოეულ საიტზე ცალ-ცალკე.
- სრულად დეკლარაციულია პროცესორის/მეხსიერების დასაზოგად.
uBOL მოქმედებს სრულად დადგენილი წესებით, შესაბამისად, არ ესაჭიროება მუდმივად გაშვებული uBOL-პროცესი გასაფილტრად, ხოლო როცა შიგთავსის შეზღუდვა ითხოვს ჩანაცვლდეს CSS/JS, ამას თავად ბრაუზერი უზრუნველყოფს საიმედო გზით, ნაცვლად გაფართოებისა. აქედან გამომდინარე, uBOL თავად არ მოიხმარს პროცესორს/მეხსიერებას შიგთავსის შეზღუდვისს -- uBOL საჭიროებს შუამავალ მომსახურე პროცეს _მხოლოდ_ მაშინ, როცა ამომხტომ არესთან ურთიერთქმედებთ ან ცვლით პარამეტრებს.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
uBO Lite (uBOL) is an MV3-based content blocker.
The default ruleset corresponds to uBlock Origin's default filterset:
@@ -10,21 +10,3 @@ The default ruleset corresponds to uBlock Origin's default filterset:
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
uBO Lite (uBOL) is an MV3-based content blocker.
The default ruleset corresponds to uBlock Origin's default filterset:
@@ -10,21 +10,3 @@ The default ruleset corresponds to uBlock Origin's default filterset:
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. ಇದರರ್ಥ ವಿಷಯ ನಿರ್ಬಂಧಿಸುವಿಕೆಯು ನಡೆಯುತ್ತಿರುವಾಗ uBOL ಸ್ವತಃ CPU/ಮೆಮೊರಿ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಬಳಸುವುದಿಲ್ಲ -- ನೀವು ಪಾಪ್ಅಪ್ ಪ್ಯಾನೆಲ್ ಅಥವಾ ಆಯ್ಕೆಯ ಪುಟಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಿದಾಗ uBOL ನ ಸೇವಾ ವರ್ಕರ್ ಪ್ರಕ್ರಿಯೆಯು _ಮಾತ್ರಾ_ ಅಗತ್ಯವಿದೆ.
uBOL ಗೆ ಅನುಸ್ಥಾಪನೆಯ ಸಮಯದಲ್ಲಿ ವಿಶಾಲವಾದ "ಡೇಟಾವನ್ನು ಓದಲು ಮತ್ತು ಮಾರ್ಪಡಿಸಲು" ಅನುಮತಿಯ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ uBlock ಮೂಲಕ್ಕೆ ಹೋಲಿಸಿದರೆ ಅದರ ಸೀಮಿತ ಸಾಮರ್ಥ್ಯಗಳು ಅಥವಾ ಅನುಸ್ಥಾಪನೆಯ ಸಮಯದಲ್ಲಿ ವಿಶಾಲವಾದ "ಡೇಟಾವನ್ನು ಓದಲು ಮತ್ತು ಮಾರ್ಪಡಿಸಲು" ಅನುಮತಿಗಳ ಅಗತ್ಯವಿರುವ ಇತರ ವಿಷಯ ಬ್ಲಾಕರ್‌ಗಳಿಗೆ ಹೋಲಿಸಿದರೆ.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. ನೀವು ಆಪ್ಟಿಮಲ್ ಅಥವಾ ಕಂಪ್ಲೀಟ್ ಮೋಡ್ ಅನ್ನು ಡಿಫಾಲ್ಟ್ ಆಗಿ ಆರಿಸಿದರೆ, ಎಲ್ಲಾ ವೆಬ್‌ಸೈಟ್‌ಗಳಲ್ಲಿನ ಡೇಟಾವನ್ನು ಓದಲು ಮತ್ತು ಮಾರ್ಪಡಿಸಲು ನೀವು uBOL ಗೆ ಅನುಮತಿಯನ್ನು ನೀಡಬೇಕಾಗುತ್ತದೆ.
ಈ ಅಂತಿಮ ಗುರಿಗಳೊಂದಿಗೆ ಇದು ಇನ್ನೂ ಪ್ರಗತಿಯಲ್ಲಿದೆ ಎಂಬುದನ್ನು ನೆನಪಿನಲ್ಲಿಡಿ:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
uBO Lite(uBOL)는 *적은 권한을 요구하는* MV3 기반 콘텐츠 차단기입니다.
uBO Lite (uBOL)는 MV3 기반 콘텐츠 차단기입니다.
기본 규칙 목록은 uBlock Origin의 기본 필터 목록과 대응됩니다.
@@ -10,21 +10,3 @@ uBO Lite(uBOL)는 *적은 권한을 요구하는* MV3 기반 콘텐츠 차단기
설정 페이지에서 규칙 목록을 더 활성화할 수 있습니다. 팝업 창의 _Cogs_ 아이콘을 누르세요.
uBOL은 완전히 선언적이라 필터링 중 영구적으로 실행되는 uBOL 프로세스를 필요로 하지 않으며, CSS/JS 주입 기반 콘텐츠 필터링이 확장 프로그램이 아닌 브라우저 자체에서 더욱 안정적으로 동작합니다. 즉 uBOL 자체는 콘텐츠 차단을 하는 동안 CPU/메모리 리소스를 소비하지 않습니다. uBOL 서비스워커 프로세스는 사용자가 팝업 창이나 설정을 열었을 _때에만_ 동작합니다.
uBOL은 설치 시 광범위한 "읽기 및 수정" 권한을 요구하지 않으므로, 설치 후 즉시 쓸 수 있는 기능들은 uBlock Origin이나 설치 시 광범위한 "읽기 및 수정" 권한을 요구하는 다른 콘텐츠 차단기에 비해 제한됩니다.
하지만 uBOL에서는 원하는 특정 사이트에 대해 확장된 권한을 부여하여, 해당 사이트를 표면 필터링 및 스크립트 주입을 바탕으로 더욱 잘 필터링할 수 있습니다.
주어진 사이트에 확장된 권한을 부여하려면, 팝업 창을 열고 필터링 모드를 '최적'이나 '완전'과 같이 더 높은 수준으로 선택하세요.
브라우저는 확장 프로그램에 현재 사이트에 대한 추가 권한을 부여했을 때 발생할 수 있는 일에 대해 경고할 것이며, 권한 요청을 수락할지 거부할지 선택해야 합니다.
현재 사이트에 대해 uBOL에 추가 권한을 부여하면, 해당 사이트의 콘텐츠를 더욱 잘 필터링할 수 있습니다.
uBOL 설정 페이지에서 기본 필터링 모드를 설정할 수 있습니다. 기본 모드를 '최적' 혹은 '완전'으로 설정하는 경우, uBOL에 모든 웹사이트에서 데이터를 읽고 수정할 수 있는 권한을 부여해야 합니다.
본 확장 프로그램은 여전히 아래 목표를 달성하기 위해 개발 중인 단계입니다.
- 설치 시 광범위한 호스트 권한을 요구하지 않고, 사용자가 사이트마다 명시적으로 확장된 권한을 부여할 수 있도록 합니다.
- 완전히 선언적으로 구현하여 CPU/메모리 효율성과 신뢰성을 확보합니다.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
uBO Lite (uBOL) is an MV3-based content blocker.
The default ruleset corresponds to uBlock Origin's default filterset:
@@ -10,21 +10,3 @@ The default ruleset corresponds to uBlock Origin's default filterset:
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,30 +1,12 @@
uBO Lite (uBOL) ir *bezatļauju* uz MV3 balstīts satura aizturētājs.
uBO Lite (uBOL) uz MV3 balstīts satura aizturētājs.
Noklusējuma nosacījumu kopa atbilst uBokc Origin noklusējuma aizturēšanas kopai:
Noklusējuma nosacījumu kopa atbilst uBock Origin noklusējuma aizturēšanas kopai:
- uBlock Origin iebūvētie aizturēšanas saraksti
- EasyList
- EasyPrivacy
- Pētera Lova (Peter Lowe) reklāmu un izsakošanas serveru saraksts
- Pētera Lova (Peter Lowe) reklāmu un izsekošanas serveru saraksts
Vairāk nosacījumu kopu var iespējot iestatījumu sadaļā -- jāklikšķina _Zobratu_ ikona uznirstošajā logā.
uBOL ir pilnībā vispārīgs, kas nozīmē, ka nav nepieciešamības pēc pastāvīga uBOL procesa, lai notiktu aizturēšana, un uz CSS/JS ievietošanu balstīta satura aizturēšanu uzticami veic pārlūks, nevis paplašinājums. Tas nozīmē, ka uBOL pats par sevi neizmanto procesoru un atmiņu, kamēr satura aizturēšana ir notiekoša -- uBOL pakalpojuma strādņa process ir nepieciešams _tikai_ tad, kad notiek mijiedarbība ar uznirstošo logu vai iestatījumu sadaļām.
uBOL nav nepieciešamas plašas "lasīt un pārveidot datus" atļaujas uzstādīšanas laikā, tāpēc tam ir ierobežotas spējas pēc noklusējuma, salīdzinājumā ar uBlock Origin vai citiem satura aizturētājiem, kas pieprasa plašas "lasīt un pārveidot datus" atļaujas uzstādīšanas laikā.
Tomēr uBOL ļauj piešķirt paplašinātās atļaujas *tieši* noteiktās vietnēs pēc izvēles, lai tas varētu labāk veikt aizturēšanu tajās, izmantojot kosmētisku aizturēšanu un skriptu ievietošanu.
Lai nodrošinātu paplašinātas piekļuves tiesības noteiktā vietnē, jāatver uznirstošais logs un jāizvēlas striktāks aizturēšanas veids, kā, piemēram, "Labākais" vai "Pilnīgais".
Pārlūks tad brīdinās ietekmi, ko radīs paplašinājuma pieprasīto papildu atļauju nodrošināšana pašreizējā vietnē, un būs jānorāda, vai pieprasījums tiek apstiprināts vai noraidīts.
Ja pašreizējā vietnē tiek apstiprināts uBOL papildu atļauju pieprasījums, paplašinājums varēs labāk veikt satura aizturēšanu.
Noklusējuma aizturēšanas veids ir norādāms uBOL uzstādījumu lapā. Ja tiek izvēlēts "Labākais" vai "Pilnīgais" kā noklusējuma, tad būs nepieciešams nodrošināt uBOL tiesības rakstīt un pārveidot datus visās tīmekļa vietnēs.
Jāpatur prātā, ka šī iespēja joprojām tiek izstrādāta ar šādiem mērķiem:
- Nav plašu saimniekdatora atļauju uzstādīšanas laikā -- paplašinātas atļaujas nodrošina lietotājs atsevišķi katrai vietnei.
- Pilnībā vispārīgs - uzticamībai un procesora/atmiņas lietderīgai izmantošanai.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) е *без дозвола* MV3-базиран блокатор на содржини.
uBO Lite (uBOL) is an MV3-based content blocker.
Стандардниот сет на правила одговара на стандардниот филтер сет на uBlock Origin:
@@ -10,21 +10,3 @@ uBO Lite (uBOL) е *без дозвола* MV3-базиран блокатор
Можете да овозможите повеќе сетови на правила посетувајќи ја страницата со опции - кликнете на иконата _запчаник_ во попап панел.
uBOL е целосно декларативен, што значи дека не е потребен траен процес на uBOL за филтрирање да се одвива, а филтрирањето на содржини врз основа на инјекција на CSS/JS се извршува со сигурност од самото браузер, а не од самата екстензија. Ова значи дека самиот uBOL не консумира ресурси на CPU/меморија додека блокирањето на содржини е во тек - процесот на службениот работник на uBOL е потребен _само_ кога ќе е потребен со попап панел или страниците со опции.
uBOL не бара широка дозвола за „читање и модификување на податоци“ во време на инсталација, па затоа неговите ограничени можности излезат од кутијата во споредба со uBlock Origin или други блокатори на содржини кои бараат широка „читање и модификување на податоци“ дозволи во време на инсталација.
Сепак, uBOL ви овозможува *експлицитно* да доделите проширени дозволи на специфични страници по ваш избор, така што може подобро да филтрира на тие страници користејќи козметичко филтрирање и инјекции на скрипти.
За да доделите проширени дозволи на одредена страница, отворете го исфрлениот панел и изберете повисок режим на филтрирање, како што се Оптимален или Комплетен.
Браузерот ќе ве предупреди за ефектите на задолжителното доделување на дополнителните дозволи кои ги побарала екстензијата на тековната страница, а вие треба да му кажете на браузерот дали ја прифаќате или одбивате побараното.
Ако ја прифатите побараното од uBOL за дополнителни дозволи на тековната страница, тоа ќе може подобро да филтрира содржина за тековната страница.
Можете да го поставите подразбираниот режим на филтрирање од страницата со опции на uBOL. Ако ја изберете Оптималната или Комплетната верзија како подразбирана, ќе треба да му овозможите на uBOL дозвола да чита и модифицира податоци на сите веб-страници.
Имајте на ум дека ова сè уште е работа во тек, со следниве завршни цели:
- Нема широки хост дозволи при инсталација - проширените дозволи се доделуваат експлицитно од корисникот на основа на секоја страница.
- Целосно декларативен за сигурност и ефикасност на CPU/меморија.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) ഒരു *അനുമതി-കുറവ്* MV3 അടിസ്ഥാനമാക്കിയുള്ള ഉള്ളടക്ക ബ്ലോക്കറാണ്.
uBO Lite (uBOL) is an MV3-based content blocker.
ഡിഫോൾട്ട് റൂൾസെറ്റ് uBlock Origin-ന്റെ ഡിഫോൾട്ട് ഫിൽട്ടർസെറ്റുമായി യോജിക്കുന്നു:
@@ -10,21 +10,3 @@ uBO Lite (uBOL) ഒരു *അനുമതി-കുറവ്* MV3 അടിസ
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL പൂർണ്ണമായും ഡിക്ലറേറ്റീവ് ആണ്, അതായത് ഫിൽട്ടറിംഗ് സംഭവിക്കുന്നതിന് ഒരു സ്ഥിരമായ uBOL പ്രക്രിയയുടെ ആവശ്യമില്ല, കൂടാതെ CSS/JS ഇഞ്ചക്ഷൻ അടിസ്ഥാനമാക്കിയുള്ള ഉള്ളടക്ക ഫിൽട്ടറിംഗ്, എക്സ്റ്റൻഷനേക്കാൾ വിശ്വസനീയമായി ബ്രൗസർ തന്നെ നിർവഹിക്കുന്നു. ഉള്ളടക്കം തടയൽ നടന്നുകൊണ്ടിരിക്കുമ്പോൾ uBOL തന്നെ CPU/മെമ്മറി ഉറവിടങ്ങൾ ഉപയോഗിക്കില്ല എന്നാണ് ഇതിനർത്ഥം -- നിങ്ങൾ പോപ്പ്അപ്പ് പാനലുമായോ ഓപ്‌ഷൻ പേജുകളുമായോ സംവദിക്കുമ്പോൾ _only_ uBOL-ന്റെ സേവന വർക്കർ പ്രോസസ്സ് ആവശ്യമാണ്.
ഇൻസ്റ്റാളേഷൻ സമയത്ത് uBOL ന് വിശാലമായ "ഡാറ്റ വായിക്കാനും പരിഷ്‌ക്കരിക്കാനും" അനുമതി ആവശ്യമില്ല, അതിനാൽ uBlock ഒറിജിൻ അല്ലെങ്കിൽ മറ്റ് ഉള്ളടക്ക ബ്ലോക്കറുകൾ എന്നിവയുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ അതിന്റെ പരിമിതമായ കഴിവുകൾ ഇൻസ്റ്റാളേഷൻ സമയത്ത് വിശാലമായ "ഡാറ്റ വായിക്കാനും പരിഷ്‌ക്കരിക്കാനും" അനുമതികൾ ആവശ്യമാണ്.
എന്നിരുന്നാലും, നിങ്ങൾ തിരഞ്ഞെടുക്കുന്ന നിർദ്ദിഷ്ട സൈറ്റുകളിൽ വിപുലീകൃത അനുമതികൾ *വ്യക്തമായി* നൽകാൻ uBOL നിങ്ങളെ അനുവദിക്കുന്നു, അതുവഴി കോസ്മെറ്റിക് ഫിൽട്ടറിംഗും സ്ക്രിപ്റ്റ്ലെറ്റ് കുത്തിവയ്പ്പുകളും ഉപയോഗിച്ച് ആ സൈറ്റുകളിൽ മികച്ച രീതിയിൽ ഫിൽട്ടർ ചെയ്യാൻ കഴിയും.
തന്നിരിക്കുന്ന സൈറ്റിൽ വിപുലമായ അനുമതികൾ നൽകുന്നതിന്, പോപ്പ്അപ്പ് പാനൽ തുറന്ന് ഒപ്റ്റിമൽ അല്ലെങ്കിൽ കംപ്ലീറ്റ് പോലുള്ള ഉയർന്ന ഫിൽട്ടറിംഗ് മോഡ് തിരഞ്ഞെടുക്കുക.
നിലവിലെ സൈറ്റിൽ വിപുലീകരണം അഭ്യർത്ഥിച്ച അധിക അനുമതികൾ നൽകുന്നതിന്റെ ഫലങ്ങളെക്കുറിച്ച് ബ്രൗസർ നിങ്ങൾക്ക് മുന്നറിയിപ്പ് നൽകും, നിങ്ങൾ അഭ്യർത്ഥന സ്വീകരിക്കുകയോ നിരസിക്കുകയോ ചെയ്യണോ എന്ന് നിങ്ങൾ ബ്രൗസറിനോട് പറയേണ്ടിവരും.
നിലവിലെ സൈറ്റിൽ കൂടുതൽ അനുമതികൾക്കായുള്ള uBOL-ന്റെ അഭ്യർത്ഥന നിങ്ങൾ അംഗീകരിക്കുകയാണെങ്കിൽ, നിലവിലെ സൈറ്റിനായി മികച്ച ഉള്ളടക്കം ഫിൽട്ടർ ചെയ്യാൻ അതിന് കഴിയും.
uBOL-ന്റെ ഓപ്‌ഷൻ പേജിൽ നിന്ന് നിങ്ങൾക്ക് ഡിഫോൾട്ട് ഫിൽട്ടറിംഗ് മോഡ് സജ്ജമാക്കാൻ കഴിയും. ഒപ്റ്റിമൽ അല്ലെങ്കിൽ കംപ്ലീറ്റ് മോഡ് ഡിഫോൾട്ടായി നിങ്ങൾ തിരഞ്ഞെടുക്കുകയാണെങ്കിൽ, എല്ലാ വെബ്‌സൈറ്റുകളിലെയും ഡാറ്റ വായിക്കാനും പരിഷ്‌ക്കരിക്കാനും നിങ്ങൾ uBOL-ന് അനുമതി നൽകേണ്ടതുണ്ട്.
ഈ അന്തിമ ലക്ഷ്യങ്ങളോടെ ഇത് ഇപ്പോഴും പുരോഗമിക്കുന്ന ഒരു ജോലിയാണെന്ന് ഓർമ്മിക്കുക:
- ഇൻസ്റ്റാളേഷൻ സമയത്ത് ബ്രോഡ് ഹോസ്റ്റ് അനുമതികളൊന്നുമില്ല -- ഓരോ സൈറ്റിന്റെ അടിസ്ഥാനത്തിൽ വിപുലീകൃത അനുമതികൾ ഉപയോക്താവ് വ്യക്തമായി നൽകുന്നു.
- വിശ്വാസ്യതയ്ക്കും സിപിയു/മെമ്മറി കാര്യക്ഷമതയ്ക്കും പൂർണ്ണമായും പ്രഖ്യാപനം.

View File

@@ -1,30 +1,12 @@
uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
uBO Lite (uBOL) हे MV3-आधारित कंटेंट ब्लॉकर आहे.
The default ruleset corresponds to uBlock Origin's default filterset:
डीफॉल्ट नियमसंच uBlock Origin च्या डीफॉल्ट फिल्टरसेटशी संबंधित आहे:
- uBlock Origin's built-in filter lists
- uBlock Origin च्या बिल्ट-इन फिल्टर लिस्ट
- EasyList
- EasyPrivacy
- Peter Lowes Ad and tracking server list
- पीटर लोवची जाहिरात आणि ट्रॅकिंग सर्व्हर यादी
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
तुम्ही पर्याय पृष्ठाला भेट देऊन अधिक नियम संच सक्षम करू शकता -- पॉपअप पॅनेलमधील _Cogs_ चिन्हावर क्लिक करा.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.
uBOL पूर्णपणे घोषणात्मक आहे, म्हणजे फिल्टरिंगसाठी कायमस्वरूपी uBOL प्रक्रियेची गरज नाही, आणि CSS/JS इंजेक्शनवर आधारित सामग्री फिल्टरिंग ब्राउझरच्याच मदतीने विश्वासार्हपणे होते, विस्ताराद्वारे नव्हे. याचा अर्थ असा की सामग्री ब्लॉकिंग चालू असताना uBOL स्वतः CPU/मेमरी संसाधने वापरत नाही — uBOL चा सर्व्हिस वर्कर प्रोसेस फक्त तेव्हाच लागतो जेव्हा तुम्ही पॉपअप पॅनल किंवा पर्याय पृष्ठांशी संवाद साधता.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) ialah penyekat kandungan berasaskan MV3.
uBO Lite (uBOL) is an MV3-based content blocker.
Set peraturan lalai sepadan dengan set penapis lalai uBlock Origin:
@@ -10,21 +10,3 @@ Set peraturan lalai sepadan dengan set penapis lalai uBlock Origin:
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL adalah deklaratif sepenuhnya, bermakna tidak ada keperluan untuk proses uBOL kekal untuk penapisan berlaku, dan penapisan kandungan berasaskan suntikan CSS/JS dilakukan sepenuhnya oleh penyemak imbas itu sendiri dan bukannya oleh sambungan. Ini bermakna uBOL sendiri tidak menggunakan sumber CPU/memori semasa penyekatan kandungan sedang berjalan -- proses pekerja perkhidmatan uBOL diperlukan _hanya_ apabila anda berinteraksi dengan panel timbul atau halaman pilihan.
uBOL tidak memerlukan kebenaran "baca dan ubah suai data" yang luas pada masa pemasangan, oleh itu keupayaan terhadnya di luar kotak berbanding dengan uBlock Origin atau penyekat kandungan lain yang memerlukan kebenaran "baca dan ubah suai data" yang luas pada masa pemasangan.
Walau bagaimanapun, uBOL membenarkan anda *dengan jelas* memberikan kebenaran lanjutan pada tapak tertentu pilihan anda supaya ia boleh menapis dengan lebih baik pada tapak tersebut menggunakan penapisan kosmetik dan suntikan skrip.
Untuk memberikan kebenaran lanjutan pada tapak tertentu, buka panel timbul dan pilih mod penapisan yang lebih tinggi seperti Optimum atau Lengkap.
Penyemak imbas kemudian akan memberi amaran kepada anda tentang kesan pemberian kebenaran tambahan yang diminta oleh sambungan pada tapak semasa dan anda perlu memberitahu penyemak imbas sama ada anda menerima atau menolak permintaan tersebut.
Jika anda menerima permintaan uBOL untuk mendapatkan kebenaran tambahan pada tapak semasa, ia akan dapat menapis kandungan dengan lebih baik untuk tapak semasa.
Anda boleh menetapkan mod penapisan lalai dari halaman pilihan 'uBOL'. Jika anda memilih mod Optimum atau Lengkap sebagai mod lalai, anda perlu memberikan uBOL kebenaran untuk membaca dan mengubah suai data pada semua tapak web.
Perlu diingat bahawa ini masih dalam proses, dengan matlamat akhir ini:
- Tiada kebenaran hos pada masa pemasangan -- kebenaran lanjutan diberikan secara eksplisit oleh pengguna pada asas setiap tapak.
- Deklaratif sepenuhnya untuk kebolehpercayaan dan kecekapan CPU/memori.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) er en *tillatelses-begrenset* MV3-basert innholdsblokkerer.
uBO Lite (uBOL) er en MV3-basert innholdsblokkerer.
Standardregelsettet tilsvarer standardfiltersettet til uBlock Origin:
@@ -10,21 +10,3 @@ Standardregelsettet tilsvarer standardfiltersettet til uBlock Origin:
Du kan legge til flere regelsett ved å gå til innstillingssiden -- klikk _Tannhjul_-ikonet i oppsprettspanelet.
uBOL er fullstendig deklarativ, noe som betyr at det ikke er behov for en permanent uBOL-prosess for at filtreringen skal skje, og CSS/JS-injeksjonsbasert innholdsfiltrering utføres pålitelig av nettleseren selv i stedet for av utvidelsen. Dette betyr at uBOL selv ikke bruker CPU/minneressurser mens innholdsblokkering pågår -- uBOL's service worker-prosess kreves _bare_ når du samhandler med oppsprettspanelet eller innstillingssidene.
uBOL krever ikke bred "lese og endre data"-tillatelse under installasjonen, derav begrensede muligheter i utgangspunktet sammenlignet med uBlock Origin eller andre innholdsblokkerere som krever bred "lese og endre data"-tillatelse under installasjonen.
Men, uBOL lar deg *uttrykkelig* gi utvidede tillatelser på bestemte nettsteder du velger, slik at uBOL bedre kan filtrere på disse nettstedene ved bruk av kosmetisk filtrering og skriptlet-injeksjoner.
For å gi utvidede tillatelser på et gitt nettsted, åpne oppsprettspanelet og velg en høyere filtreringsmodus som Optimal eller Fullstendig.
Nettleseren vil da advare deg om effektene av å gi de ekstra tillatelsene som utvidelsen ber om på det gjeldende nettstedet, og du må fortelle nettleseren om du godtar eller avslår forespørselen.
Hvis du godtar forespørselen fra uBOL om ekstra tillatelser på det gjeldende nettstedet, vil uBOL være i stand til å filtrere innhold bedre for det gjeldende nettstedet.
Du kan angi standard filtreringsmodus fra innstillingssiden i uBOL. Hvis du velger Optimal eller Fullstendig modus som standard, må du gi uBOL tillatelsen til å lese og endre data på alle nettsteder.
Husk at dette fortsatt er et arbeid som pågår, med disse sluttmålene:
- Ingen brede vertstillatelser under installasjonen -- utvidede tillatelser gis uttrykkelig av brukeren på per-side-basis.
- Helt deklarativt for pålitelighet og CPU/minneeffektivitet.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) is een *toestemmingsloze* MV3-gebaseerde inhoudsblokkeerder.
uBO Lite (uBOL) is een op MV3 gebaseerde inhoudsblokkeerder.
De standaard regelset komt overeen met de standaard filterset van uBlock Origin:
@@ -10,21 +10,3 @@ De standaard regelset komt overeen met de standaard filterset van uBlock Origin:
U kunt meer regelsets inschakelen door de optiespagina te bezoeken -- klik hiervoor op het _tandwielpictogram_ in het pop-uppaneel.
uBOL is volledig declaratief, wat betekent dat er geen permanent uBOL-proces voor de filtering nodig is, en inhoudsfiltering op basis van CSS/JS-injectie op een betrouwbare manier door de browser zelf wordt uitgevoerd in plaats van door de extensie. Dit betekent dat uBOL zelf geen CPU-/geheugenbronnen gebruikt terwijl inhoudsblokkering actief is -- het serviceworker-proces van uBOL is _alleen_ vereist als u met het pop-uppaneel of de optiespaginas werkt.
uBOL vereist geen brede toestemming voor het lezen en aanpassen van gegevens tijdens installatie, vandaar de beperkte ingebouwde mogelijkheden ervan in vergelijking met uBlock Origin of andere inhoudsblokkeerders die brede toestemmingen voor het lezen en aanpassen van gegevens vereisen tijdens installatie.
U kunt in uBOL echter *expliciet* uitgebreide toestemmingen verlenen op bepaalde websites van uw keuze, zodat het op die websites beter kan filteren via cosmetische filtering en scriptlet-injecties.
Om uitgebreide toestemmingen op een bepaalde website te verlenen, opent u het pop-uppaneel en kiest u een hogere filtermodus, zoals Optimaal of Volledig.
De browser waarschuwt u dan over de gevolgen van het verlenen van de door de extensie aangevraagde aanvullende toestemmingen op de huidige website, en u dient de browser te laten weten of u de aanvraag accepteert of weigert.
Als u de aanvraag van uBOL voor aanvullende toestemmingen op de huidige website accepteert, zal het inhoud voor de huidige website beter kunnen filteren.
U kunt de standaard filtermodus instellen vanaf de optiespagina van uBOL. Als u de modus Optimaal of Volledig als de standaardmodus kiest, dient u uBOL de toestemming voor het lezen en aanpassen van gegevens op alle websites te verlenen.
Onthoud dat dit nog werk in uitvoering is, met deze einddoelen:
- Geen brede host-toestemmingen tijdens installatie -- uitgebreide toestemmingen worden expliciet en per website verleend door de gebruiker.
- Volledig declaratief omwille van betrouwbaarheid en CPU-/geheugenefficiëntie.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
uBO Lite (uBOL) is an MV3-based content blocker.
The default ruleset corresponds to uBlock Origin's default filterset:
@@ -10,21 +10,3 @@ The default ruleset corresponds to uBlock Origin's default filterset:
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) ਇੱਕ *ਬਿਨਾਂ ਇਜਾਜ਼ਤਾਂ* ਵਾਲਾ MV3-ਅਧਾਰਿਤ ਸਮੱਗਰੀ ਬਲਾਕਰ ਹੈ।
uBO Lite (uBOL) is an MV3-based content blocker.
ਮੂਲ ਨਿਯਮ-ਸਮੂਹ uBlock Origin ਦੇ ਮੂਲ ਫਿਲਟਰ-ਸਮੂਹ ਨਾਲ ਸੰਬੰਧਿਤ ਹੈ:
@@ -10,21 +10,3 @@ uBO Lite (uBOL) ਇੱਕ *ਬਿਨਾਂ ਇਜਾਜ਼ਤਾਂ* ਵਾਲਾ M
ਤੁਸੀਂ ਚੋਣਾਂ ਸਫ਼ੇ ਨੂੰ ਖੋਲ੍ਹ ਕੇ ਹੋਰ ਰੂਲ-ਸੈੱਟ ਸਮਰੱਥ ਕਰ ਕਦੇ ਹੋ -- ਪੌਪ-ਅੱਪ ਪੈਨਲ ਵਿੱਚ _Cogs_ icon ਨੂੰ ਕਲਿੱਕ ਕਰੋ।
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
ਜੇ ਤੁਸੀਂ ਮੌਜੂਦਾ ਸਾਈਟਾਂ ਉੱਤੇ ਹੋਰ ਇਜਾਜਤਾਂ ਲਈ uBOL ਦੀ ਬੇਨਤੀ ਨੂੰ ਮਨਜ਼ੂਰ ਕੀਤਾ ਤਾਂ ਇਹ ਮੌਜੂਦਾ ਸਾਈਟ ਬਾਰੇ ਵਧੀਆ ਫਿਲਟਰ ਸਮੱਗਰੀ ਨੂੰ ਸਮਰੱਥ ਕਰੇਗੀ।
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
ਯਾਦ ਰੱਖੋ ਕਿ ਇਹ ਕੰਮ ਹਾਲੇ ਵੀ ਜਾਰੀ ਹੈ, ਜਿਸ ਦੇ ਟੀਚੇ ਇਹ ਹਨ:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) to *niewymagający uprawnień* bloker treści oparty na MV3.
uBO Lite (uBOL) to bloker treści oparty na MV3.
Domyślny zestaw reguł odpowiada domyślnemu zestawowi filtrów uBlock Origin:
@@ -10,21 +10,3 @@ Domyślny zestaw reguł odpowiada domyślnemu zestawowi filtrów uBlock Origin:
Możesz włączyć więcej zestawów reguł, odwiedzając stronę opcji kliknij ikonę _koła zębatego_ w wyskakującym panelu.
uBOL jest całkowicie deklaratywny, co oznacza, że nie jest potrzebny stały proces uBOL w celu filtrowania, a filtrowanie treści oparte na wstrzykiwaniu CSS/JS jest wykonywane niezawodnie przez samą przeglądarkę, a nie przez rozszerzenie. Oznacza to, że sam uBOL nie zużywa zasobów procesora/pamięci, gdy trwa blokowanie treści proces Service Worker uBOL jest wymagany _tylko_ podczas interakcji z panelem wyskakującym lub stronami opcji.
uBOL w trakcie instalacji nie wymaga szerokich uprawnień do „odczytu i modyfikacji danych”, stąd jego ograniczone możliwości w porównaniu z uBlock Origin lub innymi blokerami treści, które w czasie instalacji wymagają szerokich uprawnień do „odczytu i modyfikacji danych”.
Jednakże uBOL umożliwia *jawnie* udzielanie rozszerzonych uprawnień na określonych wybranych witrynach, dzięki czemu może lepiej filtrować te witryny za pomocą filtrowania kosmetycznego i wstrzykiwania skryptletów.
Aby przyznać rozszerzone uprawnienia na danej witrynie, otwórz panel wyskakujący i wybierz wyższy tryb filtrowania, taki jak Optymalny lub Kompletny.
Przeglądarka wyświetli ostrzeżenie o skutkach przyznania dodatkowych uprawnień wymaganych przez rozszerzenie na bieżącej witrynie i będziesz musiał poinformować przeglądarkę, czy akceptujesz, czy odrzucasz żądanie.
Jeśli zaakceptujesz żądanie uBOL o dodatkowe uprawnienia na bieżącej witrynie, będzie on w stanie lepiej filtrować zawartość bieżącej witryny.
Możesz ustawić domyślny tryb filtrowania na stronie opcji uBOL. Jeśli tryb Optymalny lub Pełny zostanie wybrany jako domyślny, trzeba będzie przyznać uBOL uprawnienia do odczytu i modyfikacji danych na wszystkich stronach internetowych.
Należy pamiętać, że nadal trwają prace z następującymi celami końcowymi:
Brak szerokich uprawnień hosta w czasie instalacji rozszerzone uprawnienia są przyznawane jawnie przez użytkownika na podstawie poszczególnych witryn.
Całkowicie deklaratywna niezawodność i wydajność procesora/pamięci.

View File

@@ -1,30 +1,12 @@
O uBO Lite (uBOL) é um bloqueador de conteúdo baseado no MV3 com menor permissão.
O uBO Lite (uBOL) é um bloqueador de conteúdo baseado no MV3.
O conjunto de regras padrão corresponde ao conjunto de filtros padrão do uBlock Origin:
- Listas embutidas dos filtros do uBlock Origin
- EasyList
- EasyPrivacy
- Lista de servidores de anúncios e rastreadores do Peter Lowe
- Lista de servidores de anúncios e rastreamento por Peter Lowe
Você pode ativar mais conjuntos de regras visitando a página das opções — clique no ícone da _Engranagem_ no painel do popup.
Você pode ativar mais conjuntos de regras visitando a página de opções — clique no ícone da _Engranagem_ no painel do pop-up.
O uBOL é totalmente declarativo, significando que não há necessidade de um processo permanente do uBOL para a filtragem ocorrer e a filtragem de conteúdo baseada em injeção do CSS/JS é realizada confiavelmente pelo próprio navegador ao invés da extensão. Isto significa que o próprio uBOL não consome recursos de CPU/memória enquanto o bloqueio de conteúdo está em andamento -- o processo do service worker do uBOL _só_ é necessário quando você interage com o painel do pop-up ou as páginas das opções.
O uBOL não requer permissão ampla pra "ler e modificar dados" na hora da instalação, logo suas capacidades limitadas fora da caixa comparadas com o uBlock Origin ou outros bloqueadores de conteúdo requerem permissões amplas pra "ler e modificar dados" na hora da instalação.
Contudo, o uBOL permite a você garantir *explicitamente* permissões estendidas em sites específicos de sua escolha pra que possa filtrar melhor esses sites usando filtragem cosmética e injeções de scriptlet.
Pra conceder permissões estendidas num site dado, abra o painel do pop-up e escolha um modo de filtragem superior tal como Otimizado ou Completo.
O navegador então avisará você sobre os efeitos de garantir as permissões adicionais requisitadas pela extensão no site atual e você terá que dizer ao navegador se você aceita ou recusa a requisição.
Se você aceitar a requisição do uBOL por permissões adicionais no site atual ele será capaz de filtrar melhor o conteúdo do site atual.
Você pode definir o modo de filtragem padrão na página de opções do uBOL. Se você escolher o Modo Otimizado ou Completo como o modo padrão você precisará garantir ao uBOL a permissão de ler e modificar os dados em todos os sites.
Mantenha em mente que este ainda é um trabalho em progresso com estes objetivos finais:
- Sem permissões amplas do hospedeiro na hora da instalação -- as permissões estendidas são garantidas explicitamente pelo usuário numa base por site.
- Totalmente declarativo para confiabilidade e eficiência de CPU/memória.
O uBOL é totalmente declarativo, significando que não há necessidade de um processo permanente do uBOL para a filtragem ocorrer, e filtragem de conteúdo baseada em injeção de CSS/JS é realizada corretamente pelo próprio navegador ao invés da extensão. Isto significa que o uBOL em si não consome recursos de CPU/memória ao bloquear conteúdo -- o processo do service worker do uBOL _só_ é necessário quando você interage com o painel do pop-up ou as páginas de opções.

View File

@@ -1,30 +1,12 @@
O uBO Lite (uBOL) é um bloqueador de conteúdo baseado no MV3 *sem permissões*.
O uBO Lite (uBOL) é um bloqueador de conteúdo baseado em MV3.
O conjunto de regras padrão corresponde ao conjunto de filtros padrão do uBlock Origin:
O conjunto de regras predefinido corresponde ao conjunto de filtros predefinido do uBlock Origin:
- Listas de filtros integrados do uBlock Origin
- EasyList
- EasyPrivacy
- Peter Lowes Ad and tracking server list
Pode ativar mais conjuntos de regras visitando a página de opções -- clique no ícone _Cogs_ na janela flutuante.
Pode ativar mais conjuntos de regras visitando a página de opções -- clique no ícone _Cogs_ no painel popup.
O uBOL é totalmente declarativo, o que elimina a necessidade de um processo ativo constante para a filtragem ocorrer. A injeção de CSS e JS para filtragem de conteúdo é efetuada de maneira confiável pelo navegador, não dependendo da extensão. Isso significa que o uBOL por si só não gasta recursos de CPU/memória enquanto o bloqueio de conteúdo está a acontecer -- o processo do trabalhador de serviço do uBOL é necessário apenas quando se interage com a janela flutuante ou as páginas de opções.
uBOL não requer ampla permissão de "ler e modificar dados" no momento da instalação, daí as suas capacidades limitadas de pronto a usar em comparação com uBlock Origin ou outros bloqueadores de conteúdo que requerem amplas permissões de "ler e modificar dados" no momento da instalação.
No entanto, o uBOL permite-lhe que *explicitamente* conceda permissões alargadas em websites específicos de sua escolha, para que possa filtrar melhor esses websites usando filtragem cosmética e injeções de scriptlet.
Para conceder permissões alargadas num determinado sítio web, abra a janela flutuante e escolha um modo de filtragem superior, como 'Ideal' ou 'Completo'.
O navegador irá avisá-lo sobre os efeitos da concessão das permissões adicionais solicitadas pela extensão no site atual, e terá que informar ao navegador se aceita ou recusa o pedido.
Se aceitar o pedido do uBOL para permissões adicionais no site atual, o mesmo poderá filtrar melhor o conteúdo do site atual.
Pode definir o modo de filtragem padrão na página de opções do uBOL. Se escolher o modo Ideal ou Completo como o modo predefinido, terá de conceder ao uBOL a permissão para ler e modificar dados em todos os sítios web.
Tenha em mente que este ainda é um trabalho em curso, com estes objetivos finais:
- Sem permissões amplas de anfitrião no momento da instalação -- permissões estendidas são concedidas explicitamente pelo utilizador numa base por site.
- Totalmente declarativo para fiabilidade e eficiência de CPU/memória
O uBOL é totalmente declarativo, o que significa que não é necessário um processo permanente do uBOL para que a filtragem ocorra, e a filtragem de conteúdos baseada em injeção de CSS/JS é realizada de forma fiável pelo próprio navegador, e não pela extensão. Isto significa que o próprio uBOL não consome recursos de CPU/memória enquanto o bloqueio de conteúdo está ativo -- o processo do service worker do uBOL é necessário apenas quando interage com o painel popup ou com as páginas de opções.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) este blocant experimental de conținut *fără permisiuni* bazat pe MV3.
uBO Lite (uBOL) este un blocker de conținut bazat pe MV3.
Setul de reguli implicit corespunde setului de filtre implicit al uBlock Origin:
@@ -10,21 +10,3 @@ Listele de filtre încorporate de uBlock Origin
Puteți activa mai multe seturi de reguli accesând pagina de opțiuni - faceți clic pe pictograma _Cogs_ din panoul pop-up.
uBOL este în întregime declarativ, ceea ce înseamnă că nu este nevoie de un proces uBOL permanent pentru ca filtrarea să aibă loc, iar filtrarea conținutului pe bază de injecție CSS/JS este realizată în mod sigur de browser în sine, mai degrabă decât de extensie. Aceasta înseamnă că uBOL în sine nu consumă resurse CPU/memorie în timp ce blocarea conținutului este în desfășurare -- procesul de lucru al serviciului uBOL este necesar _doar_ atunci când interacționați cu panoul pop-up sau cu paginile de opțiuni.
uBOL nu necesită permisiunii extinse de „citire și modificare a datelor” în momentul instalării, astfel capacitățile sale limitate din momentul instalării în comparație cu uBlock Origin sau alte blocare de conținut necesită permisiuni largi de „citire și modificare a datelor” în momentul instalării.
Cu toate acestea, uBOL vă permite să acordați *explicit* permisiuni extinse pe anumite site-uri alese de dvs., astfel încât să poată filtra mai bine pe acele site-uri folosind filtrarea cosmetică și injecțiile de scriptlet.
Pentru a acorda permisiuni extinse pe un anumit site, deschideți panoul pop-up și alegeți un mod de filtrare mai ridicat, cum ar fi Optimal sau Complet.
Browser-ul vă va avertiza apoi cu privire la efectele acordării permisiunilor suplimentare solicitate de extensie pe site-ul curent și va trebui să-i precizați browserului dacă acceptați sau refuzați cererea.
Dacă acceptați solicitarea uBOL pentru permisiuni suplimentare pe site-ul curent, acesta va putea filtra mai bine conținutul pentru site-ul curent.
Puteți seta modul implicit de filtrare din pagina de opțiuni a uBOL. Dacă alegeți modul optim sau complet ca implicit, va trebui să acordați lui uBOL permisiunea de a citi și modifica datele de pe toate site-urile web.
Rețineți că aceasta este în curs de desfășurare, cu aceste obiective finale:
- Fără permisiuni de gazdă largi în momentul instalării - permisiunile extinse sunt acordate în mod explicit de către utilizator pe bază de site.
- Complet declarativ pentru fiabilitate și eficiență CPU/memorie.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) — это блокировщик содержимого, *не требующий разрешений*, и основанный на MV3.
uBO Lite (uBOL) — это блокировщик веб-элементов на базе MV3.
Стандартный набор правил соответствует типовому набору фильтров uBlock Origin:
@@ -10,21 +10,3 @@ uBO Lite (uBOL) — это блокировщик содержимого, *не
Вы можете активировать больше списков правил на странице настроек -- нажмите на значок _Шестерёнки_ на всплывающей панели.
uBOL - полностью декларативный, т.е. для фильтрации не нужен постоянно выполняющийся uBOL процесс, а фильтрация контента, основанная на внедрении CSS/JS, производится непосредственно браузером. Это значит, что дополнение uBOL не расходует ресурсы ЦПУ/памяти, когда происходит блокировка рекламы -- служебный процесс uBOL запускается, _только_ когда вы вносите изменения на всплывающей панели или странице настроек.
uBOL не требует разрешение на полное "чтение и изменение данных" в момент установки, поэтому имеет ограниченные возможности по сравнению с uBlock Origin, и другими блокировщиками контента, которые требуют полное разрешение на "чтение и изменение данных" в момент установки.
Однако uBOL позволяет *намеренно* давать расширенные разрешения для определенных сайтов - по вашему усмотрению, чтобы эффективнее работать, используя косметическую фильтрацию и scriptlet-внедрения.
Для предоставления расширенных разрешений на текущем сайте - откройте всплывающую панель и выберите повышенный режим фильтрации: Оптимальный или Полный.
Далее браузер выдаст предупреждение об эффектах предоставления расширенных разрешений, запрошенных дополнением на текущем сайте, и надо будет выбрать: принять или отклонить этот запрос.
Если вы принимаете запрос uBOL на предоставление дополнительных разрешений, тогда дополнение сможет эффективнее фильтровать контент на текущем сайте.
Вы можете установить стандартный режим фильтрации на странице настроек uBOL. Если вы выбираете Оптимальный или Полный режим - режимом по умолчанию, необходимо предоставить uBOL разрешение на чтение и изменение данных на всех веб-сайтах.
Помните, что данный проект - в активной фазе разработки, преследующей следующие цели:
- Работа с ограниченными разрешениями при установке -- расширенные разрешения пользователь выдает по своему усмотрению, каждому сайту отдельно.
- Полностью декларативная работа - для надежности и эффективного использования ЦПУ/памяти.

View File

@@ -1,30 +1,12 @@
uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
uBO Lite (uBOL) යනු MV3-පාදක අන්තර්ගත අවහිර කරන්නා වේ.
The default ruleset corresponds to uBlock Origin's default filterset:
පෙරනිමි රීති කට්ටලය uBlock Origin හි පෙරනිමි පෙරහන් කට්ටලයට අනුරූප වේ:
- uBlock Origin's built-in filter lists
- EasyList
- EasyPrivacy
- Peter Lowes Ad and tracking server list
- uBlock Origin හි බිල්ට් පෙරහන් ලැයිස්තු
- පහසු ලැයිස්තුව
- පහසු පෞද්ගලිකත්වය
- පීටර් ලෝගේ දැන්වීම් සහ ලුහුබැඳීමේ සේවාදායක ලැයිස්තුව
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
විකල්ප පිටුවට පිවිසීමෙන් ඔබට තවත් නීති කට්ටල සක්‍රීය කළ හැකිය -- උත්පතන පැනලයේ _Cogs_ නිරූපකය ක්ලික් කරන්න.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.
uBOL සම්පූර්ණයෙන්ම ප්‍රකාශනාත්මකයි, එනම් පෙරීම සිදුවීමට ස්ථිර uBOL ක්‍රියාවලියක් අවශ්‍ය නොවන අතර, CSS/JS එන්නත්-පාදක අන්තර්ගත පෙරීම දිගුව මගින් නොව බ්‍රවුසරය විසින්ම විශ්වාසදායක ලෙස සිදු කරයි. මෙයින් අදහස් කරන්නේ අන්තර්ගත අවහිර කිරීම සිදුවෙමින් පවතින අතරතුර uBOL විසින්ම CPU/මතක සම්පත් පරිභෝජනය නොකරන බවයි -- ඔබ උත්පතන පැනලය හෝ විකල්ප පිටු සමඟ අන්තර් ක්‍රියා කරන විට uBOL හි සේවා සේවක ක්‍රියාවලිය _only_ අවශ්‍ය වේ.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) je blokovač obsahu založený na MV3 *bez povolenia*.
uBO Lite (uBOL) je blokovač obsahu založený na MV3.
Predvolený súbor pravidiel zodpovedá predvolenému súboru filtrov uBlock Origin:
@@ -10,21 +10,3 @@ Predvolený súbor pravidiel zodpovedá predvolenému súboru filtrov uBlock Ori
Ďalšie súbory pravidiel môžete povoliť na stránke s možnosťami kliknite na ikonu _súkolesia_ vo vyskakovacom paneli.
uBOL je úplne deklaratívny, čo znamená, že na filtrovanie nie je potrebný trvalý proces uBOL a filtrovanie obsahu založené na injektovaní CSS/JS spoľahlivo vykonáva samotný prehliadač, a nie rozšírenie. To znamená, že samotný uBOL nespotrebúva zdroje CPU/pamäte, kým prebieha blokovanie obsahu -- proces uBOL Service Worker je potrebný _len_ pri interakcii s vyskakovacím panelom alebo stránkami možností.
uBOL pri inštalácii nevyžaduje všeobecné oprávnenie "čítať a upravovať údaje", preto má obmedzené možnosti v porovnaní s uBlock Origin alebo inými blokovačmi obsahu, ktoré pri inštalácii vyžadujú všeobecné oprávnenie "čítať a upravovať údaje".
uBOL vám však umožňuje *výslovne* udeliť všebecné oprávnenia na konkrétne stránky podľa vášho výberu, aby mohol lepšie filtrovať na týchto stránkach pomocou kozmetického filtrovania a injektovaných skriptletov.
Ak chcete udeliť všeobecné oprávnenia na danom webe, otvorte vyskakovací panel a vyberte vyšší režim filtrovania, napríklad Optimálny alebo Kompletný.
Prehliadač vás potom upozorní na dôsledky udelenia dodatočných oprávnení požadovaných rozšírením na aktuálnej stránke a vy budete musieť prehliadaču oznámiť, či požiadavku prijímate alebo odmietate.
Ak prijmete žiadosť uBOL o dodatočné povolenia na aktuálnom webe, bude môcť lepšie filtrovať obsah aktuálneho webu.
Predvolený režim filtrovania môžete nastaviť na stránke možností uBOL. Ak ako predvolený režim vyberiete Optimálny alebo Kompletný režim, budete musieť uBOL-u udeliť oprávnenie na čítanie a úpravu údajov na všetkých webových stránkach.
Majte na pamäti, že na tomto projekte sa stále pracuje, pričom jeho konečné ciele sú takéto:
- Žiadne všeobecné oprávnenia hostiteľa v čase inštalácie -- rozšírené oprávnenia udeľuje používateľ explicitne pre jednotlivé stránky.
- Úplne deklaratívne pre spoľahlivosť a efektivitu CPU/pamäte.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
uBO Lite (uBOL) is an MV3-based content blocker.
The default ruleset corresponds to uBlock Origin's default filterset:
@@ -10,21 +10,3 @@ The default ruleset corresponds to uBlock Origin's default filterset:
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
uBO Lite (uBOL) is an MV3-based content blocker.
The default ruleset corresponds to uBlock Origin's default filterset:
@@ -10,21 +10,3 @@ The default ruleset corresponds to uBlock Origin's default filterset:
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) është një bllokues *i pavarur* që funksionon sipas modelit MV3.
uBO Lite (uBOL) është një bllokues materialesh sipas modelit MV3.
Rregullat e tij janë të barasvlershme me filtrat standardë që përdor uBlock Origin:
@@ -10,21 +10,3 @@ Rregullat e tij janë të barasvlershme me filtrat standardë që përdor uBlock
Në faqen e opsioneve mund të aktivizoni rregulla të tjera klikoni ikonën e _ingranazhit_ në panelin modal.
uBOL është tërësisht deklarativ, domethënë filtrimi ndodh pa qenë nevoja që procesi i uBOL të vijojë vazhdimisht në sfond, ndërsa injektimi i filtrave CSS/JS te materialet kryhet me saktësi nga vetë shfletuesi. Pra, uBOL i bllokon materialet pa konsumuar resurset e procesorit/memories asetet e uBOL nevojiten _vetëm_ kur ndërveproni me panelin modal ose faqen e opsioneve të tij.
uBO Lite nuk kërkon leje shtesë për "leximin dhe modifikimin e të dhënave" kur e instaloni, prandaj fillimisht ka aftësi më të kufizuara sesa uBlock Origin apo bllokuesit e tjerë që kërkojnë leje shtesë për "leximin dhe modifikimin e të dhënave" gjatë instalimit.
Megjithatë ju mund t'i jepni uBOL leje të posaçme *eksplicite* për ato uebsajte që doni, në mënyrë që t'i filtrojë më mirë me filtra kozmetikë dhe skripte.
Lejet e posaçme për uebsajtet jepen nëpërmjet panelit modal duke zgjedhur mënyrën e filtrimit Optimal ose Komplet.
Më tej shfletuesi do ju informojë për efektet e dhënies së këtyre lejeve për uebsajtin në fjalë dhe ju duhet ta pranoni ose refuzoni kërkesën.
Po ta pranoni dhënien e lejeve shtesë për uebsajtin në fjalë, uBOL do mundet ta filtrojë më mirë atë.
Në faqen e opsioneve të uBOL mund të përcaktoni mënyrën standarde të filtrimit. Nëse vendosni si standard mënyrën Optimale ose Komplete, uBOL do ju marrë leje për leximin dhe modifikimin e të dhënave në të gjitha uebsajtet.
Kini parasysh se ky projekt është në zhvillim e sipër sipas këtyre objektivave:
- Instalohet pa leje shtesë lejet e posaçme për çdo uebsajt jepen në mënyrë eksplicite nga përdoruesi.
- Tërësisht deklarativ për të qenë më i qëndrueshëm dhe eficient me procesorin/memorien.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) је блокатор садржаја *без дозвола*, заснован на MV3.
uBO Lite (uBOL) је блокатор садржаја заснован на MV3.
Подразумевани скуп правила одговара подразумеваном скупу филтера uBlock Origin-а:
@@ -10,21 +10,3 @@ uBO Lite (uBOL) је блокатор садржаја *без дозвола*,
Можете омогућити још скупова правила тако што ћете посетити страницу са опцијама -- кликните на иконицу зупчаника у искачућем панелу.
uBOL је потпуно декларативан, што значи да нема потребе за трајним uBOL процесом да би дошло до филтрирања, а филтрирање садржаја засновано на убацивању CSS/JS се обавља поуздано од стране самог прегледача, а не проширења. То значи да сам uBOL не троши CPU/меморијске ресурсе док је блокирање садржаја у току -- сервисни радни процес uBOL-а је потребан _само_ када ступите у интеракцију са искачућим панелом или страницама опција.
uBOL не захтева широку дозволу за „читање и измену података” у тренутку инсталације, стога су његове ограничене могућности ван оквира у поређењу са uBlock Origin-ом или другим блокаторима садржаја који захтевају широке дозволе за „читање и измену података” у тренутку инсталације.
Међутим, uBOL вам омогућује да *експлицитно* доделите проширене дозволе на одређеним сајтовима по вашем избору тако да може боље да филтрира те сајтове користећи козметичко филтрирање и ињекције скриптлета.
Да бисте доделили проширене дозволе за дати сајт, отворите искачући панел и изаберите виши режим филтрирања, као што је Оптимално или Комплетно.
Прегледач ће вас тада упозорити на ефекте давања додатних дозвола које захтева проширење на тренутном сајту, а ви ћете морати да кажете прегледачу да ли прихватате или одбијате захтев.
Ако прихватите uBOL-ов захтев за додатне дозволе на тренутном сајту, он ће моћи боље да филтрира садржај за тренутни сајт.
Можете подесити подразумевани режим филтрирања на uBOL-овој страници са опцијама. Ако изаберете режим Оптимално или Комплетно као подразумевани, мораћете да доделите uBOL-у дозволу да чита и мења податке на свим веб сајтовима.
Имајте на уму да је ово још увек рад у току, са овим крајњим циљевима:
Нема широких дозвола за хост у тренутку инсталације проширене дозволе се експлицитно додељују од стране корисника на основу сваког сајта.
- Потпуно декларативан за поузданост и ефикасност CPU/меморије.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) är en *behörighetslös* MV3-baserad innehållsblockerare.
uBO Lite (uBOL) är en MV3-baserad innehållsblockerare.
Standardregeluppsättningen motsvarar uBlock Origins standardfilteruppsättning:
@@ -10,21 +10,3 @@ Standardregeluppsättningen motsvarar uBlock Origins standardfilteruppsättning:
Du kan lägga till fler regeluppsättningar i alternativ -- klicka på _Kugghjulet_ i popup-panelen.
uBOL är helt deklarativt, vilket innebär att det inte finns något behov av en permanent uBOL-process för att filtreringen ska ske och CSS/JS-injektionsbaserad innehållsfiltrering utförs på ett tillförlitligt sätt av webbläsaren själv snarare än av tillägget. Detta innebär att uBOL själv inte förbrukar CPU/minnesresurser medan innehållsblockering pågår -- uBOLs serviceworkerprocess krävs _endast_ när du interagerar med popup-panelen eller alternativsidorna.
uBOL kräver inte högre behörighet för "läs och ändra data" vid installationen, därav dess begränsade möjligheter jämfört med uBlock Origin eller andra innehållsblockerare som kräver högre behörighet för "läs och ändra data" vid installationen.
Däremot låter uBOL dig *uttryckligen* ge utökade behörigheter på specifika webbplatser du väljer så att den bättre kan filtrera på dessa webbplatser med hjälp av kosmetisk filtrering och scriptletinjektioner.
För att ge utökade behörigheter på en viss webbplats, öppna popup-panelen och välj ett högre filtreringsläge som optimal eller fullständig.
Webbläsaren kommer sedan att varna dig om effekterna av att bevilja de ytterligare behörigheter som tillägget begär på den aktuella webbplatsen och du måste tala om för webbläsaren om du accepterar eller avslår begäran.
Om du accepterar uBOLs begäran om ytterligare behörigheter på den aktuella webbplatsen kommer den att kunna filtrera innehåll för den aktuella webbplatsen bättre.
Du kan ställa in standardfiltreringsläget från uBOLs alternativsida. Om du väljer läge optimalt eller fullständigt som standard måste du ge uBOL behörighet att läsa och ändra data på alla webbplatser.
Tänk på att detta fortfarande är ett pågående arbete med dessa slutmål:
- Inga högre värdbehörigheter vid installationen - utökade behörigheter ges uttryckligen av användaren per webbplats.
- Helt deklarativt för tillförlitlighet och CPU/minneseffektivitet.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
uBO Lite (uBOL) is an MV3-based content blocker.
The default ruleset corresponds to uBlock Origin's default filterset:
@@ -10,21 +10,3 @@ The default ruleset corresponds to uBlock Origin's default filterset:
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
uBO Lite (uBOL) is an MV3-based content blocker.
The default ruleset corresponds to uBlock Origin's default filterset:
@@ -10,21 +10,3 @@ The default ruleset corresponds to uBlock Origin's default filterset:
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) అనేది *అనుమతి-తక్కువ* MV3-ఆధారిత కంటెంట్ బ్లాకర్.
uBO Lite (uBOL) is an MV3-based content blocker.
The default ruleset corresponds to uBlock Origin's default filterset:
@@ -10,21 +10,3 @@ The default ruleset corresponds to uBlock Origin's default filterset:
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOLకి ఇన్‌స్టాల్ సమయంలో విస్తృత "డేటాను చదవడం మరియు సవరించడం" అనుమతి అవసరం లేదు, అందువల్ల uBlock ఆరిజిన్ లేదా ఇన్‌స్టాల్ సమయంలో విస్తృతమైన "డేటాను చదవడం మరియు సవరించడం" అనుమతులు అవసరమయ్యే ఇతర కంటెంట్ బ్లాకర్‌లతో పోలిస్తే దాని పరిమిత సామర్థ్యాలు బాక్స్ వెలుపల ఉన్నాయి.
అయితే, uBOL మీకు నచ్చిన నిర్దిష్ట సైట్‌లలో పొడిగించిన అనుమతులను *స్పష్టంగా* మంజూరు చేయడానికి మిమ్మల్ని అనుమతిస్తుంది, తద్వారా కాస్మెటిక్ ఫిల్టరింగ్ మరియు స్క్రిప్ట్‌లెట్ ఇంజెక్షన్‌లను ఉపయోగించి ఆ సైట్‌లలో మెరుగ్గా ఫిల్టర్ చేయవచ్చు.
ఇచ్చిన సైట్‌లో పొడిగించిన అనుమతులను మంజూరు చేయడానికి, పాప్‌అప్ ప్యానెల్‌ను తెరిచి, ఆప్టిమల్ లేదా కంప్లీట్ వంటి అధిక ఫిల్టరింగ్ మోడ్‌ను ఎంచుకోండి.
ప్రస్తుత సైట్‌లో పొడిగింపు ద్వారా అభ్యర్థించిన అదనపు అనుమతులను మంజూరు చేయడం వల్ల కలిగే ప్రభావాల గురించి బ్రౌజర్ మిమ్మల్ని హెచ్చరిస్తుంది మరియు మీరు అభ్యర్థనను అంగీకరించాలా లేదా తిరస్కరించాలా అని మీరు బ్రౌజర్‌కి తెలియజేయాలి.
మీరు ప్రస్తుత సైట్‌లో అదనపు అనుమతుల కోసం uBOL అభ్యర్థనను అంగీకరిస్తే, అది ప్రస్తుత సైట్ కోసం కంటెంట్‌ను మెరుగ్గా ఫిల్టర్ చేయగలదు.
మీరు uBOL ఎంపికల పేజీ నుండి డిఫాల్ట్ ఫిల్టరింగ్ మోడ్‌ను సెట్ చేయవచ్చు. మీరు డిఫాల్ట్‌గా ఆప్టిమల్ లేదా కంప్లీట్ మోడ్‌ని ఎంచుకుంటే, మీరు అన్ని వెబ్‌సైట్‌లలోని డేటాను చదవడానికి మరియు సవరించడానికి uBOLకి అనుమతిని మంజూరు చేయాలి.
ఈ తుది లక్ష్యాలతో ఇది ఇంకా పురోగతిలో ఉందని గుర్తుంచుకోండి:
- ఇన్‌స్టాల్ సమయంలో విస్తృత హోస్ట్ అనుమతులు లేవు -- పొడిగించిన అనుమతులు ప్రతి-సైట్ ప్రాతిపదికన వినియోగదారు ద్వారా స్పష్టంగా మంజూరు చేయబడతాయి.
- విశ్వసనీయత మరియు CPU/మెమరీ సామర్థ్యం కోసం పూర్తిగా డిక్లరేటివ్.

View File

@@ -1,30 +1,12 @@
uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
uBO Lite (uBOL) คือตัวบล็อกเนื้อหาที่ใช้สถาปัตยกรรม MV3
The default ruleset corresponds to uBlock Origin's default filterset:
ชุดเงื่อนไขเริ่มต้นสอดคล้องกันกับค่าตัวกรองเริ่มต้นของ uBlock Origin:
- uBlock Origin's built-in filter lists
- รายการตัวกรองภายใน uBlock Origin
- EasyList
- EasyPrivacy
- Peter Lowes Ad and tracking server list
- รายการติดตามเซิร์ฟเวอร์โฆษณาของ Peter Lowe
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
คุณสามารถเปิดใช้งานชุดกฎเพิ่มเติมได้โดยไปที่หน้าตั้งค่า -- คลิกที่ไอคอนรูปเฟือง (Cogs) ในหน้าต่างป๊อปอัป
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.
uBOL ทำงานในรูปแบบเชิงประกาศ (declarative) ทั้งหมด ซึ่งหมายความว่าไม่จำเป็นต้องมีโพรเซสถาวรของ uBOL สำหรับการกรอง และการกรองเนื้อหาที่อาศัยการฉีดโค้ด CSS/JS จะถูกดำเนินการอย่างมีเสถียรภาพโดยตัวเบราว์เซอร์เอง แทนที่จะทำโดยส่วนขยาย นั่นหมายความว่าตัว uBOL เองจะไม่ใช้ทรัพยากร CPU และหน่วยความจำในขณะที่การบล็อกเนื้อหากำลังทำงาน -- โพรเซส Service Worker ของ uBOL จะถูกเรียกใช้เฉพาะเมื่อคุณใช้งานหน้าต่างป๊อปอัปหรือหน้าตั้งค่าเท่านั้น

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL), *izin gerektirmeyen* MV3 tabanlı bir içerik engelleyicidir.
uBO Lite (uBOL), MV3 tabanlı bir içerik engelleyicidir.
Varsayılan kural seti, uBlock Origin'in varsayılan filtre setine karşılık gelir:
@@ -10,21 +10,3 @@ Varsayılan kural seti, uBlock Origin'in varsayılan filtre setine karşılık g
Seçenekler ekranına uğrayarak daha fazla kuralı aktif hale getirebilirsiniz, bunun için açılır paneldeki _dişli_ simgesine tıklayın.
uBOL tamamen bildirimseldir, yani filtrelemenin gerçekleşmesi için kalıcı bir uBOL işlemine gerek yoktur, içerik filtreleme eklenti yerine tarayıcının kendisi tarafından CSS/JS yerleştirerek gerçekleştirilir. Bu, içerik engelleme devam ederken uBOL'nin kendisinin CPU/bellek kaynaklarını tüketmediği anlamına gelir -- uBOL'un hizmet çalışanı işlemi, _only_ açılan panel veya seçenek sayfalarıyla etkileşim kurduğunuzda gereklidir.
uBOL, kurulum sırasında geniş "veri okuma ve değiştirme" izni gerektirmez, bu nedenle, kurulum sırasında geniş "veri okuma ve değiştirme" izinleri gerektiren uBlock Origin veya diğer içerik engelleyicilere kıyasla, kutudan çıkar çıkmaz sınırlı yetenekleri vardır.
Bununla birlikte, uBOL, kozmetik filtreleme ve komut dosyası enjeksiyonları kullanarak bu sitelerde daha iyi filtre uygulayabilmesi için, seçtiğiniz belirli sitelerde *açıkça* genişletilmiş izinler vermenize izin verir.
Belirli bir sitede genişletilmiş izinler vermek için açılır paneli açın ve Optimal veya Complete gibi daha yüksek bir filtreleme modu seçin.
Ardından tarayıcı, uzantı tarafından istenen ek izinlerin geçerli sitede verilmesinin etkileri konusunda sizi uyaracak ve tarayıcıya isteği kabul edip etmediğinizi söylemeniz gerekecektir.
uBOL'un mevcut site için ek izin talebini kabul ederseniz, mevcut site için içeriği daha iyi filtreleyebilecektir.
Varsayılan filtreleme modunu uBOL'un seçenekler sayfasından ayarlayabilirsiniz. Varsayılan mod olarak Optimal veya Complete modunu seçerseniz, uBOL'a tüm web sitelerindeki verileri okuma ve değiştirme izni vermeniz gerekecektir.
Bunun, şu nihai hedeflerle hala devam eden bir çalışma olduğunu unutmayın:
- Yükleme sırasında geniş ana bilgisayar izinleri yoktur -- genişletilmiş izinler, her site için kullanıcı tarafından açıkça verilir.
- Güvenilirlik ve CPU/bellek verimliliği için tamamen bildirimsel.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) is a *permission-less* MV3-based content blocker.
uBO Lite (uBOL) is an MV3-based content blocker.
The default ruleset corresponds to uBlock Origin's default filterset:
@@ -10,21 +10,3 @@ The default ruleset corresponds to uBlock Origin's default filterset:
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) - це блокувальник вмісту на основі MV3, що не потребує дозволів.
uBO Lite (uBOL) - це блокувальник вмісту на основі MV3.
Набір правил за замовчанням відповідає типовому набору фільтрів uBlock Origin:
@@ -10,21 +10,3 @@ uBO Lite (uBOL) - це блокувальник вмісту на основі M
Ви можете ввімкнути більше наборів правил, перейшовши на сторінку налаштувань — натисніть на піктограму "Перейти до панелі керування" на спливній панелі.
uBOL повністю декларативний, тобто немає необхідності в постійному процесі uBOL для здійснення фільтрації, а фільтрація вмісту на основі CSS/JS-ін'єкцій надійно виконується самим браузером, а не розширенням. Це означає, що сам uBOL не споживає ресурси процесора/пам'яті під час блокування вмісту — службовий робочий процес uBOL потрібен _лише_ під час взаємодії зі спливною панеллю або сторінками опцій.
uBOL не вимагає широкого дозволу на «читання та зміну даних» під час встановлення, отже, його можливості «з коробки» обмежені порівняно з uBlock Origin або іншими блокувальниками, які вимагають широкого дозволу на «читання/зміну даних» під час встановлення.
Однак uBOL дозволяє вам *явно* надавати розширені дозволи на певних сайтах на ваш вибір, щоб він міг краще виконувати фільтрування на цих сайтах, використовуючи косметичну фільтрацію та вкладення скриптів.
Щоб надати розширені дозволи на певному сайті, відкрийте спливну панель і виберіть вищий режим фільтрації, наприклад, «Оптимальний» або «Повний».
Потім браузер попередить вас про наслідки надання додаткових дозволів, запитуваних розширенням, на поточному сайті, і ви повинні будете повідомити браузеру, чи приймаєте ви запит або відхиляєте його.
Якщо ви приймете запит uBOL на додаткові дозволи на поточному сайті, він зможе краще фільтрувати вміст для цього сайту.
Ви можете типовий налаштувати режим фільтрації на сторінці налаштувань uBOL. Якщо ви обираєте типовим режим Оптимальний або Повний, вам потрібно буде надати uBOL дозвіл на читання та зміну даних на всіх вебсайтах.
Варто пам'ятати, що це досі незавершена робота з такими цілями:
- Відсутність широких дозволів на хост під час встановлення — розширені дозволи надаються користувачем окремо для кожного сайту.
- Повністю декларативна оцінка надійності та ефективності роботи процесора/пам'яті.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) ایک *اجازت سے کم* MV3 پر مبنی مواد بلاکر ہے۔
uBO Lite (uBOL) is an MV3-based content blocker.
ڈیفالٹ رولسیٹ uBlock Origin کے ڈیفالٹ فلٹر سیٹ سے مساوی ہے:
@@ -10,21 +10,3 @@ uBO Lite (uBOL) ایک *اجازت سے کم* MV3 پر مبنی مواد بلا
You can enable more rulesets by visiting the options page -- click the _Cogs_ icon in the popup panel.
uBOL is entirely declarative, meaning there is no need for a permanent uBOL process for the filtering to occur, and CSS/JS injection-based content filtering is performed reliably by the browser itself rather than by the extension. This means that uBOL itself does not consume CPU/memory resources while content blocking is ongoing -- uBOL's service worker process is required _only_ when you interact with the popup panel or the option pages.
uBOL does not require broad "read and modify data" permission at install time, hence its limited capabilities out of the box compared to uBlock Origin or other content blockers requiring broad "read and modify data" permissions at install time.
However, uBOL allows you to *explicitly* grant extended permissions on specific sites of your choice so that it can better filter on those sites using cosmetic filtering and scriptlet injections.
To grant extended permissions on a given site, open the popup panel and pick a higher filtering mode such as Optimal or Complete.
The browser will then warn you about the effects of granting the additional permissions requested by the extension on the current site, and you will have to tell the browser whether you accept or decline the request.
If you accept uBOL's request for additional permissions on the current site, it will be able to better filter content for the current site.
You can set the default filtering mode from uBOL's options page. If you pick the Optimal or Complete mode as the default one, you will need to grant uBOL the permission to read and modify data on all websites.
Keep in mind this is still a work in progress, with these end goals:
- No broad host permissions at install time -- extended permissions are granted explicitly by the user on a per-site basis.
- Entirely declarative for reliability and CPU/memory efficiency.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) là trình chặn nội dung dựa trên MV3 *không-cần-cấp-phép*.
uBO Lite (uBOL) là trình chặn nội dung dựa trên MV3.
Bộ quy tắc mặc định tương tự bộ lọc của uBlock Origin:
@@ -10,21 +10,3 @@ Bộ quy tắc mặc định tương tự bộ lọc của uBlock Origin:
Bạn có thể tự thêm quy tắc mới ở trang cài đặt -- click vào biểu tượng _Bánh răng_ ở trong cửa sổ popup.
uBOL mang tính khai báo hoàn toàn, vì vậy uBOL sẽ không cần phải liên tục chạy để chặn nội dung. Thay vào đó, chính trình duyệt sẽ thực hiện lọc nội dung bằng cách sử dụng công cụ chèn CSS/JS hiệu quả hơn có sẵn của nó. Điều này cũng đồng thời có nghĩa là uBOL sẽ không tiêu tốn tài nguyên CPU/bộ nhớ của bạn để chặn nội dung. uBOL sẽ chỉ chạy _khi và chỉ khi_ bạn đang xem cửa sổ popup của uBOL, hoặc bạn đang cấu hình uBOL ở trang cài đặt.
uBOL không yêu cầu cấp quyền "đọc và sửa đổi dữ liệu" chung khi cài đặt, vì vậy nên ban đầu nó sẽ hơi yếu hơn uBlock Origin hoặc các trình chặn nội dung khác mà có yêu cầu quyền "đọc và sửa đổi dữ liệu" chung khi cài đặt.
Tuy nhiên, uBOL lại cho phép bạn cấu hình *rất cụ thể* quyền ở trên bất kỳ trang nào tự chọn của bạn, để nó có thể lọc nội dụng trên các trang đấy tốt hơn bằng các kỹ thuật như lọc hiển thị (cosmetic filtering) hay chèn kịch bản con (scriptlet injections).
Để cấp quyền cho uBOL chặn trang bất kỳ, hãy mở cửa sổ popup và chọn một chế độ chặn cao hơn như "Tối ưu" hoặc "Hoàn toàn".
Trình duyệt của bạn sẽ hiện cảnh báo cho việc cấp quyền cho tiện ích trên trang web hiện tại, và bạn sẽ phải chọn đồng ý hoặc từ chối yêu cầu cấp quyền.
Nếu bạn chọn đồng ý cấp quyền cho uBOL sửa trang web bất kỳ, uBOL sẽ có thể lọc nội dung tốt hơn cho web đấy.
Bạn cũng có thể chọn chế độ chặn mặc định ở trang cài đặt của uBOL. Nếu bạn chọn chế độ Tối ưu hoặc Hoàn toàn làm mặc định, bạn sẽ cần phải cấp quyền "đọc và sửa đổi dữ liệu" trên tất cả các trang web.
Lưu ý rằng sản phẩm này vẫn đang trong giai đoạn phát triển, và bản hoàn thiện sẽ có những tính năng sau:
- Không yêu cầu bất kỳ quyền nào khi cài đặt - người dùng sẽ phải tự chủ động cấp bất kỳ quyền gì cho tiện ích, cụ thể từng trang web một.
- Hoàn toàn mang tính khai báo, để có thế chạy nhẹ hơn và ổn định hơn.

View File

@@ -1,4 +1,4 @@
uBO Lite (uBOL) 是一个基于最新浏览器扩展接口Manifest Version 3打造的“无需权限”的内容屏蔽工具。
uBO Lite (uBOL) 是一个基于最新浏览器扩展接口Manifest Version 3打造的的内容屏蔽工具。
该扩展预设的规则列表对应 uBlock Origin 的预设过滤规则列表:
@@ -7,24 +7,6 @@ uBO Lite (uBOL) 是一个基于最新浏览器扩展接口Manifest Version 3
- EasyPrivacy
- Peter Lowe 的广告和跟踪服务器列表
访问选项页面,点击弹出面板中的齿轮图标,即可启用更多规则集。
访问选项页面,点击弹出面板中的 _齿轮_ 图标,即可启用更多规则集。
uBOL 的过滤规则是完全声明式的,并不需要固定保留一个 uBOL 扩展进程,基于 CSS/JS 注入的内容过滤更是交由浏览器进行调度,比起扩展本身更为可靠。 这也即是说当内容被过滤时 uBOL 自身并不占用额外 CPU 和内存资源,只有在您打开弹出面板或是设置页面时才会生成 uBOL 扩展进程。
uBOL 在安装时并不需要宽泛的“读取或修改网页数据”的权限,因此它的开箱即用功能相对于 uBlock Origin 以及其他安装时要求该权限的屏蔽工具显得较为有限。
不过uBOL 可在您“明确”授予额外扩屏权限后,对您指定的网站采用基于 CSS/JS 注入的声明式规则加强内容过滤。
若要在特定网站授予扩展权限,请开启弹出面板并选择更高级的过滤模式,例如“优化”或“完全”。
接着浏览器会就在当前网站授予扩展额外权限有何影响示以警告,而您要接受或者拒绝该请求。
如果您允许 uBOL 在当前网站获取额外权限,它就可以更好地对网站内容进行过滤。
您还可以在 uBOL 的设置页面设定默认过滤模式。 如果设定的默认过滤模式是“优化”或“完全”,您必须授予 uBOL 读取或修改所有网页数据的权限。
请注意,该扩展尚未完成,其最终实现目标是:
- 安装时不需要过多扩展权限——额外权限要由用戶指定,按需求及作用域授予。
- 采用完全声明式规则,以求可靠性以及更佳 CPU 和内存使用效率。
uBOL 的过滤规则是完全声明式的,并不需要固定保留一个 uBOL 扩展进程,基于 CSS/JS 注入的内容过滤更是交由浏览器进行调度,比起扩展本身更为可靠。 这也即是说当内容被过滤时 uBOL 自身并不占用额外 CPU 和内存资源,_只有_在您打开弹出面板或是设置页面时才会生成 uBOL 扩展进程。

Some files were not shown because too many files have changed in this diff Show More