@browserless.io/browserless 2.27.0 → 2.28.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 +12 -1
- package/bin/browserless.js +6 -6
- package/build/limiter.js +3 -1
- package/build/routes/chrome/http/content.post.body.json +8 -8
- package/build/routes/chrome/http/pdf.post.body.json +8 -8
- package/build/routes/chrome/http/scrape.post.body.json +8 -8
- package/build/routes/chrome/http/screenshot.post.body.json +8 -8
- package/build/routes/chromium/http/content.post.body.json +8 -8
- package/build/routes/chromium/http/pdf.post.body.json +8 -8
- package/build/routes/chromium/http/scrape.post.body.json +8 -8
- package/build/routes/chromium/http/screenshot.post.body.json +8 -8
- package/build/routes/edge/http/content.post.body.json +8 -8
- package/build/routes/edge/http/pdf.post.body.json +8 -8
- package/build/routes/edge/http/scrape.post.body.json +8 -8
- package/build/routes/edge/http/screenshot.post.body.json +8 -8
- package/build/sdk-utils.js +6 -1
- package/extensions/ublocklite/_locales/ar/messages.json +0 -8
- package/extensions/ublocklite/_locales/az/messages.json +0 -8
- package/extensions/ublocklite/_locales/be/messages.json +0 -8
- package/extensions/ublocklite/_locales/bg/messages.json +0 -8
- package/extensions/ublocklite/_locales/bn/messages.json +0 -8
- package/extensions/ublocklite/_locales/br_FR/messages.json +0 -8
- package/extensions/ublocklite/_locales/bs/messages.json +0 -8
- package/extensions/ublocklite/_locales/ca/messages.json +0 -8
- package/extensions/ublocklite/_locales/cs/messages.json +0 -8
- package/extensions/ublocklite/_locales/cv/messages.json +1 -9
- package/extensions/ublocklite/_locales/cy/messages.json +0 -8
- package/extensions/ublocklite/_locales/da/messages.json +0 -8
- package/extensions/ublocklite/_locales/de/messages.json +0 -8
- package/extensions/ublocklite/_locales/el/messages.json +0 -8
- package/extensions/ublocklite/_locales/en/messages.json +1 -9
- package/extensions/ublocklite/_locales/en_GB/messages.json +0 -8
- package/extensions/ublocklite/_locales/eo/messages.json +1 -9
- package/extensions/ublocklite/_locales/es/messages.json +0 -8
- package/extensions/ublocklite/_locales/et/messages.json +0 -8
- package/extensions/ublocklite/_locales/eu/messages.json +0 -8
- package/extensions/ublocklite/_locales/fa/messages.json +0 -8
- package/extensions/ublocklite/_locales/fi/messages.json +0 -8
- package/extensions/ublocklite/_locales/fil/messages.json +0 -8
- package/extensions/ublocklite/_locales/fr/messages.json +0 -8
- package/extensions/ublocklite/_locales/fy/messages.json +0 -8
- package/extensions/ublocklite/_locales/gl/messages.json +0 -8
- package/extensions/ublocklite/_locales/gu/messages.json +1 -9
- package/extensions/ublocklite/_locales/he/messages.json +0 -8
- package/extensions/ublocklite/_locales/hi/messages.json +0 -8
- package/extensions/ublocklite/_locales/hr/messages.json +0 -8
- package/extensions/ublocklite/_locales/hu/messages.json +0 -8
- package/extensions/ublocklite/_locales/hy/messages.json +0 -8
- package/extensions/ublocklite/_locales/id/messages.json +0 -8
- package/extensions/ublocklite/_locales/it/messages.json +27 -35
- package/extensions/ublocklite/_locales/ja/messages.json +0 -8
- package/extensions/ublocklite/_locales/ka/messages.json +0 -8
- package/extensions/ublocklite/_locales/kk/messages.json +1 -9
- package/extensions/ublocklite/_locales/kn/messages.json +0 -8
- package/extensions/ublocklite/_locales/ko/messages.json +0 -8
- package/extensions/ublocklite/_locales/lt/messages.json +1 -9
- package/extensions/ublocklite/_locales/lv/messages.json +0 -8
- package/extensions/ublocklite/_locales/mk/messages.json +0 -8
- package/extensions/ublocklite/_locales/ml/messages.json +0 -8
- package/extensions/ublocklite/_locales/mr/messages.json +1 -9
- package/extensions/ublocklite/_locales/ms/messages.json +0 -8
- package/extensions/ublocklite/_locales/nb/messages.json +0 -8
- package/extensions/ublocklite/_locales/nl/messages.json +0 -8
- package/extensions/ublocklite/_locales/oc/messages.json +1 -9
- package/extensions/ublocklite/_locales/pa/messages.json +0 -8
- package/extensions/ublocklite/_locales/pl/messages.json +0 -8
- package/extensions/ublocklite/_locales/pt_BR/messages.json +1 -9
- package/extensions/ublocklite/_locales/pt_PT/messages.json +3 -11
- package/extensions/ublocklite/_locales/ro/messages.json +0 -8
- package/extensions/ublocklite/_locales/ru/messages.json +0 -8
- package/extensions/ublocklite/_locales/si/messages.json +0 -8
- package/extensions/ublocklite/_locales/sk/messages.json +0 -8
- package/extensions/ublocklite/_locales/sl/messages.json +1 -9
- package/extensions/ublocklite/_locales/so/messages.json +1 -9
- package/extensions/ublocklite/_locales/sq/messages.json +0 -8
- package/extensions/ublocklite/_locales/sr/messages.json +0 -8
- package/extensions/ublocklite/_locales/sv/messages.json +0 -8
- package/extensions/ublocklite/_locales/sw/messages.json +1 -9
- package/extensions/ublocklite/_locales/ta/messages.json +1 -9
- package/extensions/ublocklite/_locales/te/messages.json +1 -9
- package/extensions/ublocklite/_locales/th/messages.json +0 -8
- package/extensions/ublocklite/_locales/tr/messages.json +8 -16
- package/extensions/ublocklite/_locales/uk/messages.json +0 -8
- package/extensions/ublocklite/_locales/ur/messages.json +0 -8
- package/extensions/ublocklite/_locales/vi/messages.json +0 -8
- package/extensions/ublocklite/_locales/zh_CN/messages.json +3 -11
- package/extensions/ublocklite/_locales/zh_TW/messages.json +0 -8
- package/extensions/ublocklite/css/default.css +1 -3
- package/extensions/ublocklite/css/settings.css +0 -14
- package/extensions/ublocklite/dashboard.html +0 -5
- package/extensions/ublocklite/js/background.js +37 -54
- package/extensions/ublocklite/js/filter-lists.js +1 -2
- package/extensions/ublocklite/js/mode-manager.js +8 -2
- package/extensions/ublocklite/js/ruleset-manager.js +17 -42
- package/extensions/ublocklite/js/settings.js +16 -7
- package/extensions/ublocklite/js/utils.js +13 -0
- package/extensions/ublocklite/manifest.json +5 -5
- package/extensions/ublocklite/rulesets/generic-details.json +9 -114
- package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +15 -11
- package/extensions/ublocklite/rulesets/main/annoyances-others.json +5 -2
- package/extensions/ublocklite/rulesets/main/annoyances-overlays.json +9 -5
- package/extensions/ublocklite/rulesets/main/annoyances-social.json +0 -1
- package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +1 -1
- package/extensions/ublocklite/rulesets/main/badware.json +25 -16
- package/extensions/ublocklite/rulesets/main/chn-0.json +32 -20
- package/extensions/ublocklite/rulesets/main/cze-0.json +2 -3
- package/extensions/ublocklite/rulesets/main/default.json +87 -84
- package/extensions/ublocklite/rulesets/main/deu-0.json +2 -3
- package/extensions/ublocklite/rulesets/main/fra-0.json +27 -31
- package/extensions/ublocklite/rulesets/main/idn-0.json +3 -3
- package/extensions/ublocklite/rulesets/main/ind-0.json +25 -33
- package/extensions/ublocklite/rulesets/main/irn-0.json +1 -1
- package/extensions/ublocklite/rulesets/main/isr-0.json +5 -2
- package/extensions/ublocklite/rulesets/main/jpn-1.json +7 -2
- package/extensions/ublocklite/rulesets/main/nor-0.json +1 -2
- package/extensions/ublocklite/rulesets/main/openphish-domains.json +3661 -3691
- package/extensions/ublocklite/rulesets/main/pol-0.json +9 -202
- package/extensions/ublocklite/rulesets/main/rus-0.json +20 -13
- package/extensions/ublocklite/rulesets/main/rus-1.json +3 -2
- package/extensions/ublocklite/rulesets/main/spa-0.json +1 -0
- package/extensions/ublocklite/rulesets/main/spa-1.json +3 -2
- package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +4270 -2524
- package/extensions/ublocklite/rulesets/main/swe-1.json +30 -33
- package/extensions/ublocklite/rulesets/main/tha-0.json +3 -2
- package/extensions/ublocklite/rulesets/main/tur-0.json +9 -10
- package/extensions/ublocklite/rulesets/main/ukr-0.json +25 -7
- package/extensions/ublocklite/rulesets/main/urlhaus-full.json +472 -360
- package/extensions/ublocklite/rulesets/main/vie-1.json +49 -49
- package/extensions/ublocklite/rulesets/modify-headers/chn-0.json +8 -0
- package/extensions/ublocklite/rulesets/modify-headers/default.json +5 -5
- package/extensions/ublocklite/rulesets/modify-headers/fra-0.json +1 -0
- package/extensions/ublocklite/rulesets/modify-headers/vie-1.json +1 -1
- package/extensions/ublocklite/rulesets/redirect/chn-0.json +1 -1
- package/extensions/ublocklite/rulesets/redirect/default.json +11 -14
- package/extensions/ublocklite/rulesets/redirect/pol-0.json +0 -16
- package/extensions/ublocklite/rulesets/redirect/swe-1.json +158 -11
- package/extensions/ublocklite/rulesets/redirect/tur-0.json +4 -2
- package/extensions/ublocklite/rulesets/redirect/vie-1.json +3 -3
- package/extensions/ublocklite/rulesets/regex/badware.json +6 -2
- package/extensions/ublocklite/rulesets/regex/chn-0.json +4 -2
- package/extensions/ublocklite/rulesets/regex/default.json +7 -0
- package/extensions/ublocklite/rulesets/regex/pol-0.json +1 -5
- package/extensions/ublocklite/rulesets/regex/swe-1.json +0 -1
- package/extensions/ublocklite/rulesets/removeparam/adguard-spyware-url.json +6 -3
- package/extensions/ublocklite/rulesets/removeparam/rus-1.json +1 -1
- package/extensions/ublocklite/rulesets/ruleset-details.json +201 -201
- package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-cookies.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-others.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-overlays.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/declarative/chn-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/declarative/default.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/declarative/irn-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/declarative/jpn-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/declarative/kor-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/declarative/pol-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/declarative/rus-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/declarative/rus-1.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/declarative/spa-1.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/declarative/swe-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/declarative/tur-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/declarative/ukr-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/declarative/vie-1.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-others.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-overlays.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/default.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/idn-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/isr-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/jpn-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/kor-1.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/pol-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/swe-1.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/tur-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/ukr-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +0 -4
- package/extensions/ublocklite/rulesets/scripting/generichigh/default.css +6 -3
- package/extensions/ublocklite/rulesets/scripting/generichigh/fra-0.css +3 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/kor-1.css +2 -1
- package/extensions/ublocklite/rulesets/scripting/generichigh/rus-0.css +1 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/swe-1.css +3 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/tur-0.css +7 -0
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.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/chn-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/cze-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/default.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/deu-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/fin-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/fra-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/ind-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/kor-1.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/nor-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/pol-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/rus-1.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/ukr-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/vie-1.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-constant.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-set-cookie-reload.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.remove-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-on-property-write.js +2 -2
- 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.href-sanitizer.js +541 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.noeval-if.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-fetch.js +18 -7
- 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-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-click-element.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-replace-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +16 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.abort-current-script.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.abort-on-property-read.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.abort-on-property-write.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.abort-on-stack-trace.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.addEventListener-defuser.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.adjust-setInterval.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.adjust-setTimeout.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.json-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.noeval-if.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.nowebrtc.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.prevent-fetch.js +18 -7
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.prevent-requestAnimationFrame.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.prevent-setInterval.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.prevent-window-open.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.prevent-xhr.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.remove-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.remove-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.remove-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.set-constant.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.set-cookie.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.set-local-storage-item.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.trusted-replace-argument.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.trusted-replace-node-text.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.trusted-replace-outbound-text.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.trusted-set-constant.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.trusted-set-cookie.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/default.trusted-suppress-native-method.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-fetch.js +16 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-fetch.js +16 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-fetch.js +16 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-window-open.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.json-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-fetch.js +16 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-fetch.js +16 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.href-sanitizer.js +541 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-fetch.js +16 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-fetch.js +16 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.abort-on-property-read.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-fetch.js +16 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.prevent-fetch.js +16 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.remove-attr.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.abort-on-property-write.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.noeval-if.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.prevent-setInterval.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.set-constant.js +3 -3
- 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 +4 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.adjust-setTimeout.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.href-sanitizer.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-fetch.js +16 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-setInterval.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-setTimeout.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-node-text.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-fetch.js +16 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.remove-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.set-constant.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +18 -7
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.set-cookie.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 +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.adjust-setInterval.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-fetch.js +16 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.remove-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-fetch.js +16 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.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/cze-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/default.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/deu-0.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/idn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/isr-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/pol-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/spa-0.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/ukr-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
- package/extensions/ublocklite/rulesets/scriptlet-details.json +209 -337
- package/extensions/ublocklite/rulesets/strictblock/annoyances-cookies.json +0 -1
- package/extensions/ublocklite/rulesets/strictblock/annoyances-others.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/badware.json +394 -385
- package/extensions/ublocklite/rulesets/strictblock/chn-0.json +126 -185
- package/extensions/ublocklite/rulesets/strictblock/default.json +28 -25
- package/extensions/ublocklite/rulesets/strictblock/fra-0.json +344 -42
- package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +155 -153
- package/extensions/ublocklite/rulesets/strictblock/openphish-domains.json +37645 -0
- package/extensions/ublocklite/rulesets/strictblock/pol-0.json +42653 -1
- package/extensions/ublocklite/rulesets/strictblock/spa-1.json +2 -0
- package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +4270 -2524
- package/extensions/ublocklite/rulesets/strictblock/ukr-0.json +64 -60
- package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +472 -360
- package/extensions/ublocklite/rulesets/urlskip/annoyances-overlays.json +6 -0
- package/extensions/ublocklite/rulesets/urlskip/default.json +51 -0
- package/extensions/ublocklite/ublock.zip +0 -0
- package/package.json +8 -8
- package/src/limiter.ts +3 -1
- package/src/sdk-utils.ts +16 -12
- package/static/docs/swagger.json +10 -10
- package/static/docs/swagger.min.json +9 -9
- package/static/function/client.js +22 -18
- package/static/function/index.html +22 -18
|
@@ -31,15 +31,6 @@ import {
|
|
|
31
31
|
syncWithBrowserPermissions,
|
|
32
32
|
} from './mode-manager.js';
|
|
33
33
|
|
|
34
|
-
import {
|
|
35
|
-
adminRead,
|
|
36
|
-
browser,
|
|
37
|
-
dnr,
|
|
38
|
-
localRead, localRemove, localWrite,
|
|
39
|
-
runtime,
|
|
40
|
-
windows,
|
|
41
|
-
} from './ext.js';
|
|
42
|
-
|
|
43
34
|
import {
|
|
44
35
|
adminReadEx,
|
|
45
36
|
getAdminRulesets,
|
|
@@ -47,9 +38,18 @@ import {
|
|
|
47
38
|
|
|
48
39
|
import {
|
|
49
40
|
broadcastMessage,
|
|
41
|
+
hasBroadHostPermissions,
|
|
50
42
|
hostnamesFromMatches,
|
|
51
43
|
} from './utils.js';
|
|
52
44
|
|
|
45
|
+
import {
|
|
46
|
+
browser,
|
|
47
|
+
dnr,
|
|
48
|
+
localRead, localRemove, localWrite,
|
|
49
|
+
runtime,
|
|
50
|
+
windows,
|
|
51
|
+
} from './ext.js';
|
|
52
|
+
|
|
53
53
|
import {
|
|
54
54
|
enableRulesets,
|
|
55
55
|
excludeFromStrictBlock,
|
|
@@ -93,31 +93,9 @@ function getCurrentVersion() {
|
|
|
93
93
|
|
|
94
94
|
/******************************************************************************/
|
|
95
95
|
|
|
96
|
-
async function hasGreatPowers(origin) {
|
|
97
|
-
if ( /^https?:\/\//.test(origin) === false ) { return false; }
|
|
98
|
-
return browser.permissions.contains({
|
|
99
|
-
origins: [ `${origin}/*` ],
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
async function hasOmnipotence() {
|
|
104
|
-
const manifest = runtime.getManifest();
|
|
105
|
-
const hasOmnipotence = Array.isArray(manifest.host_permissions) &&
|
|
106
|
-
manifest.host_permissions.includes('<all_urls>');
|
|
107
|
-
if ( hasOmnipotence ) { return true; }
|
|
108
|
-
return browser.permissions.contains({
|
|
109
|
-
origins: [ '<all_urls>' ],
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
|
|
113
96
|
async function onPermissionsRemoved() {
|
|
114
|
-
const beforeMode = await getDefaultFilteringMode();
|
|
115
97
|
const modified = await syncWithBrowserPermissions();
|
|
116
98
|
if ( modified === false ) { return false; }
|
|
117
|
-
const afterMode = await getDefaultFilteringMode();
|
|
118
|
-
if ( beforeMode > MODE_BASIC && afterMode <= MODE_BASIC ) {
|
|
119
|
-
updateDynamicRules();
|
|
120
|
-
}
|
|
121
99
|
registerInjectables();
|
|
122
100
|
return true;
|
|
123
101
|
}
|
|
@@ -126,7 +104,14 @@ async function onPermissionsRemoved() {
|
|
|
126
104
|
async function onPermissionsAdded(permissions) {
|
|
127
105
|
const details = pendingPermissionRequest;
|
|
128
106
|
pendingPermissionRequest = undefined;
|
|
129
|
-
if ( details === undefined ) {
|
|
107
|
+
if ( details === undefined ) {
|
|
108
|
+
const modified = await syncWithBrowserPermissions();
|
|
109
|
+
if ( modified === false ) { return; }
|
|
110
|
+
return Promise.all([
|
|
111
|
+
updateSessionRules(),
|
|
112
|
+
registerInjectables(),
|
|
113
|
+
]);
|
|
114
|
+
}
|
|
130
115
|
const defaultMode = await getDefaultFilteringMode();
|
|
131
116
|
if ( defaultMode >= MODE_OPTIMAL ) { return; }
|
|
132
117
|
if ( Array.isArray(permissions.origins) === false ) { return; }
|
|
@@ -240,6 +225,7 @@ function onMessage(request, sender, callback) {
|
|
|
240
225
|
|
|
241
226
|
case 'getOptionsPageData': {
|
|
242
227
|
Promise.all([
|
|
228
|
+
hasBroadHostPermissions(),
|
|
243
229
|
getDefaultFilteringMode(),
|
|
244
230
|
getTrustedSites(),
|
|
245
231
|
getRulesetDetails(),
|
|
@@ -248,6 +234,7 @@ function onMessage(request, sender, callback) {
|
|
|
248
234
|
adminReadEx('disabledFeatures'),
|
|
249
235
|
]).then(results => {
|
|
250
236
|
const [
|
|
237
|
+
hasOmnipotence,
|
|
251
238
|
defaultFilteringMode,
|
|
252
239
|
trustedSites,
|
|
253
240
|
rulesetDetails,
|
|
@@ -256,6 +243,7 @@ function onMessage(request, sender, callback) {
|
|
|
256
243
|
disabledFeatures,
|
|
257
244
|
] = results;
|
|
258
245
|
callback({
|
|
246
|
+
hasOmnipotence,
|
|
259
247
|
defaultFilteringMode,
|
|
260
248
|
trustedSites: Array.from(trustedSites),
|
|
261
249
|
enabledRulesets,
|
|
@@ -314,21 +302,25 @@ function onMessage(request, sender, callback) {
|
|
|
314
302
|
|
|
315
303
|
case 'popupPanelData': {
|
|
316
304
|
Promise.all([
|
|
305
|
+
hasBroadHostPermissions(),
|
|
317
306
|
getFilteringMode(request.hostname),
|
|
318
|
-
hasOmnipotence(),
|
|
319
|
-
hasGreatPowers(request.origin),
|
|
320
307
|
getEnabledRulesetsDetails(),
|
|
321
308
|
adminReadEx('disabledFeatures'),
|
|
322
309
|
]).then(results => {
|
|
310
|
+
const [
|
|
311
|
+
hasOmnipotence,
|
|
312
|
+
level,
|
|
313
|
+
rulesetDetails,
|
|
314
|
+
disabledFeatures,
|
|
315
|
+
] = results;
|
|
323
316
|
callback({
|
|
324
|
-
|
|
317
|
+
hasOmnipotence,
|
|
318
|
+
level,
|
|
325
319
|
autoReload: rulesetConfig.autoReload,
|
|
326
|
-
|
|
327
|
-
hasGreatPowers: results[2],
|
|
328
|
-
rulesetDetails: results[3],
|
|
320
|
+
rulesetDetails,
|
|
329
321
|
isSideloaded,
|
|
330
322
|
developerMode: rulesetConfig.developerMode,
|
|
331
|
-
disabledFeatures
|
|
323
|
+
disabledFeatures,
|
|
332
324
|
});
|
|
333
325
|
});
|
|
334
326
|
return true;
|
|
@@ -373,9 +365,6 @@ function onMessage(request, sender, callback) {
|
|
|
373
365
|
({ beforeLevel, afterLevel })
|
|
374
366
|
)
|
|
375
367
|
).then(({ beforeLevel, afterLevel }) => {
|
|
376
|
-
if ( beforeLevel === 1 || afterLevel === 1 ) {
|
|
377
|
-
updateDynamicRules();
|
|
378
|
-
}
|
|
379
368
|
if ( afterLevel !== beforeLevel ) {
|
|
380
369
|
registerInjectables();
|
|
381
370
|
}
|
|
@@ -497,22 +486,16 @@ async function start() {
|
|
|
497
486
|
});
|
|
498
487
|
}
|
|
499
488
|
|
|
489
|
+
// Switch to basic filtering if uBOL doesn't have broad permissions at
|
|
490
|
+
// install time.
|
|
500
491
|
if ( process.firstRun ) {
|
|
501
|
-
const enableOptimal = await
|
|
502
|
-
if ( enableOptimal ) {
|
|
503
|
-
const afterLevel = await setDefaultFilteringMode(
|
|
504
|
-
if ( afterLevel ===
|
|
505
|
-
updateDynamicRules();
|
|
492
|
+
const enableOptimal = await hasBroadHostPermissions();
|
|
493
|
+
if ( enableOptimal === false ) {
|
|
494
|
+
const afterLevel = await setDefaultFilteringMode(MODE_BASIC);
|
|
495
|
+
if ( afterLevel === MODE_BASIC ) {
|
|
506
496
|
registerInjectables();
|
|
507
497
|
process.firstRun = false;
|
|
508
498
|
}
|
|
509
|
-
} else {
|
|
510
|
-
const disableFirstRunPage = await adminRead('disableFirstRunPage');
|
|
511
|
-
if ( disableFirstRunPage !== true ) {
|
|
512
|
-
runtime.openOptionsPage();
|
|
513
|
-
} else {
|
|
514
|
-
process.firstRun = false;
|
|
515
|
-
}
|
|
516
499
|
}
|
|
517
500
|
}
|
|
518
501
|
|
|
@@ -90,12 +90,11 @@ function updateNodes(listEntries) {
|
|
|
90
90
|
/******************************************************************************/
|
|
91
91
|
|
|
92
92
|
function rulesetStats(rulesetId) {
|
|
93
|
-
const hasOmnipotence = cachedRulesetData.defaultFilteringMode > 1;
|
|
94
93
|
const rulesetDetails = rulesetMap.get(rulesetId);
|
|
95
94
|
if ( rulesetDetails === undefined ) { return; }
|
|
96
95
|
const { rules, filters } = rulesetDetails;
|
|
97
96
|
let ruleCount = rules.plain + rules.regex;
|
|
98
|
-
if ( hasOmnipotence ) {
|
|
97
|
+
if ( cachedRulesetData.hasOmnipotence ) {
|
|
99
98
|
ruleCount += rules.removeparam + rules.redirect + rules.modifyHeaders;
|
|
100
99
|
}
|
|
101
100
|
const filterCount = filters.accepted;
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
import {
|
|
23
23
|
broadcastMessage,
|
|
24
|
+
hasBroadHostPermissions,
|
|
24
25
|
hostnamesFromMatches,
|
|
25
26
|
isDescendantHostnameOfIter,
|
|
26
27
|
toBroaderHostname,
|
|
@@ -223,7 +224,7 @@ export async function readFilteringModeDetails(bypassCache = false) {
|
|
|
223
224
|
adminReadEx('noFiltering'),
|
|
224
225
|
]);
|
|
225
226
|
if ( userModes === undefined ) {
|
|
226
|
-
userModes = {
|
|
227
|
+
userModes = { optimal: [ 'all-urls' ] };
|
|
227
228
|
}
|
|
228
229
|
userModes = unserializeModeDetails(userModes);
|
|
229
230
|
if ( Array.isArray(adminNoFiltering) ) {
|
|
@@ -255,12 +256,14 @@ async function writeFilteringModeDetails(afterDetails) {
|
|
|
255
256
|
return Promise.all([
|
|
256
257
|
getDefaultFilteringMode(),
|
|
257
258
|
getTrustedSites(),
|
|
259
|
+
hasBroadHostPermissions(),
|
|
258
260
|
localWrite('filteringModeDetails', data),
|
|
259
261
|
sessionWrite('filteringModeDetails', data),
|
|
260
262
|
]).then(results => {
|
|
261
263
|
broadcastMessage({
|
|
262
264
|
defaultFilteringMode: results[0],
|
|
263
265
|
trustedSites: Array.from(results[1]),
|
|
266
|
+
hasOmnipotence: results[2],
|
|
264
267
|
});
|
|
265
268
|
});
|
|
266
269
|
}
|
|
@@ -347,9 +350,12 @@ export async function syncWithBrowserPermissions() {
|
|
|
347
350
|
if ( beforeMode > MODE_BASIC && allowedHostnames.has('all-urls') === false ) {
|
|
348
351
|
await setDefaultFilteringMode(MODE_BASIC);
|
|
349
352
|
modified = true;
|
|
353
|
+
} else if ( beforeMode === MODE_BASIC && allowedHostnames.has('all-urls') ) {
|
|
354
|
+
await setDefaultFilteringMode(MODE_OPTIMAL);
|
|
355
|
+
modified = true;
|
|
350
356
|
}
|
|
351
357
|
const afterMode = await getDefaultFilteringMode();
|
|
352
|
-
if ( afterMode > MODE_BASIC ) { return
|
|
358
|
+
if ( afterMode > MODE_BASIC ) { return afterMode !== beforeMode; }
|
|
353
359
|
const filteringModes = await getFilteringModeDetails();
|
|
354
360
|
const { optimal, complete } = filteringModes;
|
|
355
361
|
for ( const hn of optimal ) {
|
|
@@ -21,7 +21,6 @@
|
|
|
21
21
|
|
|
22
22
|
import {
|
|
23
23
|
TAB_ID_NONE,
|
|
24
|
-
browser,
|
|
25
24
|
dnr,
|
|
26
25
|
i18n,
|
|
27
26
|
localRead, localRemove, localWrite,
|
|
@@ -34,9 +33,9 @@ import {
|
|
|
34
33
|
saveRulesetConfig,
|
|
35
34
|
} from './config.js';
|
|
36
35
|
|
|
37
|
-
|
|
38
36
|
import { fetchJSON } from './fetch.js';
|
|
39
37
|
import { getAdminRulesets } from './admin.js';
|
|
38
|
+
import { hasBroadHostPermissions } from './utils.js';
|
|
40
39
|
import { ubolLog } from './debug.js';
|
|
41
40
|
|
|
42
41
|
/******************************************************************************/
|
|
@@ -160,13 +159,7 @@ async function updateRemoveparamRules(currentRules, addRules, removeRuleIds) {
|
|
|
160
159
|
removeRuleIds.push(rule.id);
|
|
161
160
|
}
|
|
162
161
|
|
|
163
|
-
const
|
|
164
|
-
hasOmnipotence,
|
|
165
|
-
rulesetDetails,
|
|
166
|
-
] = await Promise.all([
|
|
167
|
-
browser.permissions.contains({ origins: [ '<all_urls>' ] }),
|
|
168
|
-
getEnabledRulesetsDetails(),
|
|
169
|
-
]);
|
|
162
|
+
const rulesetDetails = await getEnabledRulesetsDetails();
|
|
170
163
|
|
|
171
164
|
// Fetch removeparam rules for all enabled rulesets
|
|
172
165
|
const toFetch = [];
|
|
@@ -178,12 +171,10 @@ async function updateRemoveparamRules(currentRules, addRules, removeRuleIds) {
|
|
|
178
171
|
|
|
179
172
|
// Removeparam rules can only be enforced with omnipotence
|
|
180
173
|
const allRules = [];
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
allRules.push(rule);
|
|
186
|
-
}
|
|
174
|
+
for ( const rules of removeparamRulesets ) {
|
|
175
|
+
if ( Array.isArray(rules) === false ) { continue; }
|
|
176
|
+
for ( const rule of rules ) {
|
|
177
|
+
allRules.push(rule);
|
|
187
178
|
}
|
|
188
179
|
}
|
|
189
180
|
if ( allRules.length === 0 ) { return; }
|
|
@@ -205,13 +196,7 @@ async function updateRedirectRules(currentRules, addRules, removeRuleIds) {
|
|
|
205
196
|
removeRuleIds.push(rule.id);
|
|
206
197
|
}
|
|
207
198
|
|
|
208
|
-
const
|
|
209
|
-
hasOmnipotence,
|
|
210
|
-
rulesetDetails,
|
|
211
|
-
] = await Promise.all([
|
|
212
|
-
browser.permissions.contains({ origins: [ '<all_urls>' ] }),
|
|
213
|
-
getEnabledRulesetsDetails(),
|
|
214
|
-
]);
|
|
199
|
+
const rulesetDetails = await getEnabledRulesetsDetails();
|
|
215
200
|
|
|
216
201
|
// Fetch redirect rules for all enabled rulesets
|
|
217
202
|
const toFetch = [];
|
|
@@ -223,12 +208,10 @@ async function updateRedirectRules(currentRules, addRules, removeRuleIds) {
|
|
|
223
208
|
|
|
224
209
|
// Redirect rules can only be enforced with omnipotence
|
|
225
210
|
const allRules = [];
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
allRules.push(rule);
|
|
231
|
-
}
|
|
211
|
+
for ( const rules of redirectRulesets ) {
|
|
212
|
+
if ( Array.isArray(rules) === false ) { continue; }
|
|
213
|
+
for ( const rule of rules ) {
|
|
214
|
+
allRules.push(rule);
|
|
232
215
|
}
|
|
233
216
|
}
|
|
234
217
|
if ( allRules.length === 0 ) { return; }
|
|
@@ -249,13 +232,7 @@ async function updateModifyHeadersRules(currentRules, addRules, removeRuleIds) {
|
|
|
249
232
|
removeRuleIds.push(rule.id);
|
|
250
233
|
}
|
|
251
234
|
|
|
252
|
-
const
|
|
253
|
-
hasOmnipotence,
|
|
254
|
-
rulesetDetails,
|
|
255
|
-
] = await Promise.all([
|
|
256
|
-
browser.permissions.contains({ origins: [ '<all_urls>' ] }),
|
|
257
|
-
getEnabledRulesetsDetails(),
|
|
258
|
-
]);
|
|
235
|
+
const rulesetDetails = await getEnabledRulesetsDetails();
|
|
259
236
|
|
|
260
237
|
// Fetch modifyHeaders rules for all enabled rulesets
|
|
261
238
|
const toFetch = [];
|
|
@@ -267,12 +244,10 @@ async function updateModifyHeadersRules(currentRules, addRules, removeRuleIds) {
|
|
|
267
244
|
|
|
268
245
|
// Redirect rules can only be enforced with omnipotence
|
|
269
246
|
const allRules = [];
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
allRules.push(rule);
|
|
275
|
-
}
|
|
247
|
+
for ( const rules of rulesets ) {
|
|
248
|
+
if ( Array.isArray(rules) === false ) { continue; }
|
|
249
|
+
for ( const rule of rules ) {
|
|
250
|
+
allRules.push(rule);
|
|
276
251
|
}
|
|
277
252
|
}
|
|
278
253
|
if ( allRules.length === 0 ) { return; }
|
|
@@ -348,7 +323,7 @@ async function updateStrictBlockRules(currentRules, addRules, removeRuleIds) {
|
|
|
348
323
|
permanentlyExcluded = [],
|
|
349
324
|
temporarilyExcluded = [],
|
|
350
325
|
] = await Promise.all([
|
|
351
|
-
|
|
326
|
+
hasBroadHostPermissions(),
|
|
352
327
|
getEnabledRulesetsDetails(),
|
|
353
328
|
localRead('excludedStrictBlockHostnames'),
|
|
354
329
|
sessionRead('excludedStrictBlockHostnames'),
|
|
@@ -69,7 +69,7 @@ function renderWidgets() {
|
|
|
69
69
|
|
|
70
70
|
{
|
|
71
71
|
const input = qs$('#strictBlockMode input[type="checkbox"]');
|
|
72
|
-
const canStrictBlock = cachedRulesetData.
|
|
72
|
+
const canStrictBlock = cachedRulesetData.hasOmnipotence;
|
|
73
73
|
input.checked = canStrictBlock && cachedRulesetData.strictBlockMode;
|
|
74
74
|
dom.attr(input, 'disabled', canStrictBlock ? null : '');
|
|
75
75
|
}
|
|
@@ -102,17 +102,18 @@ async function onFilteringModeChange(ev) {
|
|
|
102
102
|
const newLevel = parseInt(input.value, 10);
|
|
103
103
|
|
|
104
104
|
switch ( newLevel ) {
|
|
105
|
-
case 1: {
|
|
106
|
-
await
|
|
107
|
-
|
|
105
|
+
case 1: {
|
|
106
|
+
const actualLevel = await sendMessage({
|
|
107
|
+
what: 'setDefaultFilteringMode',
|
|
108
|
+
level: newLevel,
|
|
108
109
|
});
|
|
109
|
-
cachedRulesetData.defaultFilteringMode =
|
|
110
|
+
cachedRulesetData.defaultFilteringMode = actualLevel;
|
|
110
111
|
break;
|
|
111
112
|
}
|
|
112
113
|
case 2:
|
|
113
|
-
case 3: {
|
|
114
|
+
case 3: {
|
|
114
115
|
const granted = await browser.permissions.request({
|
|
115
|
-
origins: [ '<all_urls>' ]
|
|
116
|
+
origins: [ '<all_urls>' ],
|
|
116
117
|
});
|
|
117
118
|
if ( granted ) {
|
|
118
119
|
const actualLevel = await sendMessage({
|
|
@@ -120,6 +121,7 @@ async function onFilteringModeChange(ev) {
|
|
|
120
121
|
level: newLevel,
|
|
121
122
|
});
|
|
122
123
|
cachedRulesetData.defaultFilteringMode = actualLevel;
|
|
124
|
+
cachedRulesetData.hasOmnipotence = true;
|
|
123
125
|
}
|
|
124
126
|
break;
|
|
125
127
|
}
|
|
@@ -233,6 +235,13 @@ listen.onmessage = ev => {
|
|
|
233
235
|
}
|
|
234
236
|
}
|
|
235
237
|
|
|
238
|
+
if ( message.hasOmnipotence !== undefined ) {
|
|
239
|
+
if ( message.hasOmnipotence !== local.hasOmnipotence ) {
|
|
240
|
+
local.hasOmnipotence = message.hasOmnipotence;
|
|
241
|
+
render = true;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
236
245
|
if ( message.defaultFilteringMode !== undefined ) {
|
|
237
246
|
if ( message.defaultFilteringMode !== local.defaultFilteringMode ) {
|
|
238
247
|
local.defaultFilteringMode = message.defaultFilteringMode;
|
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
Home: https://github.com/gorhill/uBlock
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
+
import { browser } from './ext.js';
|
|
23
|
+
|
|
22
24
|
/******************************************************************************/
|
|
23
25
|
|
|
24
26
|
function parsedURLromOrigin(origin) {
|
|
@@ -134,6 +136,16 @@ const broadcastMessage = message => {
|
|
|
134
136
|
|
|
135
137
|
/******************************************************************************/
|
|
136
138
|
|
|
139
|
+
// https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/manifest.json/host_permissions#requested_permissions_and_user_prompts
|
|
140
|
+
// "Users can grant or revoke host permissions on an ad hoc basis. Therefore,
|
|
141
|
+
// most browsers treat host_permissions as optional."
|
|
142
|
+
|
|
143
|
+
async function hasBroadHostPermissions() {
|
|
144
|
+
return browser.permissions.contains({ origins: [ '<all_urls>' ] });
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/******************************************************************************/
|
|
148
|
+
|
|
137
149
|
export {
|
|
138
150
|
broadcastMessage,
|
|
139
151
|
parsedURLromOrigin,
|
|
@@ -145,4 +157,5 @@ export {
|
|
|
145
157
|
matchFromHostname,
|
|
146
158
|
matchesFromHostnames,
|
|
147
159
|
hostnamesFromMatches,
|
|
160
|
+
hasBroadHostPermissions,
|
|
148
161
|
};
|
|
@@ -273,6 +273,9 @@
|
|
|
273
273
|
},
|
|
274
274
|
"default_locale": "en",
|
|
275
275
|
"description": "__MSG_extShortDesc__",
|
|
276
|
+
"host_permissions": [
|
|
277
|
+
"<all_urls>"
|
|
278
|
+
],
|
|
276
279
|
"icons": {
|
|
277
280
|
"16": "img/icon_16.png",
|
|
278
281
|
"32": "img/icon_32.png",
|
|
@@ -283,9 +286,6 @@
|
|
|
283
286
|
"minimum_chrome_version": "122.0",
|
|
284
287
|
"name": "__MSG_extName__",
|
|
285
288
|
"options_page": "dashboard.html",
|
|
286
|
-
"optional_host_permissions": [
|
|
287
|
-
"<all_urls>"
|
|
288
|
-
],
|
|
289
289
|
"permissions": [
|
|
290
290
|
"activeTab",
|
|
291
291
|
"declarativeNetRequest",
|
|
@@ -296,7 +296,7 @@
|
|
|
296
296
|
"storage": {
|
|
297
297
|
"managed_schema": "managed_storage.json"
|
|
298
298
|
},
|
|
299
|
-
"version": "2025.4.
|
|
299
|
+
"version": "2025.4.13.1188",
|
|
300
300
|
"web_accessible_resources": [
|
|
301
301
|
{
|
|
302
302
|
"resources": [
|
|
@@ -321,6 +321,7 @@
|
|
|
321
321
|
"/web_accessible_resources/noop.js",
|
|
322
322
|
"/web_accessible_resources/google-ima.js",
|
|
323
323
|
"/web_accessible_resources/noop.txt",
|
|
324
|
+
"/web_accessible_resources/amazon_apstag.js",
|
|
324
325
|
"/web_accessible_resources/noop-1s.mp4",
|
|
325
326
|
"/web_accessible_resources/noop.css",
|
|
326
327
|
"/web_accessible_resources/2x2.png",
|
|
@@ -334,7 +335,6 @@
|
|
|
334
335
|
"/web_accessible_resources/googlesyndication_adsbygoogle.js",
|
|
335
336
|
"/web_accessible_resources/google-analytics_analytics.js",
|
|
336
337
|
"/web_accessible_resources/prebid-ads.js",
|
|
337
|
-
"/web_accessible_resources/amazon_apstag.js",
|
|
338
338
|
"/web_accessible_resources/doubleclick_instream_ad_status.js",
|
|
339
339
|
"/web_accessible_resources/google-analytics_cx_api.js",
|
|
340
340
|
"/web_accessible_resources/googletagservices_gpt.js",
|