@browserless.io/browserless 2.37.0 → 2.37.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/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/es/messages.json +4 -4
- package/extensions/ublocklite/_locales/gl/messages.json +5 -5
- package/extensions/ublocklite/_locales/ka/messages.json +5 -5
- 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 +10 -6
- package/extensions/ublocklite/js/dashboard.js +4 -5
- package/extensions/ublocklite/js/jsonpath.js +25 -10
- package/extensions/ublocklite/js/report.js +2 -4
- package/extensions/ublocklite/js/troubleshooting.js +30 -18
- package/extensions/ublocklite/manifest.json +2 -2
- package/extensions/ublocklite/rulesets/main/adguard-mobile.json +1 -1
- package/extensions/ublocklite/rulesets/main/adguard-spyware-url.json +1 -1
- package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +6 -4
- package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +2 -1
- package/extensions/ublocklite/rulesets/main/chn-0.json +5 -3
- package/extensions/ublocklite/rulesets/main/easylist.json +10 -13
- package/extensions/ublocklite/rulesets/main/easyprivacy.json +8 -9
- package/extensions/ublocklite/rulesets/main/fin-0.json +3 -1
- package/extensions/ublocklite/rulesets/main/ita-0.json +2 -0
- package/extensions/ublocklite/rulesets/main/jpn-1.json +8 -10
- package/extensions/ublocklite/rulesets/main/nor-0.json +2 -2
- package/extensions/ublocklite/rulesets/main/pol-0.json +1 -1
- package/extensions/ublocklite/rulesets/main/rus-1.json +2 -1
- package/extensions/ublocklite/rulesets/main/spa-1.json +6 -1
- package/extensions/ublocklite/rulesets/main/swe-1.json +5 -5
- package/extensions/ublocklite/rulesets/main/tur-0.json +2 -2
- package/extensions/ublocklite/rulesets/main/ublock-badware.json +4 -2
- package/extensions/ublocklite/rulesets/main/ublock-filters.json +25 -25
- package/extensions/ublocklite/rulesets/main/ukr-0.json +2 -2
- package/extensions/ublocklite/rulesets/main/urlhaus-full.json +610 -80
- package/extensions/ublocklite/rulesets/main/vie-1.json +20 -14
- package/extensions/ublocklite/rulesets/regex/easylist.json +1 -6
- package/extensions/ublocklite/rulesets/regex/jpn-1.json +1 -1
- package/extensions/ublocklite/rulesets/regex/ublock-badware.json +3 -4
- package/extensions/ublocklite/rulesets/regex/ublock-filters.json +11 -9
- package/extensions/ublocklite/rulesets/ruleset-details.json +120 -120
- package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/generic/ita-0.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +2 -2
- 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/fin-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/jpn-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +2 -2
- 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.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-notifications.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.json-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-class.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-replace-argument.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-replace-outbound-text.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.trusted-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 +6 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/cze-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/est-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fin-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fin-0.remove-node-text.js +449 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-requestAnimationFrame.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.addEventListener-defuser.js +5 -1
- 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.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-window-open.js +5 -1
- 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-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.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-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/spa-1.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.json-prune.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.noeval-if.js +5 -1
- 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 +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-setTimeout.js +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 +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.noeval-if.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-badware.trusted-replace-argument.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-json-edit-xhr-request.js +848 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-replace-node-text.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +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.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.jsonl-edit-xhr-response.js +24 -10
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +6 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-cookie.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-request.js +941 -0
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-json-edit-fetch-response.js +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 +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +2 -2
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +7 -3
- package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +6 -2
- 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 +1 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.addEventListener-defuser.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-fetch.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-setTimeout.js +5 -1
- package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-notifications.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/grc-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
- package/extensions/ublocklite/rulesets/scripting/specific/isr-0.js +1 -1
- 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/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/vie-1.js +3 -3
- package/extensions/ublocklite/rulesets/scriptlet-details.json +90 -32
- package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +5 -0
- package/extensions/ublocklite/rulesets/strictblock/chn-0.json +67 -1
- package/extensions/ublocklite/rulesets/strictblock/easylist.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +17 -1
- package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +198 -196
- package/extensions/ublocklite/rulesets/strictblock/nor-0.json +1 -1
- package/extensions/ublocklite/rulesets/strictblock/pol-0.json +2 -0
- package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +532 -530
- package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +23 -19
- package/extensions/ublocklite/rulesets/strictblock/ukr-0.json +2 -0
- package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +610 -80
- package/extensions/ublocklite/ublock.zip +0 -0
- package/package.json +13 -12
- 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 +4 -1
- package/static/docs/swagger.min.json +4 -1
- package/static/function/client.js +86 -92
- package/static/function/index.html +86 -92
- 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
|
@@ -151,6 +151,72 @@ describe('Management APIs', function () {
|
|
|
151
151
|
});
|
|
152
152
|
});
|
|
153
153
|
|
|
154
|
+
describe('Static Files Serving', () => {
|
|
155
|
+
it('serves docs pages', async () => {
|
|
156
|
+
await start();
|
|
157
|
+
|
|
158
|
+
await fetch(
|
|
159
|
+
'http://localhost:3000/docs/index.html?token=6R0W53R135510',
|
|
160
|
+
).then(async (res) => {
|
|
161
|
+
expect(res.status).to.equal(200);
|
|
162
|
+
expect(res.headers.get('content-type')).to.equal('text/html');
|
|
163
|
+
const content = await res.text();
|
|
164
|
+
expect(content).to.include('<title>Browserless Docs</title>');
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
await fetch(
|
|
168
|
+
'http://localhost:3000/docs/docs.js?token=6R0W53R135510',
|
|
169
|
+
).then(async (res) => {
|
|
170
|
+
expect(res.status).to.equal(200);
|
|
171
|
+
expect(res.headers.get('content-type')).to.equal(
|
|
172
|
+
'application/javascript',
|
|
173
|
+
);
|
|
174
|
+
const content = await res.text();
|
|
175
|
+
expect(content).to.be.an('string');
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
it('serves swagger.json', async () => {
|
|
180
|
+
await start();
|
|
181
|
+
|
|
182
|
+
await fetch(
|
|
183
|
+
'http://localhost:3000/docs/swagger.json?token=6R0W53R135510',
|
|
184
|
+
).then(async (res) => {
|
|
185
|
+
expect(res.status).to.equal(200);
|
|
186
|
+
expect(res.headers.get('content-type')).to.equal('application/json');
|
|
187
|
+
const content = await res.json();
|
|
188
|
+
expect(content).to.be.an('object');
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
it('returns 404 if debugger is disabled', async () => {
|
|
193
|
+
process.env.ENABLE_DEBUGGER = 'false';
|
|
194
|
+
const config = new Config();
|
|
195
|
+
config.setToken('6R0W53R135510');
|
|
196
|
+
// Ensure debugger is not available
|
|
197
|
+
|
|
198
|
+
await start({ config });
|
|
199
|
+
|
|
200
|
+
await fetch(
|
|
201
|
+
'http://localhost:3000/debugger/some-file.html?token=6R0W53R135510',
|
|
202
|
+
).then(async (res) => {
|
|
203
|
+
expect(res.status).to.equal(404);
|
|
204
|
+
expect(res.headers.get('content-type')).to.equal(
|
|
205
|
+
'text/plain; charset=UTF-8',
|
|
206
|
+
);
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
it('handles requests without authentication token for static files', async () => {
|
|
211
|
+
await start();
|
|
212
|
+
|
|
213
|
+
await fetch('http://localhost:3000/docs/index.html').then(async (res) => {
|
|
214
|
+
expect(res.status).to.equal(200);
|
|
215
|
+
expect(res.headers.get('content-type')).to.equal('text/html');
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
|
|
154
220
|
it('allows requests to /config', async () => {
|
|
155
221
|
await start();
|
|
156
222
|
|
package/src/server.ts
CHANGED
|
@@ -424,7 +424,7 @@ export class HTTPServer extends EventEmitter {
|
|
|
424
424
|
|
|
425
425
|
public async shutdown(): Promise<void> {
|
|
426
426
|
this.logger.info(`HTTP Server is shutting down`);
|
|
427
|
-
await new Promise((r) => this.server
|
|
427
|
+
await new Promise((r) => this.server?.close(r));
|
|
428
428
|
|
|
429
429
|
if (this.server) {
|
|
430
430
|
this.server.removeAllListeners();
|
|
@@ -63,7 +63,7 @@ export interface BodySchema {
|
|
|
63
63
|
url?: Parameters<Page['goto']>[0];
|
|
64
64
|
userAgent?: Parameters<Page['setUserAgent']>[0];
|
|
65
65
|
viewport?: Parameters<Page['setViewport']>[0];
|
|
66
|
-
waitForEvent?: WaitForEventOptions;
|
|
66
|
+
waitForEvent?: WaitForEventOptions;
|
|
67
67
|
waitForFunction?: WaitForFunctionOptions;
|
|
68
68
|
waitForSelector?: WaitForSelectorOptions;
|
|
69
69
|
waitForTimeout?: number;
|
package/src/shim.spec.ts
CHANGED
|
@@ -174,6 +174,24 @@ describe('Request Shimming', () => {
|
|
|
174
174
|
});
|
|
175
175
|
});
|
|
176
176
|
|
|
177
|
+
describe('insecure certs', () => {
|
|
178
|
+
it('converts ignoreHTTPSErrors to acceptInsecureCerts', () => {
|
|
179
|
+
const url = 'wss://localhost?ignoreHTTPSErrors';
|
|
180
|
+
const final = 'wss://localhost/?launch={"acceptInsecureCerts":true}';
|
|
181
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
182
|
+
|
|
183
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
it('acceptInsecureCerts takes precedence over ignoreHTTPSErrors', () => {
|
|
187
|
+
const url = 'wss://localhost?ignoreHTTPSErrors&launch={"acceptInsecureCerts":false}';
|
|
188
|
+
const final = 'wss://localhost/?launch={"acceptInsecureCerts":false}';
|
|
189
|
+
const shimmed = shimLegacyRequests(new URL(url));
|
|
190
|
+
|
|
191
|
+
expect(decodeURIComponent(shimmed.href)).to.equal(final);
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
|
|
177
195
|
describe('token shimming', () => {
|
|
178
196
|
it('converts token query parameters to an authorization header', () => {
|
|
179
197
|
const url = 'wss://localhost?token=12345';
|
package/src/shim.ts
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
safeParse,
|
|
6
6
|
} from '@browserless.io/browserless';
|
|
7
7
|
|
|
8
|
-
const shimParam = ['headless', 'stealth', 'ignoreDefaultArgs', 'slowMo'];
|
|
8
|
+
const shimParam = ['headless', 'stealth', 'ignoreDefaultArgs', 'slowMo', 'ignoreHTTPSErrors'];
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Obfuscates the ?token parameter by shifting it to a header instead of a query-parameter.
|
|
@@ -74,6 +74,20 @@ export function shimLegacyRequests(url: URL): URL {
|
|
|
74
74
|
launchParams.ignoreHTTPSErrors = ignoreHTTPSErrors !== 'false';
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
+
// When acceptInsecureCerts is set, ignoreHTTPSErrors is ignored
|
|
78
|
+
if (launchParams.acceptInsecureCerts !== undefined) {
|
|
79
|
+
launchParams.ignoreHTTPSErrors = undefined;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// When ignoreHTTPSErrors sent, convert it to acceptInsecureCerts
|
|
83
|
+
if (
|
|
84
|
+
typeof ignoreHTTPSErrors !== 'undefined' &&
|
|
85
|
+
launchParams.acceptInsecureCerts === undefined
|
|
86
|
+
) {
|
|
87
|
+
launchParams.acceptInsecureCerts = ignoreHTTPSErrors !== 'false';
|
|
88
|
+
launchParams.ignoreHTTPSErrors = undefined;
|
|
89
|
+
}
|
|
90
|
+
|
|
77
91
|
if (
|
|
78
92
|
typeof ignoreDefaultArgs !== 'undefined' &&
|
|
79
93
|
launchParams.ignoreDefaultArgs === undefined
|
package/src/types.ts
CHANGED
|
@@ -373,7 +373,9 @@ export interface CDPLaunchOptions extends BrowserlessLaunch {
|
|
|
373
373
|
dumpio?: boolean;
|
|
374
374
|
headless?: boolean | 'shell';
|
|
375
375
|
ignoreDefaultArgs?: boolean | string[];
|
|
376
|
+
/** @deprecated use acceptInsecureCerts field instead */
|
|
376
377
|
ignoreHTTPSErrors?: boolean;
|
|
378
|
+
acceptInsecureCerts?: boolean;
|
|
377
379
|
slowMo?: number;
|
|
378
380
|
stealth?: boolean;
|
|
379
381
|
timeout?: number;
|
package/static/docs/swagger.json
CHANGED
|
@@ -425,6 +425,9 @@
|
|
|
425
425
|
"ignoreHTTPSErrors": {
|
|
426
426
|
"type": "boolean"
|
|
427
427
|
},
|
|
428
|
+
"acceptInsecureCerts": {
|
|
429
|
+
"type": "boolean"
|
|
430
|
+
},
|
|
428
431
|
"slowMo": {
|
|
429
432
|
"type": "number"
|
|
430
433
|
},
|
|
@@ -981,7 +984,7 @@
|
|
|
981
984
|
},
|
|
982
985
|
"info": {
|
|
983
986
|
"title": "Browserless",
|
|
984
|
-
"version": "2.37.
|
|
987
|
+
"version": "2.37.1",
|
|
985
988
|
"x-logo": {
|
|
986
989
|
"altText": "browserless logo",
|
|
987
990
|
"url": "./docs/browserless-logo-inline.svg"
|
|
@@ -425,6 +425,9 @@
|
|
|
425
425
|
"ignoreHTTPSErrors": {
|
|
426
426
|
"type": "boolean"
|
|
427
427
|
},
|
|
428
|
+
"acceptInsecureCerts": {
|
|
429
|
+
"type": "boolean"
|
|
430
|
+
},
|
|
428
431
|
"slowMo": {
|
|
429
432
|
"type": "number"
|
|
430
433
|
},
|
|
@@ -981,7 +984,7 @@
|
|
|
981
984
|
},
|
|
982
985
|
"info": {
|
|
983
986
|
"title": "Browserless",
|
|
984
|
-
"version": "2.37.
|
|
987
|
+
"version": "2.37.1",
|
|
985
988
|
"x-logo": {
|
|
986
989
|
"altText": "browserless logo",
|
|
987
990
|
"url": "./docs/browserless-logo-inline.svg"
|
|
@@ -4422,7 +4422,7 @@
|
|
|
4422
4422
|
// node_modules/puppeteer-core/lib/esm/puppeteer/generated/version.js
|
|
4423
4423
|
init_dirname();
|
|
4424
4424
|
init_buffer2();
|
|
4425
|
-
var packageVersion = "24.
|
|
4425
|
+
var packageVersion = "24.23.0";
|
|
4426
4426
|
|
|
4427
4427
|
// node_modules/puppeteer-core/lib/esm/puppeteer/util/assert.js
|
|
4428
4428
|
init_dirname();
|
|
@@ -7399,14 +7399,12 @@
|
|
|
7399
7399
|
* import {KnownDevices} from 'puppeteer';
|
|
7400
7400
|
* const iPhone = KnownDevices['iPhone 15 Pro'];
|
|
7401
7401
|
*
|
|
7402
|
-
*
|
|
7403
|
-
*
|
|
7404
|
-
*
|
|
7405
|
-
*
|
|
7406
|
-
*
|
|
7407
|
-
*
|
|
7408
|
-
* await browser.close();
|
|
7409
|
-
* })();
|
|
7402
|
+
* const browser = await puppeteer.launch();
|
|
7403
|
+
* const page = await browser.newPage();
|
|
7404
|
+
* await page.emulate(iPhone);
|
|
7405
|
+
* await page.goto('https://www.google.com');
|
|
7406
|
+
* // other actions...
|
|
7407
|
+
* await browser.close();
|
|
7410
7408
|
* ```
|
|
7411
7409
|
*/
|
|
7412
7410
|
async emulate(device) {
|
|
@@ -7947,22 +7945,21 @@
|
|
|
7947
7945
|
*
|
|
7948
7946
|
* ```ts
|
|
7949
7947
|
* import puppeteer from 'puppeteer';
|
|
7950
|
-
*
|
|
7951
|
-
*
|
|
7952
|
-
*
|
|
7953
|
-
*
|
|
7954
|
-
*
|
|
7955
|
-
*
|
|
7956
|
-
*
|
|
7957
|
-
*
|
|
7958
|
-
*
|
|
7959
|
-
*
|
|
7960
|
-
*
|
|
7961
|
-
*
|
|
7962
|
-
*
|
|
7963
|
-
*
|
|
7964
|
-
*
|
|
7965
|
-
* })();
|
|
7948
|
+
*
|
|
7949
|
+
* const browser = await puppeteer.launch();
|
|
7950
|
+
* const page = await browser.newPage();
|
|
7951
|
+
* let currentURL;
|
|
7952
|
+
* page
|
|
7953
|
+
* .waitForSelector('img')
|
|
7954
|
+
* .then(() => console.log('First URL with image: ' + currentURL));
|
|
7955
|
+
* for (currentURL of [
|
|
7956
|
+
* 'https://example.com',
|
|
7957
|
+
* 'https://google.com',
|
|
7958
|
+
* 'https://bbc.com',
|
|
7959
|
+
* ]) {
|
|
7960
|
+
* await page.goto(currentURL);
|
|
7961
|
+
* }
|
|
7962
|
+
* await browser.close();
|
|
7966
7963
|
* ```
|
|
7967
7964
|
*
|
|
7968
7965
|
* @param selector -
|
|
@@ -8012,14 +8009,13 @@
|
|
|
8012
8009
|
*
|
|
8013
8010
|
* ```ts
|
|
8014
8011
|
* import puppeteer from 'puppeteer';
|
|
8015
|
-
*
|
|
8016
|
-
*
|
|
8017
|
-
*
|
|
8018
|
-
*
|
|
8019
|
-
*
|
|
8020
|
-
*
|
|
8021
|
-
*
|
|
8022
|
-
* })();
|
|
8012
|
+
*
|
|
8013
|
+
* const browser = await puppeteer.launch();
|
|
8014
|
+
* const page = await browser.newPage();
|
|
8015
|
+
* const watchDog = page.waitForFunction('window.innerWidth < 100');
|
|
8016
|
+
* await page.setViewport({width: 50, height: 50});
|
|
8017
|
+
* await watchDog;
|
|
8018
|
+
* await browser.close();
|
|
8023
8019
|
* ```
|
|
8024
8020
|
*
|
|
8025
8021
|
* @example
|
|
@@ -11288,24 +11284,22 @@
|
|
|
11288
11284
|
* ```ts
|
|
11289
11285
|
* import puppeteer from 'puppeteer';
|
|
11290
11286
|
*
|
|
11291
|
-
*
|
|
11292
|
-
*
|
|
11293
|
-
*
|
|
11294
|
-
*
|
|
11295
|
-
*
|
|
11296
|
-
*
|
|
11297
|
-
*
|
|
11298
|
-
* .then(() => console.log('First URL with image: ' + currentURL));
|
|
11287
|
+
* const browser = await puppeteer.launch();
|
|
11288
|
+
* const page = await browser.newPage();
|
|
11289
|
+
* let currentURL;
|
|
11290
|
+
* page
|
|
11291
|
+
* .mainFrame()
|
|
11292
|
+
* .waitForSelector('img')
|
|
11293
|
+
* .then(() => console.log('First URL with image: ' + currentURL));
|
|
11299
11294
|
*
|
|
11300
|
-
*
|
|
11301
|
-
*
|
|
11302
|
-
*
|
|
11303
|
-
*
|
|
11304
|
-
*
|
|
11305
|
-
*
|
|
11306
|
-
*
|
|
11307
|
-
*
|
|
11308
|
-
* })();
|
|
11295
|
+
* for (currentURL of [
|
|
11296
|
+
* 'https://example.com',
|
|
11297
|
+
* 'https://google.com',
|
|
11298
|
+
* 'https://bbc.com',
|
|
11299
|
+
* ]) {
|
|
11300
|
+
* await page.goto(currentURL);
|
|
11301
|
+
* }
|
|
11302
|
+
* await browser.close();
|
|
11309
11303
|
* ```
|
|
11310
11304
|
*
|
|
11311
11305
|
* @param selector - The selector to query and wait for.
|
|
@@ -11327,14 +11321,14 @@
|
|
|
11327
11321
|
* ```ts
|
|
11328
11322
|
* import puppeteer from 'puppeteer';
|
|
11329
11323
|
*
|
|
11330
|
-
*
|
|
11331
|
-
*
|
|
11332
|
-
*
|
|
11333
|
-
*
|
|
11334
|
-
*
|
|
11335
|
-
* .
|
|
11336
|
-
*
|
|
11337
|
-
*
|
|
11324
|
+
* const browser = await puppeteer.launch();
|
|
11325
|
+
* const page = await browser.newPage();
|
|
11326
|
+
* const watchDog = page
|
|
11327
|
+
* .mainFrame()
|
|
11328
|
+
* .waitForFunction('window.innerWidth < 100');
|
|
11329
|
+
* page.setViewport({width: 50, height: 50});
|
|
11330
|
+
* await watchDog;
|
|
11331
|
+
* await browser.close();
|
|
11338
11332
|
* ```
|
|
11339
11333
|
*
|
|
11340
11334
|
* To pass arguments from Node.js to the predicate of `page.waitForFunction` function:
|
|
@@ -12364,9 +12358,10 @@
|
|
|
12364
12358
|
*
|
|
12365
12359
|
* ```ts
|
|
12366
12360
|
* const feedHandle = await page.$('.feed');
|
|
12367
|
-
*
|
|
12368
|
-
*
|
|
12369
|
-
*
|
|
12361
|
+
*
|
|
12362
|
+
* const listOfTweets = await feedHandle.$$eval('.tweet', nodes =>
|
|
12363
|
+
* nodes.map(n => n.innerText),
|
|
12364
|
+
* );
|
|
12370
12365
|
* ```
|
|
12371
12366
|
*
|
|
12372
12367
|
* @param selector -
|
|
@@ -12424,24 +12419,22 @@
|
|
|
12424
12419
|
* ```ts
|
|
12425
12420
|
* import puppeteer from 'puppeteer';
|
|
12426
12421
|
*
|
|
12427
|
-
*
|
|
12428
|
-
*
|
|
12429
|
-
*
|
|
12430
|
-
*
|
|
12431
|
-
*
|
|
12432
|
-
*
|
|
12433
|
-
*
|
|
12434
|
-
* .then(() => console.log('First URL with image: ' + currentURL));
|
|
12422
|
+
* const browser = await puppeteer.launch();
|
|
12423
|
+
* const page = await browser.newPage();
|
|
12424
|
+
* let currentURL;
|
|
12425
|
+
* page
|
|
12426
|
+
* .mainFrame()
|
|
12427
|
+
* .waitForSelector('img')
|
|
12428
|
+
* .then(() => console.log('First URL with image: ' + currentURL));
|
|
12435
12429
|
*
|
|
12436
|
-
*
|
|
12437
|
-
*
|
|
12438
|
-
*
|
|
12439
|
-
*
|
|
12440
|
-
*
|
|
12441
|
-
*
|
|
12442
|
-
*
|
|
12443
|
-
*
|
|
12444
|
-
* })();
|
|
12430
|
+
* for (currentURL of [
|
|
12431
|
+
* 'https://example.com',
|
|
12432
|
+
* 'https://google.com',
|
|
12433
|
+
* 'https://bbc.com',
|
|
12434
|
+
* ]) {
|
|
12435
|
+
* await page.goto(currentURL);
|
|
12436
|
+
* }
|
|
12437
|
+
* await browser.close();
|
|
12445
12438
|
* ```
|
|
12446
12439
|
*
|
|
12447
12440
|
* @param selector - The selector to query and wait for.
|
|
@@ -15466,7 +15459,6 @@ ${sourceUrlComment}
|
|
|
15466
15459
|
* `respond()` aren't called).
|
|
15467
15460
|
*/
|
|
15468
15461
|
continueRequestOverrides() {
|
|
15469
|
-
assert(this.interception.enabled, "Request Interception is not enabled!");
|
|
15470
15462
|
return this.interception.requestOverrides;
|
|
15471
15463
|
}
|
|
15472
15464
|
/**
|
|
@@ -15474,14 +15466,12 @@ ${sourceUrlComment}
|
|
|
15474
15466
|
* interception is allowed to respond (ie, `abort()` is not called).
|
|
15475
15467
|
*/
|
|
15476
15468
|
responseForRequest() {
|
|
15477
|
-
assert(this.interception.enabled, "Request Interception is not enabled!");
|
|
15478
15469
|
return this.interception.response;
|
|
15479
15470
|
}
|
|
15480
15471
|
/**
|
|
15481
15472
|
* The most recent reason for aborting the request
|
|
15482
15473
|
*/
|
|
15483
15474
|
abortErrorReason() {
|
|
15484
|
-
assert(this.interception.enabled, "Request Interception is not enabled!");
|
|
15485
15475
|
return this.interception.abortReason;
|
|
15486
15476
|
}
|
|
15487
15477
|
/**
|
|
@@ -15542,8 +15532,12 @@ ${sourceUrlComment}
|
|
|
15542
15532
|
return await this._continue(this.interception.requestOverrides);
|
|
15543
15533
|
}
|
|
15544
15534
|
}
|
|
15545
|
-
|
|
15546
|
-
|
|
15535
|
+
/**
|
|
15536
|
+
* @internal
|
|
15537
|
+
*/
|
|
15538
|
+
verifyInterception() {
|
|
15539
|
+
assert(this.interception.enabled, "Request Interception is not enabled!");
|
|
15540
|
+
assert(!this.interception.handled, "Request is already handled!");
|
|
15547
15541
|
}
|
|
15548
15542
|
/**
|
|
15549
15543
|
* Continues request with optional request overrides.
|
|
@@ -15574,11 +15568,10 @@ ${sourceUrlComment}
|
|
|
15574
15568
|
* Exception is immediately thrown if the request interception is not enabled.
|
|
15575
15569
|
*/
|
|
15576
15570
|
async continue(overrides = {}, priority) {
|
|
15577
|
-
|
|
15571
|
+
this.verifyInterception();
|
|
15572
|
+
if (!this.canBeIntercepted()) {
|
|
15578
15573
|
return;
|
|
15579
15574
|
}
|
|
15580
|
-
assert(this.interception.enabled, "Request Interception is not enabled!");
|
|
15581
|
-
assert(!this.interception.handled, "Request is already handled!");
|
|
15582
15575
|
if (priority === void 0) {
|
|
15583
15576
|
return await this._continue(overrides);
|
|
15584
15577
|
}
|
|
@@ -15631,11 +15624,10 @@ ${sourceUrlComment}
|
|
|
15631
15624
|
* Exception is immediately thrown if the request interception is not enabled.
|
|
15632
15625
|
*/
|
|
15633
15626
|
async respond(response, priority) {
|
|
15634
|
-
|
|
15627
|
+
this.verifyInterception();
|
|
15628
|
+
if (!this.canBeIntercepted()) {
|
|
15635
15629
|
return;
|
|
15636
15630
|
}
|
|
15637
|
-
assert(this.interception.enabled, "Request Interception is not enabled!");
|
|
15638
|
-
assert(!this.interception.handled, "Request is already handled!");
|
|
15639
15631
|
if (priority === void 0) {
|
|
15640
15632
|
return await this._respond(response);
|
|
15641
15633
|
}
|
|
@@ -15669,13 +15661,12 @@ ${sourceUrlComment}
|
|
|
15669
15661
|
* throw an exception immediately.
|
|
15670
15662
|
*/
|
|
15671
15663
|
async abort(errorCode = "failed", priority) {
|
|
15672
|
-
|
|
15664
|
+
this.verifyInterception();
|
|
15665
|
+
if (!this.canBeIntercepted()) {
|
|
15673
15666
|
return;
|
|
15674
15667
|
}
|
|
15675
15668
|
const errorReason = errorReasons[errorCode];
|
|
15676
15669
|
assert(errorReason, "Unknown error code: " + errorCode);
|
|
15677
|
-
assert(this.interception.enabled, "Request Interception is not enabled!");
|
|
15678
|
-
assert(!this.interception.handled, "Request is already handled!");
|
|
15679
15670
|
if (priority === void 0) {
|
|
15680
15671
|
return await this._abort(errorReason);
|
|
15681
15672
|
}
|
|
@@ -15900,6 +15891,9 @@ ${sourceUrlComment}
|
|
|
15900
15891
|
errorText: this._failureText
|
|
15901
15892
|
};
|
|
15902
15893
|
}
|
|
15894
|
+
canBeIntercepted() {
|
|
15895
|
+
return !this.url().startsWith("data:") && !this._fromMemoryCache;
|
|
15896
|
+
}
|
|
15903
15897
|
/**
|
|
15904
15898
|
* @internal
|
|
15905
15899
|
*/
|