@browserless.io/browserless 2.33.0 → 2.34.0-beta-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/README.md +1 -1
- package/build/config.d.ts +1 -1
- package/build/config.js +1 -1
- package/build/http.d.ts +10 -0
- package/build/http.js +5 -0
- package/build/limiter.spec.js +1 -1
- package/build/routes/chrome/http/content.post.body.json +8 -8
- package/build/routes/chrome/http/pdf.post.body.json +8 -8
- package/build/routes/chrome/http/scrape.post.body.json +8 -8
- package/build/routes/chrome/http/screenshot.post.body.json +8 -8
- package/build/routes/chrome/tests/content.spec.js +12 -12
- package/build/routes/chrome/tests/page-websocket.spec.js +3 -3
- package/build/routes/chrome/tests/pdf.spec.js +13 -13
- package/build/routes/chrome/tests/performance.spec.js +4 -4
- package/build/routes/chrome/tests/scrape.spec.js +13 -13
- package/build/routes/chrome/tests/screenshot.spec.js +14 -14
- package/build/routes/chromium/http/content.post.body.json +8 -8
- package/build/routes/chromium/http/pdf.post.body.json +8 -8
- package/build/routes/chromium/http/scrape.post.body.json +8 -8
- package/build/routes/chromium/http/screenshot.post.body.json +8 -8
- package/build/routes/chromium/tests/content.spec.js +13 -13
- package/build/routes/chromium/tests/page-websocket.spec.js +3 -3
- package/build/routes/chromium/tests/pdf.spec.js +13 -13
- package/build/routes/chromium/tests/performance.spec.js +4 -4
- package/build/routes/chromium/tests/scrape.spec.js +13 -13
- package/build/routes/chromium/tests/screenshot.spec.js +14 -14
- package/build/routes/edge/http/content.post.body.json +8 -8
- package/build/routes/edge/http/pdf.post.body.json +8 -8
- package/build/routes/edge/http/scrape.post.body.json +8 -8
- package/build/routes/edge/http/screenshot.post.body.json +8 -8
- package/build/routes/edge/tests/content.spec.js +12 -12
- package/build/routes/edge/tests/page-websocket.spec.js +3 -3
- package/build/routes/edge/tests/pdf.spec.js +13 -13
- package/build/routes/edge/tests/performance.spec.js +4 -4
- package/build/routes/edge/tests/scrape.spec.js +13 -13
- package/build/routes/edge/tests/screenshot.spec.js +14 -14
- package/build/routes/management/http/kill.get.d.ts +1 -1
- package/build/routes/management/http/kill.get.query.json +0 -3
- package/build/routes/management/http/pressure.get.d.ts +1 -1
- package/build/routes/management/http/pressure.get.js +12 -4
- package/build/routes/management/http/sessions.get.d.ts +1 -1
- package/build/routes/management/http/sessions.get.query.json +0 -3
- package/build/routes/management/tests/management.spec.js +13 -13
- package/build/server.js +12 -4
- package/build/shim.d.ts +5 -0
- package/build/shim.js +13 -0
- package/build/shim.spec.js +28 -1
- package/build/types.d.ts +14 -0
- package/build/types.js +14 -0
- package/build/utils.js +1 -1
- package/extensions/ublocklite/_locales/ar/messages.json +8 -8
- package/extensions/ublocklite/_locales/be/messages.json +8 -8
- package/extensions/ublocklite/_locales/fi/messages.json +18 -18
- package/extensions/ublocklite/_locales/hi/messages.json +21 -21
- package/extensions/ublocklite/_locales/hu/messages.json +8 -8
- package/extensions/ublocklite/_locales/id/messages.json +15 -15
- package/extensions/ublocklite/_locales/ja/messages.json +23 -23
- package/extensions/ublocklite/_locales/nl/messages.json +1 -1
- package/extensions/ublocklite/_locales/pt_BR/messages.json +15 -15
- package/extensions/ublocklite/_locales/pt_PT/messages.json +18 -18
- package/extensions/ublocklite/_locales/th/messages.json +30 -30
- package/extensions/ublocklite/_locales/tr/messages.json +1 -1
- package/extensions/ublocklite/_locales/uk/messages.json +10 -10
- package/extensions/ublocklite/_locales/vi/messages.json +8 -8
- package/extensions/ublocklite/css/picker-ui.css +1 -1
- package/extensions/ublocklite/css/report.css +0 -8
- package/extensions/ublocklite/js/background.js +30 -6
- package/extensions/ublocklite/js/debug.js +8 -4
- package/extensions/ublocklite/js/develop.js +1 -1
- package/extensions/ublocklite/js/ext-compat.js +9 -2
- package/extensions/ublocklite/js/filter-lists.js +1 -2
- package/extensions/ublocklite/js/filter-manager.js +57 -23
- package/extensions/ublocklite/js/picker-ui.js +32 -41
- package/extensions/ublocklite/js/popup.js +10 -10
- package/extensions/ublocklite/js/redirect-resources.js +1 -0
- package/extensions/ublocklite/js/ro-dnr-editor.js +6 -1
- package/extensions/ublocklite/js/scripting/css-procedural-api.js +821 -0
- package/extensions/ublocklite/js/scripting/css-procedural.js +62 -718
- package/extensions/ublocklite/{rulesets/scripting/declarative/isr-0.js → js/scripting/css-user-terminate.js} +16 -13
- package/extensions/ublocklite/js/scripting/css-user.js +12 -1
- package/extensions/ublocklite/js/scripting/picker.js +46 -13
- package/extensions/ublocklite/js/scripting/tool-overlay.js +14 -8
- package/extensions/ublocklite/js/scripting/unpicker.js +5 -9
- package/extensions/ublocklite/js/scripting/zapper.js +1 -1
- package/extensions/ublocklite/js/scripting-manager.js +0 -65
- package/extensions/ublocklite/js/static-filtering-parser.js +2 -2
- package/extensions/ublocklite/js/tool-overlay-ui.js +1 -1
- package/extensions/ublocklite/js/unpicker-ui.js +16 -9
- package/extensions/ublocklite/js/zapper-ui.js +3 -2
- package/extensions/ublocklite/manifest.json +7 -2
- package/extensions/ublocklite/picker-ui.html +1 -1
- package/extensions/ublocklite/report.html +0 -1
- package/extensions/ublocklite/rulesets/generic-details.json +10 -14
- package/extensions/ublocklite/rulesets/main/adguard-mobile.json +3 -2
- package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +19 -10
- package/extensions/ublocklite/rulesets/main/annoyances-others.json +4 -3
- package/extensions/ublocklite/rulesets/main/annoyances-overlays.json +4 -4
- package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +1 -1
- package/extensions/ublocklite/rulesets/main/block-lan.json +2 -1
- package/extensions/ublocklite/rulesets/main/chn-0.json +22 -21
- package/extensions/ublocklite/rulesets/main/deu-0.json +6 -5
- package/extensions/ublocklite/rulesets/main/dpollock-0.json +5 -41
- package/extensions/ublocklite/rulesets/main/easylist.json +59 -35
- package/extensions/ublocklite/rulesets/main/easyprivacy.json +65 -12
- package/extensions/ublocklite/rulesets/main/fra-0.json +9 -11
- package/extensions/ublocklite/rulesets/main/hrv-0.json +5 -5
- package/extensions/ublocklite/rulesets/main/hun-0.json +1 -1
- package/extensions/ublocklite/rulesets/main/idn-0.json +8 -2
- package/extensions/ublocklite/rulesets/main/ind-0.json +30 -24
- package/extensions/ublocklite/rulesets/main/irn-0.json +44 -635
- package/extensions/ublocklite/rulesets/main/isr-0.json +1 -0
- package/extensions/ublocklite/rulesets/main/jpn-1.json +42 -26
- package/extensions/ublocklite/rulesets/main/kor-1.json +9 -4
- package/extensions/ublocklite/rulesets/main/mkd-0.json +1 -1
- package/extensions/ublocklite/rulesets/main/nld-0.json +2 -1
- package/extensions/ublocklite/rulesets/main/nor-0.json +14 -12
- package/extensions/ublocklite/rulesets/main/pgl.json +29 -12
- package/extensions/ublocklite/rulesets/main/pol-0.json +1 -1
- package/extensions/ublocklite/rulesets/main/rus-0.json +23 -30
- package/extensions/ublocklite/rulesets/main/rus-1.json +4 -2
- package/extensions/ublocklite/rulesets/main/spa-1.json +9 -32
- package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +13773 -14561
- package/extensions/ublocklite/rulesets/main/swe-1.json +39 -29
- package/extensions/ublocklite/rulesets/main/tur-0.json +39 -27
- package/extensions/ublocklite/rulesets/main/ublock-badware.json +63 -65
- package/extensions/ublocklite/rulesets/main/ublock-experimental.json +3 -0
- package/extensions/ublocklite/rulesets/main/ublock-filters.json +99 -41
- package/extensions/ublocklite/rulesets/main/ukr-0.json +5 -7
- package/extensions/ublocklite/rulesets/main/urlhaus-full.json +432 -1025
- package/extensions/ublocklite/rulesets/main/vie-1.json +50 -50
- package/extensions/ublocklite/rulesets/modify-headers/chn-0.json +3 -0
- package/extensions/ublocklite/rulesets/modify-headers/fra-0.json +1 -1
- package/extensions/ublocklite/rulesets/modify-headers/ublock-filters.json +3 -7
- package/extensions/ublocklite/rulesets/modify-headers/vie-1.json +1 -1
- package/extensions/ublocklite/rulesets/redirect/annoyances-overlays.json +1 -0
- package/extensions/ublocklite/rulesets/redirect/easyprivacy.json +16 -0
- package/extensions/ublocklite/rulesets/redirect/rus-0.json +2 -1
- package/extensions/ublocklite/rulesets/redirect/spa-1.json +1 -2
- package/extensions/ublocklite/rulesets/redirect/tur-0.json +0 -2
- package/extensions/ublocklite/rulesets/redirect/ublock-filters.json +17 -10
- package/extensions/ublocklite/rulesets/redirect/vie-1.json +5 -22
- package/extensions/ublocklite/rulesets/regex/chn-0.json +1 -1
- package/extensions/ublocklite/rulesets/regex/ita-0.json +1 -0
- package/extensions/ublocklite/rulesets/regex/jpn-1.json +1 -1
- package/extensions/ublocklite/rulesets/regex/tur-0.json +3 -1
- package/extensions/ublocklite/rulesets/regex/ublock-badware.json +1 -4
- package/extensions/ublocklite/rulesets/regex/ublock-filters.json +12 -9
- package/extensions/ublocklite/rulesets/regex/ukr-0.json +2 -2
- package/extensions/ublocklite/rulesets/removeparam/adguard-spyware-url.json +22 -11
- package/extensions/ublocklite/rulesets/removeparam/irn-0.json +27 -15
- package/extensions/ublocklite/rulesets/removeparam/rus-1.json +1 -1
- package/extensions/ublocklite/rulesets/removeparam/ublock-filters.json +1 -2
- package/extensions/ublocklite/rulesets/ruleset-details.json +281 -304
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/deu-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/fra-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/hrv-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/idn-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/ind-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/irn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/jpn-1.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/kor-1.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/nor-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/rou-1.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/swe-1.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/tur-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/ukr-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +2 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/easylist.css +3 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +26 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/rus-0.css +2 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/tur-0.css +1 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/ublock-filters.css +0 -2
- package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/alb-0.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-others.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-overlays.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-social.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/cze-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/deu-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/{declarative → procedural}/easyprivacy.js +5 -5
- package/extensions/ublocklite/rulesets/scripting/procedural/est-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/fin-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/fra-0.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/procedural/grc-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/hrv-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/hun-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/idn-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/isl-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/isr-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/ita-0.js +1 -1
- 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 +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/lva-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/{declarative → procedural}/mkd-0.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/procedural/nld-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/nor-0.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/procedural/pol-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/rou-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/rus-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/spa-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/procedural/svn-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/tha-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/tur-0.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/procedural/ublock-badware.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/ubol-tests.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/ukr-0.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 +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.set-attr.js → annoyances-cookies.set-cookie-reload.js} +129 -108
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.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-overlays.abort-current-script.js +5 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-window-open.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.abort-current-script.js +6 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.adjust-setTimeout.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.json-prune.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.abort-current-script.js +5 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.set-local-storage-item.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fin-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.prevent-setTimeout.js → fra-0.prevent-requestAnimationFrame.js} +13 -49
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-window-open.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.remove-node-text.js → fra-0.remove-node-text.js} +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.abort-current-script.js +6 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.abort-on-property-read.js → hun-0.set-local-storage-item.js} +92 -62
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.abort-current-script.js +7 -6
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.abort-on-property-read.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-session-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.abort-current-script.js +6 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.adjust-setTimeout.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.href-sanitizer.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.remove-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.remove-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.abort-on-stack-trace.js → kor-1.spoof-css.js} +113 -112
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ltu-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.prevent-xhr.js → nld-0.prevent-xhr.js} +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setInterval.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-window-open.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-current-script.js +5 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.adjust-setInterval.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-fetch.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-xhr.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-current-script.js +6 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-write.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.adjust-setTimeout.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-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.remove-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-local-storage-item.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.abort-current-script.js +5 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.noeval-if.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.set-constant.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-read.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-write.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.adjust-setInterval.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.adjust-setTimeout.js → tur-0.adjust-setTimeout.js} +4 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.m3u-prune.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/ublock-badware.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-json-edit-xhr-request.js +795 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{tur-0.set-attr.js → ublock-experimental.trusted-replace-node-text.js} +144 -119
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +7 -6
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-write.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.close-window.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.href-sanitizer.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-fetch-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 +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.nowebrtc.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.close-window.js → ublock-filters.prevent-canvas.js} +14 -21
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +2 -2
- 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 +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +3 -3
- 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 +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-click-element.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-request.js +884 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-response.js +887 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-override-element-method.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{irn-0.prevent-fetch.js → ublock-filters.trusted-prevent-fetch.js} +7 -7
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-fetch-response.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 +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-constant.js +4 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-cookie.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-local-storage-item.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.abort-current-script.js +4 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.abort-on-property-read.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +6 -5
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.set-constant.js +1 -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-others.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/cze-0.js +1 -1
- 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/{declarative/ubol-tests.js → specific/easyprivacy.js} +7 -7
- 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/hrv-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/hun-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/irn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/isr-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ita-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/kor-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/nld-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/nor-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/pol-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/rou-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/spa-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-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 +265 -553
- package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +6 -1
- package/extensions/ublocklite/rulesets/strictblock/annoyances-cookies.json +0 -1
- package/extensions/ublocklite/rulesets/strictblock/chn-0.json +235 -1
- package/extensions/ublocklite/rulesets/strictblock/dpollock-0.json +5 -41
- package/extensions/ublocklite/rulesets/strictblock/easylist.json +13 -14
- package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +53 -3
- package/extensions/ublocklite/rulesets/strictblock/fra-0.json +236 -31
- package/extensions/ublocklite/rulesets/strictblock/hun-0.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/irn-0.json +8 -251
- package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +174 -166
- package/extensions/ublocklite/rulesets/strictblock/kor-1.json +4 -0
- package/extensions/ublocklite/rulesets/strictblock/mkd-0.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/nor-0.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/pgl.json +29 -12
- package/extensions/ublocklite/rulesets/strictblock/pol-0.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +13773 -14561
- package/extensions/ublocklite/rulesets/strictblock/swe-1.json +3 -55
- package/extensions/ublocklite/rulesets/strictblock/tur-0.json +0 -1
- package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +646 -641
- package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/ukr-0.json +1 -4
- package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +432 -1025
- package/extensions/ublocklite/rulesets/strictblock/vie-1.json +2 -2
- package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +60 -2
- package/extensions/ublocklite/ublock.zip +0 -0
- package/extensions/ublocklite/web_accessible_resources/fingerprint2.js +1 -1
- package/package.json +12 -12
- package/src/config.ts +1 -1
- package/src/http.ts +5 -0
- package/src/limiter.spec.ts +1 -1
- package/src/routes/chrome/tests/content.spec.ts +12 -12
- package/src/routes/chrome/tests/page-websocket.spec.ts +3 -3
- package/src/routes/chrome/tests/pdf.spec.ts +13 -13
- package/src/routes/chrome/tests/performance.spec.ts +4 -4
- package/src/routes/chrome/tests/scrape.spec.ts +13 -13
- package/src/routes/chrome/tests/screenshot.spec.ts +14 -14
- package/src/routes/chromium/tests/content.spec.ts +13 -13
- package/src/routes/chromium/tests/page-websocket.spec.ts +3 -3
- package/src/routes/chromium/tests/pdf.spec.ts +13 -13
- package/src/routes/chromium/tests/performance.spec.ts +4 -4
- package/src/routes/chromium/tests/scrape.spec.ts +13 -13
- package/src/routes/chromium/tests/screenshot.spec.ts +14 -14
- package/src/routes/edge/tests/content.spec.ts +12 -12
- package/src/routes/edge/tests/page-websocket.spec.ts +3 -3
- package/src/routes/edge/tests/pdf.spec.ts +13 -13
- package/src/routes/edge/tests/performance.spec.ts +4 -4
- package/src/routes/edge/tests/scrape.spec.ts +13 -13
- package/src/routes/edge/tests/screenshot.spec.ts +14 -14
- package/src/routes/management/http/kill.get.ts +1 -1
- package/src/routes/management/http/pressure.get.ts +15 -3
- package/src/routes/management/http/sessions.get.ts +1 -1
- package/src/routes/management/tests/management.spec.ts +13 -13
- package/src/server.ts +17 -3
- package/src/shim.spec.ts +40 -1
- package/src/shim.ts +17 -0
- package/src/types.ts +25 -0
- package/src/utils.ts +1 -1
- package/static/docs/swagger.json +247 -38
- package/static/docs/swagger.min.json +246 -37
- package/static/function/client.js +46 -8
- package/static/function/index.html +46 -8
- package/extensions/ublocklite/js/scripting/css-declarative.js +0 -116
- package/extensions/ublocklite/rulesets/modify-headers/irn-0.json +0 -45
- package/extensions/ublocklite/rulesets/redirect/irn-0.json +0 -73
- package/extensions/ublocklite/rulesets/regex/irn-0.json +0 -22
- package/extensions/ublocklite/rulesets/scripting/declarative/adguard-mobile.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/alb-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-cookies.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-others.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-overlays.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/annoyances-social.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/chn-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/cze-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/easylist.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/est-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/fin-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/fra-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/grc-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/hrv-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/hun-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/idn-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/irn-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/jpn-1.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/kor-1.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/ltu-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/nld-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/nor-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/pol-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/rou-1.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/rus-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/rus-1.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/spa-1.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/swe-1.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/tur-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/ublock-badware.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/ublock-filters.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/ukr-0.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/declarative/vie-1.js +0 -42
- package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-fetch.js +0 -553
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-current-script.js +0 -451
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-on-property-write.js +0 -347
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.addEventListener-defuser.js +0 -498
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.adjust-setInterval.js +0 -332
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.href-sanitizer.js +0 -541
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.json-prune.js +0 -506
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-window-open.js +0 -471
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.remove-attr.js +0 -405
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.remove-cookie.js +0 -376
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-constant.js +0 -541
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
"description": "extension name."
|
|
5
5
|
},
|
|
6
6
|
"extShortDesc": {
|
|
7
|
-
"message": "
|
|
7
|
+
"message": "ตัวบล็อกเนื้อหาที่มีประสิทธิภาพ บล็อกโฆษณา ตัวติดตาม ตัวขุดเหมือง และอื่นๆ ทันทีที่ติดตั้ง",
|
|
8
8
|
"description": "this will be in the Chrome web store: must be 132 characters or less"
|
|
9
9
|
},
|
|
10
10
|
"perRulesetStats": {
|
|
11
|
-
"message": "{{ruleCount}}
|
|
11
|
+
"message": "{{ruleCount}} กฎ แปลงจาก {{filterCount}} ตัวกรองเครือข่าย",
|
|
12
12
|
"description": "Appears aside each filter list in the _3rd-party filters_ pane"
|
|
13
13
|
},
|
|
14
14
|
"dashboardName": {
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
"description": "appears as tab name in dashboard"
|
|
21
21
|
},
|
|
22
22
|
"developPageName": {
|
|
23
|
-
"message": "
|
|
23
|
+
"message": "พัฒนา",
|
|
24
24
|
"description": "appears as tab name in dashboard. Inspired from 'Develop' menu in Safari, see https://developer.apple.com/documentation/safari-developer-tools/develop-menu"
|
|
25
25
|
},
|
|
26
26
|
"aboutPageName": {
|
|
27
|
-
"message": "
|
|
27
|
+
"message": "เกี่ยวกับ",
|
|
28
28
|
"description": "appears as tab name in dashboard"
|
|
29
29
|
},
|
|
30
30
|
"aboutPrivacyPolicy": {
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"description": "Label in the popup panel for the current filtering mode"
|
|
37
37
|
},
|
|
38
38
|
"popupLocalToolsLabel": {
|
|
39
|
-
"message": "
|
|
39
|
+
"message": "บนเว็บไซต์นี้",
|
|
40
40
|
"description": "Label in the popup panel for the local tools section"
|
|
41
41
|
},
|
|
42
42
|
"popupTipReport": {
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"description": "Link text to uBO's own filter lists repo"
|
|
109
109
|
},
|
|
110
110
|
"aboutDependencies": {
|
|
111
|
-
"message": "
|
|
111
|
+
"message": "การพึ่งพิงภายนอก (เข้ากันได้กับ GPLv3):",
|
|
112
112
|
"description": "Shown in the About pane"
|
|
113
113
|
},
|
|
114
114
|
"supportS6H": {
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
"description": "First paragraph of 'Filter issues' section in Support pane"
|
|
121
121
|
},
|
|
122
122
|
"supportS5H": {
|
|
123
|
-
"message": "
|
|
123
|
+
"message": "ข้อมูลการแก้ไขปัญหา",
|
|
124
124
|
"description": "Label of 'Troubleshooting information' section in 'Report a filter issue' page"
|
|
125
125
|
},
|
|
126
126
|
"supportS6P1S1": {
|
|
@@ -244,11 +244,11 @@
|
|
|
244
244
|
"description": "Short description for a checkbox in the options page"
|
|
245
245
|
},
|
|
246
246
|
"developerModeLabel": {
|
|
247
|
-
"message": "
|
|
247
|
+
"message": "โหมดนักพัฒนา",
|
|
248
248
|
"description": "Label for a checkbox in the options page"
|
|
249
249
|
},
|
|
250
250
|
"developerModeLegend": {
|
|
251
|
-
"message": "
|
|
251
|
+
"message": "เปิดใช้งานฟีเจอร์สำหรับผู้ใช้ทางเทคนิค",
|
|
252
252
|
"description": "Short description for a checkbox in the options page"
|
|
253
253
|
},
|
|
254
254
|
"findListsPlaceholder": {
|
|
@@ -292,87 +292,87 @@
|
|
|
292
292
|
"description": "A button to navigate to the blocked page"
|
|
293
293
|
},
|
|
294
294
|
"zapperTipEnter": {
|
|
295
|
-
"message": "
|
|
295
|
+
"message": "ลบองค์ประกอบ",
|
|
296
296
|
"description": "Tooltip for the button used to enter zapper mode"
|
|
297
297
|
},
|
|
298
298
|
"zapperTipQuit": {
|
|
299
|
-
"message": "
|
|
299
|
+
"message": "ออกจากโหมดลบองค์ประกอบ",
|
|
300
300
|
"description": "Tooltip for the button used to exit zapper mode"
|
|
301
301
|
},
|
|
302
302
|
"pickerTipEnter": {
|
|
303
|
-
"message": "
|
|
303
|
+
"message": "สร้างตัวกรองที่กำหนดเอง",
|
|
304
304
|
"description": "Label for the menu entry to create cosmetic filters"
|
|
305
305
|
},
|
|
306
306
|
"unpickerTipEnter": {
|
|
307
|
-
"message": "
|
|
307
|
+
"message": "ลบตัวกรองที่กำหนดเอง",
|
|
308
308
|
"description": "Label for the menu entry to delete cosmetic filters"
|
|
309
309
|
},
|
|
310
310
|
"developDropdownLabel": {
|
|
311
|
-
"message": "
|
|
311
|
+
"message": "ดู:",
|
|
312
312
|
"description": "A label of a dropdown list"
|
|
313
313
|
},
|
|
314
314
|
"developOptionFilteringModeDetails": {
|
|
315
|
-
"message": "
|
|
315
|
+
"message": "รายละเอียดโหมดการกรอง",
|
|
316
316
|
"description": "An option in a dropdown list"
|
|
317
317
|
},
|
|
318
318
|
"developOptionCustomDnrRules": {
|
|
319
|
-
"message": "
|
|
319
|
+
"message": "กฎ DNR ที่กำหนดเอง",
|
|
320
320
|
"description": "An option in a dropdown list"
|
|
321
321
|
},
|
|
322
322
|
"developOptionDnrRulesOf": {
|
|
323
|
-
"message": "DNR
|
|
323
|
+
"message": "กฎ DNR ของ…",
|
|
324
324
|
"description": "A section header in a dropdown list"
|
|
325
325
|
},
|
|
326
326
|
"developOptionDynamicRuleset": {
|
|
327
|
-
"message": "
|
|
327
|
+
"message": "ชุดกฎไดนามิก",
|
|
328
328
|
"description": "An option in a dropdown list"
|
|
329
329
|
},
|
|
330
330
|
"developOptionSessionRuleset": {
|
|
331
|
-
"message": "
|
|
331
|
+
"message": "ชุดกฎเซสชัน",
|
|
332
332
|
"description": "An option in a dropdown list"
|
|
333
333
|
},
|
|
334
334
|
"saveButton": {
|
|
335
|
-
"message": "
|
|
335
|
+
"message": "บันทึก",
|
|
336
336
|
"description": "Text for buttons used to save changes"
|
|
337
337
|
},
|
|
338
338
|
"revertButton": {
|
|
339
|
-
"message": "
|
|
339
|
+
"message": "ย้อนกลับ",
|
|
340
340
|
"description": "Text for buttons used to revert changes"
|
|
341
341
|
},
|
|
342
342
|
"importAndAppendButton": {
|
|
343
|
-
"message": "
|
|
343
|
+
"message": "นำเข้าและต่อท้าย…",
|
|
344
344
|
"description": "Text for buttons used to import and append content"
|
|
345
345
|
},
|
|
346
346
|
"exportButton": {
|
|
347
|
-
"message": "
|
|
347
|
+
"message": "ส่งออก…",
|
|
348
348
|
"description": "Text for buttons used to export content"
|
|
349
349
|
},
|
|
350
350
|
"dnrRulesWarning": {
|
|
351
|
-
"message": "
|
|
351
|
+
"message": "อย่าเพิ่มเนื้อหาจากแหล่งที่ไม่น่าเชื่อถือ",
|
|
352
352
|
"description": "Short description of the DNR rules editor pane"
|
|
353
353
|
},
|
|
354
354
|
"dnrRulesCountInfo": {
|
|
355
|
-
"message": "
|
|
355
|
+
"message": "จำนวนกฎที่ลงทะเบียน: {count}",
|
|
356
356
|
"description": "Short sentence to report the number of currently registered DNR rules"
|
|
357
357
|
},
|
|
358
358
|
"pickerSliderLabel": {
|
|
359
|
-
"message": "
|
|
359
|
+
"message": "เลื่อนแถบเลื่อนเพื่อเลือกรายการที่ตรงกันที่สุด",
|
|
360
360
|
"description": "Label to describe the purpose of the slider"
|
|
361
361
|
},
|
|
362
362
|
"pickerPick": {
|
|
363
|
-
"message": "
|
|
363
|
+
"message": "เลือก",
|
|
364
364
|
"description": "Text for the button to re-enter element-picking mode"
|
|
365
365
|
},
|
|
366
366
|
"pickerPreview": {
|
|
367
|
-
"message": "
|
|
367
|
+
"message": "แสดงตัวอย่าง",
|
|
368
368
|
"description": "Text for the button to activate preview mode"
|
|
369
369
|
},
|
|
370
370
|
"pickerCreate": {
|
|
371
|
-
"message": "
|
|
371
|
+
"message": "สร้าง",
|
|
372
372
|
"description": "Text for the button to create the filter"
|
|
373
373
|
},
|
|
374
374
|
"unpickerUsage": {
|
|
375
|
-
"message": "
|
|
375
|
+
"message": "เลือกตัวกรองด้านล่างเพื่อไฮไลต์องค์ประกอบที่ตรงกันในหน้าเว็บ คลิกที่ไอคอนถังขยะเพื่อลบตัวกรอง",
|
|
376
376
|
"description": "Summary description on how to use the tool to remove custom filters"
|
|
377
377
|
}
|
|
378
378
|
}
|
|
@@ -304,31 +304,31 @@
|
|
|
304
304
|
"description": "Label for the menu entry to create cosmetic filters"
|
|
305
305
|
},
|
|
306
306
|
"unpickerTipEnter": {
|
|
307
|
-
"message": "
|
|
307
|
+
"message": "Вилучити власний фільтр",
|
|
308
308
|
"description": "Label for the menu entry to delete cosmetic filters"
|
|
309
309
|
},
|
|
310
310
|
"developDropdownLabel": {
|
|
311
|
-
"message": "
|
|
311
|
+
"message": "Перегляд:",
|
|
312
312
|
"description": "A label of a dropdown list"
|
|
313
313
|
},
|
|
314
314
|
"developOptionFilteringModeDetails": {
|
|
315
|
-
"message": "
|
|
315
|
+
"message": "Подробиці режиму фільтрації",
|
|
316
316
|
"description": "An option in a dropdown list"
|
|
317
317
|
},
|
|
318
318
|
"developOptionCustomDnrRules": {
|
|
319
|
-
"message": "
|
|
319
|
+
"message": "Користувацькі правила DNR",
|
|
320
320
|
"description": "An option in a dropdown list"
|
|
321
321
|
},
|
|
322
322
|
"developOptionDnrRulesOf": {
|
|
323
|
-
"message": "DNR
|
|
323
|
+
"message": "Правила DNR для…",
|
|
324
324
|
"description": "A section header in a dropdown list"
|
|
325
325
|
},
|
|
326
326
|
"developOptionDynamicRuleset": {
|
|
327
|
-
"message": "
|
|
327
|
+
"message": "Динамічний набір правил",
|
|
328
328
|
"description": "An option in a dropdown list"
|
|
329
329
|
},
|
|
330
330
|
"developOptionSessionRuleset": {
|
|
331
|
-
"message": "
|
|
331
|
+
"message": "Набір правил для сесії",
|
|
332
332
|
"description": "An option in a dropdown list"
|
|
333
333
|
},
|
|
334
334
|
"saveButton": {
|
|
@@ -348,7 +348,7 @@
|
|
|
348
348
|
"description": "Text for buttons used to export content"
|
|
349
349
|
},
|
|
350
350
|
"dnrRulesWarning": {
|
|
351
|
-
"message": "
|
|
351
|
+
"message": "Не додавати вміст з невідомих джерел",
|
|
352
352
|
"description": "Short description of the DNR rules editor pane"
|
|
353
353
|
},
|
|
354
354
|
"dnrRulesCountInfo": {
|
|
@@ -356,7 +356,7 @@
|
|
|
356
356
|
"description": "Short sentence to report the number of currently registered DNR rules"
|
|
357
357
|
},
|
|
358
358
|
"pickerSliderLabel": {
|
|
359
|
-
"message": "
|
|
359
|
+
"message": "Переміщайте повзунок для вибору кращого варіанту",
|
|
360
360
|
"description": "Label to describe the purpose of the slider"
|
|
361
361
|
},
|
|
362
362
|
"pickerPick": {
|
|
@@ -372,7 +372,7 @@
|
|
|
372
372
|
"description": "Text for the button to create the filter"
|
|
373
373
|
},
|
|
374
374
|
"unpickerUsage": {
|
|
375
|
-
"message": "
|
|
375
|
+
"message": "Виберіть фільтр нижче, щоб підсвітити відповідні елементи на сторінці. Натисніть на кошик для видалення фільтра.",
|
|
376
376
|
"description": "Summary description on how to use the tool to remove custom filters"
|
|
377
377
|
}
|
|
378
378
|
}
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"description": "Label in the popup panel for the current filtering mode"
|
|
37
37
|
},
|
|
38
38
|
"popupLocalToolsLabel": {
|
|
39
|
-
"message": "
|
|
39
|
+
"message": "Trên trang web này",
|
|
40
40
|
"description": "Label in the popup panel for the local tools section"
|
|
41
41
|
},
|
|
42
42
|
"popupTipReport": {
|
|
@@ -300,11 +300,11 @@
|
|
|
300
300
|
"description": "Tooltip for the button used to exit zapper mode"
|
|
301
301
|
},
|
|
302
302
|
"pickerTipEnter": {
|
|
303
|
-
"message": "
|
|
303
|
+
"message": "Tạo một bộ lọc tùy chỉnh",
|
|
304
304
|
"description": "Label for the menu entry to create cosmetic filters"
|
|
305
305
|
},
|
|
306
306
|
"unpickerTipEnter": {
|
|
307
|
-
"message": "
|
|
307
|
+
"message": "Xóa một bộ lọc tuỳ chỉnh",
|
|
308
308
|
"description": "Label for the menu entry to delete cosmetic filters"
|
|
309
309
|
},
|
|
310
310
|
"developDropdownLabel": {
|
|
@@ -356,23 +356,23 @@
|
|
|
356
356
|
"description": "Short sentence to report the number of currently registered DNR rules"
|
|
357
357
|
},
|
|
358
358
|
"pickerSliderLabel": {
|
|
359
|
-
"message": "
|
|
359
|
+
"message": "Di chuyển thanh trượt để chọn kết quả phù hợp nhất",
|
|
360
360
|
"description": "Label to describe the purpose of the slider"
|
|
361
361
|
},
|
|
362
362
|
"pickerPick": {
|
|
363
|
-
"message": "
|
|
363
|
+
"message": "Chọn",
|
|
364
364
|
"description": "Text for the button to re-enter element-picking mode"
|
|
365
365
|
},
|
|
366
366
|
"pickerPreview": {
|
|
367
|
-
"message": "
|
|
367
|
+
"message": "Xem trước",
|
|
368
368
|
"description": "Text for the button to activate preview mode"
|
|
369
369
|
},
|
|
370
370
|
"pickerCreate": {
|
|
371
|
-
"message": "
|
|
371
|
+
"message": "Tạo",
|
|
372
372
|
"description": "Text for the button to create the filter"
|
|
373
373
|
},
|
|
374
374
|
"unpickerUsage": {
|
|
375
|
-
"message": "
|
|
375
|
+
"message": "Chọn một bộ lọc bên dưới để đánh dấu các phần tử phù hợp trong trang web. Nhấp vào thùng rác để xóa bộ lọc.",
|
|
376
376
|
"description": "Summary description on how to use the tool to remove custom filters"
|
|
377
377
|
}
|
|
378
378
|
}
|
|
@@ -37,7 +37,8 @@ import {
|
|
|
37
37
|
injectCustomFilters,
|
|
38
38
|
removeCustomFilter,
|
|
39
39
|
selectorsFromCustomFilters,
|
|
40
|
-
|
|
40
|
+
startCustomFilters,
|
|
41
|
+
terminateCustomFilters,
|
|
41
42
|
} from './filter-manager.js';
|
|
42
43
|
|
|
43
44
|
import {
|
|
@@ -199,6 +200,20 @@ function onMessage(request, sender, callback) {
|
|
|
199
200
|
return false;
|
|
200
201
|
}
|
|
201
202
|
|
|
203
|
+
case 'startCustomFilters':
|
|
204
|
+
if ( frameId === false ) { return false; }
|
|
205
|
+
startCustomFilters(tabId, frameId).then(( ) => {
|
|
206
|
+
callback();
|
|
207
|
+
});
|
|
208
|
+
return true;
|
|
209
|
+
|
|
210
|
+
case 'terminateCustomFilters':
|
|
211
|
+
if ( frameId === false ) { return false; }
|
|
212
|
+
terminateCustomFilters(tabId, frameId).then(( ) => {
|
|
213
|
+
callback();
|
|
214
|
+
});
|
|
215
|
+
return true;
|
|
216
|
+
|
|
202
217
|
case 'injectCustomFilters':
|
|
203
218
|
if ( frameId === false ) { return false; }
|
|
204
219
|
injectCustomFilters(tabId, frameId, request.hostname).then(selectors => {
|
|
@@ -206,9 +221,14 @@ function onMessage(request, sender, callback) {
|
|
|
206
221
|
});
|
|
207
222
|
return true;
|
|
208
223
|
|
|
209
|
-
case '
|
|
210
|
-
|
|
211
|
-
|
|
224
|
+
case 'injectCSSProceduralAPI':
|
|
225
|
+
browser.scripting.executeScript({
|
|
226
|
+
files: [ '/js/scripting/css-procedural-api.js' ],
|
|
227
|
+
target: { tabId, frameIds: [ frameId ] },
|
|
228
|
+
injectImmediately: true,
|
|
229
|
+
}).catch(reason => {
|
|
230
|
+
console.log(reason);
|
|
231
|
+
}).then(( ) => {
|
|
212
232
|
callback();
|
|
213
233
|
});
|
|
214
234
|
return true;
|
|
@@ -321,7 +341,7 @@ function onMessage(request, sender, callback) {
|
|
|
321
341
|
case 'popupPanelData': {
|
|
322
342
|
Promise.all([
|
|
323
343
|
hasBroadHostPermissions(),
|
|
324
|
-
getFilteringMode(request.
|
|
344
|
+
getFilteringMode(request.hostname),
|
|
325
345
|
adminReadEx('disabledFeatures'),
|
|
326
346
|
hasCustomFilters(request.hostname),
|
|
327
347
|
]).then(results => {
|
|
@@ -492,7 +512,11 @@ function onCommand(command, tab) {
|
|
|
492
512
|
case 'enter-picker-mode': {
|
|
493
513
|
if ( browser.scripting === undefined ) { return; }
|
|
494
514
|
browser.scripting.executeScript({
|
|
495
|
-
files: [
|
|
515
|
+
files: [
|
|
516
|
+
'/js/scripting/css-procedural-api.js',
|
|
517
|
+
'/js/scripting/tool-overlay.js',
|
|
518
|
+
'/js/scripting/picker.js',
|
|
519
|
+
],
|
|
496
520
|
target: { tabId: tab.id },
|
|
497
521
|
});
|
|
498
522
|
break;
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
Home: https://github.com/gorhill/uBlock
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
import {
|
|
22
|
+
import { dnr, normalizeDNRRules } from './ext-compat.js';
|
|
23
23
|
import { browser } from './ext.js';
|
|
24
24
|
|
|
25
25
|
/******************************************************************************/
|
|
@@ -62,7 +62,11 @@ const getRuleset = async rulesetId => {
|
|
|
62
62
|
} else {
|
|
63
63
|
const response = await fetch(`/rulesets/main/${rulesetId}.json`).catch(( ) => undefined);
|
|
64
64
|
if ( response === undefined ) { return; }
|
|
65
|
-
rules = await response.json().catch(( ) =>
|
|
65
|
+
rules = await response.json().catch(( ) =>
|
|
66
|
+
undefined
|
|
67
|
+
).then(rules =>
|
|
68
|
+
normalizeDNRRules(rules)
|
|
69
|
+
);
|
|
66
70
|
}
|
|
67
71
|
if ( Array.isArray(rules) === false ) { return; }
|
|
68
72
|
const ruleset = new Map();
|
|
@@ -72,8 +76,8 @@ const getRuleset = async rulesetId => {
|
|
|
72
76
|
if ( condition.requestDomains ) {
|
|
73
77
|
condition.requestDomains = pruneLongLists(condition.requestDomains);
|
|
74
78
|
}
|
|
75
|
-
if ( condition
|
|
76
|
-
condition
|
|
79
|
+
if ( condition.initiatorDomains ) {
|
|
80
|
+
condition.initiatorDomains = pruneLongLists(condition.initiatorDomains);
|
|
77
81
|
}
|
|
78
82
|
}
|
|
79
83
|
const ruleId = rule.id;
|
|
@@ -21,8 +21,6 @@
|
|
|
21
21
|
|
|
22
22
|
export const webext = self.browser || self.chrome;
|
|
23
23
|
export const dnr = webext.declarativeNetRequest || {};
|
|
24
|
-
export const INITIATOR_DOMAINS = 'initiatorDomains';
|
|
25
|
-
export const EXCLUDED_INITIATOR_DOMAINS = 'excludedInitiatorDomains';
|
|
26
24
|
|
|
27
25
|
/******************************************************************************/
|
|
28
26
|
|
|
@@ -36,6 +34,15 @@ const isSameRules = (a, b) => {
|
|
|
36
34
|
|
|
37
35
|
/******************************************************************************/
|
|
38
36
|
|
|
37
|
+
export function normalizeDNRRules(rules, ruleIds) {
|
|
38
|
+
if ( Array.isArray(rules) === false ) { return rules; }
|
|
39
|
+
return Array.isArray(ruleIds)
|
|
40
|
+
? rules.filter(rule => ruleIds.includes(rule.id))
|
|
41
|
+
: rules;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/******************************************************************************/
|
|
45
|
+
|
|
39
46
|
dnr.setAllowAllRules = async function(id, allowed, notAllowed, reverse, priority) {
|
|
40
47
|
const [
|
|
41
48
|
beforeDynamicRules,
|
|
@@ -144,11 +144,10 @@ export function renderFilterLists(rulesetData) {
|
|
|
144
144
|
.replace('{{filterCount}}', renderNumber(stats.filterCount));
|
|
145
145
|
const fromAdmin = isAdminRuleset(ruleset.id);
|
|
146
146
|
dom.cl.toggle(listEntry, 'fromAdmin', fromAdmin);
|
|
147
|
-
const disabled = stats.ruleCount === 0 || fromAdmin;
|
|
148
147
|
dom.attr(
|
|
149
148
|
qs$(listEntry, '.input.checkbox input'),
|
|
150
149
|
'disabled',
|
|
151
|
-
|
|
150
|
+
fromAdmin ? '' : null
|
|
152
151
|
);
|
|
153
152
|
};
|
|
154
153
|
|
|
@@ -50,7 +50,9 @@ export async function selectorsFromCustomFilters(hostname) {
|
|
|
50
50
|
for ( let i = 0; i < promises.length; i++ ) {
|
|
51
51
|
const selectors = results[i];
|
|
52
52
|
if ( selectors === undefined ) { continue; }
|
|
53
|
-
selectors.forEach(selector => {
|
|
53
|
+
selectors.forEach(selector => {
|
|
54
|
+
out.push(selector.startsWith('0') ? selector.slice(1) : selector);
|
|
55
|
+
});
|
|
54
56
|
}
|
|
55
57
|
return out.sort();
|
|
56
58
|
}
|
|
@@ -64,38 +66,71 @@ export async function hasCustomFilters(hostname) {
|
|
|
64
66
|
|
|
65
67
|
/******************************************************************************/
|
|
66
68
|
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
async function getAllCustomFilterKeys() {
|
|
70
|
+
const storageKeys = await localKeys() || [];
|
|
71
|
+
return storageKeys.filter(a => a.startsWith('site.'));
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/******************************************************************************/
|
|
75
|
+
|
|
76
|
+
export function startCustomFilters(tabId, frameId) {
|
|
77
|
+
return browser.scripting.executeScript({
|
|
78
|
+
files: [ '/js/scripting/css-user.js' ],
|
|
73
79
|
target: { tabId, frameIds: [ frameId ] },
|
|
80
|
+
injectImmediately: true,
|
|
74
81
|
}).catch(reason => {
|
|
75
82
|
console.log(reason);
|
|
76
|
-
})
|
|
77
|
-
|
|
83
|
+
})
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export function terminateCustomFilters(tabId, frameId) {
|
|
87
|
+
return browser.scripting.executeScript({
|
|
88
|
+
files: [ '/js/scripting/css-user-terminate.js' ],
|
|
89
|
+
target: { tabId, frameIds: [ frameId ] },
|
|
90
|
+
injectImmediately: true,
|
|
91
|
+
}).catch(reason => {
|
|
92
|
+
console.log(reason);
|
|
93
|
+
})
|
|
78
94
|
}
|
|
79
95
|
|
|
80
96
|
/******************************************************************************/
|
|
81
97
|
|
|
82
|
-
export async function
|
|
98
|
+
export async function injectCustomFilters(tabId, frameId, hostname) {
|
|
83
99
|
const selectors = await selectorsFromCustomFilters(hostname);
|
|
84
100
|
if ( selectors.length === 0 ) { return; }
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
101
|
+
const promises = [];
|
|
102
|
+
const plainSelectors = selectors.filter(a => a.startsWith('{') === false);
|
|
103
|
+
if ( plainSelectors.length !== 0 ) {
|
|
104
|
+
promises.push(
|
|
105
|
+
browser.scripting.insertCSS({
|
|
106
|
+
css: `${plainSelectors.join(',\n')}{display:none!important;}`,
|
|
107
|
+
origin: 'USER',
|
|
108
|
+
target: { tabId, frameIds: [ frameId ] },
|
|
109
|
+
}).catch(reason => {
|
|
110
|
+
console.log(reason);
|
|
111
|
+
})
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
const proceduralSelectors = selectors.filter(a => a.startsWith('{'));
|
|
115
|
+
if ( proceduralSelectors.length !== 0 ) {
|
|
116
|
+
promises.push(
|
|
117
|
+
browser.scripting.executeScript({
|
|
118
|
+
files: [ '/js/scripting/css-procedural-api.js' ],
|
|
119
|
+
target: { tabId, frameIds: [ frameId ] },
|
|
120
|
+
injectImmediately: true,
|
|
121
|
+
}).catch(reason => {
|
|
122
|
+
console.log(reason);
|
|
123
|
+
})
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
await Promise.all(promises);
|
|
127
|
+
return { plainSelectors, proceduralSelectors };
|
|
92
128
|
}
|
|
93
129
|
|
|
94
130
|
/******************************************************************************/
|
|
95
131
|
|
|
96
132
|
export async function registerCustomFilters(context) {
|
|
97
|
-
const
|
|
98
|
-
const siteKeys = storageKeys.filter(a => a.startsWith('site.'));
|
|
133
|
+
const siteKeys = await getAllCustomFilterKeys();
|
|
99
134
|
if ( siteKeys.length === 0 ) { return; }
|
|
100
135
|
|
|
101
136
|
const { none } = context.filteringModeDetails;
|
|
@@ -133,9 +168,8 @@ export async function registerCustomFilters(context) {
|
|
|
133
168
|
export async function addCustomFilter(hostname, selector) {
|
|
134
169
|
const key = `site.${hostname}`;
|
|
135
170
|
const selectors = await localRead(key) || [];
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
selectors.push(filter);
|
|
171
|
+
if ( selectors.includes(selector) ) { return false; }
|
|
172
|
+
selectors.push(selector);
|
|
139
173
|
selectors.sort();
|
|
140
174
|
await localWrite(key, selectors);
|
|
141
175
|
return true;
|
|
@@ -147,7 +181,7 @@ export async function removeCustomFilter(hostname, selector) {
|
|
|
147
181
|
const key = `site.${hostname}`;
|
|
148
182
|
const selectors = await localRead(key);
|
|
149
183
|
if ( selectors === undefined ) { return false; }
|
|
150
|
-
const i = selectors.indexOf(
|
|
184
|
+
const i = selectors.indexOf(selector);
|
|
151
185
|
if ( i === -1 ) { return false; }
|
|
152
186
|
selectors.splice(i, 1);
|
|
153
187
|
await selectors.length !== 0
|