@browserless.io/browserless 2.34.1 → 2.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -3
- package/build/limiter.js +1 -1
- package/build/routes/chrome/http/content.post.body.json +90 -1
- package/build/routes/chrome/http/pdf.post.body.json +90 -1
- package/build/routes/chrome/http/scrape.post.body.json +90 -1
- package/build/routes/chrome/http/scrape.post.response.json +21 -22
- package/build/routes/chrome/http/screenshot.post.body.json +90 -1
- package/build/routes/chromium/http/content.post.body.json +90 -1
- package/build/routes/chromium/http/pdf.post.body.json +90 -1
- package/build/routes/chromium/http/scrape.post.body.json +90 -1
- package/build/routes/chromium/http/scrape.post.response.json +21 -22
- package/build/routes/chromium/http/screenshot.post.body.json +90 -1
- package/build/routes/chromium/tests/scrape.spec.js +41 -0
- package/build/routes/edge/http/content.post.body.json +90 -1
- package/build/routes/edge/http/pdf.post.body.json +90 -1
- package/build/routes/edge/http/scrape.post.body.json +90 -1
- package/build/routes/edge/http/scrape.post.response.json +21 -22
- package/build/routes/edge/http/screenshot.post.body.json +90 -1
- package/build/sdk-utils.js +1 -1
- package/build/shared/scrape.http.js +13 -3
- package/docker/base/Dockerfile +8 -8
- package/docker/chrome/Dockerfile +2 -2
- package/docker/chromium/Dockerfile +2 -2
- package/docker/edge/Dockerfile +2 -2
- package/docker/firefox/Dockerfile +2 -2
- package/docker/multi/Dockerfile +2 -2
- package/docker/sdk/Dockerfile +1 -1
- package/docker/webkit/Dockerfile +2 -2
- package/extensions/ublocklite/_locales/br_FR/messages.json +1 -1
- package/extensions/ublocklite/_locales/he/messages.json +2 -2
- package/extensions/ublocklite/_locales/hu/messages.json +1 -1
- package/extensions/ublocklite/_locales/pt_BR/messages.json +1 -1
- package/extensions/ublocklite/_locales/pt_PT/messages.json +1 -1
- package/extensions/ublocklite/_locales/sk/messages.json +6 -6
- package/extensions/ublocklite/_locales/sq/messages.json +17 -17
- package/extensions/ublocklite/_locales/th/messages.json +1 -1
- package/extensions/ublocklite/_locales/tr/messages.json +1 -1
- package/extensions/ublocklite/_locales/vi/messages.json +1 -1
- package/extensions/ublocklite/css/common.css +5 -3
- package/extensions/ublocklite/css/default.css +10 -0
- package/extensions/ublocklite/js/dnr-parser.js +1 -1
- package/extensions/ublocklite/js/filter-lists.js +1 -4
- package/extensions/ublocklite/js/popup.js +2 -2
- package/extensions/ublocklite/js/ruleset-manager.js +5 -121
- package/extensions/ublocklite/js/rw-dnr-editor.js +8 -4
- package/extensions/ublocklite/js/scripting/tool-overlay.js +1 -0
- package/extensions/ublocklite/js/settings.js +2 -1
- package/extensions/ublocklite/js/static-filtering-parser.js +8 -8
- package/extensions/ublocklite/js/ubo-parser.js +181 -65
- package/extensions/ublocklite/manifest.json +3 -3
- package/extensions/ublocklite/rulesets/generic-details.json +6 -16
- package/extensions/ublocklite/rulesets/main/adguard-mobile.json +25 -4
- package/extensions/ublocklite/rulesets/main/adguard-spyware-url.json +615 -1
- package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +19 -7
- package/extensions/ublocklite/rulesets/main/annoyances-others.json +4 -2
- package/extensions/ublocklite/rulesets/main/annoyances-overlays.json +22 -2
- package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +1 -1
- package/extensions/ublocklite/rulesets/main/chn-0.json +93 -28
- package/extensions/ublocklite/rulesets/main/cze-0.json +6 -1
- package/extensions/ublocklite/rulesets/main/deu-0.json +11 -5
- package/extensions/ublocklite/rulesets/main/dpollock-0.json +2 -0
- package/extensions/ublocklite/rulesets/main/easylist.json +135 -29
- package/extensions/ublocklite/rulesets/main/easyprivacy.json +132 -27
- package/extensions/ublocklite/rulesets/main/est-0.json +1 -1
- package/extensions/ublocklite/rulesets/main/fin-0.json +9 -0
- package/extensions/ublocklite/rulesets/main/fra-0.json +48 -10
- package/extensions/ublocklite/rulesets/main/hun-0.json +4 -1
- package/extensions/ublocklite/rulesets/main/idn-0.json +1 -1
- package/extensions/ublocklite/rulesets/main/ind-0.json +93 -150
- package/extensions/ublocklite/rulesets/main/irn-0.json +33 -7
- package/extensions/ublocklite/rulesets/main/isr-0.json +20 -2
- package/extensions/ublocklite/rulesets/main/ita-0.json +3 -1
- package/extensions/ublocklite/rulesets/main/jpn-1.json +60 -13
- package/extensions/ublocklite/rulesets/main/kor-1.json +38 -6
- package/extensions/ublocklite/rulesets/main/ltu-0.json +3 -1
- package/extensions/ublocklite/rulesets/main/lva-0.json +2 -1
- package/extensions/ublocklite/rulesets/main/nld-0.json +6 -1
- package/extensions/ublocklite/rulesets/main/nor-0.json +13 -4
- package/extensions/ublocklite/rulesets/main/pgl.json +8 -9
- package/extensions/ublocklite/rulesets/main/pol-0.json +13 -1
- package/extensions/ublocklite/rulesets/main/rou-1.json +17 -1
- package/extensions/ublocklite/rulesets/main/rus-0.json +101 -24
- package/extensions/ublocklite/rulesets/main/rus-1.json +112 -4
- package/extensions/ublocklite/rulesets/main/spa-1.json +38 -14
- package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +13076 -6934
- package/extensions/ublocklite/rulesets/main/swe-1.json +77 -43
- package/extensions/ublocklite/rulesets/main/tha-0.json +7 -1
- package/extensions/ublocklite/rulesets/main/tur-0.json +45 -5
- package/extensions/ublocklite/rulesets/main/ublock-badware.json +76 -102
- package/extensions/ublocklite/rulesets/main/ublock-filters.json +770 -99
- package/extensions/ublocklite/rulesets/main/ubol-tests.json +43 -0
- package/extensions/ublocklite/rulesets/main/ukr-0.json +20 -1
- package/extensions/ublocklite/rulesets/main/urlhaus-full.json +503 -614
- package/extensions/ublocklite/rulesets/main/vie-1.json +61 -52
- package/extensions/ublocklite/rulesets/regex/chn-0.json +6 -3
- package/extensions/ublocklite/rulesets/regex/deu-0.json +0 -1
- package/extensions/ublocklite/rulesets/regex/jpn-1.json +1 -1
- package/extensions/ublocklite/rulesets/regex/kor-1.json +1 -0
- package/extensions/ublocklite/rulesets/regex/pol-0.json +1 -0
- package/extensions/ublocklite/rulesets/regex/rus-0.json +1 -0
- package/extensions/ublocklite/rulesets/regex/rus-1.json +24 -0
- package/extensions/ublocklite/rulesets/regex/tur-0.json +2 -1
- package/extensions/ublocklite/rulesets/regex/ublock-badware.json +10 -8
- package/extensions/ublocklite/rulesets/regex/ublock-filters.json +26 -9
- package/extensions/ublocklite/rulesets/ruleset-details.json +238 -458
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-notifications.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-overlays.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/fra-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/idn-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/jpn-1.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/nld-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/nor-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/spa-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/swe-1.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/tur-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/ukr-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/vie-1.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +2 -9
- package/extensions/ublocklite/rulesets/scripting/generichigh/easylist.css +1 -1
- package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +1 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/ublock-filters.css +0 -2
- package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-notifications.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-others.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-overlays.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-social.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/deu-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/fra-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/idn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/irn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/jpn-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/kor-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/nld-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/rou-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/rus-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/tur-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/vie-1.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.trusted-replace-node-text.js +450 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{jpn-1.abort-on-property-write.js → adguard-mobile.trusted-set-attr.js} +107 -41
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.prevent-requestAnimationFrame.js +407 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.remove-node-text.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-replace-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.addEventListener-defuser.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-current-script.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-on-stack-trace.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-fetch.js +9 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setInterval.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-xhr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.adjust-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.json-prune.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +9 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-window-open.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{vie-1.m3u-prune.js → chn-0.spoof-css.js} +109 -148
- package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.abort-current-script.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.prevent-fetch.js +7 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.set-constant.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.adjust-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-fetch.js +7 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.set-constant.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-fetch.js +7 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-fetch.js +7 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-session-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-fetch.js +7 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.json-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-fetch.js +7 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.remove-attr.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.set-cookie.js +442 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{chn-0.json-prune-fetch-response.js → kor-1.json-prune-xhr-response.js} +71 -62
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.json-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-fetch.js +7 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-fetch.js +7 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.prevent-fetch.js +7 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.remove-node-text.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-fetch.js +10 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-xhr.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-cookie.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-node-text.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.abort-on-property-read.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.addEventListener-defuser.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.json-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-fetch.js +7 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.remove-cookie.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.set-constant.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-read.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.adjust-setInterval.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.json-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.noeval-if.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +9 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-requestAnimationFrame.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.href-sanitizer.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-write.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-fetch.js +7 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{ublock-filters.evaldata-prune.js → ublock-badware.addEventListener-defuser.js} +103 -173
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-replace-node-text.js +450 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-write.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.disable-newtab-links.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.href-sanitizer.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit-xhr-response.js +851 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-fetch-response.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-xhr-response.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.m3u-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.nowebrtc.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +9 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.spoof-css.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-click-element.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-create-html.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-override-element-method.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-fetch.js +7 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-xhr.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-xhr-response.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-constant.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-cookie.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.xml-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.prevent-fetch.js +7 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.json-prune.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-fetch.js +7 -0
- package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-notifications.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/fra-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/hun-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/irn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/isr-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ita-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/kor-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/nld-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/nor-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/rou-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/rus-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/spa-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/swe-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/tha-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/tur-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ublock-filters.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ukr-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
- package/extensions/ublocklite/rulesets/scriptlet-details.json +271 -174
- package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +3 -2
- package/extensions/ublocklite/rulesets/strictblock/annoyances-cookies.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/chn-0.json +329 -791
- package/extensions/ublocklite/rulesets/strictblock/dpollock-0.json +2 -0
- package/extensions/ublocklite/rulesets/strictblock/easylist.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +62 -4
- package/extensions/ublocklite/rulesets/strictblock/fra-0.json +429 -49
- package/extensions/ublocklite/rulesets/strictblock/irn-0.json +2 -0
- package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +183 -176
- package/extensions/ublocklite/rulesets/strictblock/kor-1.json +6 -1
- package/extensions/ublocklite/rulesets/strictblock/nor-0.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/pgl.json +8 -9
- package/extensions/ublocklite/rulesets/strictblock/pol-0.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/rus-1.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/spa-1.json +0 -2
- package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +13076 -6934
- package/extensions/ublocklite/rulesets/strictblock/swe-1.json +2 -0
- package/extensions/ublocklite/rulesets/strictblock/tur-0.json +4 -0
- package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +580 -577
- package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +3 -2
- package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +503 -614
- package/extensions/ublocklite/rulesets/strictblock/vie-1.json +6 -7
- package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +30 -0
- package/extensions/ublocklite/ublock.zip +0 -0
- package/package.json +23 -21
- package/scripts/install-adblock.js +25 -4
- package/scripts/start.sh +1 -1
- package/scripts/test.sh +2 -2
- package/src/limiter.ts +1 -1
- package/src/routes/chromium/tests/scrape.spec.ts +48 -0
- package/src/sdk-utils.ts +1 -1
- package/src/shared/scrape.http.ts +17 -5
- package/static/docs/swagger.json +330 -102
- package/static/docs/swagger.min.json +329 -101
- package/static/function/client.js +203 -104
- package/static/function/index.html +203 -104
- package/extensions/ublocklite/rulesets/modify-headers/annoyances-overlays.json +0 -108
- package/extensions/ublocklite/rulesets/modify-headers/chn-0.json +0 -316
- package/extensions/ublocklite/rulesets/modify-headers/cze-0.json +0 -25
- package/extensions/ublocklite/rulesets/modify-headers/deu-0.json +0 -24
- package/extensions/ublocklite/rulesets/modify-headers/easylist.json +0 -14
- package/extensions/ublocklite/rulesets/modify-headers/easyprivacy.json +0 -48
- package/extensions/ublocklite/rulesets/modify-headers/fra-0.json +0 -215
- package/extensions/ublocklite/rulesets/modify-headers/irn-0.json +0 -45
- package/extensions/ublocklite/rulesets/modify-headers/isr-0.json +0 -50
- package/extensions/ublocklite/rulesets/modify-headers/rus-0.json +0 -40
- package/extensions/ublocklite/rulesets/modify-headers/rus-1.json +0 -22
- package/extensions/ublocklite/rulesets/modify-headers/swe-1.json +0 -46
- package/extensions/ublocklite/rulesets/modify-headers/ublock-filters.json +0 -54
- package/extensions/ublocklite/rulesets/modify-headers/ubol-tests.json +0 -25
- package/extensions/ublocklite/rulesets/modify-headers/vie-1.json +0 -162
- package/extensions/ublocklite/rulesets/redirect/adguard-mobile.json +0 -20
- package/extensions/ublocklite/rulesets/redirect/annoyances-overlays.json +0 -15
- package/extensions/ublocklite/rulesets/redirect/chn-0.json +0 -40
- package/extensions/ublocklite/rulesets/redirect/cze-0.json +0 -76
- package/extensions/ublocklite/rulesets/redirect/deu-0.json +0 -79
- package/extensions/ublocklite/rulesets/redirect/easylist.json +0 -103
- package/extensions/ublocklite/rulesets/redirect/easyprivacy.json +0 -137
- package/extensions/ublocklite/rulesets/redirect/fin-0.json +0 -121
- package/extensions/ublocklite/rulesets/redirect/fra-0.json +0 -35
- package/extensions/ublocklite/rulesets/redirect/hun-0.json +0 -38
- package/extensions/ublocklite/rulesets/redirect/irn-0.json +0 -73
- package/extensions/ublocklite/rulesets/redirect/isr-0.json +0 -17
- package/extensions/ublocklite/rulesets/redirect/jpn-1.json +0 -29
- package/extensions/ublocklite/rulesets/redirect/kor-1.json +0 -25
- package/extensions/ublocklite/rulesets/redirect/ltu-0.json +0 -33
- package/extensions/ublocklite/rulesets/redirect/nld-0.json +0 -79
- package/extensions/ublocklite/rulesets/redirect/nor-0.json +0 -132
- package/extensions/ublocklite/rulesets/redirect/pol-0.json +0 -15
- package/extensions/ublocklite/rulesets/redirect/rou-1.json +0 -53
- package/extensions/ublocklite/rulesets/redirect/rus-0.json +0 -21
- package/extensions/ublocklite/rulesets/redirect/rus-1.json +0 -118
- package/extensions/ublocklite/rulesets/redirect/spa-1.json +0 -27
- package/extensions/ublocklite/rulesets/redirect/swe-1.json +0 -14
- package/extensions/ublocklite/rulesets/redirect/tha-0.json +0 -78
- package/extensions/ublocklite/rulesets/redirect/tur-0.json +0 -24
- package/extensions/ublocklite/rulesets/redirect/ublock-badware.json +0 -18
- package/extensions/ublocklite/rulesets/redirect/ublock-filters.json +0 -548
- package/extensions/ublocklite/rulesets/redirect/ubol-tests.json +0 -22
- package/extensions/ublocklite/rulesets/redirect/ukr-0.json +0 -18
- package/extensions/ublocklite/rulesets/redirect/vie-1.json +0 -117
- package/extensions/ublocklite/rulesets/removeparam/adguard-spyware-url.json +0 -612
- package/extensions/ublocklite/rulesets/removeparam/annoyances-overlays.json +0 -27
- package/extensions/ublocklite/rulesets/removeparam/chn-0.json +0 -48
- package/extensions/ublocklite/rulesets/removeparam/est-0.json +0 -26
- package/extensions/ublocklite/rulesets/removeparam/fin-0.json +0 -52
- package/extensions/ublocklite/rulesets/removeparam/irn-0.json +0 -18
- package/extensions/ublocklite/rulesets/removeparam/kor-1.json +0 -26
- package/extensions/ublocklite/rulesets/removeparam/rus-0.json +0 -19
- package/extensions/ublocklite/rulesets/removeparam/rus-1.json +0 -99
- package/extensions/ublocklite/rulesets/removeparam/swe-1.json +0 -125
- package/extensions/ublocklite/rulesets/removeparam/ublock-filters.json +0 -64
- package/extensions/ublocklite/rulesets/removeparam/ukr-0.json +0 -49
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"description": "appears as tab name in dashboard"
|
|
21
21
|
},
|
|
22
22
|
"developPageName": {
|
|
23
|
-
"message": "
|
|
23
|
+
"message": "Zhvillimi",
|
|
24
24
|
"description": "appears as tab name in dashboard. Inspired from 'Develop' menu in Safari, see https://developer.apple.com/documentation/safari-developer-tools/develop-menu"
|
|
25
25
|
},
|
|
26
26
|
"aboutPageName": {
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
"description": "Label in the popup panel for the current filtering mode"
|
|
37
37
|
},
|
|
38
38
|
"popupLocalToolsLabel": {
|
|
39
|
-
"message": "Në këtë
|
|
39
|
+
"message": "Në këtë uebsajt",
|
|
40
40
|
"description": "Label in the popup panel for the local tools section"
|
|
41
41
|
},
|
|
42
42
|
"popupTipReport": {
|
|
43
|
-
"message": "Raportoj problemin
|
|
43
|
+
"message": "Raportoj problemin",
|
|
44
44
|
"description": "Tooltip used for the 'chat' icon in the panel"
|
|
45
45
|
},
|
|
46
46
|
"popupTipDashboard": {
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"description": "Header for a ruleset section in 'Filter lists pane'"
|
|
69
69
|
},
|
|
70
70
|
"3pGroupMalware": {
|
|
71
|
-
"message": "Domenet e dëmshme",
|
|
71
|
+
"message": "Domenet e dëmshme, siguria",
|
|
72
72
|
"description": "Header for a ruleset section in 'Filter lists pane'"
|
|
73
73
|
},
|
|
74
74
|
"3pGroupAnnoyances": {
|
|
@@ -244,7 +244,7 @@
|
|
|
244
244
|
"description": "Short description for a checkbox in the options page"
|
|
245
245
|
},
|
|
246
246
|
"developerModeLabel": {
|
|
247
|
-
"message": "
|
|
247
|
+
"message": "Këndi i zhvilluesit",
|
|
248
248
|
"description": "Label for a checkbox in the options page"
|
|
249
249
|
},
|
|
250
250
|
"developerModeLegend": {
|
|
@@ -292,7 +292,7 @@
|
|
|
292
292
|
"description": "A button to navigate to the blocked page"
|
|
293
293
|
},
|
|
294
294
|
"zapperTipEnter": {
|
|
295
|
-
"message": "
|
|
295
|
+
"message": "Heq elementin",
|
|
296
296
|
"description": "Tooltip for the button used to enter zapper mode"
|
|
297
297
|
},
|
|
298
298
|
"zapperTipQuit": {
|
|
@@ -300,11 +300,11 @@
|
|
|
300
300
|
"description": "Tooltip for the button used to exit zapper mode"
|
|
301
301
|
},
|
|
302
302
|
"pickerTipEnter": {
|
|
303
|
-
"message": "
|
|
303
|
+
"message": "Krijoj filtër të personalizuar",
|
|
304
304
|
"description": "Label for the menu entry to create cosmetic filters"
|
|
305
305
|
},
|
|
306
306
|
"unpickerTipEnter": {
|
|
307
|
-
"message": "
|
|
307
|
+
"message": "Heq filtrin e personalizuar",
|
|
308
308
|
"description": "Label for the menu entry to delete cosmetic filters"
|
|
309
309
|
},
|
|
310
310
|
"developDropdownLabel": {
|
|
@@ -312,7 +312,7 @@
|
|
|
312
312
|
"description": "A label of a dropdown list"
|
|
313
313
|
},
|
|
314
314
|
"developOptionFilteringModeDetails": {
|
|
315
|
-
"message": "
|
|
315
|
+
"message": "Detajet e mënyrës së filtrimit",
|
|
316
316
|
"description": "An option in a dropdown list"
|
|
317
317
|
},
|
|
318
318
|
"developOptionCustomDnrRules": {
|
|
@@ -320,7 +320,7 @@
|
|
|
320
320
|
"description": "An option in a dropdown list"
|
|
321
321
|
},
|
|
322
322
|
"developOptionDnrRulesOf": {
|
|
323
|
-
"message": "Rregullat DNR
|
|
323
|
+
"message": "Rregullat DNR të…",
|
|
324
324
|
"description": "A section header in a dropdown list"
|
|
325
325
|
},
|
|
326
326
|
"developOptionDynamicRuleset": {
|
|
@@ -328,11 +328,11 @@
|
|
|
328
328
|
"description": "An option in a dropdown list"
|
|
329
329
|
},
|
|
330
330
|
"developOptionSessionRuleset": {
|
|
331
|
-
"message": "Rregullat e
|
|
331
|
+
"message": "Rregullat e seancës",
|
|
332
332
|
"description": "An option in a dropdown list"
|
|
333
333
|
},
|
|
334
334
|
"saveButton": {
|
|
335
|
-
"message": "
|
|
335
|
+
"message": "Regjistroj",
|
|
336
336
|
"description": "Text for buttons used to save changes"
|
|
337
337
|
},
|
|
338
338
|
"revertButton": {
|
|
@@ -348,7 +348,7 @@
|
|
|
348
348
|
"description": "Text for buttons used to export content"
|
|
349
349
|
},
|
|
350
350
|
"dnrRulesWarning": {
|
|
351
|
-
"message": "Mos shtoni
|
|
351
|
+
"message": "Mos shtoni materiale nga burime të pabesueshme",
|
|
352
352
|
"description": "Short description of the DNR rules editor pane"
|
|
353
353
|
},
|
|
354
354
|
"dnrRulesCountInfo": {
|
|
@@ -356,15 +356,15 @@
|
|
|
356
356
|
"description": "Short sentence to report the number of currently registered DNR rules"
|
|
357
357
|
},
|
|
358
358
|
"pickerSliderLabel": {
|
|
359
|
-
"message": "
|
|
359
|
+
"message": "Lëvizeni për të zgjedhur pikën më të përshtatshme",
|
|
360
360
|
"description": "Label to describe the purpose of the slider"
|
|
361
361
|
},
|
|
362
362
|
"pickerPick": {
|
|
363
|
-
"message": "
|
|
363
|
+
"message": "Zgjedh",
|
|
364
364
|
"description": "Text for the button to re-enter element-picking mode"
|
|
365
365
|
},
|
|
366
366
|
"pickerPreview": {
|
|
367
|
-
"message": "
|
|
367
|
+
"message": "Parashikoj",
|
|
368
368
|
"description": "Text for the button to activate preview mode"
|
|
369
369
|
},
|
|
370
370
|
"pickerCreate": {
|
|
@@ -372,7 +372,7 @@
|
|
|
372
372
|
"description": "Text for the button to create the filter"
|
|
373
373
|
},
|
|
374
374
|
"unpickerUsage": {
|
|
375
|
-
"message": "
|
|
375
|
+
"message": "Zgjidhni ndër filtrat më poshtë për të parë elementin që i korrespondon në faqe. Filtrat hiqen duke klikuar koshin.",
|
|
376
376
|
"description": "Summary description on how to use the tool to remove custom filters"
|
|
377
377
|
}
|
|
378
378
|
}
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"description": "Header for a ruleset section in 'Filter lists pane'"
|
|
69
69
|
},
|
|
70
70
|
"3pGroupMalware": {
|
|
71
|
-
"message": "
|
|
71
|
+
"message": "การป้องกันมัลแวร์ ความปลอดภัย",
|
|
72
72
|
"description": "Header for a ruleset section in 'Filter lists pane'"
|
|
73
73
|
},
|
|
74
74
|
"3pGroupAnnoyances": {
|
|
@@ -248,7 +248,7 @@
|
|
|
248
248
|
"description": "Label for a checkbox in the options page"
|
|
249
249
|
},
|
|
250
250
|
"developerModeLegend": {
|
|
251
|
-
"message": "Teknik kullanıcılara uygun özelliklere erişime izin ver",
|
|
251
|
+
"message": "Teknik kullanıcılara uygun özelliklere erişime izin ver.",
|
|
252
252
|
"description": "Short description for a checkbox in the options page"
|
|
253
253
|
},
|
|
254
254
|
"findListsPlaceholder": {
|
|
@@ -80,7 +80,7 @@ button {
|
|
|
80
80
|
appearance: none;
|
|
81
81
|
-moz-appearance: none;
|
|
82
82
|
-webkit-appearance: none;
|
|
83
|
-
border:
|
|
83
|
+
border: var(--button-border-size) solid var(--ink-1);
|
|
84
84
|
border-radius: var(--button-border-radius);
|
|
85
85
|
background-color: var(--button-surface);
|
|
86
86
|
color: var(--button-ink);
|
|
@@ -193,7 +193,7 @@ label:hover .checkbox:not([disabled]) {
|
|
|
193
193
|
height: 100%;
|
|
194
194
|
margin: 0;
|
|
195
195
|
min-width: var(--checkbox-size);
|
|
196
|
-
opacity:
|
|
196
|
+
opacity: var(--native-control-opacity);
|
|
197
197
|
position: absolute;
|
|
198
198
|
width: 100%;
|
|
199
199
|
}
|
|
@@ -204,6 +204,7 @@ label:hover .checkbox:not([disabled]) {
|
|
|
204
204
|
box-sizing: border-box;
|
|
205
205
|
fill: none;
|
|
206
206
|
height: 100%;
|
|
207
|
+
opacity: calc(1 - var(--native-control-opacity));
|
|
207
208
|
pointer-events: none;
|
|
208
209
|
position: absolute;
|
|
209
210
|
stroke: none;
|
|
@@ -242,7 +243,7 @@ label:hover .checkbox:not([disabled]) {
|
|
|
242
243
|
height: 100%;
|
|
243
244
|
margin: 0;
|
|
244
245
|
min-width: var(--checkbox-size);
|
|
245
|
-
opacity:
|
|
246
|
+
opacity: var(--native-control-opacity);
|
|
246
247
|
position: absolute;
|
|
247
248
|
width: 100%;
|
|
248
249
|
}
|
|
@@ -250,6 +251,7 @@ label:hover .checkbox:not([disabled]) {
|
|
|
250
251
|
background-color: transparent;
|
|
251
252
|
box-sizing: border-box;
|
|
252
253
|
height: 100%;
|
|
254
|
+
opacity: calc(1 - var(--native-control-opacity));
|
|
253
255
|
pointer-events: none;
|
|
254
256
|
position: absolute;
|
|
255
257
|
width: 100%;
|
|
@@ -408,8 +408,11 @@
|
|
|
408
408
|
--fieldset-header-surface: transparent;
|
|
409
409
|
--fieldset-header-ink: var(--ink-2);
|
|
410
410
|
|
|
411
|
+
--native-control-opacity: 0;
|
|
412
|
+
|
|
411
413
|
--button-ink: var(--ink-1);
|
|
412
414
|
--button-surface: rgb(var(--button-surface-rgb));
|
|
415
|
+
--button-border-size: 0;
|
|
413
416
|
--button-border-radius: 5px;
|
|
414
417
|
--button-preferred-ink: var(--accent-ink-1);
|
|
415
418
|
--button-preferred-surface: var(--accent-surface-1);
|
|
@@ -460,6 +463,13 @@
|
|
|
460
463
|
--popup-ruleset-tool-shadow: transparent;
|
|
461
464
|
}
|
|
462
465
|
|
|
466
|
+
@media (prefers-contrast: more) {
|
|
467
|
+
:root {
|
|
468
|
+
--native-control-opacity: 1;
|
|
469
|
+
--button-border-size: 1px;
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
|
|
463
473
|
/*
|
|
464
474
|
* Rule colors
|
|
465
475
|
* */
|
|
@@ -515,7 +515,7 @@ export function rulesFromText(text) {
|
|
|
515
515
|
if ( indices.length === 0 ) { continue; }
|
|
516
516
|
const result = ruleFromLines(lines, indices);
|
|
517
517
|
if ( result.bad ) {
|
|
518
|
-
bad.push(...result.bad);
|
|
518
|
+
bad.push(...result.bad.slice(4));
|
|
519
519
|
} else if ( result.rule ) {
|
|
520
520
|
rules.push(result.rule);
|
|
521
521
|
}
|
|
@@ -94,10 +94,7 @@ function rulesetStats(rulesetId) {
|
|
|
94
94
|
const rulesetDetails = rulesetMap.get(rulesetId);
|
|
95
95
|
if ( rulesetDetails === undefined ) { return; }
|
|
96
96
|
const { rules, filters } = rulesetDetails;
|
|
97
|
-
|
|
98
|
-
if ( cachedRulesetData.hasOmnipotence ) {
|
|
99
|
-
ruleCount += rules.removeparam + rules.redirect + rules.modifyHeaders;
|
|
100
|
-
}
|
|
97
|
+
const ruleCount = rules.plain + rules.regex;
|
|
101
98
|
const filterCount = filters.accepted;
|
|
102
99
|
return { ruleCount, filterCount };
|
|
103
100
|
}
|
|
@@ -340,8 +340,6 @@ async function init() {
|
|
|
340
340
|
|
|
341
341
|
dom.cl.toggle('#gotoUnpicker', 'enabled', popupPanelData.hasCustomFilters);
|
|
342
342
|
|
|
343
|
-
dom.cl.remove(dom.body, 'loading');
|
|
344
|
-
|
|
345
343
|
return true;
|
|
346
344
|
}
|
|
347
345
|
|
|
@@ -350,6 +348,8 @@ async function tryInit() {
|
|
|
350
348
|
await init();
|
|
351
349
|
} catch {
|
|
352
350
|
setTimeout(tryInit, 100);
|
|
351
|
+
} finally {
|
|
352
|
+
dom.cl.remove(dom.body, 'loading');
|
|
353
353
|
}
|
|
354
354
|
}
|
|
355
355
|
|
|
@@ -30,13 +30,13 @@ import {
|
|
|
30
30
|
rulesetConfig,
|
|
31
31
|
saveRulesetConfig,
|
|
32
32
|
} from './config.js';
|
|
33
|
+
import { ubolErr, ubolLog } from './debug.js';
|
|
33
34
|
|
|
34
35
|
import { dnr } from './ext-compat.js';
|
|
35
36
|
import { fetchJSON } from './fetch.js';
|
|
36
37
|
import { getAdminRulesets } from './admin.js';
|
|
37
38
|
import { hasBroadHostPermissions } from './utils.js';
|
|
38
39
|
import { rulesFromText } from './dnr-parser.js';
|
|
39
|
-
import { ubolErr, ubolLog } from './debug.js';
|
|
40
40
|
|
|
41
41
|
/******************************************************************************/
|
|
42
42
|
|
|
@@ -131,9 +131,8 @@ pruneInvalidRegexRules.validated = new Map();
|
|
|
131
131
|
async function updateRegexRules(currentRules, addRules, removeRuleIds) {
|
|
132
132
|
// Remove existing regex-related block rules
|
|
133
133
|
for ( const rule of currentRules ) {
|
|
134
|
+
if ( rule.id === 0 ) { continue; }
|
|
134
135
|
if ( rule.id >= SPECIAL_RULES_REALM ) { continue; }
|
|
135
|
-
const { type } = rule.action;
|
|
136
|
-
if ( type !== 'block' && type !== 'allow' ) { continue; }
|
|
137
136
|
if ( rule.condition.regexFilter === undefined ) { continue; }
|
|
138
137
|
removeRuleIds.push(rule.id);
|
|
139
138
|
}
|
|
@@ -167,134 +166,19 @@ async function updateRegexRules(currentRules, addRules, removeRuleIds) {
|
|
|
167
166
|
|
|
168
167
|
/******************************************************************************/
|
|
169
168
|
|
|
170
|
-
async function updateRemoveparamRules(currentRules, addRules, removeRuleIds) {
|
|
171
|
-
// Remove existing removeparam-related rules
|
|
172
|
-
for ( const rule of currentRules ) {
|
|
173
|
-
if ( rule.id >= SPECIAL_RULES_REALM ) { continue; }
|
|
174
|
-
if ( rule.action.type !== 'redirect' ) { continue; }
|
|
175
|
-
if ( rule.action.redirect.transform === undefined ) { continue; }
|
|
176
|
-
removeRuleIds.push(rule.id);
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
const rulesetDetails = await getEnabledRulesetsDetails();
|
|
180
|
-
|
|
181
|
-
// Fetch removeparam rules for all enabled rulesets
|
|
182
|
-
const toFetch = [];
|
|
183
|
-
for ( const details of rulesetDetails ) {
|
|
184
|
-
if ( details.rules.removeparam === 0 ) { continue; }
|
|
185
|
-
toFetch.push(fetchJSON(`/rulesets/removeparam/${details.id}`));
|
|
186
|
-
}
|
|
187
|
-
const removeparamRulesets = await Promise.all(toFetch);
|
|
188
|
-
|
|
189
|
-
const allRules = [];
|
|
190
|
-
for ( const rules of removeparamRulesets ) {
|
|
191
|
-
if ( Array.isArray(rules) === false ) { continue; }
|
|
192
|
-
for ( const rule of rules ) {
|
|
193
|
-
allRules.push(rule);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
if ( allRules.length === 0 ) { return; }
|
|
197
|
-
|
|
198
|
-
const validRules = await pruneInvalidRegexRules('removeparam', allRules);
|
|
199
|
-
if ( validRules.length === 0 ) { return; }
|
|
200
|
-
|
|
201
|
-
ubolLog(`Add ${validRules.length} DNR removeparam rules`);
|
|
202
|
-
addRules.push(...validRules);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/******************************************************************************/
|
|
206
|
-
|
|
207
|
-
async function updateRedirectRules(currentRules, addRules, removeRuleIds) {
|
|
208
|
-
// Remove existing redirect-related rules
|
|
209
|
-
for ( const rule of currentRules ) {
|
|
210
|
-
if ( rule.id >= SPECIAL_RULES_REALM ) { continue; }
|
|
211
|
-
if ( rule.action.type !== 'redirect' ) { continue; }
|
|
212
|
-
if ( rule.action.redirect.extensionPath === undefined ) { continue; }
|
|
213
|
-
removeRuleIds.push(rule.id);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
const rulesetDetails = await getEnabledRulesetsDetails();
|
|
217
|
-
|
|
218
|
-
// Fetch redirect rules for all enabled rulesets
|
|
219
|
-
const toFetch = [];
|
|
220
|
-
for ( const details of rulesetDetails ) {
|
|
221
|
-
if ( details.rules.redirect === 0 ) { continue; }
|
|
222
|
-
toFetch.push(fetchJSON(`/rulesets/redirect/${details.id}`));
|
|
223
|
-
}
|
|
224
|
-
const redirectRulesets = await Promise.all(toFetch);
|
|
225
|
-
|
|
226
|
-
const allRules = [];
|
|
227
|
-
for ( const rules of redirectRulesets ) {
|
|
228
|
-
if ( Array.isArray(rules) === false ) { continue; }
|
|
229
|
-
for ( const rule of rules ) {
|
|
230
|
-
allRules.push(rule);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
if ( allRules.length === 0 ) { return; }
|
|
234
|
-
|
|
235
|
-
const validRules = await pruneInvalidRegexRules('redirect', allRules);
|
|
236
|
-
if ( validRules.length === 0 ) { return; }
|
|
237
|
-
|
|
238
|
-
ubolLog(`Add ${validRules.length} DNR redirect rules`);
|
|
239
|
-
addRules.push(...validRules);
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
/******************************************************************************/
|
|
243
|
-
|
|
244
|
-
async function updateModifyHeadersRules(currentRules, addRules, removeRuleIds) {
|
|
245
|
-
// Remove existing header modification-related rules
|
|
246
|
-
for ( const rule of currentRules ) {
|
|
247
|
-
if ( rule.id >= SPECIAL_RULES_REALM ) { continue; }
|
|
248
|
-
if ( rule.action.type !== 'modifyHeaders' ) { continue; }
|
|
249
|
-
removeRuleIds.push(rule.id);
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
const rulesetDetails = await getEnabledRulesetsDetails();
|
|
253
|
-
|
|
254
|
-
// Fetch modifyHeaders rules for all enabled rulesets
|
|
255
|
-
const toFetch = [];
|
|
256
|
-
for ( const details of rulesetDetails ) {
|
|
257
|
-
if ( details.rules.modifyHeaders === 0 ) { continue; }
|
|
258
|
-
toFetch.push(fetchJSON(`/rulesets/modify-headers/${details.id}`));
|
|
259
|
-
}
|
|
260
|
-
const rulesets = await Promise.all(toFetch);
|
|
261
|
-
|
|
262
|
-
const allRules = [];
|
|
263
|
-
for ( const rules of rulesets ) {
|
|
264
|
-
if ( Array.isArray(rules) === false ) { continue; }
|
|
265
|
-
for ( const rule of rules ) {
|
|
266
|
-
allRules.push(rule);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
if ( allRules.length === 0 ) { return; }
|
|
270
|
-
|
|
271
|
-
const validRules = await pruneInvalidRegexRules('modify-headers', allRules);
|
|
272
|
-
if ( validRules.length === 0 ) { return; }
|
|
273
|
-
|
|
274
|
-
ubolLog(`Add ${validRules.length} DNR modify-headers rules`);
|
|
275
|
-
addRules.push(...validRules);
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
/******************************************************************************/
|
|
279
|
-
|
|
280
169
|
async function updateDynamicRules() {
|
|
281
170
|
const currentRules = await dnr.getDynamicRules();
|
|
282
171
|
const addRules = [];
|
|
283
172
|
const removeRuleIds = [];
|
|
284
173
|
|
|
285
|
-
// Remove potentially left-over
|
|
174
|
+
// Remove potentially left-over rules from previous version
|
|
286
175
|
for ( const rule of currentRules ) {
|
|
287
176
|
if ( rule.id >= SPECIAL_RULES_REALM ) { continue; }
|
|
288
|
-
if ( isStrictBlockRule(rule) === false ) { continue; }
|
|
289
177
|
removeRuleIds.push(rule.id);
|
|
178
|
+
rule.id = 0;
|
|
290
179
|
}
|
|
291
180
|
|
|
292
|
-
await
|
|
293
|
-
updateRegexRules(currentRules, addRules, removeRuleIds),
|
|
294
|
-
updateRemoveparamRules(currentRules, addRules, removeRuleIds),
|
|
295
|
-
updateRedirectRules(currentRules, addRules, removeRuleIds),
|
|
296
|
-
updateModifyHeadersRules(currentRules, addRules, removeRuleIds),
|
|
297
|
-
]);
|
|
181
|
+
await updateRegexRules(currentRules, addRules, removeRuleIds);
|
|
298
182
|
if ( addRules.length === 0 && removeRuleIds.length === 0 ) { return; }
|
|
299
183
|
|
|
300
184
|
dynamicRegexCount = 0;
|
|
@@ -376,17 +376,21 @@ export class ReadWriteDNREditor extends DNREditor {
|
|
|
376
376
|
separatorBefore = true;
|
|
377
377
|
}
|
|
378
378
|
const pastedText = newDoc.sliceString(from, to);
|
|
379
|
-
let
|
|
379
|
+
let linesToPrepend;
|
|
380
380
|
let rules = this.rulesFromJSON(pastedText);
|
|
381
381
|
if ( Boolean(rules?.length) === false ) {
|
|
382
382
|
rules = parseFilters(pastedText);
|
|
383
383
|
if ( Boolean(rules?.length) === false ) { return; }
|
|
384
|
-
|
|
384
|
+
const lines = pastedText.trim().split(/\n/);
|
|
385
|
+
linesToPrepend = lines.slice(0, 10).map(a => `# ${a}`);
|
|
386
|
+
if ( lines.length > linesToPrepend.length ) {
|
|
387
|
+
linesToPrepend.push('# ...');
|
|
388
|
+
}
|
|
385
389
|
}
|
|
386
390
|
let yamlText = textFromRules(rules);
|
|
387
391
|
if ( yamlText === undefined ) { return; }
|
|
388
|
-
if (
|
|
389
|
-
yamlText = yamlText.replace('---\n', `---\n${
|
|
392
|
+
if ( linesToPrepend ) {
|
|
393
|
+
yamlText = yamlText.replace('---\n', `---\n${linesToPrepend.join('\n')}\n`);
|
|
390
394
|
}
|
|
391
395
|
if ( separatorBefore && yamlText.startsWith('---\n') ) {
|
|
392
396
|
yamlText = yamlText.slice(4);
|
|
@@ -242,9 +242,10 @@ sendMessage({
|
|
|
242
242
|
renderAdminRules();
|
|
243
243
|
renderFilterLists(cachedRulesetData);
|
|
244
244
|
renderWidgets();
|
|
245
|
-
dom.cl.remove(dom.body, 'loading');
|
|
246
245
|
} catch(reason) {
|
|
247
246
|
console.error(reason);
|
|
247
|
+
} finally {
|
|
248
|
+
dom.cl.remove(dom.body, 'loading');
|
|
248
249
|
}
|
|
249
250
|
listen();
|
|
250
251
|
}).catch(reason => {
|
|
@@ -1245,7 +1245,7 @@ export class AstFilterParser {
|
|
|
1245
1245
|
let modifierType = 0;
|
|
1246
1246
|
let requestTypeCount = 0;
|
|
1247
1247
|
let unredirectableTypeCount = 0;
|
|
1248
|
-
let
|
|
1248
|
+
let isBadfilter = false;
|
|
1249
1249
|
for ( let i = 0, n = this.nodeTypeRegisterPtr; i < n; i++ ) {
|
|
1250
1250
|
const type = this.nodeTypeRegister[i];
|
|
1251
1251
|
const targetNode = this.nodeTypeLookupTable[type];
|
|
@@ -1269,7 +1269,7 @@ export class AstFilterParser {
|
|
|
1269
1269
|
realBad = hasValue;
|
|
1270
1270
|
break;
|
|
1271
1271
|
case NODE_TYPE_NET_OPTION_NAME_BADFILTER:
|
|
1272
|
-
|
|
1272
|
+
isBadfilter = true;
|
|
1273
1273
|
/* falls through */
|
|
1274
1274
|
case NODE_TYPE_NET_OPTION_NAME_NOOP:
|
|
1275
1275
|
realBad = isNegated || hasValue;
|
|
@@ -1423,9 +1423,6 @@ export class AstFilterParser {
|
|
|
1423
1423
|
this.addFlags(AST_FLAG_HAS_ERROR);
|
|
1424
1424
|
}
|
|
1425
1425
|
}
|
|
1426
|
-
const requiresTrustedSource = ( ) =>
|
|
1427
|
-
this.options.trustedSource !== true &&
|
|
1428
|
-
isException === false && badfilter === false;
|
|
1429
1426
|
switch ( modifierType ) {
|
|
1430
1427
|
case NODE_TYPE_NET_OPTION_NAME_CNAME:
|
|
1431
1428
|
realBad = abstractTypeCount || behaviorTypeCount || requestTypeCount;
|
|
@@ -1453,7 +1450,8 @@ export class AstFilterParser {
|
|
|
1453
1450
|
case NODE_TYPE_NET_OPTION_NAME_REPLACE: {
|
|
1454
1451
|
realBad = abstractTypeCount || behaviorTypeCount || unredirectableTypeCount;
|
|
1455
1452
|
if ( realBad ) { break; }
|
|
1456
|
-
if (
|
|
1453
|
+
if ( isException || isBadfilter ) { break; }
|
|
1454
|
+
if ( this.options.trustedSource !== true ) {
|
|
1457
1455
|
this.astError = AST_ERROR_UNTRUSTED_SOURCE;
|
|
1458
1456
|
realBad = true;
|
|
1459
1457
|
break;
|
|
@@ -1468,7 +1466,8 @@ export class AstFilterParser {
|
|
|
1468
1466
|
case NODE_TYPE_NET_OPTION_NAME_URLSKIP: {
|
|
1469
1467
|
realBad = abstractTypeCount || behaviorTypeCount || unredirectableTypeCount;
|
|
1470
1468
|
if ( realBad ) { break; }
|
|
1471
|
-
if (
|
|
1469
|
+
if ( isException || isBadfilter ) { break; }
|
|
1470
|
+
if ( this.options.trustedSource !== true ) {
|
|
1472
1471
|
this.astError = AST_ERROR_UNTRUSTED_SOURCE;
|
|
1473
1472
|
realBad = true;
|
|
1474
1473
|
break;
|
|
@@ -1483,7 +1482,8 @@ export class AstFilterParser {
|
|
|
1483
1482
|
case NODE_TYPE_NET_OPTION_NAME_URLTRANSFORM: {
|
|
1484
1483
|
realBad = abstractTypeCount || behaviorTypeCount || unredirectableTypeCount;
|
|
1485
1484
|
if ( realBad ) { break; }
|
|
1486
|
-
if (
|
|
1485
|
+
if ( isException || isBadfilter ) { break; }
|
|
1486
|
+
if ( this.options.trustedSource !== true ) {
|
|
1487
1487
|
this.astError = AST_ERROR_UNTRUSTED_SOURCE;
|
|
1488
1488
|
realBad = true;
|
|
1489
1489
|
break;
|