@browserless.io/browserless 2.36.0 → 2.37.1
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 +16 -2
- package/build/browsers/index.d.ts +1 -0
- package/build/browsers/index.js +18 -2
- package/build/http.d.ts +3 -2
- package/build/http.js +3 -2
- package/build/routes/chrome/http/content.post.query.json +3 -0
- package/build/routes/chrome/http/download.post.query.json +3 -0
- package/build/routes/chrome/http/function.post.query.json +3 -0
- package/build/routes/chrome/http/pdf.post.query.json +3 -0
- package/build/routes/chrome/http/performance.post.query.json +3 -0
- package/build/routes/chrome/http/scrape.post.query.json +3 -0
- package/build/routes/chrome/http/screenshot.post.query.json +3 -0
- package/build/routes/chrome/tests/content.spec.js +21 -0
- package/build/routes/chrome/tests/json.spec.js +100 -0
- package/build/routes/chrome/tests/kill-sessions.spec.js +0 -11
- package/build/routes/chrome/ws/browser.query.json +3 -0
- package/build/routes/chrome/ws/cdp.query.json +3 -0
- package/build/routes/chrome/ws/function-connect.d.ts +7 -0
- package/build/routes/chrome/ws/function-connect.js +6 -0
- package/build/routes/chrome/ws/function-connect.query.json +123 -0
- package/build/routes/chrome/ws/page.query.json +3 -0
- package/build/routes/chromium/http/content.post.query.json +3 -0
- package/build/routes/chromium/http/download.post.query.json +3 -0
- package/build/routes/chromium/http/function.post.query.json +3 -0
- package/build/routes/chromium/http/pdf.post.query.json +3 -0
- package/build/routes/chromium/http/performance.post.query.json +3 -0
- package/build/routes/chromium/http/scrape.post.query.json +3 -0
- package/build/routes/chromium/http/screenshot.post.query.json +3 -0
- package/build/routes/chromium/tests/content.spec.js +21 -0
- package/build/routes/chromium/tests/function.spec.js +27 -0
- package/build/routes/chromium/tests/json.spec.js +100 -0
- package/build/routes/chromium/ws/browser.query.json +3 -0
- package/build/routes/chromium/ws/cdp.query.json +3 -0
- package/build/routes/chromium/ws/function-connect.d.ts +1 -0
- package/build/routes/chromium/ws/function-connect.js +1 -0
- package/build/routes/chromium/ws/function-connect.query.json +123 -0
- package/build/routes/chromium/ws/page.query.json +3 -0
- package/build/routes/edge/http/content.post.query.json +3 -0
- package/build/routes/edge/http/download.post.query.json +3 -0
- package/build/routes/edge/http/function.post.query.json +3 -0
- package/build/routes/edge/http/pdf.post.query.json +3 -0
- package/build/routes/edge/http/performance.post.query.json +3 -0
- package/build/routes/edge/http/scrape.post.query.json +3 -0
- package/build/routes/edge/http/screenshot.post.query.json +3 -0
- package/build/routes/edge/tests/content.spec.js +21 -0
- package/build/routes/edge/tests/json.spec.js +100 -0
- package/build/routes/edge/ws/browser.query.json +3 -0
- package/build/routes/edge/ws/cdp.query.json +3 -0
- package/build/routes/edge/ws/function-connect.d.ts +7 -0
- package/build/routes/edge/ws/function-connect.js +6 -0
- package/build/routes/edge/ws/function-connect.query.json +123 -0
- package/build/routes/edge/ws/page.query.json +3 -0
- package/build/routes/management/http/kill.get.query.json +3 -0
- package/build/routes/management/http/sessions.get.query.json +3 -0
- package/build/routes/management/tests/management.spec.js +44 -0
- package/build/sdk-utils.js +1 -1
- package/build/server.js +1 -1
- package/build/shared/function-connect.ws.d.ts +15 -0
- package/build/shared/function-connect.ws.js +13 -0
- package/build/shared/utils/function/handler.js +6 -4
- package/build/shim.js +11 -1
- package/build/shim.spec.js +14 -0
- package/build/types.d.ts +8 -0
- package/build/types.js +3 -0
- package/extensions/ublocklite/_locales/ar/messages.json +60 -24
- package/extensions/ublocklite/_locales/az/messages.json +36 -0
- package/extensions/ublocklite/_locales/be/messages.json +36 -0
- package/extensions/ublocklite/_locales/bg/messages.json +36 -0
- package/extensions/ublocklite/_locales/bn/messages.json +36 -0
- package/extensions/ublocklite/_locales/br_FR/messages.json +36 -0
- package/extensions/ublocklite/_locales/bs/messages.json +36 -0
- package/extensions/ublocklite/_locales/ca/messages.json +36 -0
- package/extensions/ublocklite/_locales/cs/messages.json +36 -0
- package/extensions/ublocklite/_locales/cv/messages.json +36 -0
- package/extensions/ublocklite/_locales/cy/messages.json +40 -4
- package/extensions/ublocklite/_locales/da/messages.json +39 -3
- package/extensions/ublocklite/_locales/de/messages.json +36 -0
- package/extensions/ublocklite/_locales/el/messages.json +36 -0
- package/extensions/ublocklite/_locales/en/messages.json +36 -0
- package/extensions/ublocklite/_locales/en_GB/messages.json +36 -0
- package/extensions/ublocklite/_locales/eo/messages.json +36 -0
- package/extensions/ublocklite/_locales/es/messages.json +36 -0
- package/extensions/ublocklite/_locales/et/messages.json +36 -0
- package/extensions/ublocklite/_locales/eu/messages.json +36 -0
- package/extensions/ublocklite/_locales/fa/messages.json +36 -0
- package/extensions/ublocklite/_locales/fi/messages.json +37 -1
- package/extensions/ublocklite/_locales/fil/messages.json +36 -0
- package/extensions/ublocklite/_locales/fr/messages.json +36 -0
- package/extensions/ublocklite/_locales/fy/messages.json +37 -1
- package/extensions/ublocklite/_locales/gl/messages.json +37 -1
- package/extensions/ublocklite/_locales/gu/messages.json +36 -0
- package/extensions/ublocklite/_locales/he/messages.json +36 -0
- package/extensions/ublocklite/_locales/hi/messages.json +36 -0
- package/extensions/ublocklite/_locales/hr/messages.json +36 -0
- package/extensions/ublocklite/_locales/hu/messages.json +36 -0
- package/extensions/ublocklite/_locales/hy/messages.json +36 -0
- package/extensions/ublocklite/_locales/id/messages.json +36 -0
- package/extensions/ublocklite/_locales/it/messages.json +36 -0
- package/extensions/ublocklite/_locales/ja/messages.json +36 -0
- package/extensions/ublocklite/_locales/ka/messages.json +36 -0
- package/extensions/ublocklite/_locales/kk/messages.json +36 -0
- package/extensions/ublocklite/_locales/kn/messages.json +36 -0
- package/extensions/ublocklite/_locales/ko/messages.json +36 -0
- package/extensions/ublocklite/_locales/lt/messages.json +36 -0
- package/extensions/ublocklite/_locales/lv/messages.json +36 -0
- package/extensions/ublocklite/_locales/mk/messages.json +36 -0
- package/extensions/ublocklite/_locales/ml/messages.json +36 -0
- package/extensions/ublocklite/_locales/mr/messages.json +36 -0
- package/extensions/ublocklite/_locales/ms/messages.json +36 -0
- package/extensions/ublocklite/_locales/nb/messages.json +53 -17
- package/extensions/ublocklite/_locales/nl/messages.json +36 -0
- package/extensions/ublocklite/_locales/oc/messages.json +36 -0
- package/extensions/ublocklite/_locales/pa/messages.json +36 -0
- package/extensions/ublocklite/_locales/pl/messages.json +36 -0
- package/extensions/ublocklite/_locales/pt_BR/messages.json +36 -0
- package/extensions/ublocklite/_locales/pt_PT/messages.json +36 -0
- package/extensions/ublocklite/_locales/ro/messages.json +36 -0
- package/extensions/ublocklite/_locales/ru/messages.json +36 -0
- package/extensions/ublocklite/_locales/si/messages.json +36 -0
- package/extensions/ublocklite/_locales/sk/messages.json +36 -0
- package/extensions/ublocklite/_locales/sl/messages.json +36 -0
- package/extensions/ublocklite/_locales/so/messages.json +36 -0
- package/extensions/ublocklite/_locales/sq/messages.json +36 -0
- package/extensions/ublocklite/_locales/sr/messages.json +36 -0
- package/extensions/ublocklite/_locales/sv/messages.json +36 -0
- package/extensions/ublocklite/_locales/sw/messages.json +36 -0
- package/extensions/ublocklite/_locales/ta/messages.json +36 -0
- package/extensions/ublocklite/_locales/te/messages.json +36 -0
- package/extensions/ublocklite/_locales/th/messages.json +36 -0
- package/extensions/ublocklite/_locales/tr/messages.json +36 -0
- package/extensions/ublocklite/_locales/uk/messages.json +36 -0
- package/extensions/ublocklite/_locales/ur/messages.json +36 -0
- package/extensions/ublocklite/_locales/vi/messages.json +36 -0
- package/extensions/ublocklite/_locales/zh_CN/messages.json +36 -0
- package/extensions/ublocklite/_locales/zh_TW/messages.json +36 -0
- package/extensions/ublocklite/css/dashboard-common.css +0 -1
- package/extensions/ublocklite/css/dashboard.css +8 -0
- package/extensions/ublocklite/css/settings.css +107 -1
- package/extensions/ublocklite/css/unpicker-ui.css +1 -0
- package/extensions/ublocklite/dashboard.html +48 -11
- package/extensions/ublocklite/js/background.js +57 -39
- package/extensions/ublocklite/js/backup-restore.js +153 -0
- package/extensions/ublocklite/js/config.js +2 -0
- package/extensions/ublocklite/js/dashboard.js +23 -5
- package/extensions/ublocklite/js/develop.js +2 -11
- package/extensions/ublocklite/js/dom.js +10 -0
- package/extensions/ublocklite/js/filter-lists.js +5 -5
- package/extensions/ublocklite/js/filter-manager-ui.js +486 -0
- package/extensions/ublocklite/js/filter-manager.js +85 -53
- package/extensions/ublocklite/js/jsonpath.js +25 -10
- package/extensions/ublocklite/js/mode-manager.js +8 -1
- package/extensions/ublocklite/js/picker-ui.js +2 -2
- package/extensions/ublocklite/js/popup.js +20 -20
- package/extensions/ublocklite/js/report.js +2 -4
- package/extensions/ublocklite/js/ro-dnr-editor.js +9 -5
- package/extensions/ublocklite/js/ruleset-manager.js +13 -8
- package/extensions/ublocklite/js/scripting/unpicker.js +3 -3
- package/extensions/ublocklite/js/settings.js +51 -0
- package/extensions/ublocklite/js/static-filtering-parser.js +4 -4
- package/extensions/ublocklite/js/troubleshooting.js +30 -18
- package/extensions/ublocklite/js/unpicker-ui.js +5 -5
- package/extensions/ublocklite/js/utils.js +14 -0
- package/extensions/ublocklite/manifest.json +3 -3
- package/extensions/ublocklite/rulesets/generic-details.json +2 -3
- package/extensions/ublocklite/rulesets/main/adguard-mobile.json +3 -2
- package/extensions/ublocklite/rulesets/main/adguard-spyware-url.json +6 -5
- package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +16 -6
- package/extensions/ublocklite/rulesets/main/annoyances-notifications.json +3 -1
- package/extensions/ublocklite/rulesets/main/annoyances-others.json +4 -3
- package/extensions/ublocklite/rulesets/main/annoyances-overlays.json +4 -3
- package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +5 -2
- package/extensions/ublocklite/rulesets/main/block-lan.json +3 -1
- package/extensions/ublocklite/rulesets/main/chn-0.json +28 -17
- package/extensions/ublocklite/rulesets/main/deu-0.json +2 -9
- package/extensions/ublocklite/rulesets/main/easylist.json +31 -73
- package/extensions/ublocklite/rulesets/main/easyprivacy.json +99 -27
- package/extensions/ublocklite/rulesets/main/fin-0.json +5 -2
- package/extensions/ublocklite/rulesets/main/fra-0.json +1 -1
- package/extensions/ublocklite/rulesets/main/hun-0.json +3 -2
- package/extensions/ublocklite/rulesets/main/idn-0.json +22 -8
- package/extensions/ublocklite/rulesets/main/ind-0.json +62 -43
- package/extensions/ublocklite/rulesets/main/irn-0.json +5 -4
- package/extensions/ublocklite/rulesets/main/isr-0.json +2 -3
- package/extensions/ublocklite/rulesets/main/ita-0.json +11 -2
- package/extensions/ublocklite/rulesets/main/jpn-1.json +54 -38
- package/extensions/ublocklite/rulesets/main/kor-1.json +6 -3
- package/extensions/ublocklite/rulesets/main/nld-0.json +4 -1
- package/extensions/ublocklite/rulesets/main/nor-0.json +2 -2
- package/extensions/ublocklite/rulesets/main/pgl.json +30 -6
- package/extensions/ublocklite/rulesets/main/pol-0.json +1 -1
- package/extensions/ublocklite/rulesets/main/rou-1.json +4 -2
- package/extensions/ublocklite/rulesets/main/rus-0.json +18 -11
- package/extensions/ublocklite/rulesets/main/rus-1.json +5 -4
- package/extensions/ublocklite/rulesets/main/spa-1.json +12 -6
- package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +10500 -90447
- package/extensions/ublocklite/rulesets/main/swe-1.json +39 -30
- package/extensions/ublocklite/rulesets/main/tur-0.json +12 -9
- package/extensions/ublocklite/rulesets/main/ublock-badware.json +39 -13
- package/extensions/ublocklite/rulesets/main/ublock-filters.json +77 -50
- package/extensions/ublocklite/rulesets/main/ubol-tests.json +28 -0
- package/extensions/ublocklite/rulesets/main/ukr-0.json +2 -2
- package/extensions/ublocklite/rulesets/main/urlhaus-full.json +2103 -582
- package/extensions/ublocklite/rulesets/main/vie-1.json +54 -52
- package/extensions/ublocklite/rulesets/regex/chn-0.json +2 -2
- package/extensions/ublocklite/rulesets/regex/easylist.json +1 -6
- package/extensions/ublocklite/rulesets/regex/jpn-1.json +1 -2
- package/extensions/ublocklite/rulesets/regex/swe-1.json +0 -1
- package/extensions/ublocklite/rulesets/regex/ublock-badware.json +8 -3
- package/extensions/ublocklite/rulesets/regex/ublock-filters.json +24 -16
- package/extensions/ublocklite/rulesets/ruleset-details.json +220 -220
- 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-others.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/ita-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/jpn-1.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/rus-1.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/swe-1.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generichigh/easylist.css +2 -1
- package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +3 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/jpn-1.css +1 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/ublock-filters.css +9 -1
- 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-others.js +2 -2
- 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 +3 -3
- 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/fin-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/grc-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/ind-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/ltu-0.js +1 -1
- 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 +1 -1
- 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 +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.addEventListener-defuser.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.adjust-setTimeout.js +332 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.json-prune-fetch-response.js +588 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.json-prune-xhr-response.js +597 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.remove-cookie.js +376 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-cookie-reload.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.xml-prune.js +443 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.prevent-requestAnimationFrame.js +6 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie-reload.js +2 -2
- 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 +88 -77
- 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-notifications.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.json-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.set-session-storage-item.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.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setTimeout.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-class.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-click-element.js +88 -77
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-replace-argument.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-replace-outbound-text.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-suppress-native-method.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.addEventListener-defuser.js +6 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.evaldata-prune.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +6 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.set-constant.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/est-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fin-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fin-0.remove-node-text.js +449 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fin-0.spoof-css.js +422 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-requestAnimationFrame.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-window-open.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.href-sanitizer.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.abort-current-script.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.addEventListener-defuser.js +6 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.href-sanitizer.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.json-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-fetch.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.json-prune-xhr-response.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-fetch.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-window-open.js +475 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-xhr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.remove-cookie.js +376 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ltu-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ltu-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-read.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-write.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-stack-trace.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +8 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.close-window.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.href-sanitizer.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.json-prune-fetch-response.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-setTimeout.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-window-open.js +5 -1
- 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-1.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.json-prune-xhr-response.js +597 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.set-constant.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +5 -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 +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-requestAnimationFrame.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +6 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.href-sanitizer.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-setTimeout.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-read.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.addEventListener-defuser.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-setTimeout.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +6 -2
- 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/tur-0.set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.trusted-replace-argument.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-json-edit-xhr-request.js +848 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-replace-node-text.js +1 -1
- 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 +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.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-fetch-response.js +29 -11
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit-xhr-response.js +24 -10
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit.js +31 -13
- 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 +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.jsonl-edit-xhr-response.js +26 -12
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +6 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +8 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +8 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +8 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +1 -1
- 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 +3 -3
- 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.set-session-storage-item.js +1 -1
- 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 +86 -75
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-create-html.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-request.js +941 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-response.js +31 -13
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit.js +869 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-override-element-method.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-dom-bypass.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-fetch.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +7 -3
- 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 +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-fetch-response.js +29 -11
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-xhr-response.js +24 -10
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.trusted-prevent-dom-bypass.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.prevent-window-open.js +5 -1
- 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.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-setTimeout.js +5 -1
- 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/grc-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/ltu-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/nld-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/tur-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ublock-badware.js +1 -1
- 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 +302 -143
- package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +6 -0
- package/extensions/ublocklite/rulesets/strictblock/annoyances-others.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/chn-0.json +289 -2
- package/extensions/ublocklite/rulesets/strictblock/easylist.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +79 -3
- package/extensions/ublocklite/rulesets/strictblock/idn-0.json +2 -0
- package/extensions/ublocklite/rulesets/strictblock/irn-0.json +4 -1
- package/extensions/ublocklite/rulesets/strictblock/isr-0.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/ita-0.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +205 -186
- package/extensions/ublocklite/rulesets/strictblock/nor-0.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/pgl.json +30 -6
- package/extensions/ublocklite/rulesets/strictblock/pol-0.json +4 -0
- package/extensions/ublocklite/rulesets/strictblock/rou-1.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +10500 -90447
- package/extensions/ublocklite/rulesets/strictblock/swe-1.json +0 -3
- package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +657 -650
- package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +23 -19
- package/extensions/ublocklite/rulesets/strictblock/ukr-0.json +3 -0
- package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +2103 -582
- package/extensions/ublocklite/rulesets/strictblock/vie-1.json +0 -3
- package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +31 -1
- package/extensions/ublocklite/ublock.zip +0 -0
- package/extensions/ublocklite/web_accessible_resources/google-ima.js +14 -7
- package/package.json +15 -14
- package/scripts/install-debugger.js +2 -2
- package/src/browsers/index.ts +25 -4
- package/src/http.ts +3 -2
- package/src/routes/chrome/tests/content.spec.ts +24 -0
- package/src/routes/chrome/tests/json.spec.ts +134 -0
- package/src/routes/chrome/tests/kill-sessions.spec.ts +0 -10
- package/src/routes/chrome/ws/function-connect.ts +12 -0
- package/src/routes/chromium/tests/content.spec.ts +24 -0
- package/src/routes/chromium/tests/function.spec.ts +33 -0
- package/src/routes/chromium/tests/json.spec.ts +134 -0
- package/src/routes/chromium/tests/scrape.spec.ts +3 -1
- package/src/routes/chromium/ws/function-connect.ts +1 -0
- package/src/routes/edge/tests/content.spec.ts +24 -0
- package/src/routes/edge/tests/json.spec.ts +134 -0
- package/src/routes/edge/ws/function-connect.ts +12 -0
- package/src/routes/management/tests/management.spec.ts +66 -0
- package/src/sdk-utils.ts +1 -1
- package/src/server.ts +1 -1
- package/src/shared/function-connect.ws.ts +38 -0
- package/src/shared/screenshot.http.ts +1 -1
- package/src/shared/utils/function/handler.ts +11 -6
- package/src/shim.spec.ts +18 -0
- package/src/shim.ts +15 -1
- package/src/types.ts +6 -0
- package/static/docs/swagger.json +107 -2
- package/static/docs/swagger.min.json +106 -1
- package/static/function/client.js +99 -111
- package/static/function/index.html +99 -111
- package/build/routes/chrome/tests/json-version.spec.js +0 -37
- package/build/routes/chromium/tests/json-version.spec.js +0 -37
- package/build/routes/edge/tests/json-version.spec.js +0 -37
- package/src/routes/chrome/tests/json-version.spec.ts +0 -52
- package/src/routes/chromium/tests/json-version.spec.ts +0 -52
- package/src/routes/edge/tests/json-version.spec.ts +0 -52
- /package/build/routes/chrome/tests/{json-version.spec.d.ts → json.spec.d.ts} +0 -0
- /package/build/routes/chromium/tests/{json-version.spec.d.ts → json.spec.d.ts} +0 -0
- /package/build/routes/edge/tests/{json-version.spec.d.ts → json.spec.d.ts} +0 -0
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
<span class="logo"><img data-i18n-title="extName" src="img/ublock.svg" alt="uBO Lite"></span><!--
|
|
26
26
|
--><button class="tabButton" type="button" data-pane="settings" data-i18n="settingsPageName" tabindex="0"></button><!--
|
|
27
27
|
--><button class="tabButton" type="button" data-pane="rulesets" data-i18n="aboutFilterLists" tabindex="0"></button><!--
|
|
28
|
+
--><button class="tabButton" type="button" data-pane="filters" data-i18n="customFiltersPageName"tabindex="0"></button><!--
|
|
28
29
|
--><button class="tabButton" type="button" data-pane="develop" data-i18n="developPageName"tabindex="0"></button><!--
|
|
29
30
|
--><button class="tabButton" type="button" data-pane="about" data-i18n="aboutPageName" tabindex="0"></button>
|
|
30
31
|
</nav>
|
|
@@ -37,13 +38,6 @@
|
|
|
37
38
|
</header>
|
|
38
39
|
<!-- -------- -->
|
|
39
40
|
<section data-pane="settings">
|
|
40
|
-
<div>
|
|
41
|
-
<h3 data-i18n="behaviorSectionLabel"></h3>
|
|
42
|
-
<p><label id="autoReload" data-i18n="autoReloadLabel"><span class="input checkbox"><input type="checkbox"><svg viewBox="0 0 24 24"><path d="M1.73,12.91 8.1,19.28 22.79,4.59"/></svg></span>_</label>
|
|
43
|
-
</p>
|
|
44
|
-
<p><label id="showBlockedCount" data-i18n="showBlockedCountLabel"><span class="input checkbox"><input type="checkbox"><svg viewBox="0 0 24 24"><path d="M1.73,12.91 8.1,19.28 22.79,4.59"/></svg></span>_</label>
|
|
45
|
-
</div>
|
|
46
|
-
|
|
47
41
|
<div>
|
|
48
42
|
<h3 data-i18n="defaultFilteringModeSectionLabel"></h3>
|
|
49
43
|
<p data-i18n="defaultFilteringModeDescription"></p>
|
|
@@ -94,15 +88,43 @@
|
|
|
94
88
|
<div data-i18n="completeFilteringModeDescription"></div>
|
|
95
89
|
</label>
|
|
96
90
|
</div>
|
|
97
|
-
|
|
91
|
+
</div>
|
|
92
|
+
<div>
|
|
93
|
+
<h3 data-i18n="behaviorSectionLabel"></h3>
|
|
94
|
+
<p><label id="autoReload" data-i18n="autoReloadLabel"><span class="input checkbox"><input type="checkbox"><svg viewBox="0 0 24 24"><path d="M1.73,12.91 8.1,19.28 22.79,4.59"/></svg></span>_</label>
|
|
95
|
+
</p>
|
|
96
|
+
<p><label id="showBlockedCount" data-i18n="showBlockedCountLabel"><span class="input checkbox"><input type="checkbox"><svg viewBox="0 0 24 24"><path d="M1.73,12.91 8.1,19.28 22.79,4.59"/></svg></span>_</label>
|
|
97
|
+
<p data-platform-exclude="safari"><label id="strictBlockMode" data-i18n="enableStrictBlockLabel"><span class="input checkbox"><input type="checkbox"><svg viewBox="0 0 24 24"><path d="M1.73,12.91 8.1,19.28 22.79,4.59"/></svg></span>_</label><legend data-i18n="enableStrictBlockLegend"></legend>
|
|
98
98
|
<p id="developerMode"><label data-i18n="developerModeLabel"><span class="input checkbox"><input type="checkbox"><svg viewBox="0 0 24 24"><path d="M1.73,12.91 8.1,19.28 22.79,4.59"/></svg></span>_</label><legend data-i18n="developerModeLegend"></legend>
|
|
99
99
|
</div>
|
|
100
|
+
<div>
|
|
101
|
+
<h3 data-i18n="settingsBackupRestoreLabel">_</h3>
|
|
102
|
+
<p data-i18n="settingsBackupRestoreSummary">_</p>
|
|
103
|
+
<p>
|
|
104
|
+
<button class="iconified dontshrink" type="button"><span class="fa-icon">download-alt</span><span data-i18n="backupButton">_</span><span class="hover"></span></button>
|
|
105
|
+
<button class="iconified dontshrink" type="button"><span class="fa-icon">upload-alt</span><span data-i18n="restoreButton">_</span><span class="hover"></span></button><input type="file" accept="application/json">
|
|
106
|
+
</p>
|
|
107
|
+
</div>
|
|
100
108
|
</section>
|
|
101
109
|
<!-- -------- -->
|
|
102
110
|
<section data-pane="rulesets">
|
|
103
111
|
<div id="lists"></div>
|
|
104
112
|
</section>
|
|
105
113
|
<!-- -------- -->
|
|
114
|
+
<section data-pane="filters">
|
|
115
|
+
<ul class="hostnames"></ul>
|
|
116
|
+
<aside>
|
|
117
|
+
<details class="importFromText"><summary data-i18n="customFiltersImportExportLabel">_</summary>
|
|
118
|
+
<div><textarea spellcheck="false" placeholder="customFiltersImportTextareaPlaceholder"></textarea></div>
|
|
119
|
+
<p>
|
|
120
|
+
<button class="iconified dontshrink" type="button"><span class="fa-icon">check</span><span data-i18n="addButton">_</span><span class="hover"></span></button>
|
|
121
|
+
<button class="iconified dontshrink" type="button"><span class="fa-icon">download-alt</span><span data-i18n="importAndAppendButton">_</span><span class="hover"></span></button>
|
|
122
|
+
<button class="iconified dontshrink" type="button"><span class="fa-icon">upload-alt</span><span data-i18n="exportButton">_</span><span class="hover"></span></button><input type="file" accept="text/plain">
|
|
123
|
+
</p>
|
|
124
|
+
</details>
|
|
125
|
+
</aside>
|
|
126
|
+
</section>
|
|
127
|
+
<!-- -------- -->
|
|
106
128
|
<section data-pane="develop">
|
|
107
129
|
<div>
|
|
108
130
|
<p>
|
|
@@ -150,8 +172,7 @@
|
|
|
150
172
|
</div>
|
|
151
173
|
</section>
|
|
152
174
|
<!-- -------- -->
|
|
153
|
-
<
|
|
154
|
-
<div class="listEntries"></div>
|
|
175
|
+
<template id="listEntryLeaf">
|
|
155
176
|
<div class="listEntry" data-role="leaf">
|
|
156
177
|
<span class="detailbar">
|
|
157
178
|
<label><span class="input checkbox"><input type="checkbox"><svg viewBox="0 0 24 24"><path d="M1.73,12.91 8.1,19.28 22.79,4.59"/></svg></span><span class="listname forinput"></span>
|
|
@@ -161,6 +182,8 @@
|
|
|
161
182
|
</span>
|
|
162
183
|
</span>
|
|
163
184
|
</div>
|
|
185
|
+
</template>
|
|
186
|
+
<template id="listEntryNode">
|
|
164
187
|
<div class="listEntry expandable" data-role="node">
|
|
165
188
|
<span class="detailbar">
|
|
166
189
|
<label><span class="input checkbox"><input type="checkbox"><svg viewBox="0 0 24 24"><path d="M1.73,12.91 8.1,19.28 22.79,4.59"/></svg></span><span class="listname forinput"></span></label>
|
|
@@ -168,6 +191,8 @@
|
|
|
168
191
|
<span class="fa-icon listExpander">angle-up</span>
|
|
169
192
|
</span>
|
|
170
193
|
</div>
|
|
194
|
+
</template>
|
|
195
|
+
<template id="listEntryRoot">
|
|
171
196
|
<div class="listEntry expandable" data-role="rootnode">
|
|
172
197
|
<div class="detailbar">
|
|
173
198
|
<h3 class="listname"></h3>
|
|
@@ -175,7 +200,18 @@
|
|
|
175
200
|
<span class="fa-icon listExpander">angle-up</span>
|
|
176
201
|
</div>
|
|
177
202
|
</div>
|
|
178
|
-
</
|
|
203
|
+
</template>
|
|
204
|
+
<template id="listEntries">
|
|
205
|
+
<div class="listEntries"></div>
|
|
206
|
+
</template>
|
|
207
|
+
<template id="customFiltersHostname">
|
|
208
|
+
<li class="hostname"><div><span class="hostname" spellcheck="false" contenteditable="plaintext-only" data-pretty="" data-ugly=""></span><span class="remove fa-icon">trash-o</span><span class="undo fa-icon">undo</span></div>
|
|
209
|
+
<ul class="selectors"></ul>
|
|
210
|
+
</li>
|
|
211
|
+
</template>
|
|
212
|
+
<template id="customFiltersSelector">
|
|
213
|
+
<li class="selector"><div><span class="selector" spellcheck="false" contenteditable="plaintext-only" data-pretty="" data-ugly=""></span><span class="remove fa-icon">trash-o</span><span class="undo fa-icon">undo</span></div></li>
|
|
214
|
+
</template>
|
|
179
215
|
<template class="io-panel">
|
|
180
216
|
<span class="io-panel">
|
|
181
217
|
<button id="apply" class="preferred iconified" type="button" disabled><span class="fa-icon">save</span><span data-i18n="saveButton">_</span><span class="hover"></span></button>
|
|
@@ -209,6 +245,7 @@
|
|
|
209
245
|
<script src="js/i18n.js" type="module"></script>
|
|
210
246
|
<script src="js/dashboard.js" type="module"></script>
|
|
211
247
|
<script src="js/settings.js" type="module"></script>
|
|
248
|
+
<script src="js/filter-manager-ui.js" type="module"></script>
|
|
212
249
|
<script src="js/develop.js" type="module"></script>
|
|
213
250
|
|
|
214
251
|
</body>
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
import {
|
|
23
23
|
MODE_BASIC,
|
|
24
24
|
MODE_OPTIMAL,
|
|
25
|
+
defaultFilteringModes,
|
|
25
26
|
getDefaultFilteringMode,
|
|
26
27
|
getFilteringMode,
|
|
27
28
|
getFilteringModeDetails,
|
|
@@ -32,11 +33,13 @@ import {
|
|
|
32
33
|
} from './mode-manager.js';
|
|
33
34
|
|
|
34
35
|
import {
|
|
35
|
-
|
|
36
|
+
addCustomFilters,
|
|
37
|
+
customFiltersFromHostname,
|
|
38
|
+
getAllCustomFilters,
|
|
36
39
|
hasCustomFilters,
|
|
37
40
|
injectCustomFilters,
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
removeAllCustomFilters,
|
|
42
|
+
removeCustomFilters,
|
|
40
43
|
startCustomFilters,
|
|
41
44
|
terminateCustomFilters,
|
|
42
45
|
} from './filter-manager.js';
|
|
@@ -61,9 +64,18 @@ import {
|
|
|
61
64
|
webextFlavor,
|
|
62
65
|
} from './ext.js';
|
|
63
66
|
|
|
67
|
+
import {
|
|
68
|
+
defaultConfig,
|
|
69
|
+
loadRulesetConfig,
|
|
70
|
+
process,
|
|
71
|
+
rulesetConfig,
|
|
72
|
+
saveRulesetConfig,
|
|
73
|
+
} from './config.js';
|
|
74
|
+
|
|
64
75
|
import {
|
|
65
76
|
enableRulesets,
|
|
66
77
|
excludeFromStrictBlock,
|
|
78
|
+
getDefaultRulesetsFromEnv,
|
|
67
79
|
getEffectiveDynamicRules,
|
|
68
80
|
getEffectiveSessionRules,
|
|
69
81
|
getEffectiveUserRules,
|
|
@@ -76,6 +88,7 @@ import {
|
|
|
76
88
|
} from './ruleset-manager.js';
|
|
77
89
|
|
|
78
90
|
import {
|
|
91
|
+
getConsoleOutput,
|
|
79
92
|
getMatchedRules,
|
|
80
93
|
isSideloaded,
|
|
81
94
|
toggleDeveloperMode,
|
|
@@ -83,15 +96,7 @@ import {
|
|
|
83
96
|
ubolLog,
|
|
84
97
|
} from './debug.js';
|
|
85
98
|
|
|
86
|
-
import {
|
|
87
|
-
loadRulesetConfig,
|
|
88
|
-
process,
|
|
89
|
-
rulesetConfig,
|
|
90
|
-
saveRulesetConfig,
|
|
91
|
-
} from './config.js';
|
|
92
|
-
|
|
93
99
|
import { dnr } from './ext-compat.js';
|
|
94
|
-
import { getTroubleshootingInfo } from './troubleshooting.js';
|
|
95
100
|
import { registerInjectables } from './scripting-manager.js';
|
|
96
101
|
import { toggleToolbarIcon } from './action.js';
|
|
97
102
|
|
|
@@ -109,18 +114,6 @@ function getCurrentVersion() {
|
|
|
109
114
|
return runtime.getManifest().version;
|
|
110
115
|
}
|
|
111
116
|
|
|
112
|
-
// The goal is just to be able to find out whether a specific version is older
|
|
113
|
-
// than another one.
|
|
114
|
-
|
|
115
|
-
function intFromVersion(version) {
|
|
116
|
-
const match = /^(\d+)\.(\d+)\.(\d+)$/.exec(version);
|
|
117
|
-
if ( match === null ) { return 0; }
|
|
118
|
-
const year = parseInt(match[1], 10);
|
|
119
|
-
const monthday = parseInt(match[2], 10);
|
|
120
|
-
const min = parseInt(match[3], 10);
|
|
121
|
-
return (year - 2022) * (1232 * 2400) + monthday * 2400 + min;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
117
|
/******************************************************************************/
|
|
125
118
|
|
|
126
119
|
async function onPermissionsRemoved() {
|
|
@@ -282,6 +275,19 @@ function onMessage(request, sender, callback) {
|
|
|
282
275
|
return true;
|
|
283
276
|
}
|
|
284
277
|
|
|
278
|
+
case 'getDefaultConfig':
|
|
279
|
+
getDefaultRulesetsFromEnv().then(rulesets => {
|
|
280
|
+
callback({
|
|
281
|
+
autoReload: defaultConfig.autoReload,
|
|
282
|
+
developerMode: defaultConfig.developerMode,
|
|
283
|
+
showBlockedCount: defaultConfig.showBlockedCount,
|
|
284
|
+
strictBlockMode: defaultConfig.strictBlockMode,
|
|
285
|
+
rulesets,
|
|
286
|
+
filteringModes: Object.assign(defaultFilteringModes),
|
|
287
|
+
});
|
|
288
|
+
});
|
|
289
|
+
return true;
|
|
290
|
+
|
|
285
291
|
case 'getOptionsPageData':
|
|
286
292
|
Promise.all([
|
|
287
293
|
hasBroadHostPermissions(),
|
|
@@ -319,6 +325,12 @@ function onMessage(request, sender, callback) {
|
|
|
319
325
|
});
|
|
320
326
|
return true;
|
|
321
327
|
|
|
328
|
+
case 'getEnabledRulesets':
|
|
329
|
+
dnr.getEnabledRulesets().then(rulesets => {
|
|
330
|
+
callback(rulesets);
|
|
331
|
+
});
|
|
332
|
+
return true;
|
|
333
|
+
|
|
322
334
|
case 'getRulesetDetails':
|
|
323
335
|
getRulesetDetails().then(rulesetDetails => {
|
|
324
336
|
callback(Array.from(rulesetDetails.values()));
|
|
@@ -487,8 +499,8 @@ function onMessage(request, sender, callback) {
|
|
|
487
499
|
});
|
|
488
500
|
return true;
|
|
489
501
|
|
|
490
|
-
case '
|
|
491
|
-
|
|
502
|
+
case 'addCustomFilters':
|
|
503
|
+
addCustomFilters(request.hostname, request.selectors).then(modified => {
|
|
492
504
|
if ( modified !== true ) { return; }
|
|
493
505
|
return registerInjectables();
|
|
494
506
|
}).then(( ) => {
|
|
@@ -496,8 +508,17 @@ function onMessage(request, sender, callback) {
|
|
|
496
508
|
})
|
|
497
509
|
return true;
|
|
498
510
|
|
|
499
|
-
case '
|
|
500
|
-
|
|
511
|
+
case 'removeCustomFilters':
|
|
512
|
+
removeCustomFilters(request.hostname, request.selectors).then(modified => {
|
|
513
|
+
if ( modified !== true ) { return; }
|
|
514
|
+
return registerInjectables();
|
|
515
|
+
}).then(( ) => {
|
|
516
|
+
callback();
|
|
517
|
+
});
|
|
518
|
+
return true;
|
|
519
|
+
|
|
520
|
+
case 'removeAllCustomFilters':
|
|
521
|
+
removeAllCustomFilters(request.hostname).then(modified => {
|
|
501
522
|
if ( modified !== true ) { return; }
|
|
502
523
|
return registerInjectables();
|
|
503
524
|
}).then(( ) => {
|
|
@@ -505,18 +526,22 @@ function onMessage(request, sender, callback) {
|
|
|
505
526
|
});
|
|
506
527
|
return true;
|
|
507
528
|
|
|
508
|
-
case '
|
|
509
|
-
|
|
529
|
+
case 'customFiltersFromHostname':
|
|
530
|
+
customFiltersFromHostname(request.hostname).then(selectors => {
|
|
510
531
|
callback(selectors);
|
|
511
532
|
});
|
|
512
533
|
return true;
|
|
513
534
|
|
|
514
|
-
case '
|
|
515
|
-
|
|
516
|
-
callback(
|
|
535
|
+
case 'getAllCustomFilters':
|
|
536
|
+
getAllCustomFilters().then(data => {
|
|
537
|
+
callback(data);
|
|
517
538
|
});
|
|
518
539
|
return true;
|
|
519
540
|
|
|
541
|
+
case 'getConsoleOutput':
|
|
542
|
+
callback(getConsoleOutput());
|
|
543
|
+
break;
|
|
544
|
+
|
|
520
545
|
default:
|
|
521
546
|
break;
|
|
522
547
|
}
|
|
@@ -566,13 +591,6 @@ async function startSession() {
|
|
|
566
591
|
// obsolete ruleset to remove.
|
|
567
592
|
if ( isNewVersion ) {
|
|
568
593
|
ubolLog(`Version change: ${rulesetConfig.version} => ${currentVersion}`);
|
|
569
|
-
// https://github.com/uBlockOrigin/uBOL-home/issues/428#issuecomment-3172663563
|
|
570
|
-
if ( webextFlavor === 'safari' && rulesetConfig.strictBlockMode ) {
|
|
571
|
-
const before = intFromVersion(rulesetConfig.version);
|
|
572
|
-
if ( before <= intFromVersion('2025.804.2359') ) {
|
|
573
|
-
rulesetConfig.strictBlockMode = false;
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
594
|
rulesetConfig.version = currentVersion;
|
|
577
595
|
await patchDefaultRulesets();
|
|
578
596
|
saveRulesetConfig();
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/*******************************************************************************
|
|
2
|
+
|
|
3
|
+
uBlock Origin Lite - a comprehensive, MV3-compliant content blocker
|
|
4
|
+
Copyright (C) 2022-present Raymond Hill
|
|
5
|
+
|
|
6
|
+
This program is free software: you can redistribute it and/or modify
|
|
7
|
+
it under the terms of the GNU General Public License as published by
|
|
8
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
(at your option) any later version.
|
|
10
|
+
|
|
11
|
+
This program is distributed in the hope that it will be useful,
|
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
GNU General Public License for more details.
|
|
15
|
+
|
|
16
|
+
You should have received a copy of the GNU General Public License
|
|
17
|
+
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
|
18
|
+
|
|
19
|
+
Home: https://github.com/gorhill/uBlock
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
import {
|
|
23
|
+
localRead, localRemove, localWrite,
|
|
24
|
+
runtime,
|
|
25
|
+
sendMessage,
|
|
26
|
+
} from './ext.js';
|
|
27
|
+
|
|
28
|
+
/******************************************************************************/
|
|
29
|
+
|
|
30
|
+
export async function backupToObject(currentConfig) {
|
|
31
|
+
const out = {};
|
|
32
|
+
const manifest = runtime.getManifest();
|
|
33
|
+
out.version = manifest.versionName ?? manifest.version;
|
|
34
|
+
const defaultConfig = await sendMessage({ what: 'getDefaultConfig' });
|
|
35
|
+
if ( currentConfig.autoReload !== defaultConfig.autoReload ) {
|
|
36
|
+
out.autoReload = currentConfig.autoReload;
|
|
37
|
+
}
|
|
38
|
+
if ( currentConfig.developerMode !== defaultConfig.developerMode ) {
|
|
39
|
+
out.developerMode = currentConfig.developerMode;
|
|
40
|
+
}
|
|
41
|
+
if ( currentConfig.showBlockedCount !== defaultConfig.showBlockedCount ) {
|
|
42
|
+
out.showBlockedCount = currentConfig.showBlockedCount;
|
|
43
|
+
}
|
|
44
|
+
if ( currentConfig.strictBlockMode !== defaultConfig.strictBlockMode ) {
|
|
45
|
+
out.strictBlockMode = currentConfig.strictBlockMode;
|
|
46
|
+
}
|
|
47
|
+
const { enabledRulesets } = currentConfig;
|
|
48
|
+
const customRulesets = [];
|
|
49
|
+
for ( const id of enabledRulesets ) {
|
|
50
|
+
if ( defaultConfig.rulesets.includes(id) ) { continue; }
|
|
51
|
+
customRulesets.push(`+${id}`);
|
|
52
|
+
}
|
|
53
|
+
for ( const id of defaultConfig.rulesets ) {
|
|
54
|
+
if ( enabledRulesets.includes(id) ) { continue; }
|
|
55
|
+
customRulesets.push(`-${id}`);
|
|
56
|
+
}
|
|
57
|
+
if ( customRulesets.length !== 0 ) {
|
|
58
|
+
out.rulesets = customRulesets;
|
|
59
|
+
}
|
|
60
|
+
out.filteringModes = await sendMessage({ what: 'getFilteringModeDetails' });
|
|
61
|
+
const customFilters = await sendMessage({ what: 'getAllCustomFilters' });
|
|
62
|
+
const filters = [];
|
|
63
|
+
for ( const [ hostname, selectors ] of customFilters ) {
|
|
64
|
+
for ( const selector of selectors ) {
|
|
65
|
+
filters.push(`${hostname}##${selector}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if ( filters.length !== 0 ) {
|
|
69
|
+
out.cosmeticFilters = filters;
|
|
70
|
+
}
|
|
71
|
+
const dnrRules = await localRead('userDnrRules');
|
|
72
|
+
if ( typeof dnrRules === 'string' && dnrRules.length !== 0 ) {
|
|
73
|
+
out.dnrRules = dnrRules.split(/\n+/);
|
|
74
|
+
}
|
|
75
|
+
return out;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/******************************************************************************/
|
|
79
|
+
|
|
80
|
+
export async function restoreFromObject(targetConfig) {
|
|
81
|
+
const defaultConfig = await sendMessage({ what: 'getDefaultConfig' });
|
|
82
|
+
|
|
83
|
+
await sendMessage({
|
|
84
|
+
what: 'setAutoReload',
|
|
85
|
+
state: targetConfig.autoReload ?? defaultConfig.autoReload
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
await sendMessage({
|
|
89
|
+
what: 'setShowBlockedCount',
|
|
90
|
+
state: targetConfig.showBlockedCount ?? defaultConfig.showBlockedCount
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
await sendMessage({
|
|
94
|
+
what: 'setDeveloperMode',
|
|
95
|
+
state: targetConfig.developerMode ?? defaultConfig.developerMode
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
await sendMessage({
|
|
99
|
+
what: 'setStrictBlockMode',
|
|
100
|
+
state: targetConfig.strictBlockMode ?? defaultConfig.strictBlockMode
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
const enabledRulesets = new Set(defaultConfig.rulesets);
|
|
104
|
+
for ( const entry of targetConfig.rulesets || [] ) {
|
|
105
|
+
const id = entry.slice(1);
|
|
106
|
+
if ( entry.startsWith('+') ) {
|
|
107
|
+
enabledRulesets.add(id);
|
|
108
|
+
} else if ( entry.startsWith('-') ) {
|
|
109
|
+
enabledRulesets.delete(id);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
await sendMessage({
|
|
113
|
+
what: 'applyRulesets',
|
|
114
|
+
enabledRulesets: Array.from(enabledRulesets),
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
await sendMessage({
|
|
118
|
+
what: 'setFilteringModeDetails',
|
|
119
|
+
modes: targetConfig.filteringModes ?? defaultConfig.filteringModes,
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
await sendMessage({ what: 'removeAllCustomFilters', hostname: '*' });
|
|
123
|
+
const hostnameMap = new Map();
|
|
124
|
+
for ( const line of targetConfig.cosmeticFilters ?? [] ) {
|
|
125
|
+
const i = line.indexOf('##');
|
|
126
|
+
if ( i === -1 ) { continue; }
|
|
127
|
+
const hostname = line.slice(0, i);
|
|
128
|
+
if ( hostname === '' ) { continue; }
|
|
129
|
+
const selector = line.slice(i+2);
|
|
130
|
+
if ( selector === '' ) { continue; }
|
|
131
|
+
const selectors = hostnameMap.get(hostname) || [];
|
|
132
|
+
if ( selectors.length === 0 ) {
|
|
133
|
+
hostnameMap.set(hostname, selectors)
|
|
134
|
+
}
|
|
135
|
+
selectors.push(selector);
|
|
136
|
+
}
|
|
137
|
+
const promises = [];
|
|
138
|
+
for ( const [ hostname, selectors ] of hostnameMap ) {
|
|
139
|
+
promises.push(
|
|
140
|
+
sendMessage({ what: 'addCustomFilters', hostname, selectors })
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
await Promise.all(promises);
|
|
144
|
+
|
|
145
|
+
const dnrRules = targetConfig.dnrRules ?? [];
|
|
146
|
+
if ( dnrRules.length !== 0 ) {
|
|
147
|
+
await localWrite('userDnrRules', dnrRules.join('\n'));
|
|
148
|
+
} else {
|
|
149
|
+
await localRemove('userDnrRules');
|
|
150
|
+
}
|
|
151
|
+
await sendMessage({ what: 'updateUserDnrRules' });
|
|
152
|
+
|
|
153
|
+
}
|
|
@@ -21,15 +21,17 @@
|
|
|
21
21
|
|
|
22
22
|
import { dom, qs$ } from './dom.js';
|
|
23
23
|
import {
|
|
24
|
-
localRead,
|
|
25
|
-
localRemove,
|
|
26
|
-
localWrite,
|
|
24
|
+
localRead, localRemove, localWrite,
|
|
27
25
|
runtime,
|
|
28
|
-
|
|
26
|
+
webextFlavor,
|
|
29
27
|
} from './ext.js';
|
|
28
|
+
import { faIconsInit } from './fa-icons.js';
|
|
29
|
+
import { i18n } from './i18n.js';
|
|
30
30
|
|
|
31
31
|
/******************************************************************************/
|
|
32
32
|
|
|
33
|
+
dom.body.dataset.platform = webextFlavor;
|
|
34
|
+
|
|
33
35
|
{
|
|
34
36
|
const manifest = runtime.getManifest();
|
|
35
37
|
dom.text('#aboutNameVer', `${manifest.name} ${manifest.version}`);
|
|
@@ -55,7 +57,9 @@ localRead('dashboard.activePane').then(pane => {
|
|
|
55
57
|
// Update troubleshooting on-demand
|
|
56
58
|
const tsinfoObserver = new IntersectionObserver(entries => {
|
|
57
59
|
if ( entries.every(a => a.isIntersecting === false) ) { return; }
|
|
58
|
-
|
|
60
|
+
import('./troubleshooting.js').then(module => {
|
|
61
|
+
return module.getTroubleshootingInfo();
|
|
62
|
+
}).then(config => {
|
|
59
63
|
qs$('[data-i18n="supportS5H"] + pre').textContent = config;
|
|
60
64
|
});
|
|
61
65
|
});
|
|
@@ -63,7 +67,21 @@ tsinfoObserver.observe(qs$('[data-i18n="supportS5H"] + pre'));
|
|
|
63
67
|
|
|
64
68
|
/******************************************************************************/
|
|
65
69
|
|
|
70
|
+
export function nodeFromTemplate(templateId, nodeSelector) {
|
|
71
|
+
const template = qs$(`template#${templateId}`);
|
|
72
|
+
const fragment = template.content.cloneNode(true);
|
|
73
|
+
const node = nodeSelector !== undefined
|
|
74
|
+
? qs$(fragment, nodeSelector)
|
|
75
|
+
: fragment.firstElementChild;
|
|
76
|
+
faIconsInit(node);
|
|
77
|
+
i18n.render(node);
|
|
78
|
+
return node;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/******************************************************************************/
|
|
82
|
+
|
|
66
83
|
export function hashFromIterable(iter) {
|
|
84
|
+
if ( Boolean(iter) === false ) { return ''; }
|
|
67
85
|
return Array.from(iter).sort().join('\n');
|
|
68
86
|
}
|
|
69
87
|
|
|
@@ -517,7 +517,7 @@ class Editor {
|
|
|
517
517
|
importFromFile() {
|
|
518
518
|
const editor = this.editor;
|
|
519
519
|
if ( typeof editor.importFromFile !== 'function' ) { return; }
|
|
520
|
-
const input = qs$('input[type="file"]');
|
|
520
|
+
const input = qs$('section[data-pane="develop"] input[type="file"]');
|
|
521
521
|
input.accept = editor.ioAccept || '';
|
|
522
522
|
input.onchange = ev => {
|
|
523
523
|
input.onchange = null;
|
|
@@ -619,15 +619,6 @@ async function start() {
|
|
|
619
619
|
});
|
|
620
620
|
}
|
|
621
621
|
|
|
622
|
-
|
|
623
|
-
for ( const entry of entries ) {
|
|
624
|
-
if ( entry.isIntersecting === false ) { continue; }
|
|
625
|
-
start();
|
|
626
|
-
observer.disconnect();
|
|
627
|
-
observer = null;
|
|
628
|
-
break;
|
|
629
|
-
}
|
|
630
|
-
});
|
|
631
|
-
observer.observe(qs$('section[data-pane="develop"]'));
|
|
622
|
+
dom.onFirstShown(start, qs$('section[data-pane="develop"]'));
|
|
632
623
|
|
|
633
624
|
/******************************************************************************/
|
|
@@ -156,6 +156,16 @@ class dom {
|
|
|
156
156
|
elem.removeEventListener(type, callback, options);
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
|
+
|
|
160
|
+
static onFirstShown(fn, elem) {
|
|
161
|
+
let observer = new IntersectionObserver(entries => {
|
|
162
|
+
if ( entries.every(a => a.isIntersecting === false) ) { return; }
|
|
163
|
+
try { fn(); } catch { }
|
|
164
|
+
observer.disconnect();
|
|
165
|
+
observer = undefined;
|
|
166
|
+
});
|
|
167
|
+
observer.observe(elem);
|
|
168
|
+
}
|
|
159
169
|
}
|
|
160
170
|
|
|
161
171
|
dom.cl = class {
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
22
|
import { dom, qs$, qsa$ } from './dom.js';
|
|
23
|
+
import { hashFromIterable, nodeFromTemplate } from './dashboard.js';
|
|
23
24
|
import { i18n, i18n$ } from './i18n.js';
|
|
24
25
|
import { localRead, localWrite, sendMessage } from './ext.js';
|
|
25
|
-
import { hashFromIterable } from './dashboard.js';
|
|
26
26
|
|
|
27
27
|
/******************************************************************************/
|
|
28
28
|
|
|
@@ -162,16 +162,16 @@ export function renderFilterLists(rulesetData) {
|
|
|
162
162
|
|
|
163
163
|
const createListEntry = (listDetails, depth) => {
|
|
164
164
|
if ( listDetails.lists === undefined ) {
|
|
165
|
-
return
|
|
165
|
+
return nodeFromTemplate('listEntryLeaf', '.listEntry');
|
|
166
166
|
}
|
|
167
167
|
if ( depth !== 0 ) {
|
|
168
|
-
return
|
|
168
|
+
return nodeFromTemplate('listEntryNode', '.listEntry');
|
|
169
169
|
}
|
|
170
|
-
return
|
|
170
|
+
return nodeFromTemplate('listEntryRoot', '.listEntry');
|
|
171
171
|
};
|
|
172
172
|
|
|
173
173
|
const createListEntries = (parentkey, listTree, depth = 0) => {
|
|
174
|
-
const listEntries =
|
|
174
|
+
const listEntries = nodeFromTemplate('listEntries', '.listEntries');
|
|
175
175
|
const treeEntries = Object.entries(listTree);
|
|
176
176
|
if ( depth !== 0 ) {
|
|
177
177
|
const reEmojis = /\p{Emoji}+/gu;
|