@checkly/playwright-core 1.51.17-beta.2 → 1.54.2-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ThirdPartyNotices.txt +65 -123
- package/browsers.json +16 -14
- package/index.js +1 -1
- package/lib/androidServerImpl.js +47 -50
- package/lib/browserServerImpl.js +89 -69
- package/lib/checkly/escapeRegExp.js +23 -27
- package/lib/checkly/fetch.js +64 -46
- package/lib/checkly/secretsFilter.js +49 -35
- package/lib/cli/driver.js +71 -69
- package/lib/cli/program.js +400 -359
- package/lib/cli/programWithTestStub.js +51 -45
- package/lib/client/accessibility.js +31 -32
- package/lib/client/android.js +151 -242
- package/lib/client/api.js +135 -283
- package/lib/client/artifact.js +39 -36
- package/lib/client/browser.js +96 -71
- package/lib/client/browserContext.js +314 -345
- package/lib/client/browserType.js +103 -127
- package/lib/client/cdpSession.js +29 -31
- package/lib/client/channelOwner.js +90 -113
- package/lib/client/clientHelper.js +48 -39
- package/lib/client/clientInstrumentation.js +40 -37
- package/lib/client/clientStackTrace.js +41 -37
- package/lib/client/clock.js +36 -36
- package/lib/client/connection.js +188 -214
- package/lib/client/consoleMessage.js +31 -28
- package/lib/client/coverage.js +25 -22
- package/lib/client/dialog.js +30 -31
- package/lib/client/download.js +25 -25
- package/lib/client/electron.js +80 -77
- package/lib/client/elementHandle.js +120 -159
- package/lib/client/errors.js +53 -53
- package/lib/client/eventEmitter.js +124 -121
- package/lib/client/events.js +72 -68
- package/lib/client/fetch.js +166 -190
- package/lib/client/fileChooser.js +25 -24
- package/lib/client/fileUtils.js +31 -28
- package/lib/client/frame.js +207 -306
- package/lib/client/harRouter.js +42 -52
- package/lib/client/input.js +42 -69
- package/lib/client/jsHandle.js +54 -69
- package/lib/client/jsonPipe.js +27 -23
- package/lib/client/localUtils.js +29 -29
- package/lib/client/locator.js +145 -237
- package/lib/client/network.js +282 -307
- package/lib/client/page.js +269 -318
- package/lib/client/platform.js +46 -43
- package/lib/client/playwright.js +51 -76
- package/lib/client/selectors.js +45 -63
- package/lib/client/stream.js +29 -25
- package/lib/client/timeoutSettings.js +55 -41
- package/lib/client/tracing.js +49 -96
- package/lib/client/types.js +26 -22
- package/lib/client/video.js +35 -27
- package/lib/client/waiter.js +69 -88
- package/lib/client/webError.js +25 -23
- package/lib/client/webSocket.js +43 -56
- package/lib/client/worker.js +48 -56
- package/lib/client/writableStream.js +27 -23
- package/lib/generated/bindingsControllerSource.js +28 -0
- package/lib/generated/clockSource.js +26 -6
- package/lib/generated/consoleApiSource.js +26 -6
- package/lib/generated/injectedScriptSource.js +26 -6
- package/lib/generated/pollingRecorderSource.js +26 -6
- package/lib/generated/storageScriptSource.js +28 -0
- package/lib/generated/utilityScriptSource.js +26 -6
- package/lib/generated/webSocketMockSource.js +333 -5
- package/lib/inProcessFactory.js +51 -53
- package/lib/inprocess.js +2 -19
- package/lib/outofprocess.js +51 -46
- package/lib/protocol/serializers.js +153 -134
- package/lib/protocol/validator.js +2807 -2739
- package/lib/protocol/validatorPrimitives.js +114 -73
- package/lib/remote/playwrightConnection.js +88 -242
- package/lib/remote/playwrightServer.js +305 -92
- package/lib/server/accessibility.js +44 -37
- package/lib/server/android/android.js +251 -241
- package/lib/server/android/backendAdb.js +87 -82
- package/lib/server/artifact.js +78 -55
- package/lib/server/bidi/bidiBrowser.js +297 -158
- package/lib/server/bidi/bidiChromium.js +119 -89
- package/lib/server/bidi/bidiConnection.js +66 -83
- package/lib/server/bidi/bidiExecutionContext.js +129 -113
- package/lib/server/bidi/bidiFirefox.js +86 -76
- package/lib/server/bidi/bidiInput.js +106 -117
- package/lib/server/bidi/bidiNetworkManager.js +142 -159
- package/lib/server/bidi/bidiOverCdp.js +57 -58
- package/lib/server/bidi/bidiPage.js +260 -260
- package/lib/server/bidi/bidiPdf.js +52 -86
- package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
- package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
- package/lib/server/bidi/third_party/bidiKeyboard.js +236 -220
- package/lib/server/bidi/third_party/bidiProtocol.js +22 -137
- package/lib/server/bidi/third_party/bidiProtocolCore.js +152 -0
- package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
- package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
- package/lib/server/bidi/third_party/firefoxPrefs.js +141 -119
- package/lib/server/browser.js +93 -95
- package/lib/server/browserContext.js +419 -429
- package/lib/server/browserType.js +186 -216
- package/lib/server/callLog.js +47 -44
- package/lib/server/chromium/chromium.js +235 -203
- package/lib/server/chromium/chromiumSwitches.js +100 -67
- package/lib/server/chromium/crAccessibility.js +157 -131
- package/lib/server/chromium/crBrowser.js +310 -292
- package/lib/server/chromium/crConnection.js +95 -121
- package/lib/server/chromium/crCoverage.js +121 -131
- package/lib/server/chromium/crDevTools.js +60 -51
- package/lib/server/chromium/crDragDrop.js +68 -84
- package/lib/server/chromium/crExecutionContext.js +89 -83
- package/lib/server/chromium/crInput.js +118 -113
- package/lib/server/chromium/crNetworkManager.js +274 -375
- package/lib/server/chromium/crPage.js +536 -593
- package/lib/server/chromium/crPdf.js +54 -86
- package/lib/server/chromium/crProtocolHelper.js +92 -80
- package/lib/server/chromium/crServiceWorker.js +84 -73
- package/lib/server/chromium/defaultFontFamilies.js +152 -135
- package/lib/server/chromium/protocol.d.js +16 -0
- package/lib/server/chromium/videoRecorder.js +66 -99
- package/lib/server/clock.js +107 -83
- package/lib/server/codegen/csharp.js +192 -162
- package/lib/server/codegen/java.js +156 -129
- package/lib/server/codegen/javascript.js +163 -148
- package/lib/server/codegen/jsonl.js +32 -28
- package/lib/server/codegen/language.js +75 -52
- package/lib/server/codegen/languages.js +65 -27
- package/lib/server/codegen/python.js +141 -126
- package/lib/server/codegen/types.js +15 -4
- package/lib/server/console.js +28 -32
- package/lib/server/cookieStore.js +108 -86
- package/lib/server/debugController.js +147 -151
- package/lib/server/debugger.js +86 -78
- package/lib/server/deviceDescriptors.js +37 -24
- package/lib/server/deviceDescriptorsSource.json +238 -128
- package/lib/server/dialog.js +84 -39
- package/lib/server/dispatchers/androidDispatcher.js +257 -148
- package/lib/server/dispatchers/artifactDispatcher.js +79 -79
- package/lib/server/dispatchers/browserContextDispatcher.js +289 -259
- package/lib/server/dispatchers/browserDispatcher.js +96 -148
- package/lib/server/dispatchers/browserTypeDispatcher.js +50 -41
- package/lib/server/dispatchers/cdpSessionDispatcher.js +35 -39
- package/lib/server/dispatchers/debugControllerDispatcher.js +65 -83
- package/lib/server/dispatchers/dialogDispatcher.js +34 -31
- package/lib/server/dispatchers/dispatcher.js +208 -248
- package/lib/server/dispatchers/electronDispatcher.js +66 -70
- package/lib/server/dispatchers/elementHandlerDispatcher.js +164 -216
- package/lib/server/dispatchers/frameDispatcher.js +211 -272
- package/lib/server/dispatchers/jsHandleDispatcher.js +63 -75
- package/lib/server/dispatchers/jsonPipeDispatcher.js +37 -38
- package/lib/server/dispatchers/localUtilsDispatcher.js +121 -119
- package/lib/server/dispatchers/networkDispatchers.js +117 -128
- package/lib/server/dispatchers/pageDispatcher.js +256 -248
- package/lib/server/dispatchers/playwrightDispatcher.js +92 -87
- package/lib/server/dispatchers/streamDispatcher.js +52 -48
- package/lib/server/dispatchers/tracingDispatcher.js +47 -52
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +126 -150
- package/lib/server/dispatchers/writableStreamDispatcher.js +65 -43
- package/lib/server/dom.js +485 -582
- package/lib/server/download.js +47 -37
- package/lib/server/electron/electron.js +216 -243
- package/lib/server/electron/loader.js +9 -37
- package/lib/server/errors.js +47 -46
- package/lib/server/fetch.js +317 -360
- package/lib/server/fileChooser.js +25 -24
- package/lib/server/fileUploadUtils.js +66 -60
- package/lib/server/firefox/ffAccessibility.js +153 -131
- package/lib/server/firefox/ffBrowser.js +268 -305
- package/lib/server/firefox/ffConnection.js +63 -84
- package/lib/server/firefox/ffExecutionContext.js +92 -73
- package/lib/server/firefox/ffInput.js +82 -84
- package/lib/server/firefox/ffNetworkManager.js +137 -114
- package/lib/server/firefox/ffPage.js +261 -293
- package/lib/server/firefox/firefox.js +80 -72
- package/lib/server/firefox/protocol.d.js +16 -0
- package/lib/server/formData.js +107 -35
- package/lib/server/frameSelectors.js +98 -114
- package/lib/server/frames.js +845 -1055
- package/lib/server/har/harRecorder.js +85 -77
- package/lib/server/har/harTracer.js +290 -223
- package/lib/server/harBackend.js +80 -80
- package/lib/server/helper.js +55 -59
- package/lib/server/index.js +59 -99
- package/lib/server/input.js +151 -189
- package/lib/server/instrumentation.js +57 -44
- package/lib/server/javascript.js +133 -134
- package/lib/server/launchApp.js +113 -75
- package/lib/server/localUtils.js +150 -142
- package/lib/server/macEditingCommands.js +141 -137
- package/lib/server/network.js +299 -303
- package/lib/server/page.js +513 -544
- package/lib/server/pipeTransport.js +49 -45
- package/lib/server/playwright.js +58 -67
- package/lib/server/progress.js +137 -68
- package/lib/server/protocolError.js +34 -31
- package/lib/server/recorder/chat.js +70 -86
- package/lib/server/recorder/recorderApp.js +341 -176
- package/lib/server/recorder/recorderInTraceViewer.js +65 -94
- package/lib/server/recorder/recorderRunner.js +93 -116
- package/lib/server/recorder/recorderSignalProcessor.js +83 -0
- package/lib/server/recorder/recorderUtils.js +104 -47
- package/lib/server/recorder/throttledFile.js +42 -30
- package/lib/server/recorder.js +395 -275
- package/lib/server/registry/browserFetcher.js +106 -101
- package/lib/server/registry/dependencies.js +245 -196
- package/lib/server/registry/index.js +930 -803
- package/lib/server/registry/nativeDeps.js +1073 -464
- package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
- package/lib/server/screenshotter.js +160 -191
- package/lib/server/selectors.js +90 -51
- package/lib/server/socksClientCertificatesInterceptor.js +171 -186
- package/lib/server/socksInterceptor.js +62 -70
- package/lib/server/trace/recorder/snapshotter.js +76 -102
- package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
- package/lib/server/trace/recorder/tracing.js +354 -362
- package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
- package/lib/server/trace/viewer/traceViewer.js +160 -147
- package/lib/server/transport.js +119 -134
- package/lib/server/types.js +26 -22
- package/lib/server/usKeyboardLayout.js +135 -545
- package/lib/server/utils/ascii.js +39 -26
- package/lib/server/utils/comparators.js +105 -103
- package/lib/server/utils/crypto.js +157 -112
- package/lib/server/utils/debug.js +36 -32
- package/lib/server/utils/debugLogger.js +77 -48
- package/lib/server/utils/env.js +52 -37
- package/lib/server/utils/eventsHelper.js +29 -28
- package/lib/server/utils/expectUtils.js +31 -26
- package/lib/server/utils/fileUtils.js +123 -136
- package/lib/server/utils/happyEyeballs.js +141 -126
- package/lib/server/utils/hostPlatform.js +84 -120
- package/lib/server/utils/httpServer.js +106 -121
- package/lib/server/utils/image_tools/colorUtils.js +42 -51
- package/lib/server/utils/image_tools/compare.js +44 -43
- package/lib/server/utils/image_tools/imageChannel.js +38 -30
- package/lib/server/utils/image_tools/stats.js +40 -40
- package/lib/server/utils/linuxUtils.js +50 -37
- package/lib/server/utils/network.js +152 -96
- package/lib/server/utils/nodePlatform.js +87 -79
- package/lib/server/utils/pipeTransport.js +44 -42
- package/lib/server/utils/processLauncher.js +111 -121
- package/lib/server/utils/profiler.js +52 -39
- package/lib/server/utils/socksProxy.js +280 -339
- package/lib/server/utils/spawnAsync.js +37 -41
- package/lib/server/utils/task.js +31 -38
- package/lib/server/utils/userAgent.js +73 -66
- package/lib/server/utils/wsServer.js +68 -75
- package/lib/server/utils/zipFile.js +36 -37
- package/lib/server/utils/zones.js +37 -34
- package/lib/server/webkit/protocol.d.js +16 -0
- package/lib/server/webkit/webkit.js +77 -61
- package/lib/server/webkit/wkAccessibility.js +161 -118
- package/lib/server/webkit/wkBrowser.js +193 -184
- package/lib/server/webkit/wkConnection.js +59 -83
- package/lib/server/webkit/wkExecutionContext.js +85 -70
- package/lib/server/webkit/wkInput.js +97 -95
- package/lib/server/webkit/wkInterceptableRequest.js +102 -95
- package/lib/server/webkit/wkPage.js +568 -667
- package/lib/server/webkit/wkProvisionalPage.js +45 -56
- package/lib/server/webkit/wkWorkers.js +79 -79
- package/lib/utils/expectUtils.js +31 -26
- package/lib/utils/isomorphic/ariaSnapshot.js +149 -152
- package/lib/utils/isomorphic/assert.js +28 -22
- package/lib/utils/isomorphic/colors.js +66 -59
- package/lib/utils/isomorphic/cssParser.js +120 -125
- package/lib/utils/isomorphic/cssTokenizer.js +436 -364
- package/lib/utils/isomorphic/headers.js +38 -37
- package/lib/utils/isomorphic/locatorGenerators.js +358 -357
- package/lib/utils/isomorphic/locatorParser.js +96 -105
- package/lib/utils/isomorphic/locatorUtils.js +63 -44
- package/lib/utils/isomorphic/manualPromise.js +46 -39
- package/lib/utils/isomorphic/mimeType.js +447 -25
- package/lib/utils/isomorphic/multimap.js +34 -27
- package/lib/utils/isomorphic/protocolFormatter.js +68 -0
- package/lib/utils/isomorphic/protocolMetainfo.js +321 -0
- package/lib/utils/isomorphic/recorderUtils.js +140 -181
- package/lib/utils/isomorphic/rtti.js +35 -33
- package/lib/utils/isomorphic/selectorParser.js +182 -193
- package/lib/utils/isomorphic/semaphore.js +27 -24
- package/lib/utils/isomorphic/stackTrace.js +87 -98
- package/lib/utils/isomorphic/stringUtils.js +98 -112
- package/lib/utils/isomorphic/time.js +46 -22
- package/lib/utils/isomorphic/timeoutRunner.js +53 -53
- package/lib/utils/isomorphic/traceUtils.js +37 -41
- package/lib/utils/isomorphic/types.js +15 -4
- package/lib/utils/isomorphic/urlMatch.js +113 -67
- package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
- package/lib/utils.js +101 -443
- package/lib/utilsBundle.js +101 -52
- package/lib/utilsBundleImpl/index.js +160 -150
- package/lib/zipBundle.js +32 -23
- package/lib/zipBundleImpl.js +4 -4
- package/package.json +1 -1
- package/types/protocol.d.ts +1267 -1057
- package/types/types.d.ts +131 -29
- package/lib/common/socksProxy.js +0 -569
- package/lib/common/timeoutSettings.js +0 -73
- package/lib/common/types.js +0 -5
- package/lib/image_tools/colorUtils.js +0 -98
- package/lib/image_tools/compare.js +0 -108
- package/lib/image_tools/imageChannel.js +0 -70
- package/lib/image_tools/stats.js +0 -102
- package/lib/protocol/debug.js +0 -27
- package/lib/protocol/transport.js +0 -82
- package/lib/server/dispatchers/selectorsDispatcher.js +0 -36
- package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
- package/lib/server/recorder/contextRecorder.js +0 -290
- package/lib/server/recorder/recorderCollection.js +0 -104
- package/lib/server/recorder/recorderFrontend.js +0 -5
- package/lib/server/storageScript.js +0 -160
- package/lib/server/timeoutSettings.js +0 -74
- package/lib/third_party/diff_match_patch.js +0 -2222
- package/lib/utils/ascii.js +0 -31
- package/lib/utils/comparators.js +0 -171
- package/lib/utils/crypto.js +0 -174
- package/lib/utils/debug.js +0 -46
- package/lib/utils/debugLogger.js +0 -91
- package/lib/utils/env.js +0 -49
- package/lib/utils/eventsHelper.js +0 -38
- package/lib/utils/fileUtils.js +0 -205
- package/lib/utils/happy-eyeballs.js +0 -210
- package/lib/utils/headers.js +0 -52
- package/lib/utils/hostPlatform.js +0 -133
- package/lib/utils/httpServer.js +0 -237
- package/lib/utils/index.js +0 -368
- package/lib/utils/linuxUtils.js +0 -78
- package/lib/utils/manualPromise.js +0 -109
- package/lib/utils/multimap.js +0 -75
- package/lib/utils/network.js +0 -160
- package/lib/utils/processLauncher.js +0 -248
- package/lib/utils/profiler.js +0 -53
- package/lib/utils/rtti.js +0 -44
- package/lib/utils/semaphore.js +0 -51
- package/lib/utils/spawnAsync.js +0 -45
- package/lib/utils/stackTrace.js +0 -121
- package/lib/utils/task.js +0 -58
- package/lib/utils/time.js +0 -37
- package/lib/utils/timeoutRunner.js +0 -66
- package/lib/utils/traceUtils.js +0 -44
- package/lib/utils/userAgent.js +0 -105
- package/lib/utils/wsServer.js +0 -127
- package/lib/utils/zipFile.js +0 -75
- package/lib/utils/zones.js +0 -62
- package/lib/vite/htmlReport/index.html +0 -69
- package/lib/vite/recorder/assets/codeMirrorModule-B9YMkrwa.js +0 -24
- package/lib/vite/recorder/assets/codeMirrorModule-C3UTv-Ge.css +0 -1
- package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
- package/lib/vite/recorder/assets/index-ELPgmkwA.js +0 -184
- package/lib/vite/recorder/assets/index-eHBmevrY.css +0 -1
- package/lib/vite/recorder/index.html +0 -29
- package/lib/vite/recorder/playwright-logo.svg +0 -9
- package/lib/vite/traceViewer/assets/codeMirrorModule-gU1OOCQO.js +0 -24
- package/lib/vite/traceViewer/assets/defaultSettingsView-B5n_FjMx.js +0 -1
- package/lib/vite/traceViewer/assets/inspectorTab-6Tru8Mn_.js +0 -235
- package/lib/vite/traceViewer/assets/workbench-B_Nj4NA2.js +0 -25
- package/lib/vite/traceViewer/assets/xtermModule-BoAIEibi.js +0 -9
- package/lib/vite/traceViewer/codeMirrorModule.C3UTv-Ge.css +0 -1
- package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
- package/lib/vite/traceViewer/defaultSettingsView.CO3FR0CX.css +0 -1
- package/lib/vite/traceViewer/embedded.DpNPH6mk.js +0 -2
- package/lib/vite/traceViewer/embedded.html +0 -18
- package/lib/vite/traceViewer/embedded.mLhjB5IF.css +0 -1
- package/lib/vite/traceViewer/index.CFOW-Ezb.css +0 -1
- package/lib/vite/traceViewer/index.CuE3SYGw.js +0 -2
- package/lib/vite/traceViewer/index.html +0 -47
- package/lib/vite/traceViewer/inspectorTab.CXDulcFG.css +0 -1
- package/lib/vite/traceViewer/playwright-logo.svg +0 -9
- package/lib/vite/traceViewer/recorder.BD-uZJs7.js +0 -2
- package/lib/vite/traceViewer/recorder.html +0 -17
- package/lib/vite/traceViewer/recorder.tn0RQdqM.css +0 -0
- package/lib/vite/traceViewer/snapshot.html +0 -21
- package/lib/vite/traceViewer/sw.bundle.js +0 -3
- package/lib/vite/traceViewer/uiMode.BatfzHMG.css +0 -1
- package/lib/vite/traceViewer/uiMode.DHrNgddz.js +0 -5
- package/lib/vite/traceViewer/uiMode.html +0 -21
- package/lib/vite/traceViewer/workbench.B9vIAzH9.css +0 -1
- package/lib/vite/traceViewer/xtermModule.Beg8tuEN.css +0 -32
|
@@ -1,161 +1,159 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var ffInput_exports = {};
|
|
20
|
+
__export(ffInput_exports, {
|
|
21
|
+
RawKeyboardImpl: () => RawKeyboardImpl,
|
|
22
|
+
RawMouseImpl: () => RawMouseImpl,
|
|
23
|
+
RawTouchscreenImpl: () => RawTouchscreenImpl
|
|
5
24
|
});
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Copyright 2017 Google Inc. All rights reserved.
|
|
9
|
-
* Modifications copyright (c) Microsoft Corporation.
|
|
10
|
-
*
|
|
11
|
-
* Licensed under the Apache License, Version 2.0 (the 'License');
|
|
12
|
-
* you may not use this file except in compliance with the License.
|
|
13
|
-
* You may obtain a copy of the License at
|
|
14
|
-
*
|
|
15
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
16
|
-
*
|
|
17
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
18
|
-
* distributed under the License is distributed on an 'AS IS' BASIS,
|
|
19
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
20
|
-
* See the License for the specific language governing permissions and
|
|
21
|
-
* limitations under the License.
|
|
22
|
-
*/
|
|
23
|
-
|
|
25
|
+
module.exports = __toCommonJS(ffInput_exports);
|
|
24
26
|
function toModifiersMask(modifiers) {
|
|
25
27
|
let mask = 0;
|
|
26
|
-
if (modifiers.has(
|
|
27
|
-
|
|
28
|
-
if (modifiers.has(
|
|
29
|
-
|
|
28
|
+
if (modifiers.has("Alt"))
|
|
29
|
+
mask |= 1;
|
|
30
|
+
if (modifiers.has("Control"))
|
|
31
|
+
mask |= 2;
|
|
32
|
+
if (modifiers.has("Shift"))
|
|
33
|
+
mask |= 4;
|
|
34
|
+
if (modifiers.has("Meta"))
|
|
35
|
+
mask |= 8;
|
|
30
36
|
return mask;
|
|
31
37
|
}
|
|
32
38
|
function toButtonNumber(button) {
|
|
33
|
-
if (button ===
|
|
34
|
-
|
|
35
|
-
if (button ===
|
|
39
|
+
if (button === "left")
|
|
40
|
+
return 0;
|
|
41
|
+
if (button === "middle")
|
|
42
|
+
return 1;
|
|
43
|
+
if (button === "right")
|
|
44
|
+
return 2;
|
|
36
45
|
return 0;
|
|
37
46
|
}
|
|
38
47
|
function toButtonsMask(buttons) {
|
|
39
48
|
let mask = 0;
|
|
40
|
-
if (buttons.has(
|
|
41
|
-
|
|
42
|
-
if (buttons.has(
|
|
49
|
+
if (buttons.has("left"))
|
|
50
|
+
mask |= 1;
|
|
51
|
+
if (buttons.has("right"))
|
|
52
|
+
mask |= 2;
|
|
53
|
+
if (buttons.has("middle"))
|
|
54
|
+
mask |= 4;
|
|
43
55
|
return mask;
|
|
44
56
|
}
|
|
45
57
|
class RawKeyboardImpl {
|
|
46
58
|
constructor(client) {
|
|
47
|
-
this._client = void 0;
|
|
48
59
|
this._client = client;
|
|
49
60
|
}
|
|
50
|
-
async keydown(modifiers, keyName, description, autoRepeat) {
|
|
61
|
+
async keydown(progress, modifiers, keyName, description, autoRepeat) {
|
|
51
62
|
let text = description.text;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
location
|
|
58
|
-
} = description;
|
|
59
|
-
await this._client.send('Page.dispatchKeyEvent', {
|
|
60
|
-
type: 'keydown',
|
|
63
|
+
if (text === "\r")
|
|
64
|
+
text = "";
|
|
65
|
+
const { code, key, location } = description;
|
|
66
|
+
await progress.race(this._client.send("Page.dispatchKeyEvent", {
|
|
67
|
+
type: "keydown",
|
|
61
68
|
keyCode: description.keyCodeWithoutLocation,
|
|
62
69
|
code,
|
|
63
70
|
key,
|
|
64
71
|
repeat: autoRepeat,
|
|
65
72
|
location,
|
|
66
73
|
text
|
|
67
|
-
});
|
|
74
|
+
}));
|
|
68
75
|
}
|
|
69
|
-
async keyup(modifiers, keyName, description) {
|
|
70
|
-
const {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
location
|
|
74
|
-
} = description;
|
|
75
|
-
await this._client.send('Page.dispatchKeyEvent', {
|
|
76
|
-
type: 'keyup',
|
|
76
|
+
async keyup(progress, modifiers, keyName, description) {
|
|
77
|
+
const { code, key, location } = description;
|
|
78
|
+
await progress.race(this._client.send("Page.dispatchKeyEvent", {
|
|
79
|
+
type: "keyup",
|
|
77
80
|
key,
|
|
78
81
|
keyCode: description.keyCodeWithoutLocation,
|
|
79
82
|
code,
|
|
80
83
|
location,
|
|
81
84
|
repeat: false
|
|
82
|
-
});
|
|
85
|
+
}));
|
|
83
86
|
}
|
|
84
|
-
async sendText(text) {
|
|
85
|
-
await this._client.send(
|
|
86
|
-
text
|
|
87
|
-
});
|
|
87
|
+
async sendText(progress, text) {
|
|
88
|
+
await progress.race(this._client.send("Page.insertText", { text }));
|
|
88
89
|
}
|
|
89
90
|
}
|
|
90
|
-
exports.RawKeyboardImpl = RawKeyboardImpl;
|
|
91
91
|
class RawMouseImpl {
|
|
92
92
|
constructor(client) {
|
|
93
|
-
this._client = void 0;
|
|
94
|
-
this._page = void 0;
|
|
95
93
|
this._client = client;
|
|
96
94
|
}
|
|
97
|
-
async move(x, y, button, buttons, modifiers, forClick) {
|
|
98
|
-
await this._client.send(
|
|
99
|
-
type:
|
|
95
|
+
async move(progress, x, y, button, buttons, modifiers, forClick) {
|
|
96
|
+
await progress.race(this._client.send("Page.dispatchMouseEvent", {
|
|
97
|
+
type: "mousemove",
|
|
100
98
|
button: 0,
|
|
101
99
|
buttons: toButtonsMask(buttons),
|
|
102
100
|
x: Math.floor(x),
|
|
103
101
|
y: Math.floor(y),
|
|
104
102
|
modifiers: toModifiersMask(modifiers)
|
|
105
|
-
});
|
|
103
|
+
}));
|
|
106
104
|
}
|
|
107
|
-
async down(x, y, button, buttons, modifiers, clickCount) {
|
|
108
|
-
await this._client.send(
|
|
109
|
-
type:
|
|
105
|
+
async down(progress, x, y, button, buttons, modifiers, clickCount) {
|
|
106
|
+
await progress.race(this._client.send("Page.dispatchMouseEvent", {
|
|
107
|
+
type: "mousedown",
|
|
110
108
|
button: toButtonNumber(button),
|
|
111
109
|
buttons: toButtonsMask(buttons),
|
|
112
110
|
x: Math.floor(x),
|
|
113
111
|
y: Math.floor(y),
|
|
114
112
|
modifiers: toModifiersMask(modifiers),
|
|
115
113
|
clickCount
|
|
116
|
-
});
|
|
114
|
+
}));
|
|
117
115
|
}
|
|
118
|
-
async up(x, y, button, buttons, modifiers, clickCount) {
|
|
119
|
-
await this._client.send(
|
|
120
|
-
type:
|
|
116
|
+
async up(progress, x, y, button, buttons, modifiers, clickCount) {
|
|
117
|
+
await progress.race(this._client.send("Page.dispatchMouseEvent", {
|
|
118
|
+
type: "mouseup",
|
|
121
119
|
button: toButtonNumber(button),
|
|
122
120
|
buttons: toButtonsMask(buttons),
|
|
123
121
|
x: Math.floor(x),
|
|
124
122
|
y: Math.floor(y),
|
|
125
123
|
modifiers: toModifiersMask(modifiers),
|
|
126
124
|
clickCount
|
|
127
|
-
});
|
|
125
|
+
}));
|
|
128
126
|
}
|
|
129
|
-
async wheel(x, y, buttons, modifiers, deltaX, deltaY) {
|
|
130
|
-
|
|
131
|
-
await this.
|
|
132
|
-
world: 'utility'
|
|
133
|
-
});
|
|
134
|
-
await this._client.send('Page.dispatchWheelEvent', {
|
|
127
|
+
async wheel(progress, x, y, buttons, modifiers, deltaX, deltaY) {
|
|
128
|
+
await this._page.mainFrame().evaluateExpression(`new Promise(requestAnimationFrame)`, { world: "utility" });
|
|
129
|
+
await progress.race(this._client.send("Page.dispatchWheelEvent", {
|
|
135
130
|
deltaX,
|
|
136
131
|
deltaY,
|
|
137
132
|
x: Math.floor(x),
|
|
138
133
|
y: Math.floor(y),
|
|
139
134
|
deltaZ: 0,
|
|
140
135
|
modifiers: toModifiersMask(modifiers)
|
|
141
|
-
});
|
|
136
|
+
}));
|
|
142
137
|
}
|
|
143
138
|
setPage(page) {
|
|
144
139
|
this._page = page;
|
|
145
140
|
}
|
|
146
141
|
}
|
|
147
|
-
exports.RawMouseImpl = RawMouseImpl;
|
|
148
142
|
class RawTouchscreenImpl {
|
|
149
143
|
constructor(client) {
|
|
150
|
-
this._client = void 0;
|
|
151
144
|
this._client = client;
|
|
152
145
|
}
|
|
153
|
-
async tap(x, y, modifiers) {
|
|
154
|
-
await this._client.send(
|
|
146
|
+
async tap(progress, x, y, modifiers) {
|
|
147
|
+
await progress.race(this._client.send("Page.dispatchTapEvent", {
|
|
155
148
|
x,
|
|
156
149
|
y,
|
|
157
150
|
modifiers: toModifiersMask(modifiers)
|
|
158
|
-
});
|
|
151
|
+
}));
|
|
159
152
|
}
|
|
160
153
|
}
|
|
161
|
-
|
|
154
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
155
|
+
0 && (module.exports = {
|
|
156
|
+
RawKeyboardImpl,
|
|
157
|
+
RawMouseImpl,
|
|
158
|
+
RawTouchscreenImpl
|
|
159
|
+
});
|
|
@@ -1,80 +1,95 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty
|
|
4
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var ffNetworkManager_exports = {};
|
|
30
|
+
__export(ffNetworkManager_exports, {
|
|
31
|
+
FFNetworkManager: () => FFNetworkManager
|
|
5
32
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var network =
|
|
9
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
10
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
11
|
-
/**
|
|
12
|
-
* Copyright 2019 Google Inc. All rights reserved.
|
|
13
|
-
* Modifications copyright (c) Microsoft Corporation.
|
|
14
|
-
*
|
|
15
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
16
|
-
* you may not use this file except in compliance with the License.
|
|
17
|
-
* You may obtain a copy of the License at
|
|
18
|
-
*
|
|
19
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
20
|
-
*
|
|
21
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
22
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
23
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
24
|
-
* See the License for the specific language governing permissions and
|
|
25
|
-
* limitations under the License.
|
|
26
|
-
*/
|
|
27
|
-
|
|
33
|
+
module.exports = __toCommonJS(ffNetworkManager_exports);
|
|
34
|
+
var import_eventsHelper = require("../utils/eventsHelper");
|
|
35
|
+
var network = __toESM(require("../network"));
|
|
28
36
|
class FFNetworkManager {
|
|
29
37
|
constructor(session, page) {
|
|
30
|
-
this._session = void 0;
|
|
31
|
-
this._requests = void 0;
|
|
32
|
-
this._page = void 0;
|
|
33
|
-
this._eventListeners = void 0;
|
|
34
38
|
this._session = session;
|
|
35
|
-
this._requests = new Map();
|
|
39
|
+
this._requests = /* @__PURE__ */ new Map();
|
|
36
40
|
this._page = page;
|
|
37
|
-
this._eventListeners = [
|
|
41
|
+
this._eventListeners = [
|
|
42
|
+
import_eventsHelper.eventsHelper.addEventListener(session, "Network.requestWillBeSent", this._onRequestWillBeSent.bind(this)),
|
|
43
|
+
import_eventsHelper.eventsHelper.addEventListener(session, "Network.responseReceived", this._onResponseReceived.bind(this)),
|
|
44
|
+
import_eventsHelper.eventsHelper.addEventListener(session, "Network.requestFinished", this._onRequestFinished.bind(this)),
|
|
45
|
+
import_eventsHelper.eventsHelper.addEventListener(session, "Network.requestFailed", this._onRequestFailed.bind(this))
|
|
46
|
+
];
|
|
38
47
|
}
|
|
39
48
|
dispose() {
|
|
40
|
-
|
|
49
|
+
import_eventsHelper.eventsHelper.removeEventListeners(this._eventListeners);
|
|
41
50
|
}
|
|
42
51
|
async setRequestInterception(enabled) {
|
|
43
|
-
await Promise.all([
|
|
44
|
-
enabled
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
})]);
|
|
52
|
+
await Promise.all([
|
|
53
|
+
this._session.send("Network.setRequestInterception", { enabled }),
|
|
54
|
+
this._session.send("Page.setCacheDisabled", { cacheDisabled: enabled })
|
|
55
|
+
]);
|
|
48
56
|
}
|
|
49
57
|
_onRequestWillBeSent(event) {
|
|
50
58
|
const redirectedFrom = event.redirectedFrom ? this._requests.get(event.redirectedFrom) || null : null;
|
|
51
|
-
const frame = redirectedFrom ? redirectedFrom.request.frame() : event.frameId ? this._page.
|
|
52
|
-
if (!frame)
|
|
53
|
-
|
|
59
|
+
const frame = redirectedFrom ? redirectedFrom.request.frame() : event.frameId ? this._page.frameManager.frame(event.frameId) : null;
|
|
60
|
+
if (!frame)
|
|
61
|
+
return;
|
|
62
|
+
if (event.method === "OPTIONS" && !event.isIntercepted)
|
|
63
|
+
return;
|
|
64
|
+
if (redirectedFrom)
|
|
65
|
+
this._requests.delete(redirectedFrom._id);
|
|
54
66
|
const request = new InterceptableRequest(frame, redirectedFrom, event);
|
|
55
67
|
let route;
|
|
56
|
-
if (event.isIntercepted)
|
|
68
|
+
if (event.isIntercepted)
|
|
69
|
+
route = new FFRouteImpl(this._session, request);
|
|
57
70
|
this._requests.set(request._id, request);
|
|
58
|
-
this._page.
|
|
71
|
+
this._page.frameManager.requestStarted(request.request, route);
|
|
59
72
|
}
|
|
60
73
|
_onResponseReceived(event) {
|
|
61
|
-
var _event$securityDetail, _event$securityDetail2, _event$securityDetail3, _event$securityDetail4, _event$securityDetail5;
|
|
62
74
|
const request = this._requests.get(event.requestId);
|
|
63
|
-
if (!request)
|
|
75
|
+
if (!request)
|
|
76
|
+
return;
|
|
64
77
|
const getResponseBody = async () => {
|
|
65
|
-
const
|
|
78
|
+
const response2 = await this._session.send("Network.getResponseBody", {
|
|
66
79
|
requestId: request._id
|
|
67
80
|
});
|
|
68
|
-
if (
|
|
69
|
-
|
|
81
|
+
if (response2.evicted)
|
|
82
|
+
throw new Error(`Response body for ${request.request.method()} ${request.request.url()} was evicted!`);
|
|
83
|
+
return Buffer.from(response2.base64body, "base64");
|
|
70
84
|
};
|
|
71
85
|
const startTime = event.timing.startTime;
|
|
72
86
|
function relativeToStart(time) {
|
|
73
|
-
if (!time)
|
|
74
|
-
|
|
87
|
+
if (!time)
|
|
88
|
+
return -1;
|
|
89
|
+
return (time - startTime) / 1e3;
|
|
75
90
|
}
|
|
76
91
|
const timing = {
|
|
77
|
-
startTime: startTime /
|
|
92
|
+
startTime: startTime / 1e3,
|
|
78
93
|
domainLookupStart: relativeToStart(event.timing.domainLookupStart),
|
|
79
94
|
domainLookupEnd: relativeToStart(event.timing.domainLookupEnd),
|
|
80
95
|
connectStart: relativeToStart(event.timing.connectStart),
|
|
@@ -84,7 +99,7 @@ class FFNetworkManager {
|
|
|
84
99
|
responseStart: relativeToStart(event.timing.responseStart)
|
|
85
100
|
};
|
|
86
101
|
const response = new network.Response(request.request, event.status, event.statusText, parseMultivalueHeaders(event.headers), timing, getResponseBody, event.fromServiceWorker);
|
|
87
|
-
if (event
|
|
102
|
+
if (event?.remoteIPAddress && typeof event?.remotePort === "number") {
|
|
88
103
|
response._serverAddrFinished({
|
|
89
104
|
ipAddress: event.remoteIPAddress,
|
|
90
105
|
port: event.remotePort
|
|
@@ -93,40 +108,39 @@ class FFNetworkManager {
|
|
|
93
108
|
response._serverAddrFinished();
|
|
94
109
|
}
|
|
95
110
|
response._securityDetailsFinished({
|
|
96
|
-
protocol: event
|
|
97
|
-
subjectName: event
|
|
98
|
-
issuer: event
|
|
99
|
-
validFrom: event
|
|
100
|
-
validTo: event
|
|
111
|
+
protocol: event?.securityDetails?.protocol,
|
|
112
|
+
subjectName: event?.securityDetails?.subjectName,
|
|
113
|
+
issuer: event?.securityDetails?.issuer,
|
|
114
|
+
validFrom: event?.securityDetails?.validFrom,
|
|
115
|
+
validTo: event?.securityDetails?.validTo
|
|
101
116
|
});
|
|
102
|
-
// "raw" headers are the same as "provisional" headers in Firefox.
|
|
103
117
|
response.setRawResponseHeaders(null);
|
|
104
|
-
// Headers size are not available in Firefox.
|
|
105
118
|
response.setResponseHeadersSize(null);
|
|
106
|
-
this._page.
|
|
119
|
+
this._page.frameManager.requestReceivedResponse(response);
|
|
107
120
|
}
|
|
108
121
|
_onRequestFinished(event) {
|
|
109
122
|
const request = this._requests.get(event.requestId);
|
|
110
|
-
if (!request)
|
|
123
|
+
if (!request)
|
|
124
|
+
return;
|
|
111
125
|
const response = request.request._existingResponse();
|
|
112
126
|
response.setTransferSize(event.transferSize);
|
|
113
127
|
response.setEncodedBodySize(event.encodedBodySize);
|
|
114
|
-
|
|
115
|
-
// Keep redirected requests in the map for future reference as redirectedFrom.
|
|
116
128
|
const isRedirected = response.status() >= 300 && response.status() <= 399;
|
|
117
|
-
const responseEndTime = event.responseEndTime ? event.responseEndTime /
|
|
129
|
+
const responseEndTime = event.responseEndTime ? event.responseEndTime / 1e3 - response.timing().startTime : -1;
|
|
118
130
|
if (isRedirected) {
|
|
119
131
|
response._requestFinished(responseEndTime);
|
|
120
132
|
} else {
|
|
121
133
|
this._requests.delete(request._id);
|
|
122
134
|
response._requestFinished(responseEndTime);
|
|
123
135
|
}
|
|
124
|
-
if (event.protocolVersion)
|
|
125
|
-
|
|
136
|
+
if (event.protocolVersion)
|
|
137
|
+
response._setHttpVersion(event.protocolVersion);
|
|
138
|
+
this._page.frameManager.reportRequestFinished(request.request, response);
|
|
126
139
|
}
|
|
127
140
|
_onRequestFailed(event) {
|
|
128
141
|
const request = this._requests.get(event.requestId);
|
|
129
|
-
if (!request)
|
|
142
|
+
if (!request)
|
|
143
|
+
return;
|
|
130
144
|
this._requests.delete(request._id);
|
|
131
145
|
const response = request.request._existingResponse();
|
|
132
146
|
if (response) {
|
|
@@ -135,76 +149,83 @@ class FFNetworkManager {
|
|
|
135
149
|
response._requestFinished(-1);
|
|
136
150
|
}
|
|
137
151
|
request.request._setFailureText(event.errorCode);
|
|
138
|
-
this._page.
|
|
152
|
+
this._page.frameManager.requestFailed(request.request, event.errorCode === "NS_BINDING_ABORTED");
|
|
139
153
|
}
|
|
140
154
|
}
|
|
141
|
-
exports.FFNetworkManager = FFNetworkManager;
|
|
142
155
|
const causeToResourceType = {
|
|
143
|
-
TYPE_INVALID:
|
|
144
|
-
TYPE_OTHER:
|
|
145
|
-
TYPE_SCRIPT:
|
|
146
|
-
TYPE_IMAGE:
|
|
147
|
-
TYPE_STYLESHEET:
|
|
148
|
-
TYPE_OBJECT:
|
|
149
|
-
TYPE_DOCUMENT:
|
|
150
|
-
TYPE_SUBDOCUMENT:
|
|
151
|
-
TYPE_REFRESH:
|
|
152
|
-
TYPE_XBL:
|
|
153
|
-
TYPE_PING:
|
|
154
|
-
TYPE_XMLHTTPREQUEST:
|
|
155
|
-
TYPE_OBJECT_SUBREQUEST:
|
|
156
|
-
TYPE_DTD:
|
|
157
|
-
TYPE_FONT:
|
|
158
|
-
TYPE_MEDIA:
|
|
159
|
-
TYPE_WEBSOCKET:
|
|
160
|
-
TYPE_CSP_REPORT:
|
|
161
|
-
TYPE_XSLT:
|
|
162
|
-
TYPE_BEACON:
|
|
163
|
-
TYPE_FETCH:
|
|
164
|
-
TYPE_IMAGESET:
|
|
165
|
-
TYPE_WEB_MANIFEST:
|
|
156
|
+
TYPE_INVALID: "other",
|
|
157
|
+
TYPE_OTHER: "other",
|
|
158
|
+
TYPE_SCRIPT: "script",
|
|
159
|
+
TYPE_IMAGE: "image",
|
|
160
|
+
TYPE_STYLESHEET: "stylesheet",
|
|
161
|
+
TYPE_OBJECT: "other",
|
|
162
|
+
TYPE_DOCUMENT: "document",
|
|
163
|
+
TYPE_SUBDOCUMENT: "document",
|
|
164
|
+
TYPE_REFRESH: "document",
|
|
165
|
+
TYPE_XBL: "other",
|
|
166
|
+
TYPE_PING: "other",
|
|
167
|
+
TYPE_XMLHTTPREQUEST: "xhr",
|
|
168
|
+
TYPE_OBJECT_SUBREQUEST: "other",
|
|
169
|
+
TYPE_DTD: "other",
|
|
170
|
+
TYPE_FONT: "font",
|
|
171
|
+
TYPE_MEDIA: "media",
|
|
172
|
+
TYPE_WEBSOCKET: "websocket",
|
|
173
|
+
TYPE_CSP_REPORT: "other",
|
|
174
|
+
TYPE_XSLT: "other",
|
|
175
|
+
TYPE_BEACON: "other",
|
|
176
|
+
TYPE_FETCH: "fetch",
|
|
177
|
+
TYPE_IMAGESET: "image",
|
|
178
|
+
TYPE_WEB_MANIFEST: "manifest"
|
|
166
179
|
};
|
|
167
180
|
const internalCauseToResourceType = {
|
|
168
|
-
TYPE_INTERNAL_EVENTSOURCE:
|
|
181
|
+
TYPE_INTERNAL_EVENTSOURCE: "eventsource"
|
|
169
182
|
};
|
|
170
183
|
class InterceptableRequest {
|
|
171
184
|
constructor(frame, redirectedFrom, payload) {
|
|
172
|
-
this.request = void 0;
|
|
173
|
-
this._id = void 0;
|
|
174
|
-
this._redirectedTo = void 0;
|
|
175
185
|
this._id = payload.requestId;
|
|
176
|
-
if (redirectedFrom)
|
|
186
|
+
if (redirectedFrom)
|
|
187
|
+
redirectedFrom._redirectedTo = this;
|
|
177
188
|
let postDataBuffer = null;
|
|
178
|
-
if (payload.postData)
|
|
179
|
-
|
|
180
|
-
|
|
189
|
+
if (payload.postData)
|
|
190
|
+
postDataBuffer = Buffer.from(payload.postData, "base64");
|
|
191
|
+
this.request = new network.Request(
|
|
192
|
+
frame._page.browserContext,
|
|
193
|
+
frame,
|
|
194
|
+
null,
|
|
195
|
+
redirectedFrom ? redirectedFrom.request : null,
|
|
196
|
+
payload.navigationId,
|
|
197
|
+
payload.url,
|
|
198
|
+
internalCauseToResourceType[payload.internalCause] || causeToResourceType[payload.cause] || "other",
|
|
199
|
+
payload.method,
|
|
200
|
+
postDataBuffer,
|
|
201
|
+
payload.headers
|
|
202
|
+
);
|
|
181
203
|
this.request.setRawRequestHeaders(null);
|
|
182
204
|
}
|
|
183
205
|
_finalRequest() {
|
|
184
206
|
let request = this;
|
|
185
|
-
while (request._redirectedTo)
|
|
207
|
+
while (request._redirectedTo)
|
|
208
|
+
request = request._redirectedTo;
|
|
186
209
|
return request;
|
|
187
210
|
}
|
|
188
211
|
}
|
|
189
212
|
class FFRouteImpl {
|
|
190
213
|
constructor(session, request) {
|
|
191
|
-
this._request = void 0;
|
|
192
|
-
this._session = void 0;
|
|
193
214
|
this._session = session;
|
|
194
215
|
this._request = request;
|
|
195
216
|
}
|
|
196
217
|
async continue(overrides) {
|
|
197
|
-
await this._session.sendMayFail(
|
|
218
|
+
await this._session.sendMayFail("Network.resumeInterceptedRequest", {
|
|
198
219
|
requestId: this._request._id,
|
|
199
220
|
url: overrides.url,
|
|
200
221
|
method: overrides.method,
|
|
201
222
|
headers: overrides.headers,
|
|
202
|
-
postData: overrides.postData ? Buffer.from(overrides.postData).toString(
|
|
223
|
+
postData: overrides.postData ? Buffer.from(overrides.postData).toString("base64") : void 0
|
|
203
224
|
});
|
|
204
225
|
}
|
|
205
226
|
async fulfill(response) {
|
|
206
|
-
const base64body = response.isBase64 ? response.body : Buffer.from(response.body).toString(
|
|
207
|
-
await this._session.sendMayFail(
|
|
227
|
+
const base64body = response.isBase64 ? response.body : Buffer.from(response.body).toString("base64");
|
|
228
|
+
await this._session.sendMayFail("Network.fulfillInterceptedRequest", {
|
|
208
229
|
requestId: this._request._id,
|
|
209
230
|
status: response.status,
|
|
210
231
|
statusText: network.statusText(response.status),
|
|
@@ -213,7 +234,7 @@ class FFRouteImpl {
|
|
|
213
234
|
});
|
|
214
235
|
}
|
|
215
236
|
async abort(errorCode) {
|
|
216
|
-
await this._session.sendMayFail(
|
|
237
|
+
await this._session.sendMayFail("Network.abortInterceptedRequest", {
|
|
217
238
|
requestId: this._request._id,
|
|
218
239
|
errorCode
|
|
219
240
|
});
|
|
@@ -222,12 +243,14 @@ class FFRouteImpl {
|
|
|
222
243
|
function parseMultivalueHeaders(headers) {
|
|
223
244
|
const result = [];
|
|
224
245
|
for (const header of headers) {
|
|
225
|
-
const separator = header.name.toLowerCase() ===
|
|
226
|
-
const tokens = header.value.split(separator).map(s => s.trim());
|
|
227
|
-
for (const token of tokens)
|
|
228
|
-
name: header.name,
|
|
229
|
-
value: token
|
|
230
|
-
});
|
|
246
|
+
const separator = header.name.toLowerCase() === "set-cookie" ? "\n" : ",";
|
|
247
|
+
const tokens = header.value.split(separator).map((s) => s.trim());
|
|
248
|
+
for (const token of tokens)
|
|
249
|
+
result.push({ name: header.name, value: token });
|
|
231
250
|
}
|
|
232
251
|
return result;
|
|
233
|
-
}
|
|
252
|
+
}
|
|
253
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
254
|
+
0 && (module.exports = {
|
|
255
|
+
FFNetworkManager
|
|
256
|
+
});
|