@browserless.io/browserless 2.37.0 → 2.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -1
- package/build/browsers/index.js +15 -0
- package/build/routes/chrome/http/content.post.query.json +3 -0
- package/build/routes/chrome/http/download.post.query.json +3 -0
- package/build/routes/chrome/http/function.post.query.json +3 -0
- package/build/routes/chrome/http/pdf.post.query.json +3 -0
- package/build/routes/chrome/http/performance.post.query.json +3 -0
- package/build/routes/chrome/http/scrape.post.query.json +3 -0
- package/build/routes/chrome/http/screenshot.post.query.json +3 -0
- package/build/routes/chrome/tests/content.spec.js +21 -0
- package/build/routes/chrome/tests/json.spec.js +100 -0
- package/build/routes/chrome/ws/browser.query.json +3 -0
- package/build/routes/chrome/ws/cdp.query.json +3 -0
- package/build/routes/chrome/ws/function-connect.query.json +3 -0
- package/build/routes/chrome/ws/page.query.json +3 -0
- package/build/routes/chromium/http/content.post.query.json +3 -0
- package/build/routes/chromium/http/download.post.query.json +3 -0
- package/build/routes/chromium/http/function.post.query.json +3 -0
- package/build/routes/chromium/http/pdf.post.query.json +3 -0
- package/build/routes/chromium/http/performance.post.query.json +3 -0
- package/build/routes/chromium/http/scrape.post.query.json +3 -0
- package/build/routes/chromium/http/screenshot.post.query.json +3 -0
- package/build/routes/chromium/tests/content.spec.js +21 -0
- package/build/routes/chromium/tests/function.spec.js +27 -0
- package/build/routes/chromium/tests/json.spec.js +100 -0
- package/build/routes/chromium/ws/browser.query.json +3 -0
- package/build/routes/chromium/ws/cdp.query.json +3 -0
- package/build/routes/chromium/ws/function-connect.query.json +3 -0
- package/build/routes/chromium/ws/page.query.json +3 -0
- package/build/routes/edge/http/content.post.query.json +3 -0
- package/build/routes/edge/http/download.post.query.json +3 -0
- package/build/routes/edge/http/function.post.query.json +3 -0
- package/build/routes/edge/http/pdf.post.query.json +3 -0
- package/build/routes/edge/http/performance.post.query.json +3 -0
- package/build/routes/edge/http/scrape.post.query.json +3 -0
- package/build/routes/edge/http/screenshot.post.query.json +3 -0
- package/build/routes/edge/tests/content.spec.js +21 -0
- package/build/routes/edge/tests/json.spec.js +100 -0
- package/build/routes/edge/ws/browser.query.json +3 -0
- package/build/routes/edge/ws/cdp.query.json +3 -0
- package/build/routes/edge/ws/function-connect.query.json +3 -0
- package/build/routes/edge/ws/page.query.json +3 -0
- package/build/routes/management/http/kill.get.query.json +3 -0
- package/build/routes/management/http/sessions.get.query.json +3 -0
- package/build/routes/management/tests/management.spec.js +44 -0
- package/build/server.js +1 -1
- package/build/shim.js +11 -1
- package/build/shim.spec.js +14 -0
- package/build/types.d.ts +2 -0
- package/extensions/ublocklite/_locales/ar/messages.json +5 -5
- package/extensions/ublocklite/_locales/br_FR/messages.json +2 -2
- package/extensions/ublocklite/_locales/cs/messages.json +8 -8
- package/extensions/ublocklite/_locales/da/messages.json +5 -5
- package/extensions/ublocklite/_locales/de/messages.json +1 -1
- package/extensions/ublocklite/_locales/es/messages.json +4 -4
- package/extensions/ublocklite/_locales/fa/messages.json +8 -8
- package/extensions/ublocklite/_locales/gl/messages.json +5 -5
- package/extensions/ublocklite/_locales/hu/messages.json +5 -5
- package/extensions/ublocklite/_locales/ka/messages.json +5 -5
- package/extensions/ublocklite/_locales/nb/messages.json +7 -7
- package/extensions/ublocklite/_locales/pt_PT/messages.json +9 -9
- package/extensions/ublocklite/_locales/ro/messages.json +32 -32
- package/extensions/ublocklite/_locales/ru/messages.json +3 -3
- package/extensions/ublocklite/_locales/sq/messages.json +5 -5
- package/extensions/ublocklite/_locales/sv/messages.json +5 -5
- package/extensions/ublocklite/_locales/zh_CN/messages.json +5 -5
- package/extensions/ublocklite/css/settings.css +6 -0
- package/extensions/ublocklite/dashboard.html +1 -1
- package/extensions/ublocklite/js/background.js +29 -8
- package/extensions/ublocklite/js/dashboard.js +4 -5
- package/extensions/ublocklite/js/jsonpath.js +25 -10
- package/extensions/ublocklite/js/mode-manager.js +7 -9
- package/extensions/ublocklite/js/report.js +2 -4
- package/extensions/ublocklite/js/scripting/css-api.js +33 -0
- package/extensions/ublocklite/js/scripting/css-generic.js +3 -13
- package/extensions/ublocklite/js/scripting/css-procedural-api.js +1 -9
- package/extensions/ublocklite/js/scripting/css-procedural.js +1 -5
- package/extensions/ublocklite/js/scripting/css-specific.js +1 -5
- package/extensions/ublocklite/js/scripting-manager.js +11 -8
- package/extensions/ublocklite/js/troubleshooting.js +33 -18
- package/extensions/ublocklite/js/utils.js +15 -13
- package/extensions/ublocklite/manifest.json +3 -2
- package/extensions/ublocklite/rulesets/generic-details.json +4 -2
- package/extensions/ublocklite/rulesets/main/adguard-mobile.json +4 -5
- package/extensions/ublocklite/rulesets/main/adguard-spyware-url.json +13 -8
- package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +24 -18
- package/extensions/ublocklite/rulesets/main/annoyances-notifications.json +2 -1
- package/extensions/ublocklite/rulesets/main/annoyances-others.json +3 -2
- package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +5 -3
- package/extensions/ublocklite/rulesets/main/chn-0.json +26 -16
- package/extensions/ublocklite/rulesets/main/deu-0.json +4 -4
- package/extensions/ublocklite/rulesets/main/dpollock-0.json +2 -1
- package/extensions/ublocklite/rulesets/main/easylist.json +44 -101
- package/extensions/ublocklite/rulesets/main/easyprivacy.json +28 -15
- package/extensions/ublocklite/rulesets/main/est-0.json +2 -1
- package/extensions/ublocklite/rulesets/main/fin-0.json +3 -1
- package/extensions/ublocklite/rulesets/main/fra-0.json +6 -4
- package/extensions/ublocklite/rulesets/main/hrv-0.json +6 -3
- package/extensions/ublocklite/rulesets/main/hun-0.json +5 -2
- package/extensions/ublocklite/rulesets/main/idn-0.json +1 -1
- package/extensions/ublocklite/rulesets/main/ind-0.json +36 -34
- package/extensions/ublocklite/rulesets/main/isr-0.json +1 -1
- package/extensions/ublocklite/rulesets/main/ita-0.json +6 -3
- package/extensions/ublocklite/rulesets/main/jpn-1.json +31 -24
- package/extensions/ublocklite/rulesets/main/kor-1.json +5 -3
- package/extensions/ublocklite/rulesets/main/mkd-0.json +2 -1
- package/extensions/ublocklite/rulesets/main/nld-0.json +3 -1
- package/extensions/ublocklite/rulesets/main/nor-0.json +17 -3
- package/extensions/ublocklite/rulesets/main/pgl.json +16 -20
- package/extensions/ublocklite/rulesets/main/pol-0.json +1 -1
- package/extensions/ublocklite/rulesets/main/rus-0.json +14 -13
- package/extensions/ublocklite/rulesets/main/rus-1.json +5 -2
- package/extensions/ublocklite/rulesets/main/spa-1.json +13 -3
- package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +11287 -12041
- package/extensions/ublocklite/rulesets/main/swe-1.json +24 -22
- package/extensions/ublocklite/rulesets/main/tur-0.json +15 -6
- package/extensions/ublocklite/rulesets/main/ublock-badware.json +30 -3
- package/extensions/ublocklite/rulesets/main/ublock-filters.json +91 -88
- package/extensions/ublocklite/rulesets/main/ukr-0.json +3 -3
- package/extensions/ublocklite/rulesets/main/urlhaus-full.json +4063 -328
- package/extensions/ublocklite/rulesets/main/vie-1.json +62 -51
- package/extensions/ublocklite/rulesets/regex/block-lan.json +16 -0
- package/extensions/ublocklite/rulesets/regex/chn-0.json +3 -2
- package/extensions/ublocklite/rulesets/regex/easylist.json +1 -6
- package/extensions/ublocklite/rulesets/regex/jpn-1.json +2 -3
- package/extensions/ublocklite/rulesets/regex/rus-0.json +2 -1
- package/extensions/ublocklite/rulesets/regex/ublock-badware.json +5 -5
- package/extensions/ublocklite/rulesets/regex/ublock-filters.json +23 -14
- package/extensions/ublocklite/rulesets/ruleset-details.json +239 -239
- package/extensions/ublocklite/rulesets/scripting/generic/adguard-mobile.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/alb-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-notifications.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-others.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-overlays.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-widgets.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/bgr-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/cze-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/deu-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/easyprivacy.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/est-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/fin-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/fra-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/grc-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/hrv-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/hun-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/idn-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/ind-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/irn-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/isr-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/ita-0.js +2 -2
- 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/ltu-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/lva-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/mkd-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/nld-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/nor-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/pol-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/rou-1.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/rus-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/rus-1.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/spa-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/spa-1.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/svn-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/swe-1.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/tha-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/tur-0.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/ublock-badware.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/ubol-tests.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/ukr-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generic/vie-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +3 -5
- package/extensions/ublocklite/rulesets/scripting/generichigh/easylist.css +4 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +4 -0
- package/extensions/ublocklite/rulesets/scripting/generichigh/rus-0.css +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-others.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-overlays.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/fin-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/fra-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/grc-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/ind-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/irn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/isr-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/rou-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/rus-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/ublock-experimental.js +42 -0
- package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.addEventListener-defuser.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.prevent-requestAnimationFrame.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.remove-node-text.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-session-storage-item.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +5 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-replace-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-notifications.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.json-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-on-stack-trace.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +6 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setTimeout.js +6 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-class.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-click-element.js +3 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-replace-argument.js +19 -8
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-replace-outbound-text.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-suppress-native-method.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.evaldata-prune.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +6 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.set-constant.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{nld-0.json-prune-fetch-response.js → chn-0.set-cookie.js} +120 -266
- package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/est-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fin-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/{vie-1.addEventListener-defuser.js → fin-0.remove-node-text.js} +105 -154
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-requestAnimationFrame.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.href-sanitizer.js +4 -22
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-fetch.js +6 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.adjust-setInterval.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.href-sanitizer.js +6 -24
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.json-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.addEventListener-defuser.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-fetch.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setTimeout.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-xhr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.remove-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.remove-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-local-storage-item.js +399 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ltu-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ltu-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/pol-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-write.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-stack-trace.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +8 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.href-sanitizer.js +6 -24
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-node-text.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.set-local-storage-item.js +399 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.href-sanitizer.js +4 -22
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.json-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.noeval-if.js +6 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-requestAnimationFrame.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setTimeout.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.remove-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.href-sanitizer.js +4 -22
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +6 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.trusted-replace-argument.js +19 -8
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-json-edit-xhr-request.js +848 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-replace-node-text.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-write.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.href-sanitizer.js +5 -23
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit-fetch-response.js +29 -11
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit-xhr-response.js +24 -10
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit.js +29 -11
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-fetch-response.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-xhr-response.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.jsonl-edit-xhr-response.js +24 -10
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +6 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +8 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +8 -4
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-click-element.js +3 -0
- 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 +29 -11
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit.js +29 -11
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-override-element-method.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-dom-bypass.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-fetch.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +21 -10
- 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 +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-attr.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-fetch-response.js +29 -11
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.jsonl-edit-xhr-response.js +24 -10
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ubol-tests.trusted-prevent-dom-bypass.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.set-constant.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/est-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/fra-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/grc-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/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/nor-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/rou-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/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 +205 -117
- package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +18 -28
- package/extensions/ublocklite/rulesets/strictblock/annoyances-cookies.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/annoyances-widgets.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/chn-0.json +267 -247
- package/extensions/ublocklite/rulesets/strictblock/deu-0.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/dpollock-0.json +2 -1
- package/extensions/ublocklite/rulesets/strictblock/easylist.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +47 -3
- package/extensions/ublocklite/rulesets/strictblock/fra-0.json +102 -41
- package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +208 -198
- package/extensions/ublocklite/rulesets/strictblock/nor-0.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/pgl.json +16 -20
- package/extensions/ublocklite/rulesets/strictblock/pol-0.json +5 -1
- package/extensions/ublocklite/rulesets/strictblock/spa-1.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +11287 -12041
- package/extensions/ublocklite/rulesets/strictblock/swe-1.json +0 -1
- package/extensions/ublocklite/rulesets/strictblock/tur-0.json +1 -0
- package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +671 -653
- package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +23 -19
- package/extensions/ublocklite/rulesets/strictblock/ukr-0.json +3 -0
- package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +4063 -328
- package/extensions/ublocklite/rulesets/strictblock/vie-1.json +5 -1
- package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +59 -1
- package/extensions/ublocklite/ublock.zip +0 -0
- package/package.json +23 -22
- package/scripts/install-debugger.js +2 -2
- package/src/browsers/index.ts +20 -0
- package/src/routes/chrome/tests/content.spec.ts +24 -0
- package/src/routes/chrome/tests/json.spec.ts +134 -0
- package/src/routes/chromium/tests/content.spec.ts +24 -0
- package/src/routes/chromium/tests/function.spec.ts +33 -0
- package/src/routes/chromium/tests/json.spec.ts +134 -0
- package/src/routes/chromium/tests/scrape.spec.ts +3 -1
- package/src/routes/edge/tests/content.spec.ts +24 -0
- package/src/routes/edge/tests/json.spec.ts +134 -0
- package/src/routes/management/tests/management.spec.ts +66 -0
- package/src/server.ts +1 -1
- package/src/shared/screenshot.http.ts +1 -1
- package/src/shim.spec.ts +18 -0
- package/src/shim.ts +15 -1
- package/src/types.ts +2 -0
- package/static/docs/swagger.json +5 -2
- package/static/docs/swagger.min.json +4 -1
- package/static/function/client.js +143 -105
- package/static/function/index.html +143 -105
- package/build/routes/chrome/tests/json-version.spec.js +0 -37
- package/build/routes/chromium/tests/json-version.spec.js +0 -37
- package/build/routes/edge/tests/json-version.spec.js +0 -37
- package/src/routes/chrome/tests/json-version.spec.ts +0 -52
- package/src/routes/chromium/tests/json-version.spec.ts +0 -52
- package/src/routes/edge/tests/json-version.spec.ts +0 -52
- /package/build/routes/chrome/tests/{json-version.spec.d.ts → json.spec.d.ts} +0 -0
- /package/build/routes/chromium/tests/{json-version.spec.d.ts → json.spec.d.ts} +0 -0
- /package/build/routes/edge/tests/{json-version.spec.d.ts → json.spec.d.ts} +0 -0
|
@@ -309,4 +309,25 @@ describe('/edge/content API', function () {
|
|
|
309
309
|
expect(res.status).to.equal(200);
|
|
310
310
|
});
|
|
311
311
|
});
|
|
312
|
+
it('can accept insecure certs', async () => {
|
|
313
|
+
const config = new Config();
|
|
314
|
+
config.setToken('browserless');
|
|
315
|
+
const metrics = new Metrics();
|
|
316
|
+
await start({ config, metrics });
|
|
317
|
+
const body = {
|
|
318
|
+
gotoOptions: {
|
|
319
|
+
waitUntil: `networkidle2`,
|
|
320
|
+
},
|
|
321
|
+
url: 'https://self-signed.badssl.com',
|
|
322
|
+
};
|
|
323
|
+
await fetch('http://localhost:3000/edge/content?token=browserless&launch={"acceptInsecureCerts":true}', {
|
|
324
|
+
body: JSON.stringify(body),
|
|
325
|
+
headers: {
|
|
326
|
+
'content-type': 'application/json',
|
|
327
|
+
},
|
|
328
|
+
method: 'POST',
|
|
329
|
+
}).then(async (res) => {
|
|
330
|
+
expect(res.status).to.equal(200);
|
|
331
|
+
});
|
|
332
|
+
});
|
|
312
333
|
});
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { Browserless, Config, Metrics } from '@browserless.io/browserless';
|
|
2
|
+
import { expect } from 'chai';
|
|
3
|
+
describe('/json/ API', function () {
|
|
4
|
+
let browserless;
|
|
5
|
+
const start = ({ config = new Config(), metrics = new Metrics(), } = {}) => {
|
|
6
|
+
browserless = new Browserless({ config, metrics });
|
|
7
|
+
return browserless.start();
|
|
8
|
+
};
|
|
9
|
+
afterEach(async () => {
|
|
10
|
+
await browserless.stop();
|
|
11
|
+
});
|
|
12
|
+
it('allows requests to /json/version', async () => {
|
|
13
|
+
const config = new Config();
|
|
14
|
+
config.setToken('browserless');
|
|
15
|
+
const metrics = new Metrics();
|
|
16
|
+
await start({ config, metrics });
|
|
17
|
+
const res = await fetch('http://localhost:3000/json/version?token=browserless');
|
|
18
|
+
const resJSON = await res.json();
|
|
19
|
+
[
|
|
20
|
+
'Browser',
|
|
21
|
+
'Protocol-Version',
|
|
22
|
+
'User-Agent',
|
|
23
|
+
'V8-Version',
|
|
24
|
+
'WebKit-Version',
|
|
25
|
+
'webSocketDebuggerUrl',
|
|
26
|
+
'Debugger-Version',
|
|
27
|
+
].forEach((k) => expect(resJSON).to.haveOwnProperty(k));
|
|
28
|
+
});
|
|
29
|
+
it('rejects unauthorized requests to /json/version', async () => {
|
|
30
|
+
const config = new Config();
|
|
31
|
+
config.setToken('browserless');
|
|
32
|
+
const metrics = new Metrics();
|
|
33
|
+
await start({ config, metrics });
|
|
34
|
+
const res = await fetch('http://localhost:3000/json/version?token=imabadboi');
|
|
35
|
+
expect(res.status).to.equal(401);
|
|
36
|
+
});
|
|
37
|
+
it('rejects unauthorized requests to /json/list', async () => {
|
|
38
|
+
const config = new Config();
|
|
39
|
+
config.setToken('browserless');
|
|
40
|
+
const metrics = new Metrics();
|
|
41
|
+
await start({ config, metrics });
|
|
42
|
+
const res = await fetch('http://localhost:3000/json/list?token=imabadboi');
|
|
43
|
+
expect(res.status).to.equal(401);
|
|
44
|
+
});
|
|
45
|
+
it('allows requests to /json/protocol', async () => {
|
|
46
|
+
const config = new Config();
|
|
47
|
+
config.setToken('browserless');
|
|
48
|
+
const metrics = new Metrics();
|
|
49
|
+
await start({ config, metrics });
|
|
50
|
+
const res = await fetch('http://localhost:3000/json/protocol?token=browserless');
|
|
51
|
+
expect(res.status).to.equal(200);
|
|
52
|
+
const resJSON = await res.json();
|
|
53
|
+
expect(resJSON).to.be.an('object');
|
|
54
|
+
expect(resJSON).to.haveOwnProperty('version');
|
|
55
|
+
expect(resJSON).to.haveOwnProperty('domains');
|
|
56
|
+
});
|
|
57
|
+
it('rejects unauthorized requests to /json/protocol', async () => {
|
|
58
|
+
const config = new Config();
|
|
59
|
+
config.setToken('browserless');
|
|
60
|
+
const metrics = new Metrics();
|
|
61
|
+
await start({ config, metrics });
|
|
62
|
+
const res = await fetch('http://localhost:3000/json/protocol?token=imabadboi');
|
|
63
|
+
expect(res.status).to.equal(401);
|
|
64
|
+
});
|
|
65
|
+
it('allows requests to PUT /json/new', async () => {
|
|
66
|
+
const config = new Config();
|
|
67
|
+
config.setToken('browserless');
|
|
68
|
+
const metrics = new Metrics();
|
|
69
|
+
await start({ config, metrics });
|
|
70
|
+
const res = await fetch('http://localhost:3000/json/new?token=browserless', {
|
|
71
|
+
method: 'PUT',
|
|
72
|
+
});
|
|
73
|
+
expect(res.status).to.equal(200);
|
|
74
|
+
const resJSON = await res.json();
|
|
75
|
+
const keys = [
|
|
76
|
+
'description',
|
|
77
|
+
'devtoolsFrontendUrl',
|
|
78
|
+
'id',
|
|
79
|
+
'title',
|
|
80
|
+
'type',
|
|
81
|
+
'url',
|
|
82
|
+
'webSocketDebuggerUrl',
|
|
83
|
+
];
|
|
84
|
+
keys.forEach((k) => expect(resJSON).to.haveOwnProperty(k));
|
|
85
|
+
expect(resJSON.type).to.equal('page');
|
|
86
|
+
expect(resJSON.title).to.equal('New Tab');
|
|
87
|
+
expect(resJSON.url).to.equal('about:blank');
|
|
88
|
+
expect(resJSON.description).to.equal('');
|
|
89
|
+
});
|
|
90
|
+
it('rejects unauthorized requests to PUT /json/new', async () => {
|
|
91
|
+
const config = new Config();
|
|
92
|
+
config.setToken('browserless');
|
|
93
|
+
const metrics = new Metrics();
|
|
94
|
+
await start({ config, metrics });
|
|
95
|
+
const res = await fetch('http://localhost:3000/json/new?token=imabadboi', {
|
|
96
|
+
method: 'PUT',
|
|
97
|
+
});
|
|
98
|
+
expect(res.status).to.equal(401);
|
|
99
|
+
});
|
|
100
|
+
});
|
|
@@ -95,6 +95,50 @@ describe('Management APIs', function () {
|
|
|
95
95
|
expect(r.status).to.equal(404);
|
|
96
96
|
});
|
|
97
97
|
});
|
|
98
|
+
describe('Static Files Serving', () => {
|
|
99
|
+
it('serves docs pages', async () => {
|
|
100
|
+
await start();
|
|
101
|
+
await fetch('http://localhost:3000/docs/index.html?token=6R0W53R135510').then(async (res) => {
|
|
102
|
+
expect(res.status).to.equal(200);
|
|
103
|
+
expect(res.headers.get('content-type')).to.equal('text/html');
|
|
104
|
+
const content = await res.text();
|
|
105
|
+
expect(content).to.include('<title>Browserless Docs</title>');
|
|
106
|
+
});
|
|
107
|
+
await fetch('http://localhost:3000/docs/docs.js?token=6R0W53R135510').then(async (res) => {
|
|
108
|
+
expect(res.status).to.equal(200);
|
|
109
|
+
expect(res.headers.get('content-type')).to.equal('application/javascript');
|
|
110
|
+
const content = await res.text();
|
|
111
|
+
expect(content).to.be.an('string');
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
it('serves swagger.json', async () => {
|
|
115
|
+
await start();
|
|
116
|
+
await fetch('http://localhost:3000/docs/swagger.json?token=6R0W53R135510').then(async (res) => {
|
|
117
|
+
expect(res.status).to.equal(200);
|
|
118
|
+
expect(res.headers.get('content-type')).to.equal('application/json');
|
|
119
|
+
const content = await res.json();
|
|
120
|
+
expect(content).to.be.an('object');
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
it('returns 404 if debugger is disabled', async () => {
|
|
124
|
+
process.env.ENABLE_DEBUGGER = 'false';
|
|
125
|
+
const config = new Config();
|
|
126
|
+
config.setToken('6R0W53R135510');
|
|
127
|
+
// Ensure debugger is not available
|
|
128
|
+
await start({ config });
|
|
129
|
+
await fetch('http://localhost:3000/debugger/some-file.html?token=6R0W53R135510').then(async (res) => {
|
|
130
|
+
expect(res.status).to.equal(404);
|
|
131
|
+
expect(res.headers.get('content-type')).to.equal('text/plain; charset=UTF-8');
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
it('handles requests without authentication token for static files', async () => {
|
|
135
|
+
await start();
|
|
136
|
+
await fetch('http://localhost:3000/docs/index.html').then(async (res) => {
|
|
137
|
+
expect(res.status).to.equal(200);
|
|
138
|
+
expect(res.headers.get('content-type')).to.equal('text/html');
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
});
|
|
98
142
|
it('allows requests to /config', async () => {
|
|
99
143
|
await start();
|
|
100
144
|
await fetch('http://localhost:3000/config?token=6R0W53R135510').then(async (res) => {
|
package/build/server.js
CHANGED
|
@@ -242,7 +242,7 @@ export class HTTPServer extends EventEmitter {
|
|
|
242
242
|
}
|
|
243
243
|
async shutdown() {
|
|
244
244
|
this.logger.info(`HTTP Server is shutting down`);
|
|
245
|
-
await new Promise((r) => this.server
|
|
245
|
+
await new Promise((r) => this.server?.close(r));
|
|
246
246
|
if (this.server) {
|
|
247
247
|
this.server.removeAllListeners();
|
|
248
248
|
}
|
package/build/shim.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { convertIfBase64, safeParse, } from '@browserless.io/browserless';
|
|
2
|
-
const shimParam = ['headless', 'stealth', 'ignoreDefaultArgs', 'slowMo'];
|
|
2
|
+
const shimParam = ['headless', 'stealth', 'ignoreDefaultArgs', 'slowMo', 'ignoreHTTPSErrors'];
|
|
3
3
|
/**
|
|
4
4
|
* Obfuscates the ?token parameter by shifting it to a header instead of a query-parameter.
|
|
5
5
|
*/
|
|
@@ -49,6 +49,16 @@ export function shimLegacyRequests(url) {
|
|
|
49
49
|
launchParams.ignoreHTTPSErrors === undefined) {
|
|
50
50
|
launchParams.ignoreHTTPSErrors = ignoreHTTPSErrors !== 'false';
|
|
51
51
|
}
|
|
52
|
+
// When acceptInsecureCerts is set, ignoreHTTPSErrors is ignored
|
|
53
|
+
if (launchParams.acceptInsecureCerts !== undefined) {
|
|
54
|
+
launchParams.ignoreHTTPSErrors = undefined;
|
|
55
|
+
}
|
|
56
|
+
// When ignoreHTTPSErrors sent, convert it to acceptInsecureCerts
|
|
57
|
+
if (typeof ignoreHTTPSErrors !== 'undefined' &&
|
|
58
|
+
launchParams.acceptInsecureCerts === undefined) {
|
|
59
|
+
launchParams.acceptInsecureCerts = ignoreHTTPSErrors !== 'false';
|
|
60
|
+
launchParams.ignoreHTTPSErrors = undefined;
|
|
61
|
+
}
|
|
52
62
|
if (typeof ignoreDefaultArgs !== 'undefined' &&
|
|
53
63
|
launchParams.ignoreDefaultArgs === undefined) {
|
|
54
64
|
const parsed = typeof ignoreDefaultArgs === 'string' && ignoreDefaultArgs.includes(',')
|
package/build/shim.spec.js
CHANGED
|
@@ -125,6 +125,20 @@ describe('Request Shimming', () => {
|
|
|
125
125
|
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
126
126
|
});
|
|
127
127
|
});
|
|
128
|
+
describe('insecure certs', () => {
|
|
129
|
+
it('converts ignoreHTTPSErrors to acceptInsecureCerts', () => {
|
|
130
|
+
const url = 'wss://localhost?ignoreHTTPSErrors';
|
|
131
|
+
const final = 'wss://localhost/?launch={"acceptInsecureCerts":true}';
|
|
132
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
133
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
134
|
+
});
|
|
135
|
+
it('acceptInsecureCerts takes precedence over ignoreHTTPSErrors', () => {
|
|
136
|
+
const url = 'wss://localhost?ignoreHTTPSErrors&launch={"acceptInsecureCerts":false}';
|
|
137
|
+
const final = 'wss://localhost/?launch={"acceptInsecureCerts":false}';
|
|
138
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
139
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
140
|
+
});
|
|
141
|
+
});
|
|
128
142
|
describe('token shimming', () => {
|
|
129
143
|
it('converts token query parameters to an authorization header', () => {
|
|
130
144
|
const url = 'wss://localhost?token=12345';
|
package/build/types.d.ts
CHANGED
|
@@ -262,7 +262,9 @@ export interface CDPLaunchOptions extends BrowserlessLaunch {
|
|
|
262
262
|
dumpio?: boolean;
|
|
263
263
|
headless?: boolean | 'shell';
|
|
264
264
|
ignoreDefaultArgs?: boolean | string[];
|
|
265
|
+
/** @deprecated use acceptInsecureCerts field instead */
|
|
265
266
|
ignoreHTTPSErrors?: boolean;
|
|
267
|
+
acceptInsecureCerts?: boolean;
|
|
266
268
|
slowMo?: number;
|
|
267
269
|
stealth?: boolean;
|
|
268
270
|
timeout?: number;
|
|
@@ -264,15 +264,15 @@
|
|
|
264
264
|
"description": "Short description for a checkbox in the options page"
|
|
265
265
|
},
|
|
266
266
|
"settingsBackupRestoreLabel": {
|
|
267
|
-
"message": "
|
|
267
|
+
"message": "النسخ الاحتياطي",
|
|
268
268
|
"description": "The header text for the back up/restore section"
|
|
269
269
|
},
|
|
270
270
|
"settingsBackupRestoreSummary": {
|
|
271
|
-
"message": "
|
|
271
|
+
"message": "قم بنسخ الإعدادات المخصصة احتياطيًا إلى ملف، أو استعادة الإعدادات المخصصة من ملف.",
|
|
272
272
|
"description": "A summary description of the back up/restore section."
|
|
273
273
|
},
|
|
274
274
|
"settingsBackupRestoreLegend": {
|
|
275
|
-
"message": "
|
|
275
|
+
"message": "ستؤدي عملية الاستعادة إلى استبدال جميع إعداداتك المخصصة الحالية.",
|
|
276
276
|
"description": "Important information about the back up/restore section."
|
|
277
277
|
},
|
|
278
278
|
"findListsPlaceholder": {
|
|
@@ -376,11 +376,11 @@
|
|
|
376
376
|
"description": "Text for buttons used to export content"
|
|
377
377
|
},
|
|
378
378
|
"backupButton": {
|
|
379
|
-
"message": "
|
|
379
|
+
"message": "نسخ احتياطي…",
|
|
380
380
|
"description": "Text for buttons used to back up content"
|
|
381
381
|
},
|
|
382
382
|
"restoreButton": {
|
|
383
|
-
"message": "
|
|
383
|
+
"message": "استعادة…",
|
|
384
384
|
"description": "Text for buttons used to restore content"
|
|
385
385
|
},
|
|
386
386
|
"dnrRulesWarning": {
|
|
@@ -264,7 +264,7 @@
|
|
|
264
264
|
"description": "Short description for a checkbox in the options page"
|
|
265
265
|
},
|
|
266
266
|
"settingsBackupRestoreLabel": {
|
|
267
|
-
"message": "
|
|
267
|
+
"message": "Gwared",
|
|
268
268
|
"description": "The header text for the back up/restore section"
|
|
269
269
|
},
|
|
270
270
|
"settingsBackupRestoreSummary": {
|
|
@@ -376,7 +376,7 @@
|
|
|
376
376
|
"description": "Text for buttons used to export content"
|
|
377
377
|
},
|
|
378
378
|
"backupButton": {
|
|
379
|
-
"message": "
|
|
379
|
+
"message": "Gwarediñ…",
|
|
380
380
|
"description": "Text for buttons used to back up content"
|
|
381
381
|
},
|
|
382
382
|
"restoreButton": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"description": "appears as tab name in dashboard"
|
|
21
21
|
},
|
|
22
22
|
"customFiltersPageName": {
|
|
23
|
-
"message": "
|
|
23
|
+
"message": "Vlastní filtry",
|
|
24
24
|
"description": "appears as tab name in dashboard"
|
|
25
25
|
},
|
|
26
26
|
"developPageName": {
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"description": "Text label heading the import/export area of custom filters"
|
|
93
93
|
},
|
|
94
94
|
"customFiltersImportTextareaPlaceholder": {
|
|
95
|
-
"message": "
|
|
95
|
+
"message": "Vložte sem konkrétní kosmetické filtry, které chcete přidat",
|
|
96
96
|
"description": "Placeholder text which describes the purpose of the textarea widget"
|
|
97
97
|
},
|
|
98
98
|
"aboutChangelog": {
|
|
@@ -264,15 +264,15 @@
|
|
|
264
264
|
"description": "Short description for a checkbox in the options page"
|
|
265
265
|
},
|
|
266
266
|
"settingsBackupRestoreLabel": {
|
|
267
|
-
"message": "
|
|
267
|
+
"message": "Záloha",
|
|
268
268
|
"description": "The header text for the back up/restore section"
|
|
269
269
|
},
|
|
270
270
|
"settingsBackupRestoreSummary": {
|
|
271
|
-
"message": "
|
|
271
|
+
"message": "Zálohování vlastních nastavení do souboru nebo obnovení vlastních nastavení ze souboru.",
|
|
272
272
|
"description": "A summary description of the back up/restore section."
|
|
273
273
|
},
|
|
274
274
|
"settingsBackupRestoreLegend": {
|
|
275
|
-
"message": "
|
|
275
|
+
"message": "Obnovení přepíše všechna vaše aktuální vlastní nastavení.",
|
|
276
276
|
"description": "Important information about the back up/restore section."
|
|
277
277
|
},
|
|
278
278
|
"findListsPlaceholder": {
|
|
@@ -364,7 +364,7 @@
|
|
|
364
364
|
"description": "Text for buttons used to revert changes"
|
|
365
365
|
},
|
|
366
366
|
"addButton": {
|
|
367
|
-
"message": "
|
|
367
|
+
"message": "Přidat",
|
|
368
368
|
"description": "Text for buttons used to add content"
|
|
369
369
|
},
|
|
370
370
|
"importAndAppendButton": {
|
|
@@ -376,11 +376,11 @@
|
|
|
376
376
|
"description": "Text for buttons used to export content"
|
|
377
377
|
},
|
|
378
378
|
"backupButton": {
|
|
379
|
-
"message": "
|
|
379
|
+
"message": "Zálohovat…",
|
|
380
380
|
"description": "Text for buttons used to back up content"
|
|
381
381
|
},
|
|
382
382
|
"restoreButton": {
|
|
383
|
-
"message": "
|
|
383
|
+
"message": "Obnovit…",
|
|
384
384
|
"description": "Text for buttons used to restore content"
|
|
385
385
|
},
|
|
386
386
|
"dnrRulesWarning": {
|
|
@@ -264,15 +264,15 @@
|
|
|
264
264
|
"description": "Short description for a checkbox in the options page"
|
|
265
265
|
},
|
|
266
266
|
"settingsBackupRestoreLabel": {
|
|
267
|
-
"message": "
|
|
267
|
+
"message": "Sikkerhedskopiér",
|
|
268
268
|
"description": "The header text for the back up/restore section"
|
|
269
269
|
},
|
|
270
270
|
"settingsBackupRestoreSummary": {
|
|
271
|
-
"message": "
|
|
271
|
+
"message": "Sikkerhedskopiér tilpassede indstillinger til en fil, eller gendan tilpassede indstillinger fra en fil.",
|
|
272
272
|
"description": "A summary description of the back up/restore section."
|
|
273
273
|
},
|
|
274
274
|
"settingsBackupRestoreLegend": {
|
|
275
|
-
"message": "
|
|
275
|
+
"message": "Gendannelse overskriver alle nuværende tilpassede indstillinger.",
|
|
276
276
|
"description": "Important information about the back up/restore section."
|
|
277
277
|
},
|
|
278
278
|
"findListsPlaceholder": {
|
|
@@ -376,11 +376,11 @@
|
|
|
376
376
|
"description": "Text for buttons used to export content"
|
|
377
377
|
},
|
|
378
378
|
"backupButton": {
|
|
379
|
-
"message": "
|
|
379
|
+
"message": "Sikkerhedskopiér…",
|
|
380
380
|
"description": "Text for buttons used to back up content"
|
|
381
381
|
},
|
|
382
382
|
"restoreButton": {
|
|
383
|
-
"message": "
|
|
383
|
+
"message": "Gendan…",
|
|
384
384
|
"description": "Text for buttons used to restore content"
|
|
385
385
|
},
|
|
386
386
|
"dnrRulesWarning": {
|
|
@@ -264,7 +264,7 @@
|
|
|
264
264
|
"description": "Short description for a checkbox in the options page"
|
|
265
265
|
},
|
|
266
266
|
"settingsBackupRestoreLabel": {
|
|
267
|
-
"message": "
|
|
267
|
+
"message": "Sicherung",
|
|
268
268
|
"description": "The header text for the back up/restore section"
|
|
269
269
|
},
|
|
270
270
|
"settingsBackupRestoreSummary": {
|
|
@@ -264,15 +264,15 @@
|
|
|
264
264
|
"description": "Short description for a checkbox in the options page"
|
|
265
265
|
},
|
|
266
266
|
"settingsBackupRestoreLabel": {
|
|
267
|
-
"message": "
|
|
267
|
+
"message": "Respaldar",
|
|
268
268
|
"description": "The header text for the back up/restore section"
|
|
269
269
|
},
|
|
270
270
|
"settingsBackupRestoreSummary": {
|
|
271
|
-
"message": "Haz
|
|
271
|
+
"message": "Haz un respaldo de tu configuración personalizada en un archivo o restaura tu configuración personalizada desde uno.",
|
|
272
272
|
"description": "A summary description of the back up/restore section."
|
|
273
273
|
},
|
|
274
274
|
"settingsBackupRestoreLegend": {
|
|
275
|
-
"message": "
|
|
275
|
+
"message": "La restauración sobrescribirá toda tu configuración personalizada actual.",
|
|
276
276
|
"description": "Important information about the back up/restore section."
|
|
277
277
|
},
|
|
278
278
|
"findListsPlaceholder": {
|
|
@@ -376,7 +376,7 @@
|
|
|
376
376
|
"description": "Text for buttons used to export content"
|
|
377
377
|
},
|
|
378
378
|
"backupButton": {
|
|
379
|
-
"message": "
|
|
379
|
+
"message": "Respaldar…",
|
|
380
380
|
"description": "Text for buttons used to back up content"
|
|
381
381
|
},
|
|
382
382
|
"restoreButton": {
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
"description": "First paragraph of 'Filter issues' section in Support pane"
|
|
133
133
|
},
|
|
134
134
|
"supportS5H": {
|
|
135
|
-
"message": "
|
|
135
|
+
"message": "اطلاعات مشکلگشایی",
|
|
136
136
|
"description": "Label of 'Troubleshooting information' section in 'Report a filter issue' page"
|
|
137
137
|
},
|
|
138
138
|
"supportS6P1S1": {
|
|
@@ -144,7 +144,7 @@
|
|
|
144
144
|
"description": "A clickable link in the filter issue reporter section"
|
|
145
145
|
},
|
|
146
146
|
"supportS6URL": {
|
|
147
|
-
"message": "
|
|
147
|
+
"message": "آدرس صفحهی وب:",
|
|
148
148
|
"description": "Label for the URL of the page"
|
|
149
149
|
},
|
|
150
150
|
"supportS6Select1": {
|
|
@@ -152,15 +152,15 @@
|
|
|
152
152
|
"description": "Label for widget to select type of issue"
|
|
153
153
|
},
|
|
154
154
|
"supportS6Select1Option0": {
|
|
155
|
-
"message": "--
|
|
155
|
+
"message": "-- یک گزینه را انتخاب کنید --",
|
|
156
156
|
"description": "An entry in the widget used to select the type of issue"
|
|
157
157
|
},
|
|
158
158
|
"supportS6Select1Option1": {
|
|
159
|
-
"message": "
|
|
159
|
+
"message": "تبلیغات یا باقیماندههایی از آن نشان میدهد",
|
|
160
160
|
"description": "An entry in the widget used to select the type of issue"
|
|
161
161
|
},
|
|
162
162
|
"supportS6Select1Option2": {
|
|
163
|
-
"message": "
|
|
163
|
+
"message": "دارای لایههای اضافی یا مشکلات مزاحم دیگر",
|
|
164
164
|
"description": "An entry in the widget used to select the type of issue"
|
|
165
165
|
},
|
|
166
166
|
"supportS6Select1Option3": {
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
"description": "An entry in the widget used to select the type of issue"
|
|
169
169
|
},
|
|
170
170
|
"supportS6Select1Option4": {
|
|
171
|
-
"message": "
|
|
171
|
+
"message": "دارای ایراد مربوط به حریم خصوصی است",
|
|
172
172
|
"description": "An entry in the widget used to select the type of issue"
|
|
173
173
|
},
|
|
174
174
|
"supportS6Select1Option5": {
|
|
@@ -176,11 +176,11 @@
|
|
|
176
176
|
"description": "An entry in the widget used to select the type of issue"
|
|
177
177
|
},
|
|
178
178
|
"supportS6Select1Option6": {
|
|
179
|
-
"message": "
|
|
179
|
+
"message": "تب یا پنجرهی ناخواسته باز میکند",
|
|
180
180
|
"description": "An entry in the widget used to select the type of issue"
|
|
181
181
|
},
|
|
182
182
|
"supportS6Select1Option7": {
|
|
183
|
-
"message": "
|
|
183
|
+
"message": "منجر به بدافزار یا فیشینگ میشود",
|
|
184
184
|
"description": "An entry in the widget used to select the type of issue"
|
|
185
185
|
},
|
|
186
186
|
"supportS6Checkbox1": {
|
|
@@ -264,15 +264,15 @@
|
|
|
264
264
|
"description": "Short description for a checkbox in the options page"
|
|
265
265
|
},
|
|
266
266
|
"settingsBackupRestoreLabel": {
|
|
267
|
-
"message": "
|
|
267
|
+
"message": "Copia de apoio",
|
|
268
268
|
"description": "The header text for the back up/restore section"
|
|
269
269
|
},
|
|
270
270
|
"settingsBackupRestoreSummary": {
|
|
271
|
-
"message": "
|
|
271
|
+
"message": "Garda nun ficheiro a túa configuración ou restablece os axustes desde un ficheiro.",
|
|
272
272
|
"description": "A summary description of the back up/restore section."
|
|
273
273
|
},
|
|
274
274
|
"settingsBackupRestoreLegend": {
|
|
275
|
-
"message": "
|
|
275
|
+
"message": "Ao restablecer vas sobrescribir a configuración actual.",
|
|
276
276
|
"description": "Important information about the back up/restore section."
|
|
277
277
|
},
|
|
278
278
|
"findListsPlaceholder": {
|
|
@@ -376,11 +376,11 @@
|
|
|
376
376
|
"description": "Text for buttons used to export content"
|
|
377
377
|
},
|
|
378
378
|
"backupButton": {
|
|
379
|
-
"message": "
|
|
379
|
+
"message": "Gardar axustes…",
|
|
380
380
|
"description": "Text for buttons used to back up content"
|
|
381
381
|
},
|
|
382
382
|
"restoreButton": {
|
|
383
|
-
"message": "
|
|
383
|
+
"message": "Restablecer…",
|
|
384
384
|
"description": "Text for buttons used to restore content"
|
|
385
385
|
},
|
|
386
386
|
"dnrRulesWarning": {
|
|
@@ -264,15 +264,15 @@
|
|
|
264
264
|
"description": "Short description for a checkbox in the options page"
|
|
265
265
|
},
|
|
266
266
|
"settingsBackupRestoreLabel": {
|
|
267
|
-
"message": "
|
|
267
|
+
"message": "Biztonsági mentés",
|
|
268
268
|
"description": "The header text for the back up/restore section"
|
|
269
269
|
},
|
|
270
270
|
"settingsBackupRestoreSummary": {
|
|
271
|
-
"message": "
|
|
271
|
+
"message": "Egyéni beállítások fájlbamentése, vagy az egyéni beállítások helyreállítása egy fájlból.",
|
|
272
272
|
"description": "A summary description of the back up/restore section."
|
|
273
273
|
},
|
|
274
274
|
"settingsBackupRestoreLegend": {
|
|
275
|
-
"message": "
|
|
275
|
+
"message": "A helyreállítás felülírja a jelenlegi egyéni beállításokat.",
|
|
276
276
|
"description": "Important information about the back up/restore section."
|
|
277
277
|
},
|
|
278
278
|
"findListsPlaceholder": {
|
|
@@ -376,11 +376,11 @@
|
|
|
376
376
|
"description": "Text for buttons used to export content"
|
|
377
377
|
},
|
|
378
378
|
"backupButton": {
|
|
379
|
-
"message": "
|
|
379
|
+
"message": "Biztonsági mentés…",
|
|
380
380
|
"description": "Text for buttons used to back up content"
|
|
381
381
|
},
|
|
382
382
|
"restoreButton": {
|
|
383
|
-
"message": "
|
|
383
|
+
"message": "Helyreállítás…",
|
|
384
384
|
"description": "Text for buttons used to restore content"
|
|
385
385
|
},
|
|
386
386
|
"dnrRulesWarning": {
|