@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,255 +1,235 @@
|
|
|
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 dispatcher_exports = {};
|
|
20
|
+
__export(dispatcher_exports, {
|
|
21
|
+
Dispatcher: () => Dispatcher,
|
|
22
|
+
DispatcherConnection: () => DispatcherConnection,
|
|
23
|
+
RootDispatcher: () => RootDispatcher,
|
|
24
|
+
setMaxDispatchersForTest: () => setMaxDispatchersForTest
|
|
5
25
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
* Copyright (c) Microsoft Corporation.
|
|
20
|
-
*
|
|
21
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
22
|
-
* you may not use this file except in compliance with the License.
|
|
23
|
-
* You may obtain a copy of the License at
|
|
24
|
-
*
|
|
25
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
26
|
-
*
|
|
27
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
28
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
29
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
30
|
-
* See the License for the specific language governing permissions and
|
|
31
|
-
* limitations under the License.
|
|
32
|
-
*/
|
|
33
|
-
|
|
34
|
-
const dispatcherSymbol = exports.dispatcherSymbol = Symbol('dispatcher');
|
|
35
|
-
const metadataValidator = (0, _validator.createMetadataValidator)();
|
|
36
|
-
function existingDispatcher(object) {
|
|
37
|
-
return object[dispatcherSymbol];
|
|
38
|
-
}
|
|
26
|
+
module.exports = __toCommonJS(dispatcher_exports);
|
|
27
|
+
var import_events = require("events");
|
|
28
|
+
var import_eventsHelper = require("../utils/eventsHelper");
|
|
29
|
+
var import_validator = require("../../protocol/validator");
|
|
30
|
+
var import_utils = require("../../utils");
|
|
31
|
+
var import_debug = require("../utils/debug");
|
|
32
|
+
var import_errors = require("../errors");
|
|
33
|
+
var import_instrumentation = require("../instrumentation");
|
|
34
|
+
var import_protocolError = require("../protocolError");
|
|
35
|
+
var import_callLog = require("../callLog");
|
|
36
|
+
var import_protocolMetainfo = require("../../utils/isomorphic/protocolMetainfo");
|
|
37
|
+
var import_progress = require("../progress");
|
|
38
|
+
const metadataValidator = (0, import_validator.createMetadataValidator)();
|
|
39
39
|
let maxDispatchersOverride;
|
|
40
40
|
function setMaxDispatchersForTest(value) {
|
|
41
41
|
maxDispatchersOverride = value;
|
|
42
42
|
}
|
|
43
43
|
function maxDispatchersForBucket(gcBucket) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}[gcBucket]) !== null && _ref !== void 0 ? _ref : 10000;
|
|
44
|
+
return maxDispatchersOverride ?? {
|
|
45
|
+
"JSHandle": 1e5,
|
|
46
|
+
"ElementHandle": 1e5
|
|
47
|
+
}[gcBucket] ?? 1e4;
|
|
49
48
|
}
|
|
50
|
-
class Dispatcher extends
|
|
49
|
+
class Dispatcher extends import_events.EventEmitter {
|
|
51
50
|
constructor(parent, object, type, initializer, gcBucket) {
|
|
52
51
|
super();
|
|
53
|
-
this.
|
|
54
|
-
// Parent is always "isScope".
|
|
55
|
-
this._parent = void 0;
|
|
56
|
-
// Only "isScope" channel owners have registered dispatchers inside.
|
|
57
|
-
this._dispatchers = new Map();
|
|
52
|
+
this._dispatchers = /* @__PURE__ */ new Map();
|
|
58
53
|
this._disposed = false;
|
|
59
54
|
this._eventListeners = [];
|
|
60
|
-
this.
|
|
61
|
-
this.
|
|
62
|
-
this.
|
|
63
|
-
this._object = void 0;
|
|
64
|
-
this._openScope = new _utils.LongStandingScope();
|
|
65
|
-
this._connection = parent instanceof DispatcherConnection ? parent : parent._connection;
|
|
66
|
-
this._parent = parent instanceof DispatcherConnection ? undefined : parent;
|
|
55
|
+
this._activeProgressControllers = /* @__PURE__ */ new Set();
|
|
56
|
+
this.connection = parent instanceof DispatcherConnection ? parent : parent.connection;
|
|
57
|
+
this._parent = parent instanceof DispatcherConnection ? void 0 : parent;
|
|
67
58
|
const guid = object.guid;
|
|
68
59
|
this._guid = guid;
|
|
69
60
|
this._type = type;
|
|
70
61
|
this._object = object;
|
|
71
|
-
this._gcBucket = gcBucket
|
|
72
|
-
|
|
73
|
-
this._connection.registerDispatcher(this);
|
|
62
|
+
this._gcBucket = gcBucket ?? type;
|
|
63
|
+
this.connection.registerDispatcher(this);
|
|
74
64
|
if (this._parent) {
|
|
75
|
-
(0,
|
|
65
|
+
(0, import_utils.assert)(!this._parent._dispatchers.has(guid));
|
|
76
66
|
this._parent._dispatchers.set(guid, this);
|
|
77
67
|
}
|
|
78
|
-
if (this._parent)
|
|
79
|
-
|
|
68
|
+
if (this._parent)
|
|
69
|
+
this.connection.sendCreate(this._parent, type, guid, initializer);
|
|
70
|
+
this.connection.maybeDisposeStaleDispatchers(this._gcBucket);
|
|
80
71
|
}
|
|
81
72
|
parentScope() {
|
|
82
73
|
return this._parent;
|
|
83
74
|
}
|
|
84
75
|
addObjectListener(eventName, handler) {
|
|
85
|
-
this._eventListeners.push(
|
|
76
|
+
this._eventListeners.push(import_eventsHelper.eventsHelper.addEventListener(this._object, eventName, handler));
|
|
86
77
|
}
|
|
87
78
|
adopt(child) {
|
|
88
|
-
if (child._parent === this)
|
|
79
|
+
if (child._parent === this)
|
|
80
|
+
return;
|
|
89
81
|
const oldParent = child._parent;
|
|
90
82
|
oldParent._dispatchers.delete(child._guid);
|
|
91
83
|
this._dispatchers.set(child._guid, child);
|
|
92
84
|
child._parent = this;
|
|
93
|
-
this.
|
|
85
|
+
this.connection.sendAdopt(this, child);
|
|
94
86
|
}
|
|
95
|
-
async
|
|
96
|
-
const
|
|
87
|
+
async _runCommand(callMetadata, method, validParams) {
|
|
88
|
+
const controller = new import_progress.ProgressController(callMetadata, this._object);
|
|
89
|
+
this._activeProgressControllers.add(controller);
|
|
97
90
|
try {
|
|
98
|
-
return await
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
throw e;
|
|
91
|
+
return await controller.run((progress) => this[method](validParams, progress), validParams?.timeout);
|
|
92
|
+
} finally {
|
|
93
|
+
this._activeProgressControllers.delete(controller);
|
|
102
94
|
}
|
|
103
95
|
}
|
|
104
96
|
_dispatchEvent(method, params) {
|
|
105
97
|
if (this._disposed) {
|
|
106
|
-
if ((0,
|
|
107
|
-
|
|
98
|
+
if ((0, import_debug.isUnderTest)())
|
|
99
|
+
throw new Error(`${this._guid} is sending "${String(method)}" event after being disposed`);
|
|
108
100
|
return;
|
|
109
101
|
}
|
|
110
|
-
this.
|
|
102
|
+
this.connection.sendEvent(this, method, params);
|
|
111
103
|
}
|
|
112
104
|
_dispose(reason) {
|
|
113
|
-
this._disposeRecursively(new
|
|
114
|
-
this.
|
|
105
|
+
this._disposeRecursively(new import_errors.TargetClosedError());
|
|
106
|
+
this.connection.sendDispose(this, reason);
|
|
107
|
+
}
|
|
108
|
+
_onDispose() {
|
|
109
|
+
}
|
|
110
|
+
async stopPendingOperations(error) {
|
|
111
|
+
const controllers = [];
|
|
112
|
+
const collect = (dispatcher) => {
|
|
113
|
+
controllers.push(...dispatcher._activeProgressControllers);
|
|
114
|
+
for (const child of [...dispatcher._dispatchers.values()])
|
|
115
|
+
collect(child);
|
|
116
|
+
};
|
|
117
|
+
collect(this);
|
|
118
|
+
await Promise.all(controllers.map((controller) => controller.abort(error)));
|
|
115
119
|
}
|
|
116
|
-
_onDispose() {}
|
|
117
120
|
_disposeRecursively(error) {
|
|
118
|
-
|
|
119
|
-
(
|
|
121
|
+
(0, import_utils.assert)(!this._disposed, `${this._guid} is disposed more than once`);
|
|
122
|
+
for (const controller of this._activeProgressControllers) {
|
|
123
|
+
if (!controller.metadata.potentiallyClosesScope)
|
|
124
|
+
controller.abort(error).catch(() => {
|
|
125
|
+
});
|
|
126
|
+
}
|
|
120
127
|
this._onDispose();
|
|
121
128
|
this._disposed = true;
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
this.
|
|
129
|
-
|
|
130
|
-
// Dispose all children.
|
|
131
|
-
for (const dispatcher of [...this._dispatchers.values()]) dispatcher._disposeRecursively(error);
|
|
129
|
+
import_eventsHelper.eventsHelper.removeEventListeners(this._eventListeners);
|
|
130
|
+
this._parent?._dispatchers.delete(this._guid);
|
|
131
|
+
const list = this.connection._dispatchersByBucket.get(this._gcBucket);
|
|
132
|
+
list?.delete(this._guid);
|
|
133
|
+
this.connection._dispatcherByGuid.delete(this._guid);
|
|
134
|
+
this.connection._dispatcherByObject.delete(this._object);
|
|
135
|
+
for (const dispatcher of [...this._dispatchers.values()])
|
|
136
|
+
dispatcher._disposeRecursively(error);
|
|
132
137
|
this._dispatchers.clear();
|
|
133
|
-
delete this._object[dispatcherSymbol];
|
|
134
|
-
this._openScope.close(error);
|
|
135
138
|
}
|
|
136
139
|
_debugScopeState() {
|
|
137
140
|
return {
|
|
138
141
|
_guid: this._guid,
|
|
139
|
-
objects: Array.from(this._dispatchers.values()).map(o => o._debugScopeState())
|
|
142
|
+
objects: Array.from(this._dispatchers.values()).map((o) => o._debugScopeState())
|
|
140
143
|
};
|
|
141
144
|
}
|
|
142
145
|
async waitForEventInfo() {
|
|
143
|
-
// Instrumentation takes care of this.
|
|
144
146
|
}
|
|
145
147
|
}
|
|
146
|
-
exports.Dispatcher = Dispatcher;
|
|
147
148
|
class RootDispatcher extends Dispatcher {
|
|
148
149
|
constructor(connection, createPlaywright) {
|
|
149
|
-
super(connection, {
|
|
150
|
-
guid: ''
|
|
151
|
-
}, 'Root', {});
|
|
152
|
-
this._initialized = false;
|
|
150
|
+
super(connection, (0, import_instrumentation.createRootSdkObject)(), "Root", {});
|
|
153
151
|
this.createPlaywright = createPlaywright;
|
|
152
|
+
this._initialized = false;
|
|
154
153
|
}
|
|
155
|
-
async initialize(params) {
|
|
156
|
-
(0,
|
|
157
|
-
(0,
|
|
154
|
+
async initialize(params, progress) {
|
|
155
|
+
(0, import_utils.assert)(this.createPlaywright);
|
|
156
|
+
(0, import_utils.assert)(!this._initialized);
|
|
158
157
|
this._initialized = true;
|
|
159
158
|
return {
|
|
160
159
|
playwright: await this.createPlaywright(this, params)
|
|
161
160
|
};
|
|
162
161
|
}
|
|
163
162
|
}
|
|
164
|
-
exports.RootDispatcher = RootDispatcher;
|
|
165
163
|
class DispatcherConnection {
|
|
166
164
|
constructor(isLocal) {
|
|
167
|
-
this.
|
|
168
|
-
this.
|
|
169
|
-
this.
|
|
170
|
-
this.
|
|
171
|
-
|
|
165
|
+
this._dispatcherByGuid = /* @__PURE__ */ new Map();
|
|
166
|
+
this._dispatcherByObject = /* @__PURE__ */ new Map();
|
|
167
|
+
this._dispatchersByBucket = /* @__PURE__ */ new Map();
|
|
168
|
+
this.onmessage = (message) => {
|
|
169
|
+
};
|
|
170
|
+
this._waitOperations = /* @__PURE__ */ new Map();
|
|
172
171
|
this._isLocal = !!isLocal;
|
|
173
172
|
}
|
|
174
173
|
sendEvent(dispatcher, event, params) {
|
|
175
|
-
const validator = (0,
|
|
176
|
-
params = validator(params,
|
|
177
|
-
this.onmessage({
|
|
178
|
-
guid: dispatcher._guid,
|
|
179
|
-
method: event,
|
|
180
|
-
params
|
|
181
|
-
});
|
|
174
|
+
const validator = (0, import_validator.findValidator)(dispatcher._type, event, "Event");
|
|
175
|
+
params = validator(params, "", this._validatorToWireContext());
|
|
176
|
+
this.onmessage({ guid: dispatcher._guid, method: event, params });
|
|
182
177
|
}
|
|
183
178
|
sendCreate(parent, type, guid, initializer) {
|
|
184
|
-
const validator = (0,
|
|
185
|
-
initializer = validator(initializer,
|
|
186
|
-
this.onmessage({
|
|
187
|
-
guid: parent._guid,
|
|
188
|
-
method: '__create__',
|
|
189
|
-
params: {
|
|
190
|
-
type,
|
|
191
|
-
initializer,
|
|
192
|
-
guid
|
|
193
|
-
}
|
|
194
|
-
});
|
|
179
|
+
const validator = (0, import_validator.findValidator)(type, "", "Initializer");
|
|
180
|
+
initializer = validator(initializer, "", this._validatorToWireContext());
|
|
181
|
+
this.onmessage({ guid: parent._guid, method: "__create__", params: { type, initializer, guid } });
|
|
195
182
|
}
|
|
196
183
|
sendAdopt(parent, dispatcher) {
|
|
197
|
-
this.onmessage({
|
|
198
|
-
guid: parent._guid,
|
|
199
|
-
method: '__adopt__',
|
|
200
|
-
params: {
|
|
201
|
-
guid: dispatcher._guid
|
|
202
|
-
}
|
|
203
|
-
});
|
|
184
|
+
this.onmessage({ guid: parent._guid, method: "__adopt__", params: { guid: dispatcher._guid } });
|
|
204
185
|
}
|
|
205
186
|
sendDispose(dispatcher, reason) {
|
|
206
|
-
this.onmessage({
|
|
207
|
-
guid: dispatcher._guid,
|
|
208
|
-
method: '__dispose__',
|
|
209
|
-
params: {
|
|
210
|
-
reason
|
|
211
|
-
}
|
|
212
|
-
});
|
|
187
|
+
this.onmessage({ guid: dispatcher._guid, method: "__dispose__", params: { reason } });
|
|
213
188
|
}
|
|
214
189
|
_validatorToWireContext() {
|
|
215
190
|
return {
|
|
216
191
|
tChannelImpl: this._tChannelImplToWire.bind(this),
|
|
217
|
-
binary: this._isLocal ?
|
|
218
|
-
isUnderTest:
|
|
192
|
+
binary: this._isLocal ? "buffer" : "toBase64",
|
|
193
|
+
isUnderTest: import_debug.isUnderTest
|
|
219
194
|
};
|
|
220
195
|
}
|
|
221
196
|
_validatorFromWireContext() {
|
|
222
197
|
return {
|
|
223
198
|
tChannelImpl: this._tChannelImplFromWire.bind(this),
|
|
224
|
-
binary: this._isLocal ?
|
|
225
|
-
isUnderTest:
|
|
199
|
+
binary: this._isLocal ? "buffer" : "fromBase64",
|
|
200
|
+
isUnderTest: import_debug.isUnderTest
|
|
226
201
|
};
|
|
227
202
|
}
|
|
228
203
|
_tChannelImplFromWire(names, arg, path, context) {
|
|
229
|
-
if (arg && typeof arg ===
|
|
204
|
+
if (arg && typeof arg === "object" && typeof arg.guid === "string") {
|
|
230
205
|
const guid = arg.guid;
|
|
231
|
-
const dispatcher = this.
|
|
232
|
-
if (!dispatcher)
|
|
233
|
-
|
|
206
|
+
const dispatcher = this._dispatcherByGuid.get(guid);
|
|
207
|
+
if (!dispatcher)
|
|
208
|
+
throw new import_validator.ValidationError(`${path}: no object with guid ${guid}`);
|
|
209
|
+
if (names !== "*" && !names.includes(dispatcher._type))
|
|
210
|
+
throw new import_validator.ValidationError(`${path}: object with guid ${guid} has type ${dispatcher._type}, expected ${names.toString()}`);
|
|
234
211
|
return dispatcher;
|
|
235
212
|
}
|
|
236
|
-
throw new
|
|
213
|
+
throw new import_validator.ValidationError(`${path}: expected guid for ${names.toString()}`);
|
|
237
214
|
}
|
|
238
215
|
_tChannelImplToWire(names, arg, path, context) {
|
|
239
216
|
if (arg instanceof Dispatcher) {
|
|
240
|
-
if (names !==
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
};
|
|
217
|
+
if (names !== "*" && !names.includes(arg._type))
|
|
218
|
+
throw new import_validator.ValidationError(`${path}: dispatcher with guid ${arg._guid} has type ${arg._type}, expected ${names.toString()}`);
|
|
219
|
+
return { guid: arg._guid };
|
|
244
220
|
}
|
|
245
|
-
throw new
|
|
221
|
+
throw new import_validator.ValidationError(`${path}: expected dispatcher ${names.toString()}`);
|
|
222
|
+
}
|
|
223
|
+
existingDispatcher(object) {
|
|
224
|
+
return this._dispatcherByObject.get(object);
|
|
246
225
|
}
|
|
247
226
|
registerDispatcher(dispatcher) {
|
|
248
|
-
(0,
|
|
249
|
-
this.
|
|
227
|
+
(0, import_utils.assert)(!this._dispatcherByGuid.has(dispatcher._guid));
|
|
228
|
+
this._dispatcherByGuid.set(dispatcher._guid, dispatcher);
|
|
229
|
+
this._dispatcherByObject.set(dispatcher._object, dispatcher);
|
|
250
230
|
let list = this._dispatchersByBucket.get(dispatcher._gcBucket);
|
|
251
231
|
if (!list) {
|
|
252
|
-
list = new Set();
|
|
232
|
+
list = /* @__PURE__ */ new Set();
|
|
253
233
|
this._dispatchersByBucket.set(dispatcher._gcBucket, list);
|
|
254
234
|
}
|
|
255
235
|
list.add(dispatcher._guid);
|
|
@@ -257,141 +237,121 @@ class DispatcherConnection {
|
|
|
257
237
|
maybeDisposeStaleDispatchers(gcBucket) {
|
|
258
238
|
const maxDispatchers = maxDispatchersForBucket(gcBucket);
|
|
259
239
|
const list = this._dispatchersByBucket.get(gcBucket);
|
|
260
|
-
if (!list || list.size <= maxDispatchers)
|
|
240
|
+
if (!list || list.size <= maxDispatchers)
|
|
241
|
+
return;
|
|
261
242
|
const dispatchersArray = [...list];
|
|
262
243
|
const disposeCount = maxDispatchers / 10 | 0;
|
|
263
244
|
this._dispatchersByBucket.set(gcBucket, new Set(dispatchersArray.slice(disposeCount)));
|
|
264
245
|
for (let i = 0; i < disposeCount; ++i) {
|
|
265
|
-
const d = this.
|
|
266
|
-
if (!d)
|
|
267
|
-
|
|
246
|
+
const d = this._dispatcherByGuid.get(dispatchersArray[i]);
|
|
247
|
+
if (!d)
|
|
248
|
+
continue;
|
|
249
|
+
d._dispose("gc");
|
|
268
250
|
}
|
|
269
251
|
}
|
|
270
252
|
async dispatch(message) {
|
|
271
|
-
|
|
272
|
-
const
|
|
273
|
-
id,
|
|
274
|
-
guid,
|
|
275
|
-
method,
|
|
276
|
-
params,
|
|
277
|
-
metadata
|
|
278
|
-
} = message;
|
|
279
|
-
const dispatcher = this._dispatchers.get(guid);
|
|
253
|
+
const { id, guid, method, params, metadata } = message;
|
|
254
|
+
const dispatcher = this._dispatcherByGuid.get(guid);
|
|
280
255
|
if (!dispatcher) {
|
|
281
|
-
this.onmessage({
|
|
282
|
-
id,
|
|
283
|
-
error: (0, _errors.serializeError)(new _errors.TargetClosedError())
|
|
284
|
-
});
|
|
256
|
+
this.onmessage({ id, error: (0, import_errors.serializeError)(new import_errors.TargetClosedError()) });
|
|
285
257
|
return;
|
|
286
258
|
}
|
|
287
259
|
let validParams;
|
|
288
260
|
let validMetadata;
|
|
289
261
|
try {
|
|
290
|
-
const validator = (0,
|
|
262
|
+
const validator = (0, import_validator.findValidator)(dispatcher._type, method, "Params");
|
|
291
263
|
const validatorContext = this._validatorFromWireContext();
|
|
292
|
-
validParams = validator(params,
|
|
293
|
-
validMetadata = metadataValidator(metadata,
|
|
294
|
-
if (typeof dispatcher[method] !==
|
|
264
|
+
validParams = validator(params, "", validatorContext);
|
|
265
|
+
validMetadata = metadataValidator(metadata, "", validatorContext);
|
|
266
|
+
if (typeof dispatcher[method] !== "function")
|
|
267
|
+
throw new Error(`Mismatching dispatcher: "${dispatcher._type}" does not implement "${method}"`);
|
|
295
268
|
} catch (e) {
|
|
296
|
-
this.onmessage({
|
|
297
|
-
id,
|
|
298
|
-
error: (0, _errors.serializeError)(e)
|
|
299
|
-
});
|
|
269
|
+
this.onmessage({ id, error: (0, import_errors.serializeError)(e) });
|
|
300
270
|
return;
|
|
301
271
|
}
|
|
302
|
-
|
|
272
|
+
if (import_protocolMetainfo.methodMetainfo.get(dispatcher._type + "." + method)?.internal) {
|
|
273
|
+
validMetadata.internal = true;
|
|
274
|
+
}
|
|
275
|
+
const sdkObject = dispatcher._object;
|
|
303
276
|
const callMetadata = {
|
|
304
277
|
id: `call@${id}`,
|
|
305
278
|
location: validMetadata.location,
|
|
306
|
-
|
|
279
|
+
title: validMetadata.title,
|
|
307
280
|
internal: validMetadata.internal,
|
|
308
281
|
stepId: validMetadata.stepId,
|
|
309
|
-
objectId: sdkObject
|
|
310
|
-
pageId: sdkObject
|
|
311
|
-
frameId: sdkObject
|
|
312
|
-
startTime: (0,
|
|
282
|
+
objectId: sdkObject.guid,
|
|
283
|
+
pageId: sdkObject.attribution?.page?.guid,
|
|
284
|
+
frameId: sdkObject.attribution?.frame?.guid,
|
|
285
|
+
startTime: (0, import_utils.monotonicTime)(),
|
|
313
286
|
endTime: 0,
|
|
314
287
|
type: dispatcher._type,
|
|
315
288
|
method,
|
|
316
289
|
params: params || {},
|
|
317
290
|
log: []
|
|
318
291
|
};
|
|
319
|
-
if (
|
|
320
|
-
// Process logs for waitForNavigation/waitForLoadState/etc.
|
|
292
|
+
if (params?.info?.waitId) {
|
|
321
293
|
const info = params.info;
|
|
322
294
|
switch (info.phase) {
|
|
323
|
-
case
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
{
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
originalMetadata.endTime = (0, _utils.monotonicTime)();
|
|
346
|
-
originalMetadata.error = info.error ? {
|
|
347
|
-
error: {
|
|
348
|
-
name: 'Error',
|
|
349
|
-
message: info.error
|
|
350
|
-
}
|
|
351
|
-
} : undefined;
|
|
352
|
-
this._waitOperations.delete(info.waitId);
|
|
353
|
-
await sdkObject.instrumentation.onAfterCall(sdkObject, originalMetadata);
|
|
354
|
-
this.onmessage({
|
|
355
|
-
id
|
|
356
|
-
});
|
|
357
|
-
return;
|
|
358
|
-
}
|
|
295
|
+
case "before": {
|
|
296
|
+
this._waitOperations.set(info.waitId, callMetadata);
|
|
297
|
+
await sdkObject.instrumentation.onBeforeCall(sdkObject, callMetadata);
|
|
298
|
+
this.onmessage({ id });
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
case "log": {
|
|
302
|
+
const originalMetadata = this._waitOperations.get(info.waitId);
|
|
303
|
+
originalMetadata.log.push(info.message);
|
|
304
|
+
sdkObject.instrumentation.onCallLog(sdkObject, originalMetadata, "api", info.message);
|
|
305
|
+
this.onmessage({ id });
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
case "after": {
|
|
309
|
+
const originalMetadata = this._waitOperations.get(info.waitId);
|
|
310
|
+
originalMetadata.endTime = (0, import_utils.monotonicTime)();
|
|
311
|
+
originalMetadata.error = info.error ? { error: { name: "Error", message: info.error } } : void 0;
|
|
312
|
+
this._waitOperations.delete(info.waitId);
|
|
313
|
+
await sdkObject.instrumentation.onAfterCall(sdkObject, originalMetadata);
|
|
314
|
+
this.onmessage({ id });
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
359
317
|
}
|
|
360
318
|
}
|
|
361
|
-
await
|
|
362
|
-
const response = {
|
|
363
|
-
id
|
|
364
|
-
};
|
|
319
|
+
await sdkObject.instrumentation.onBeforeCall(sdkObject, callMetadata);
|
|
320
|
+
const response = { id };
|
|
365
321
|
try {
|
|
366
|
-
const result = await dispatcher.
|
|
367
|
-
const validator = (0,
|
|
368
|
-
response.result = validator(result,
|
|
322
|
+
const result = await dispatcher._runCommand(callMetadata, method, validParams);
|
|
323
|
+
const validator = (0, import_validator.findValidator)(dispatcher._type, method, "Result");
|
|
324
|
+
response.result = validator(result, "", this._validatorToWireContext());
|
|
369
325
|
callMetadata.result = result;
|
|
370
326
|
} catch (e) {
|
|
371
|
-
if ((0,
|
|
327
|
+
if ((0, import_errors.isTargetClosedError)(e)) {
|
|
372
328
|
const reason = closeReason(sdkObject);
|
|
373
|
-
if (reason)
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
e = new
|
|
378
|
-
|
|
379
|
-
(0,
|
|
380
|
-
}
|
|
329
|
+
if (reason)
|
|
330
|
+
(0, import_utils.rewriteErrorMessage)(e, reason);
|
|
331
|
+
} else if ((0, import_protocolError.isProtocolError)(e)) {
|
|
332
|
+
if (e.type === "closed")
|
|
333
|
+
e = new import_errors.TargetClosedError(closeReason(sdkObject), e.browserLogMessage());
|
|
334
|
+
else if (e.type === "crashed")
|
|
335
|
+
(0, import_utils.rewriteErrorMessage)(e, "Target crashed " + e.browserLogMessage());
|
|
381
336
|
}
|
|
382
|
-
response.error = (0,
|
|
383
|
-
// The command handler could have set error in the metadata, do not reset it if there was no exception.
|
|
337
|
+
response.error = (0, import_errors.serializeError)(e);
|
|
384
338
|
callMetadata.error = response.error;
|
|
385
339
|
} finally {
|
|
386
|
-
callMetadata.endTime = (0,
|
|
387
|
-
await
|
|
340
|
+
callMetadata.endTime = (0, import_utils.monotonicTime)();
|
|
341
|
+
await sdkObject.instrumentation.onAfterCall(sdkObject, callMetadata);
|
|
388
342
|
}
|
|
389
|
-
if (response.error)
|
|
343
|
+
if (response.error)
|
|
344
|
+
response.log = (0, import_callLog.compressCallLog)(callMetadata.log);
|
|
390
345
|
this.onmessage(response);
|
|
391
346
|
}
|
|
392
347
|
}
|
|
393
|
-
exports.DispatcherConnection = DispatcherConnection;
|
|
394
348
|
function closeReason(sdkObject) {
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
349
|
+
return sdkObject.attribution.page?.closeReason || sdkObject.attribution.context?._closeReason || sdkObject.attribution.browser?._closeReason;
|
|
350
|
+
}
|
|
351
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
352
|
+
0 && (module.exports = {
|
|
353
|
+
Dispatcher,
|
|
354
|
+
DispatcherConnection,
|
|
355
|
+
RootDispatcher,
|
|
356
|
+
setMaxDispatchersForTest
|
|
357
|
+
});
|