@browserless.io/browserless 2.36.0 → 2.37.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 +16 -2
- package/build/browsers/index.d.ts +1 -0
- package/build/browsers/index.js +3 -2
- package/build/http.d.ts +3 -2
- package/build/http.js +3 -2
- package/build/routes/chrome/tests/kill-sessions.spec.js +0 -11
- 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 +120 -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 +120 -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 +120 -0
- package/build/sdk-utils.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/types.d.ts +6 -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 +101 -1
- package/extensions/ublocklite/css/unpicker-ui.css +1 -0
- package/extensions/ublocklite/dashboard.html +48 -11
- package/extensions/ublocklite/js/background.js +49 -35
- package/extensions/ublocklite/js/backup-restore.js +153 -0
- package/extensions/ublocklite/js/config.js +2 -0
- package/extensions/ublocklite/js/dashboard.js +19 -0
- 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/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/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/unpicker-ui.js +5 -5
- package/extensions/ublocklite/js/utils.js +14 -0
- package/extensions/ublocklite/manifest.json +2 -2
- 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 +5 -4
- package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +12 -4
- 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 +4 -2
- package/extensions/ublocklite/rulesets/main/block-lan.json +3 -1
- package/extensions/ublocklite/rulesets/main/chn-0.json +25 -16
- package/extensions/ublocklite/rulesets/main/deu-0.json +2 -9
- package/extensions/ublocklite/rulesets/main/easylist.json +26 -65
- package/extensions/ublocklite/rulesets/main/easyprivacy.json +94 -21
- package/extensions/ublocklite/rulesets/main/fin-0.json +2 -1
- 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 +9 -2
- package/extensions/ublocklite/rulesets/main/jpn-1.json +49 -31
- 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/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 +3 -3
- package/extensions/ublocklite/rulesets/main/spa-1.json +6 -5
- package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +10500 -90447
- package/extensions/ublocklite/rulesets/main/swe-1.json +36 -27
- package/extensions/ublocklite/rulesets/main/tur-0.json +10 -7
- package/extensions/ublocklite/rulesets/main/ublock-badware.json +37 -13
- package/extensions/ublocklite/rulesets/main/ublock-filters.json +61 -34
- package/extensions/ublocklite/rulesets/main/ubol-tests.json +28 -0
- package/extensions/ublocklite/rulesets/main/ukr-0.json +1 -1
- package/extensions/ublocklite/rulesets/main/urlhaus-full.json +1575 -584
- package/extensions/ublocklite/rulesets/main/vie-1.json +40 -44
- package/extensions/ublocklite/rulesets/regex/chn-0.json +2 -2
- package/extensions/ublocklite/rulesets/regex/easylist.json +1 -1
- 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 +9 -3
- package/extensions/ublocklite/rulesets/regex/ublock-filters.json +22 -16
- package/extensions/ublocklite/rulesets/ruleset-details.json +206 -206
- 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/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-overlays.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-social.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/deu-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/fin-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/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.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.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.prevent-requestAnimationFrame.js +1 -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-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.prevent-setTimeout.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-set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.addEventListener-defuser.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.set-constant.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fin-0.spoof-css.js +422 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-window-open.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.href-sanitizer.js +2 -2
- 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 +1 -1
- 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.prevent-fetch.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.abort-current-script.js +2 -2
- 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 +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-window-open.js +471 -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/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.addEventListener-defuser.js +3 -3
- 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.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-node-text.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-attr.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.json-prune-xhr-response.js +597 -0
- 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.json-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.noeval-if.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.href-sanitizer.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-read.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.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-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 +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +2 -2
- 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.js +2 -2
- 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 +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-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-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-response.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit.js +851 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +2 -2
- 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/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/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 +227 -126
- package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/annoyances-others.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/chn-0.json +222 -1
- package/extensions/ublocklite/rulesets/strictblock/easylist.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +62 -2
- 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 +203 -186
- package/extensions/ublocklite/rulesets/strictblock/pgl.json +30 -6
- package/extensions/ublocklite/rulesets/strictblock/pol-0.json +2 -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 +655 -650
- package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/ukr-0.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +1575 -584
- 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 +7 -7
- package/src/browsers/index.ts +5 -4
- package/src/http.ts +3 -2
- 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/ws/function-connect.ts +1 -0
- package/src/routes/edge/ws/function-connect.ts +12 -0
- package/src/sdk-utils.ts +1 -1
- package/src/shared/function-connect.ws.ts +38 -0
- package/src/shared/utils/function/handler.ts +11 -6
- package/src/types.ts +4 -0
- package/static/docs/swagger.json +104 -2
- package/static/docs/swagger.min.json +103 -1
- package/static/function/client.js +14 -20
- package/static/function/index.html +14 -20
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
"message": "Cài đặt",
|
|
20
20
|
"description": "appears as tab name in dashboard"
|
|
21
21
|
},
|
|
22
|
+
"customFiltersPageName": {
|
|
23
|
+
"message": "Custom filters",
|
|
24
|
+
"description": "appears as tab name in dashboard"
|
|
25
|
+
},
|
|
22
26
|
"developPageName": {
|
|
23
27
|
"message": "Phát triển",
|
|
24
28
|
"description": "appears as tab name in dashboard. Inspired from 'Develop' menu in Safari, see https://developer.apple.com/documentation/safari-developer-tools/develop-menu"
|
|
@@ -83,6 +87,14 @@
|
|
|
83
87
|
"message": "Khu vực, ngôn ngữ",
|
|
84
88
|
"description": "Header for a ruleset section in 'Filter lists pane'"
|
|
85
89
|
},
|
|
90
|
+
"customFiltersImportExportLabel": {
|
|
91
|
+
"message": "Import / Export",
|
|
92
|
+
"description": "Text label heading the import/export area of custom filters"
|
|
93
|
+
},
|
|
94
|
+
"customFiltersImportTextareaPlaceholder": {
|
|
95
|
+
"message": "Paste here specific cosmetic filters to add",
|
|
96
|
+
"description": "Placeholder text which describes the purpose of the textarea widget"
|
|
97
|
+
},
|
|
86
98
|
"aboutChangelog": {
|
|
87
99
|
"message": "Nhật ký thay đổi",
|
|
88
100
|
"description": ""
|
|
@@ -251,6 +263,18 @@
|
|
|
251
263
|
"message": "Cho phép truy cập các tính năng dành cho người dùng nâng cao",
|
|
252
264
|
"description": "Short description for a checkbox in the options page"
|
|
253
265
|
},
|
|
266
|
+
"settingsBackupRestoreLabel": {
|
|
267
|
+
"message": "Sao lưu",
|
|
268
|
+
"description": "The header text for the back up/restore section"
|
|
269
|
+
},
|
|
270
|
+
"settingsBackupRestoreSummary": {
|
|
271
|
+
"message": "Sao lưu cài đặt tùy chỉnh của bạn vào một tệp hoặc khôi phục cài đặt tùy chỉnh từ một tệp.",
|
|
272
|
+
"description": "A summary description of the back up/restore section."
|
|
273
|
+
},
|
|
274
|
+
"settingsBackupRestoreLegend": {
|
|
275
|
+
"message": "Restoring will overwrite all your current custom settings.",
|
|
276
|
+
"description": "Important information about the back up/restore section."
|
|
277
|
+
},
|
|
254
278
|
"findListsPlaceholder": {
|
|
255
279
|
"message": "Tìm danh sách",
|
|
256
280
|
"description": "Placeholder for the input field used to find lists"
|
|
@@ -339,6 +363,10 @@
|
|
|
339
363
|
"message": "Đặt lại",
|
|
340
364
|
"description": "Text for buttons used to revert changes"
|
|
341
365
|
},
|
|
366
|
+
"addButton": {
|
|
367
|
+
"message": "Add",
|
|
368
|
+
"description": "Text for buttons used to add content"
|
|
369
|
+
},
|
|
342
370
|
"importAndAppendButton": {
|
|
343
371
|
"message": "Nhập và thêm vào",
|
|
344
372
|
"description": "Text for buttons used to import and append content"
|
|
@@ -347,6 +375,14 @@
|
|
|
347
375
|
"message": "Xuất…",
|
|
348
376
|
"description": "Text for buttons used to export content"
|
|
349
377
|
},
|
|
378
|
+
"backupButton": {
|
|
379
|
+
"message": "Sao lưu…",
|
|
380
|
+
"description": "Text for buttons used to back up content"
|
|
381
|
+
},
|
|
382
|
+
"restoreButton": {
|
|
383
|
+
"message": "Khôi phục…",
|
|
384
|
+
"description": "Text for buttons used to restore content"
|
|
385
|
+
},
|
|
350
386
|
"dnrRulesWarning": {
|
|
351
387
|
"message": "Không thêm các bộ lọc từ các nguồn không đáng tin cậy",
|
|
352
388
|
"description": "Short description of the DNR rules editor pane"
|
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
"message": "设置",
|
|
20
20
|
"description": "appears as tab name in dashboard"
|
|
21
21
|
},
|
|
22
|
+
"customFiltersPageName": {
|
|
23
|
+
"message": "自定义过滤规则",
|
|
24
|
+
"description": "appears as tab name in dashboard"
|
|
25
|
+
},
|
|
22
26
|
"developPageName": {
|
|
23
27
|
"message": "开发",
|
|
24
28
|
"description": "appears as tab name in dashboard. Inspired from 'Develop' menu in Safari, see https://developer.apple.com/documentation/safari-developer-tools/develop-menu"
|
|
@@ -83,6 +87,14 @@
|
|
|
83
87
|
"message": "区域、语言",
|
|
84
88
|
"description": "Header for a ruleset section in 'Filter lists pane'"
|
|
85
89
|
},
|
|
90
|
+
"customFiltersImportExportLabel": {
|
|
91
|
+
"message": "导入/导出",
|
|
92
|
+
"description": "Text label heading the import/export area of custom filters"
|
|
93
|
+
},
|
|
94
|
+
"customFiltersImportTextareaPlaceholder": {
|
|
95
|
+
"message": "在此粘贴要添加的特定元素过滤规则",
|
|
96
|
+
"description": "Placeholder text which describes the purpose of the textarea widget"
|
|
97
|
+
},
|
|
86
98
|
"aboutChangelog": {
|
|
87
99
|
"message": "更新日志",
|
|
88
100
|
"description": ""
|
|
@@ -251,6 +263,18 @@
|
|
|
251
263
|
"message": "启用访问适合技术用户的功能。",
|
|
252
264
|
"description": "Short description for a checkbox in the options page"
|
|
253
265
|
},
|
|
266
|
+
"settingsBackupRestoreLabel": {
|
|
267
|
+
"message": "Backup",
|
|
268
|
+
"description": "The header text for the back up/restore section"
|
|
269
|
+
},
|
|
270
|
+
"settingsBackupRestoreSummary": {
|
|
271
|
+
"message": "Back up your custom settings to a file, or restore your custom settings from a file.",
|
|
272
|
+
"description": "A summary description of the back up/restore section."
|
|
273
|
+
},
|
|
274
|
+
"settingsBackupRestoreLegend": {
|
|
275
|
+
"message": "Restoring will overwrite all your current custom settings.",
|
|
276
|
+
"description": "Important information about the back up/restore section."
|
|
277
|
+
},
|
|
254
278
|
"findListsPlaceholder": {
|
|
255
279
|
"message": "查找列表",
|
|
256
280
|
"description": "Placeholder for the input field used to find lists"
|
|
@@ -339,6 +363,10 @@
|
|
|
339
363
|
"message": "还原",
|
|
340
364
|
"description": "Text for buttons used to revert changes"
|
|
341
365
|
},
|
|
366
|
+
"addButton": {
|
|
367
|
+
"message": "添加",
|
|
368
|
+
"description": "Text for buttons used to add content"
|
|
369
|
+
},
|
|
342
370
|
"importAndAppendButton": {
|
|
343
371
|
"message": "导入并添加…",
|
|
344
372
|
"description": "Text for buttons used to import and append content"
|
|
@@ -347,6 +375,14 @@
|
|
|
347
375
|
"message": "导出…",
|
|
348
376
|
"description": "Text for buttons used to export content"
|
|
349
377
|
},
|
|
378
|
+
"backupButton": {
|
|
379
|
+
"message": "Back up…",
|
|
380
|
+
"description": "Text for buttons used to back up content"
|
|
381
|
+
},
|
|
382
|
+
"restoreButton": {
|
|
383
|
+
"message": "Restore…",
|
|
384
|
+
"description": "Text for buttons used to restore content"
|
|
385
|
+
},
|
|
350
386
|
"dnrRulesWarning": {
|
|
351
387
|
"message": "请勿添加来自不可信来源的内容",
|
|
352
388
|
"description": "Short description of the DNR rules editor pane"
|
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
"message": "設定",
|
|
20
20
|
"description": "appears as tab name in dashboard"
|
|
21
21
|
},
|
|
22
|
+
"customFiltersPageName": {
|
|
23
|
+
"message": "自訂篩選規則",
|
|
24
|
+
"description": "appears as tab name in dashboard"
|
|
25
|
+
},
|
|
22
26
|
"developPageName": {
|
|
23
27
|
"message": "開發",
|
|
24
28
|
"description": "appears as tab name in dashboard. Inspired from 'Develop' menu in Safari, see https://developer.apple.com/documentation/safari-developer-tools/develop-menu"
|
|
@@ -83,6 +87,14 @@
|
|
|
83
87
|
"message": "地區及語言",
|
|
84
88
|
"description": "Header for a ruleset section in 'Filter lists pane'"
|
|
85
89
|
},
|
|
90
|
+
"customFiltersImportExportLabel": {
|
|
91
|
+
"message": "匯入 / 匯出",
|
|
92
|
+
"description": "Text label heading the import/export area of custom filters"
|
|
93
|
+
},
|
|
94
|
+
"customFiltersImportTextareaPlaceholder": {
|
|
95
|
+
"message": "在這裡貼上要新增的元素隱藏篩選規則",
|
|
96
|
+
"description": "Placeholder text which describes the purpose of the textarea widget"
|
|
97
|
+
},
|
|
86
98
|
"aboutChangelog": {
|
|
87
99
|
"message": "變更日誌",
|
|
88
100
|
"description": ""
|
|
@@ -251,6 +263,18 @@
|
|
|
251
263
|
"message": "啟用適合技術使用者使用的功能。",
|
|
252
264
|
"description": "Short description for a checkbox in the options page"
|
|
253
265
|
},
|
|
266
|
+
"settingsBackupRestoreLabel": {
|
|
267
|
+
"message": "備份",
|
|
268
|
+
"description": "The header text for the back up/restore section"
|
|
269
|
+
},
|
|
270
|
+
"settingsBackupRestoreSummary": {
|
|
271
|
+
"message": "將你的自訂設定備份到檔案,或是從檔案還原你的自訂設定。",
|
|
272
|
+
"description": "A summary description of the back up/restore section."
|
|
273
|
+
},
|
|
274
|
+
"settingsBackupRestoreLegend": {
|
|
275
|
+
"message": "還原將覆寫你目前所有的自訂設定。",
|
|
276
|
+
"description": "Important information about the back up/restore section."
|
|
277
|
+
},
|
|
254
278
|
"findListsPlaceholder": {
|
|
255
279
|
"message": "尋找清單",
|
|
256
280
|
"description": "Placeholder for the input field used to find lists"
|
|
@@ -339,6 +363,10 @@
|
|
|
339
363
|
"message": "還原",
|
|
340
364
|
"description": "Text for buttons used to revert changes"
|
|
341
365
|
},
|
|
366
|
+
"addButton": {
|
|
367
|
+
"message": "新增",
|
|
368
|
+
"description": "Text for buttons used to add content"
|
|
369
|
+
},
|
|
342
370
|
"importAndAppendButton": {
|
|
343
371
|
"message": "匯入並加入…",
|
|
344
372
|
"description": "Text for buttons used to import and append content"
|
|
@@ -347,6 +375,14 @@
|
|
|
347
375
|
"message": "匯出…",
|
|
348
376
|
"description": "Text for buttons used to export content"
|
|
349
377
|
},
|
|
378
|
+
"backupButton": {
|
|
379
|
+
"message": "備份…",
|
|
380
|
+
"description": "Text for buttons used to back up content"
|
|
381
|
+
},
|
|
382
|
+
"restoreButton": {
|
|
383
|
+
"message": "還原…",
|
|
384
|
+
"description": "Text for buttons used to restore content"
|
|
385
|
+
},
|
|
350
386
|
"dnrRulesWarning": {
|
|
351
387
|
"message": "切勿新增來自不受信任來源的內容",
|
|
352
388
|
"description": "Short description of the DNR rules editor pane"
|
|
@@ -36,6 +36,7 @@ nav > .tabButton:hover {
|
|
|
36
36
|
|
|
37
37
|
body[data-pane="settings"] #dashboard-nav .tabButton[data-pane="settings"],
|
|
38
38
|
body[data-pane="rulesets"] #dashboard-nav .tabButton[data-pane="rulesets"],
|
|
39
|
+
body[data-pane="filters"] #dashboard-nav .tabButton[data-pane="filters"],
|
|
39
40
|
body[data-pane="develop"] #dashboard-nav .tabButton[data-pane="develop"],
|
|
40
41
|
body[data-pane="about"] #dashboard-nav .tabButton[data-pane="about"] {
|
|
41
42
|
background-color: var(--dashboard-tab-active-surface);
|
|
@@ -51,11 +52,18 @@ body:not([data-pane="rulesets"]) header [data-pane-related="rulesets"] {
|
|
|
51
52
|
}
|
|
52
53
|
|
|
53
54
|
body > section {
|
|
55
|
+
box-sizing: border-box;
|
|
54
56
|
display: none;
|
|
57
|
+
padding: 0 var(--default-gap-xxsmall);
|
|
55
58
|
padding-bottom: 2rem;
|
|
56
59
|
}
|
|
60
|
+
body [data-pane-related] {
|
|
61
|
+
padding: 0 var(--default-gap-xxsmall);
|
|
62
|
+
}
|
|
63
|
+
|
|
57
64
|
body[data-pane="settings"] > section[data-pane="settings"],
|
|
58
65
|
body[data-pane="rulesets"] > section[data-pane="rulesets"],
|
|
66
|
+
body[data-pane="filters"] > section[data-pane="filters"],
|
|
59
67
|
body[data-pane="develop"] > section[data-pane="develop"],
|
|
60
68
|
body[data-pane="about"] > section[data-pane="about"] {
|
|
61
69
|
display: block;
|
|
@@ -86,6 +86,10 @@ h3[data-i18n="filteringMode0Name"]::first-letter {
|
|
|
86
86
|
text-transform: capitalize;
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
+
body[data-platform="safari"] [data-platform-exclude="safari"] {
|
|
90
|
+
display: none;
|
|
91
|
+
}
|
|
92
|
+
|
|
89
93
|
body:not(.committing) #commit-spinner {
|
|
90
94
|
display: none;
|
|
91
95
|
}
|
|
@@ -223,9 +227,105 @@ body.noMoreRuleset .listEntry:has(> .detailbar input:not(:checked)) {
|
|
|
223
227
|
margin-top: 0.2em;
|
|
224
228
|
}
|
|
225
229
|
|
|
226
|
-
|
|
230
|
+
body section[data-pane="filters"] {
|
|
231
|
+
padding-inline: 0;
|
|
232
|
+
}
|
|
233
|
+
body section[data-pane="filters"] .hostnames {
|
|
234
|
+
border-bottom: 1px solid var(--border-1);
|
|
235
|
+
margin-block-start: 1em;
|
|
236
|
+
}
|
|
237
|
+
body section[data-pane="filters"] .hostnames:empty {
|
|
238
|
+
display: none;
|
|
239
|
+
}
|
|
240
|
+
body.busy section[data-pane="filters"] .hostnames {
|
|
241
|
+
pointer-events: none;
|
|
242
|
+
}
|
|
243
|
+
section[data-pane="filters"] ul {
|
|
244
|
+
list-style: none;
|
|
245
|
+
margin: 0;
|
|
246
|
+
padding-inline-start: 0;
|
|
247
|
+
}
|
|
248
|
+
section[data-pane="filters"] .hostnames > li.hostname > div {
|
|
249
|
+
background-color: var(--surface-2);
|
|
250
|
+
padding-inline-start: 0.5em;
|
|
251
|
+
}
|
|
252
|
+
section[data-pane="filters"] ul ul {
|
|
253
|
+
padding-block-end: 1em;
|
|
254
|
+
padding-inline-start: 0.5em;
|
|
255
|
+
}
|
|
256
|
+
section[data-pane="filters"] li > div {
|
|
257
|
+
display: flex;
|
|
258
|
+
padding-block: 4px;
|
|
259
|
+
}
|
|
260
|
+
section[data-pane="filters"] li [contenteditable] {
|
|
261
|
+
flex-grow: 1;
|
|
262
|
+
word-break: break-all;
|
|
263
|
+
}
|
|
264
|
+
section[data-pane="filters"] li [contenteditable]:focus {
|
|
265
|
+
background-color: var(--surface-0);
|
|
266
|
+
}
|
|
267
|
+
section[data-pane="filters"] li .fa-icon {
|
|
268
|
+
align-self: baseline;
|
|
269
|
+
font-size: calc(var(--font-size) + 2px);
|
|
270
|
+
padding: 0 0.5em;
|
|
271
|
+
top: 2px;
|
|
272
|
+
}
|
|
273
|
+
section[data-pane="filters"] li.selector:not(:first-of-type) {
|
|
274
|
+
border-top: 1px dotted var(--border-1);
|
|
275
|
+
}
|
|
276
|
+
section[data-pane="filters"] li.hostname:not(:has(li.selector:not(.removed))) > div [contenteditable],
|
|
277
|
+
section[data-pane="filters"] li.selector.removed [contenteditable] {
|
|
278
|
+
color: red;
|
|
279
|
+
text-decoration-line: line-through;
|
|
280
|
+
}
|
|
281
|
+
section[data-pane="filters"] li.hostname:not(:has(li.selector:not(.removed))) > div span.remove,
|
|
282
|
+
section[data-pane="filters"] li.selector.removed > div span.remove,
|
|
283
|
+
section[data-pane="filters"] li.hostname:has(li.selector:not(.removed)) > div span.undo,
|
|
284
|
+
section[data-pane="filters"] li.selector:not(.removed) > div span.undo {
|
|
227
285
|
display: none;
|
|
228
286
|
}
|
|
287
|
+
html.desktop section[data-pane="filters"] li > div:hover {
|
|
288
|
+
background-color: var(--surface-0);
|
|
289
|
+
}
|
|
290
|
+
html.desktop section[data-pane="filters"] li > div span.fa-icon:hover {
|
|
291
|
+
transform: scale(1.3);
|
|
292
|
+
}
|
|
293
|
+
section[data-pane="filters"] aside {
|
|
294
|
+
padding: 1em 0.5em;
|
|
295
|
+
}
|
|
296
|
+
section[data-pane="filters"] aside details {
|
|
297
|
+
padding: 0;
|
|
298
|
+
}
|
|
299
|
+
section[data-pane="filters"] aside summary {
|
|
300
|
+
cursor: default;
|
|
301
|
+
line-height: 2;
|
|
302
|
+
}
|
|
303
|
+
section[data-pane="filters"] aside .importFromText {
|
|
304
|
+
color: var(--ink-2);
|
|
305
|
+
}
|
|
306
|
+
section[data-pane="filters"] aside .importFromText textarea {
|
|
307
|
+
background-color: var(--surface-1);
|
|
308
|
+
border: 1px solid var(--border-1);
|
|
309
|
+
box-sizing: border-box;
|
|
310
|
+
min-height: 6em;
|
|
311
|
+
resize: vertical;
|
|
312
|
+
width: 100%;
|
|
313
|
+
}
|
|
314
|
+
section[data-pane="filters"] aside .importFromText textarea:focus {
|
|
315
|
+
background-color: var(--surface-0);
|
|
316
|
+
}
|
|
317
|
+
section[data-pane="filters"] aside .importFromText:has(textarea:placeholder-shown) button:has([data-i18n="addButton"]) {
|
|
318
|
+
display: none;
|
|
319
|
+
}
|
|
320
|
+
section[data-pane="filters"] aside .importFromText:not(:has(textarea:placeholder-shown)) button:has([data-i18n="importAndAppendButton"]),
|
|
321
|
+
section[data-pane="filters"] aside .importFromText:not(:has(textarea:placeholder-shown)) button:has([data-i18n="exportButton"]) {
|
|
322
|
+
display: none;
|
|
323
|
+
}
|
|
324
|
+
section[data-pane="filters"] aside p {
|
|
325
|
+
display: flex;
|
|
326
|
+
flex-wrap: wrap;
|
|
327
|
+
gap: 1em;
|
|
328
|
+
}
|
|
229
329
|
|
|
230
330
|
@media (max-width: 480px) {
|
|
231
331
|
#defaultFilteringMode {
|
|
@@ -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,
|
|
@@ -83,13 +95,6 @@ import {
|
|
|
83
95
|
ubolLog,
|
|
84
96
|
} from './debug.js';
|
|
85
97
|
|
|
86
|
-
import {
|
|
87
|
-
loadRulesetConfig,
|
|
88
|
-
process,
|
|
89
|
-
rulesetConfig,
|
|
90
|
-
saveRulesetConfig,
|
|
91
|
-
} from './config.js';
|
|
92
|
-
|
|
93
98
|
import { dnr } from './ext-compat.js';
|
|
94
99
|
import { getTroubleshootingInfo } from './troubleshooting.js';
|
|
95
100
|
import { registerInjectables } from './scripting-manager.js';
|
|
@@ -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(),
|
|
@@ -487,8 +493,8 @@ function onMessage(request, sender, callback) {
|
|
|
487
493
|
});
|
|
488
494
|
return true;
|
|
489
495
|
|
|
490
|
-
case '
|
|
491
|
-
|
|
496
|
+
case 'addCustomFilters':
|
|
497
|
+
addCustomFilters(request.hostname, request.selectors).then(modified => {
|
|
492
498
|
if ( modified !== true ) { return; }
|
|
493
499
|
return registerInjectables();
|
|
494
500
|
}).then(( ) => {
|
|
@@ -496,8 +502,8 @@ function onMessage(request, sender, callback) {
|
|
|
496
502
|
})
|
|
497
503
|
return true;
|
|
498
504
|
|
|
499
|
-
case '
|
|
500
|
-
|
|
505
|
+
case 'removeCustomFilters':
|
|
506
|
+
removeCustomFilters(request.hostname, request.selectors).then(modified => {
|
|
501
507
|
if ( modified !== true ) { return; }
|
|
502
508
|
return registerInjectables();
|
|
503
509
|
}).then(( ) => {
|
|
@@ -505,12 +511,27 @@ function onMessage(request, sender, callback) {
|
|
|
505
511
|
});
|
|
506
512
|
return true;
|
|
507
513
|
|
|
508
|
-
case '
|
|
509
|
-
|
|
514
|
+
case 'removeAllCustomFilters':
|
|
515
|
+
removeAllCustomFilters(request.hostname).then(modified => {
|
|
516
|
+
if ( modified !== true ) { return; }
|
|
517
|
+
return registerInjectables();
|
|
518
|
+
}).then(( ) => {
|
|
519
|
+
callback();
|
|
520
|
+
});
|
|
521
|
+
return true;
|
|
522
|
+
|
|
523
|
+
case 'customFiltersFromHostname':
|
|
524
|
+
customFiltersFromHostname(request.hostname).then(selectors => {
|
|
510
525
|
callback(selectors);
|
|
511
526
|
});
|
|
512
527
|
return true;
|
|
513
528
|
|
|
529
|
+
case 'getAllCustomFilters':
|
|
530
|
+
getAllCustomFilters().then(data => {
|
|
531
|
+
callback(data);
|
|
532
|
+
});
|
|
533
|
+
return true;
|
|
534
|
+
|
|
514
535
|
case 'getTroubleshootingInfo':
|
|
515
536
|
getTroubleshootingInfo(request.siteMode).then(info => {
|
|
516
537
|
callback(info);
|
|
@@ -566,13 +587,6 @@ async function startSession() {
|
|
|
566
587
|
// obsolete ruleset to remove.
|
|
567
588
|
if ( isNewVersion ) {
|
|
568
589
|
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
590
|
rulesetConfig.version = currentVersion;
|
|
577
591
|
await patchDefaultRulesets();
|
|
578
592
|
saveRulesetConfig();
|