rebrowser-playwright-core 1.49.1 → 1.52.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 +381 -55
- package/bin/reinstall_msedge_beta_linux.sh +6 -0
- package/bin/reinstall_msedge_dev_linux.sh +6 -0
- package/bin/reinstall_msedge_stable_linux.sh +6 -0
- package/browsers.json +28 -13
- package/index.js +0 -1
- package/lib/androidServerImpl.js +42 -48
- package/lib/browserServerImpl.js +60 -64
- package/lib/cli/driver.js +71 -69
- package/lib/cli/program.js +314 -354
- package/lib/cli/programWithTestStub.js +51 -44
- package/lib/client/accessibility.js +31 -32
- package/lib/client/android.js +146 -254
- package/lib/client/api.js +135 -283
- package/lib/client/artifact.js +39 -39
- package/lib/client/browser.js +59 -68
- package/lib/client/browserContext.js +302 -322
- package/lib/client/browserType.js +95 -143
- package/lib/client/cdpSession.js +29 -31
- package/lib/client/channelOwner.js +109 -139
- package/lib/client/clientHelper.js +49 -42
- package/lib/client/clientInstrumentation.js +40 -35
- package/lib/client/clientStackTrace.js +69 -0
- package/lib/client/clock.js +36 -36
- package/lib/client/connection.js +203 -218
- package/lib/client/consoleMessage.js +33 -33
- 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 +74 -76
- package/lib/client/elementHandle.js +126 -163
- package/lib/client/errors.js +53 -53
- package/lib/client/eventEmitter.js +127 -127
- package/lib/client/events.js +72 -68
- package/lib/client/fetch.js +154 -178
- package/lib/client/fileChooser.js +25 -24
- package/lib/client/fileUtils.js +34 -0
- package/lib/client/frame.js +189 -307
- package/lib/client/harRouter.js +44 -56
- package/lib/client/input.js +40 -69
- package/lib/client/jsHandle.js +55 -71
- package/lib/client/jsonPipe.js +27 -23
- package/lib/client/localUtils.js +53 -28
- package/lib/client/locator.js +144 -230
- package/lib/client/network.js +285 -301
- package/lib/client/page.js +273 -312
- package/lib/client/platform.js +74 -0
- package/lib/client/playwright.js +62 -57
- package/lib/client/selectors.js +51 -43
- package/lib/client/stream.js +30 -45
- package/lib/client/timeoutSettings.js +75 -0
- package/lib/client/tracing.js +49 -82
- package/lib/client/types.js +26 -22
- package/lib/client/video.js +35 -27
- package/lib/client/waiter.js +71 -91
- package/lib/client/webError.js +25 -23
- package/lib/client/webSocket.js +111 -0
- package/lib/client/worker.js +48 -56
- package/lib/client/writableStream.js +28 -43
- package/lib/generated/clockSource.js +26 -5
- package/lib/generated/consoleApiSource.js +26 -5
- package/lib/generated/injectedScriptSource.js +26 -5
- package/lib/generated/pollingRecorderSource.js +26 -5
- package/lib/generated/utilityScriptSource.js +26 -5
- package/lib/generated/webSocketMockSource.js +375 -4
- package/lib/inProcessFactory.js +53 -48
- package/lib/inprocess.js +2 -19
- package/lib/outofprocess.js +53 -42
- package/lib/protocol/debug.js +209 -25
- package/lib/protocol/serializers.js +153 -134
- package/lib/protocol/validator.js +2712 -2667
- package/lib/protocol/validatorPrimitives.js +115 -75
- package/lib/remote/playwrightConnection.js +144 -152
- package/lib/remote/playwrightServer.js +106 -77
- package/lib/server/accessibility.js +44 -37
- package/lib/server/android/android.js +216 -206
- package/lib/server/android/backendAdb.js +89 -82
- package/lib/server/artifact.js +78 -55
- package/lib/server/bidi/bidiBrowser.js +227 -158
- package/lib/server/bidi/bidiChromium.js +106 -78
- package/lib/server/bidi/bidiConnection.js +66 -83
- package/lib/server/bidi/bidiExecutionContext.js +161 -97
- package/lib/server/bidi/bidiFirefox.js +76 -68
- package/lib/server/bidi/bidiInput.js +90 -102
- package/lib/server/bidi/bidiNetworkManager.js +141 -159
- package/lib/server/bidi/bidiOverCdp.js +57 -58
- package/lib/server/bidi/bidiPage.js +262 -261
- 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 +241 -223
- package/lib/server/bidi/third_party/bidiProtocol.js +144 -131
- package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
- package/lib/server/bidi/third_party/firefoxPrefs.js +149 -111
- package/lib/server/browser.js +76 -84
- package/lib/server/browserContext.js +343 -360
- package/lib/server/browserType.js +169 -181
- package/lib/server/callLog.js +82 -0
- package/lib/server/chromium/chromium.js +212 -190
- package/lib/server/chromium/chromiumSwitches.js +99 -44
- package/lib/server/chromium/crAccessibility.js +157 -131
- package/lib/server/chromium/crBrowser.js +262 -280
- package/lib/server/chromium/crConnection.js +121 -178
- package/lib/server/chromium/crCoverage.js +113 -127
- package/lib/server/chromium/crDevTools.js +64 -55
- package/lib/server/chromium/crDragDrop.js +62 -79
- package/lib/server/chromium/crExecutionContext.js +100 -91
- package/lib/server/chromium/crInput.js +101 -88
- package/lib/server/chromium/crNetworkManager.js +269 -370
- package/lib/server/chromium/crPage.js +509 -597
- package/lib/server/chromium/crPdf.js +54 -86
- package/lib/server/chromium/crProtocolHelper.js +92 -80
- package/lib/server/chromium/crServiceWorker.js +85 -69
- package/lib/server/chromium/defaultFontFamilies.js +152 -135
- package/lib/server/chromium/protocol.d.js +16 -0
- package/lib/server/chromium/videoRecorder.js +65 -99
- package/lib/server/clock.js +58 -46
- package/lib/server/codegen/csharp.js +191 -156
- package/lib/server/codegen/java.js +163 -125
- package/lib/server/codegen/javascript.js +166 -143
- package/lib/server/codegen/jsonl.js +33 -29
- package/lib/server/codegen/language.js +75 -52
- package/lib/server/codegen/languages.js +65 -27
- package/lib/server/codegen/python.js +141 -125
- package/lib/server/codegen/types.js +15 -4
- package/lib/server/console.js +28 -32
- package/lib/server/cookieStore.js +105 -86
- package/lib/server/debugController.js +102 -154
- package/lib/server/debugger.js +82 -78
- package/lib/server/deviceDescriptors.js +37 -24
- package/lib/server/deviceDescriptorsSource.json +131 -131
- package/lib/server/dialog.js +36 -35
- package/lib/server/dispatchers/androidDispatcher.js +196 -107
- package/lib/server/dispatchers/artifactDispatcher.js +62 -62
- package/lib/server/dispatchers/browserContextDispatcher.js +177 -217
- package/lib/server/dispatchers/browserDispatcher.js +78 -97
- package/lib/server/dispatchers/browserTypeDispatcher.js +35 -35
- package/lib/server/dispatchers/cdpSessionDispatcher.js +32 -36
- package/lib/server/dispatchers/debugControllerDispatcher.js +48 -64
- package/lib/server/dispatchers/dialogDispatcher.js +30 -27
- package/lib/server/dispatchers/dispatcher.js +180 -229
- package/lib/server/dispatchers/electronDispatcher.js +54 -57
- package/lib/server/dispatchers/elementHandlerDispatcher.js +79 -116
- package/lib/server/dispatchers/frameDispatcher.js +93 -162
- package/lib/server/dispatchers/jsHandleDispatcher.js +49 -66
- package/lib/server/dispatchers/jsonPipeDispatcher.js +35 -36
- package/lib/server/dispatchers/localUtilsDispatcher.js +107 -365
- package/lib/server/dispatchers/networkDispatchers.js +92 -109
- package/lib/server/dispatchers/pageDispatcher.js +130 -169
- package/lib/server/dispatchers/playwrightDispatcher.js +69 -76
- package/lib/server/dispatchers/selectorsDispatcher.js +28 -24
- package/lib/server/dispatchers/streamDispatcher.js +42 -44
- package/lib/server/dispatchers/tracingDispatcher.js +36 -41
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +100 -135
- package/lib/server/dispatchers/writableStreamDispatcher.js +54 -39
- package/lib/server/dom.js +424 -443
- package/lib/server/download.js +45 -35
- package/lib/server/electron/electron.js +156 -175
- package/lib/server/electron/loader.js +8 -36
- package/lib/server/errors.js +47 -46
- package/lib/server/fetch.js +302 -331
- package/lib/server/fileChooser.js +25 -24
- package/lib/server/fileUploadUtils.js +66 -57
- package/lib/server/firefox/ffAccessibility.js +153 -131
- package/lib/server/firefox/ffBrowser.js +218 -274
- package/lib/server/firefox/ffConnection.js +63 -84
- package/lib/server/firefox/ffExecutionContext.js +103 -77
- package/lib/server/firefox/ffInput.js +72 -63
- package/lib/server/firefox/ffNetworkManager.js +131 -110
- package/lib/server/firefox/ffPage.js +244 -302
- package/lib/server/firefox/firefox.js +76 -69
- package/lib/server/firefox/protocol.d.js +16 -0
- package/lib/server/formData.js +107 -35
- package/lib/server/frameSelectors.js +77 -111
- package/lib/server/frames.js +719 -855
- package/lib/server/har/harRecorder.js +85 -77
- package/lib/server/har/harTracer.js +288 -224
- package/lib/server/harBackend.js +157 -0
- package/lib/server/helper.js +56 -59
- package/lib/server/index.js +59 -106
- package/lib/server/input.js +136 -166
- package/lib/server/instrumentation.js +49 -44
- package/lib/server/javascript.js +157 -151
- package/lib/server/launchApp.js +92 -73
- package/lib/server/localUtils.js +211 -0
- package/lib/server/macEditingCommands.js +141 -137
- package/lib/server/network.js +263 -297
- package/lib/server/page.js +351 -434
- package/lib/server/pageBinding.js +88 -0
- package/lib/server/pipeTransport.js +49 -45
- package/lib/server/playwright.js +60 -67
- package/lib/server/progress.js +56 -51
- package/lib/server/protocolError.js +34 -31
- package/lib/server/recorder/chat.js +161 -0
- package/lib/server/recorder/contextRecorder.js +135 -148
- package/lib/server/recorder/recorderApp.js +129 -132
- package/lib/server/recorder/recorderCollection.js +57 -57
- package/lib/server/recorder/recorderFrontend.js +15 -4
- package/lib/server/recorder/recorderRunner.js +80 -100
- package/lib/server/recorder/recorderUtils.js +59 -72
- package/lib/server/recorder/throttledFile.js +42 -31
- package/lib/server/recorder.js +186 -190
- package/lib/server/registry/browserFetcher.js +107 -100
- package/lib/server/registry/dependencies.js +247 -198
- package/lib/server/registry/index.js +928 -709
- package/lib/server/registry/nativeDeps.js +1073 -461
- package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
- package/lib/server/screenshotter.js +166 -182
- package/lib/server/selectors.js +85 -46
- package/lib/server/socksClientCertificatesInterceptor.js +166 -185
- package/lib/server/socksInterceptor.js +62 -67
- package/lib/server/storageScript.js +154 -0
- package/lib/server/timeoutSettings.js +89 -0
- package/lib/server/trace/recorder/snapshotter.js +70 -88
- package/lib/server/trace/recorder/snapshotterInjected.js +246 -218
- package/lib/server/trace/recorder/tracing.js +324 -327
- package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
- package/lib/server/trace/viewer/traceViewer.js +172 -137
- package/lib/server/transport.js +125 -133
- package/lib/server/types.js +26 -22
- package/lib/server/usKeyboardLayout.js +135 -545
- package/lib/server/utils/ascii.js +44 -0
- package/lib/server/utils/comparators.js +161 -0
- package/lib/server/utils/crypto.js +216 -0
- package/lib/server/utils/debug.js +47 -0
- package/lib/server/utils/debugLogger.js +114 -0
- package/lib/server/utils/env.js +68 -0
- package/lib/server/utils/eventsHelper.js +39 -0
- package/lib/server/utils/expectUtils.js +38 -0
- package/lib/server/utils/fileUtils.js +191 -0
- package/lib/server/utils/happyEyeballs.js +207 -0
- package/lib/server/utils/hostPlatform.js +109 -0
- package/lib/server/utils/httpServer.js +218 -0
- package/lib/server/utils/image_tools/colorUtils.js +89 -0
- package/lib/{image_tools → server/utils/image_tools}/compare.js +44 -43
- package/lib/server/utils/image_tools/imageChannel.js +78 -0
- package/lib/{image_tools → server/utils/image_tools}/stats.js +40 -40
- package/lib/server/utils/linuxUtils.js +71 -0
- package/lib/server/utils/network.js +217 -0
- package/lib/server/utils/nodePlatform.js +148 -0
- package/lib/server/utils/pipeTransport.js +84 -0
- package/lib/server/utils/processLauncher.js +238 -0
- package/lib/server/utils/profiler.js +65 -0
- package/lib/server/utils/socksProxy.js +511 -0
- package/lib/server/utils/spawnAsync.js +41 -0
- package/lib/server/utils/task.js +51 -0
- package/lib/server/utils/userAgent.js +98 -0
- package/lib/server/utils/wsServer.js +132 -0
- package/lib/server/utils/zipFile.js +74 -0
- package/lib/server/utils/zones.js +57 -0
- package/lib/server/webkit/protocol.d.js +16 -0
- package/lib/server/webkit/webkit.js +76 -63
- package/lib/server/webkit/wkAccessibility.js +161 -118
- package/lib/server/webkit/wkBrowser.js +163 -180
- package/lib/server/webkit/wkConnection.js +59 -83
- package/lib/server/webkit/wkExecutionContext.js +96 -73
- package/lib/server/webkit/wkInput.js +87 -75
- package/lib/server/webkit/wkInterceptableRequest.js +102 -95
- package/lib/server/webkit/wkPage.js +536 -647
- package/lib/server/webkit/wkProvisionalPage.js +45 -56
- package/lib/server/webkit/wkWorkers.js +77 -77
- package/lib/utils/isomorphic/ariaSnapshot.js +245 -128
- package/lib/utils/isomorphic/assert.js +31 -0
- package/lib/utils/isomorphic/builtins.js +90 -0
- package/lib/utils/isomorphic/colors.js +72 -0
- package/lib/utils/isomorphic/cssParser.js +123 -127
- package/lib/utils/isomorphic/cssTokenizer.js +436 -364
- package/lib/utils/isomorphic/headers.js +53 -0
- package/lib/utils/isomorphic/locatorGenerators.js +344 -349
- package/lib/utils/isomorphic/locatorParser.js +103 -106
- package/lib/utils/isomorphic/locatorUtils.js +63 -44
- package/lib/utils/isomorphic/manualPromise.js +115 -0
- package/lib/utils/isomorphic/mimeType.js +453 -22
- package/lib/utils/isomorphic/multimap.js +81 -0
- package/lib/utils/isomorphic/rtti.js +43 -0
- package/lib/utils/isomorphic/selectorParser.js +183 -193
- package/lib/utils/isomorphic/semaphore.js +54 -0
- package/lib/utils/isomorphic/stackTrace.js +158 -0
- package/lib/utils/isomorphic/stringUtils.js +113 -106
- package/lib/utils/isomorphic/time.js +44 -0
- package/lib/utils/isomorphic/timeoutRunner.js +67 -0
- package/lib/utils/isomorphic/traceUtils.js +52 -32
- package/lib/utils/isomorphic/types.js +16 -0
- package/lib/utils/isomorphic/urlMatch.js +114 -71
- package/lib/utils/isomorphic/utilityScriptSerializers.js +248 -0
- package/lib/utils.js +101 -0
- package/lib/utilsBundle.js +101 -76
- package/lib/utilsBundleImpl/index.js +114 -116
- package/lib/vite/htmlReport/index.html +26 -20
- package/lib/vite/recorder/assets/{codeMirrorModule-C5j27SYZ.js → codeMirrorModule-DVQi6prl.js} +13 -13
- package/lib/vite/recorder/assets/index-97EUAAbk.js +184 -0
- package/lib/vite/recorder/assets/{index-iA1aAGZg.css → index-eHBmevrY.css} +1 -1
- package/lib/vite/recorder/index.html +2 -2
- package/lib/vite/traceViewer/assets/codeMirrorModule-DwAiTpyC.js +24 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-DkkRvn5X.js +265 -0
- package/lib/vite/traceViewer/assets/{xtermModule-BeNbaIVa.js → xtermModule-BoAIEibi.js} +7 -7
- package/lib/vite/traceViewer/defaultSettingsView.QdHITyLI.css +1 -0
- package/lib/vite/traceViewer/index.DvtSwn6E.js +2 -0
- package/lib/vite/traceViewer/index.html +4 -7
- package/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/lib/vite/traceViewer/{uiMode.voC1ZiOQ.css → uiMode.BatfzHMG.css} +1 -1
- package/lib/vite/traceViewer/uiMode.Sdytl9wc.js +5 -0
- package/lib/vite/traceViewer/uiMode.html +4 -7
- package/lib/zipBundle.js +32 -23
- package/lib/zipBundleImpl.js +4 -4
- package/package.json +7 -7
- package/types/protocol.d.ts +819 -127
- package/types/types.d.ts +181 -69
- package/bin/PrintDeps.exe +0 -0
- package/bin/README.md +0 -2
- 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/imageChannel.js +0 -70
- package/lib/protocol/transport.js +0 -82
- package/lib/server/ariaSnapshot.js +0 -33
- package/lib/server/isomorphic/utilityScriptSerializers.js +0 -226
- package/lib/server/recorder/recorderInTraceViewer.js +0 -144
- package/lib/utils/ascii.js +0 -31
- package/lib/utils/comparators.js +0 -153
- package/lib/utils/crypto.js +0 -171
- 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/expectUtils.js +0 -33
- package/lib/utils/fileUtils.js +0 -205
- package/lib/utils/happy-eyeballs.js +0 -194
- package/lib/utils/headers.js +0 -52
- package/lib/utils/hostPlatform.js +0 -139
- package/lib/utils/httpServer.js +0 -237
- package/lib/utils/index.js +0 -368
- package/lib/utils/isomorphic/recorderUtils.js +0 -227
- 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/sequence.js +0 -64
- package/lib/utils/spawnAsync.js +0 -45
- package/lib/utils/stackTrace.js +0 -134
- 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 -71
- package/lib/vite/recorder/assets/index-m0XdVJHe.js +0 -184
- package/lib/vite/traceViewer/assets/codeMirrorModule-BBCX0spr.js +0 -24
- package/lib/vite/traceViewer/assets/inspectorTab-B4Iw34Ow.js +0 -68
- package/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +0 -1
- package/lib/vite/traceViewer/assets/workbench-DFlGYqou.js +0 -9
- package/lib/vite/traceViewer/embedded.CmarehFk.js +0 -2
- package/lib/vite/traceViewer/embedded.html +0 -18
- package/lib/vite/traceViewer/embedded.w7WN2u1R.css +0 -1
- package/lib/vite/traceViewer/index.FBucu_gE.js +0 -2
- package/lib/vite/traceViewer/inspectorTab.DEOUW62d.css +0 -1
- package/lib/vite/traceViewer/recorder.B_SY1GJM.css +0 -0
- package/lib/vite/traceViewer/recorder.CW_rzcEp.js +0 -2
- package/lib/vite/traceViewer/recorder.html +0 -17
- package/lib/vite/traceViewer/uiMode.CDUVjusr.js +0 -5
- package/lib/vite/traceViewer/workbench.C-zR9ysA.css +0 -1
- /package/lib/vite/recorder/assets/{codeMirrorModule-ez37Vkbh.css → codeMirrorModule-C3UTv-Ge.css} +0 -0
- /package/lib/vite/traceViewer/{codeMirrorModule.ez37Vkbh.css → codeMirrorModule.C3UTv-Ge.css} +0 -0
- /package/lib/vite/traceViewer/{index.CrbWWHbf.css → index.CFOW-Ezb.css} +0 -0
- /package/lib/vite/traceViewer/{xtermModule.DSXBckUd.css → xtermModule.Beg8tuEN.css} +0 -0
|
@@ -1,36 +1,42 @@
|
|
|
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
|
+
dispatcherSymbol: () => dispatcherSymbol,
|
|
25
|
+
existingDispatcher: () => existingDispatcher,
|
|
26
|
+
setMaxDispatchersForTest: () => setMaxDispatchersForTest
|
|
5
27
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
*
|
|
19
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
20
|
-
* you may not use this file except in compliance with the License.
|
|
21
|
-
* You may obtain a copy of the License at
|
|
22
|
-
*
|
|
23
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
24
|
-
*
|
|
25
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
26
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
27
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
28
|
-
* See the License for the specific language governing permissions and
|
|
29
|
-
* limitations under the License.
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
const dispatcherSymbol = exports.dispatcherSymbol = Symbol('dispatcher');
|
|
33
|
-
const metadataValidator = (0, _validator.createMetadataValidator)();
|
|
28
|
+
module.exports = __toCommonJS(dispatcher_exports);
|
|
29
|
+
var import_events = require("events");
|
|
30
|
+
var import_eventsHelper = require("../utils/eventsHelper");
|
|
31
|
+
var import_validator = require("../../protocol/validator");
|
|
32
|
+
var import_utils = require("../../utils");
|
|
33
|
+
var import_debug = require("../utils/debug");
|
|
34
|
+
var import_errors = require("../errors");
|
|
35
|
+
var import_instrumentation = require("../instrumentation");
|
|
36
|
+
var import_protocolError = require("../protocolError");
|
|
37
|
+
var import_callLog = require("../callLog");
|
|
38
|
+
const dispatcherSymbol = Symbol("dispatcher");
|
|
39
|
+
const metadataValidator = (0, import_validator.createMetadataValidator)();
|
|
34
40
|
function existingDispatcher(object) {
|
|
35
41
|
return object[dispatcherSymbol];
|
|
36
42
|
}
|
|
@@ -39,51 +45,45 @@ function setMaxDispatchersForTest(value) {
|
|
|
39
45
|
maxDispatchersOverride = value;
|
|
40
46
|
}
|
|
41
47
|
function maxDispatchersForBucket(gcBucket) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}[gcBucket]) !== null && _ref !== void 0 ? _ref : 10000;
|
|
48
|
+
return maxDispatchersOverride ?? {
|
|
49
|
+
"JSHandle": 1e5,
|
|
50
|
+
"ElementHandle": 1e5
|
|
51
|
+
}[gcBucket] ?? 1e4;
|
|
47
52
|
}
|
|
48
|
-
class Dispatcher extends
|
|
53
|
+
class Dispatcher extends import_events.EventEmitter {
|
|
49
54
|
constructor(parent, object, type, initializer, gcBucket) {
|
|
50
55
|
super();
|
|
51
|
-
this._connection = void 0;
|
|
52
|
-
// Parent is always "isScope".
|
|
53
|
-
this._parent = void 0;
|
|
54
56
|
// Only "isScope" channel owners have registered dispatchers inside.
|
|
55
|
-
this._dispatchers = new Map();
|
|
57
|
+
this._dispatchers = /* @__PURE__ */ new Map();
|
|
56
58
|
this._disposed = false;
|
|
57
59
|
this._eventListeners = [];
|
|
58
|
-
this.
|
|
59
|
-
this._type = void 0;
|
|
60
|
-
this._gcBucket = void 0;
|
|
61
|
-
this._object = void 0;
|
|
62
|
-
this._openScope = new _utils.LongStandingScope();
|
|
60
|
+
this._openScope = new import_utils.LongStandingScope();
|
|
63
61
|
this._connection = parent instanceof DispatcherConnection ? parent : parent._connection;
|
|
64
|
-
this._parent = parent instanceof DispatcherConnection ?
|
|
62
|
+
this._parent = parent instanceof DispatcherConnection ? void 0 : parent;
|
|
65
63
|
const guid = object.guid;
|
|
66
64
|
this._guid = guid;
|
|
67
65
|
this._type = type;
|
|
68
66
|
this._object = object;
|
|
69
|
-
this._gcBucket = gcBucket
|
|
67
|
+
this._gcBucket = gcBucket ?? type;
|
|
70
68
|
object[dispatcherSymbol] = this;
|
|
71
69
|
this._connection.registerDispatcher(this);
|
|
72
70
|
if (this._parent) {
|
|
73
|
-
(0,
|
|
71
|
+
(0, import_utils.assert)(!this._parent._dispatchers.has(guid));
|
|
74
72
|
this._parent._dispatchers.set(guid, this);
|
|
75
73
|
}
|
|
76
|
-
if (this._parent)
|
|
74
|
+
if (this._parent)
|
|
75
|
+
this._connection.sendCreate(this._parent, type, guid, initializer);
|
|
77
76
|
this._connection.maybeDisposeStaleDispatchers(this._gcBucket);
|
|
78
77
|
}
|
|
79
78
|
parentScope() {
|
|
80
79
|
return this._parent;
|
|
81
80
|
}
|
|
82
81
|
addObjectListener(eventName, handler) {
|
|
83
|
-
this._eventListeners.push(
|
|
82
|
+
this._eventListeners.push(import_eventsHelper.eventsHelper.addEventListener(this._object, eventName, handler));
|
|
84
83
|
}
|
|
85
84
|
adopt(child) {
|
|
86
|
-
if (child._parent === this)
|
|
85
|
+
if (child._parent === this)
|
|
86
|
+
return;
|
|
87
87
|
const oldParent = child._parent;
|
|
88
88
|
oldParent._dispatchers.delete(child._guid);
|
|
89
89
|
this._dispatchers.set(child._guid, child);
|
|
@@ -95,38 +95,36 @@ class Dispatcher extends _events.EventEmitter {
|
|
|
95
95
|
try {
|
|
96
96
|
return await this._openScope.race(commandPromise);
|
|
97
97
|
} catch (e) {
|
|
98
|
-
if (callMetadata.potentiallyClosesScope && (0,
|
|
98
|
+
if (callMetadata.potentiallyClosesScope && (0, import_errors.isTargetClosedError)(e))
|
|
99
|
+
return await commandPromise;
|
|
99
100
|
throw e;
|
|
100
101
|
}
|
|
101
102
|
}
|
|
102
103
|
_dispatchEvent(method, params) {
|
|
103
104
|
if (this._disposed) {
|
|
104
|
-
if ((0,
|
|
105
|
-
|
|
105
|
+
if ((0, import_debug.isUnderTest)())
|
|
106
|
+
throw new Error(`${this._guid} is sending "${String(method)}" event after being disposed`);
|
|
106
107
|
return;
|
|
107
108
|
}
|
|
108
109
|
this._connection.sendEvent(this, method, params);
|
|
109
110
|
}
|
|
110
111
|
_dispose(reason) {
|
|
111
|
-
this._disposeRecursively(new
|
|
112
|
+
this._disposeRecursively(new import_errors.TargetClosedError());
|
|
112
113
|
this._connection.sendDispose(this, reason);
|
|
113
114
|
}
|
|
114
|
-
_onDispose() {
|
|
115
|
+
_onDispose() {
|
|
116
|
+
}
|
|
115
117
|
_disposeRecursively(error) {
|
|
116
|
-
|
|
117
|
-
(0, _utils.assert)(!this._disposed, `${this._guid} is disposed more than once`);
|
|
118
|
+
(0, import_utils.assert)(!this._disposed, `${this._guid} is disposed more than once`);
|
|
118
119
|
this._onDispose();
|
|
119
120
|
this._disposed = true;
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
// Clean up from parent and connection.
|
|
123
|
-
(_this$_parent = this._parent) === null || _this$_parent === void 0 || _this$_parent._dispatchers.delete(this._guid);
|
|
121
|
+
import_eventsHelper.eventsHelper.removeEventListeners(this._eventListeners);
|
|
122
|
+
this._parent?._dispatchers.delete(this._guid);
|
|
124
123
|
const list = this._connection._dispatchersByBucket.get(this._gcBucket);
|
|
125
|
-
list
|
|
124
|
+
list?.delete(this._guid);
|
|
126
125
|
this._connection._dispatchers.delete(this._guid);
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
for (const dispatcher of [...this._dispatchers.values()]) dispatcher._disposeRecursively(error);
|
|
126
|
+
for (const dispatcher of [...this._dispatchers.values()])
|
|
127
|
+
dispatcher._disposeRecursively(error);
|
|
130
128
|
this._dispatchers.clear();
|
|
131
129
|
delete this._object[dispatcherSymbol];
|
|
132
130
|
this._openScope.close(error);
|
|
@@ -134,112 +132,92 @@ class Dispatcher extends _events.EventEmitter {
|
|
|
134
132
|
_debugScopeState() {
|
|
135
133
|
return {
|
|
136
134
|
_guid: this._guid,
|
|
137
|
-
objects: Array.from(this._dispatchers.values()).map(o => o._debugScopeState())
|
|
135
|
+
objects: Array.from(this._dispatchers.values()).map((o) => o._debugScopeState())
|
|
138
136
|
};
|
|
139
137
|
}
|
|
140
138
|
async waitForEventInfo() {
|
|
141
|
-
// Instrumentation takes care of this.
|
|
142
139
|
}
|
|
143
140
|
}
|
|
144
|
-
exports.Dispatcher = Dispatcher;
|
|
145
141
|
class RootDispatcher extends Dispatcher {
|
|
146
142
|
constructor(connection, createPlaywright) {
|
|
147
|
-
super(connection, {
|
|
148
|
-
guid: ''
|
|
149
|
-
}, 'Root', {});
|
|
150
|
-
this._initialized = false;
|
|
143
|
+
super(connection, { guid: "" }, "Root", {});
|
|
151
144
|
this.createPlaywright = createPlaywright;
|
|
145
|
+
this._initialized = false;
|
|
152
146
|
}
|
|
153
147
|
async initialize(params) {
|
|
154
|
-
(0,
|
|
155
|
-
(0,
|
|
148
|
+
(0, import_utils.assert)(this.createPlaywright);
|
|
149
|
+
(0, import_utils.assert)(!this._initialized);
|
|
156
150
|
this._initialized = true;
|
|
157
151
|
return {
|
|
158
152
|
playwright: await this.createPlaywright(this, params)
|
|
159
153
|
};
|
|
160
154
|
}
|
|
161
155
|
}
|
|
162
|
-
exports.RootDispatcher = RootDispatcher;
|
|
163
156
|
class DispatcherConnection {
|
|
164
157
|
constructor(isLocal) {
|
|
165
|
-
this._dispatchers = new Map();
|
|
166
|
-
this._dispatchersByBucket = new Map();
|
|
167
|
-
this.onmessage = message => {
|
|
168
|
-
|
|
169
|
-
this.
|
|
158
|
+
this._dispatchers = /* @__PURE__ */ new Map();
|
|
159
|
+
this._dispatchersByBucket = /* @__PURE__ */ new Map();
|
|
160
|
+
this.onmessage = (message) => {
|
|
161
|
+
};
|
|
162
|
+
this._waitOperations = /* @__PURE__ */ new Map();
|
|
170
163
|
this._isLocal = !!isLocal;
|
|
171
164
|
}
|
|
172
165
|
sendEvent(dispatcher, event, params) {
|
|
173
|
-
const validator = (0,
|
|
174
|
-
params = validator(params,
|
|
175
|
-
|
|
176
|
-
binary: this._isLocal ? 'buffer' : 'toBase64'
|
|
177
|
-
});
|
|
178
|
-
this.onmessage({
|
|
179
|
-
guid: dispatcher._guid,
|
|
180
|
-
method: event,
|
|
181
|
-
params
|
|
182
|
-
});
|
|
166
|
+
const validator = (0, import_validator.findValidator)(dispatcher._type, event, "Event");
|
|
167
|
+
params = validator(params, "", this._validatorToWireContext());
|
|
168
|
+
this.onmessage({ guid: dispatcher._guid, method: event, params });
|
|
183
169
|
}
|
|
184
170
|
sendCreate(parent, type, guid, initializer) {
|
|
185
|
-
const validator = (0,
|
|
186
|
-
initializer = validator(initializer,
|
|
187
|
-
|
|
188
|
-
binary: this._isLocal ? 'buffer' : 'toBase64'
|
|
189
|
-
});
|
|
190
|
-
this.onmessage({
|
|
191
|
-
guid: parent._guid,
|
|
192
|
-
method: '__create__',
|
|
193
|
-
params: {
|
|
194
|
-
type,
|
|
195
|
-
initializer,
|
|
196
|
-
guid
|
|
197
|
-
}
|
|
198
|
-
});
|
|
171
|
+
const validator = (0, import_validator.findValidator)(type, "", "Initializer");
|
|
172
|
+
initializer = validator(initializer, "", this._validatorToWireContext());
|
|
173
|
+
this.onmessage({ guid: parent._guid, method: "__create__", params: { type, initializer, guid } });
|
|
199
174
|
}
|
|
200
175
|
sendAdopt(parent, dispatcher) {
|
|
201
|
-
this.onmessage({
|
|
202
|
-
guid: parent._guid,
|
|
203
|
-
method: '__adopt__',
|
|
204
|
-
params: {
|
|
205
|
-
guid: dispatcher._guid
|
|
206
|
-
}
|
|
207
|
-
});
|
|
176
|
+
this.onmessage({ guid: parent._guid, method: "__adopt__", params: { guid: dispatcher._guid } });
|
|
208
177
|
}
|
|
209
178
|
sendDispose(dispatcher, reason) {
|
|
210
|
-
this.onmessage({
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
179
|
+
this.onmessage({ guid: dispatcher._guid, method: "__dispose__", params: { reason } });
|
|
180
|
+
}
|
|
181
|
+
_validatorToWireContext() {
|
|
182
|
+
return {
|
|
183
|
+
tChannelImpl: this._tChannelImplToWire.bind(this),
|
|
184
|
+
binary: this._isLocal ? "buffer" : "toBase64",
|
|
185
|
+
isUnderTest: import_debug.isUnderTest
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
_validatorFromWireContext() {
|
|
189
|
+
return {
|
|
190
|
+
tChannelImpl: this._tChannelImplFromWire.bind(this),
|
|
191
|
+
binary: this._isLocal ? "buffer" : "fromBase64",
|
|
192
|
+
isUnderTest: import_debug.isUnderTest
|
|
193
|
+
};
|
|
217
194
|
}
|
|
218
195
|
_tChannelImplFromWire(names, arg, path, context) {
|
|
219
|
-
if (arg && typeof arg ===
|
|
196
|
+
if (arg && typeof arg === "object" && typeof arg.guid === "string") {
|
|
220
197
|
const guid = arg.guid;
|
|
221
198
|
const dispatcher = this._dispatchers.get(guid);
|
|
222
|
-
if (!dispatcher)
|
|
223
|
-
|
|
199
|
+
if (!dispatcher)
|
|
200
|
+
throw new import_validator.ValidationError(`${path}: no object with guid ${guid}`);
|
|
201
|
+
if (names !== "*" && !names.includes(dispatcher._type))
|
|
202
|
+
throw new import_validator.ValidationError(`${path}: object with guid ${guid} has type ${dispatcher._type}, expected ${names.toString()}`);
|
|
224
203
|
return dispatcher;
|
|
225
204
|
}
|
|
226
|
-
throw new
|
|
205
|
+
throw new import_validator.ValidationError(`${path}: expected guid for ${names.toString()}`);
|
|
227
206
|
}
|
|
228
207
|
_tChannelImplToWire(names, arg, path, context) {
|
|
229
208
|
if (arg instanceof Dispatcher) {
|
|
230
|
-
if (names !==
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
};
|
|
209
|
+
if (names !== "*" && !names.includes(arg._type))
|
|
210
|
+
throw new import_validator.ValidationError(`${path}: dispatcher with guid ${arg._guid} has type ${arg._type}, expected ${names.toString()}`);
|
|
211
|
+
return { guid: arg._guid };
|
|
234
212
|
}
|
|
235
|
-
throw new
|
|
213
|
+
throw new import_validator.ValidationError(`${path}: expected dispatcher ${names.toString()}`);
|
|
236
214
|
}
|
|
237
215
|
registerDispatcher(dispatcher) {
|
|
238
|
-
(0,
|
|
216
|
+
(0, import_utils.assert)(!this._dispatchers.has(dispatcher._guid));
|
|
239
217
|
this._dispatchers.set(dispatcher._guid, dispatcher);
|
|
240
218
|
let list = this._dispatchersByBucket.get(dispatcher._gcBucket);
|
|
241
219
|
if (!list) {
|
|
242
|
-
list = new Set();
|
|
220
|
+
list = /* @__PURE__ */ new Set();
|
|
243
221
|
this._dispatchersByBucket.set(dispatcher._gcBucket, list);
|
|
244
222
|
}
|
|
245
223
|
list.add(dispatcher._guid);
|
|
@@ -247,149 +225,122 @@ class DispatcherConnection {
|
|
|
247
225
|
maybeDisposeStaleDispatchers(gcBucket) {
|
|
248
226
|
const maxDispatchers = maxDispatchersForBucket(gcBucket);
|
|
249
227
|
const list = this._dispatchersByBucket.get(gcBucket);
|
|
250
|
-
if (!list || list.size <= maxDispatchers)
|
|
228
|
+
if (!list || list.size <= maxDispatchers)
|
|
229
|
+
return;
|
|
251
230
|
const dispatchersArray = [...list];
|
|
252
231
|
const disposeCount = maxDispatchers / 10 | 0;
|
|
253
232
|
this._dispatchersByBucket.set(gcBucket, new Set(dispatchersArray.slice(disposeCount)));
|
|
254
233
|
for (let i = 0; i < disposeCount; ++i) {
|
|
255
234
|
const d = this._dispatchers.get(dispatchersArray[i]);
|
|
256
|
-
if (!d)
|
|
257
|
-
|
|
235
|
+
if (!d)
|
|
236
|
+
continue;
|
|
237
|
+
d._dispose("gc");
|
|
258
238
|
}
|
|
259
239
|
}
|
|
260
240
|
async dispatch(message) {
|
|
261
|
-
|
|
262
|
-
const {
|
|
263
|
-
id,
|
|
264
|
-
guid,
|
|
265
|
-
method,
|
|
266
|
-
params,
|
|
267
|
-
metadata
|
|
268
|
-
} = message;
|
|
241
|
+
const { id, guid, method, params, metadata } = message;
|
|
269
242
|
const dispatcher = this._dispatchers.get(guid);
|
|
270
243
|
if (!dispatcher) {
|
|
271
|
-
this.onmessage({
|
|
272
|
-
id,
|
|
273
|
-
error: (0, _errors.serializeError)(new _errors.TargetClosedError())
|
|
274
|
-
});
|
|
244
|
+
this.onmessage({ id, error: (0, import_errors.serializeError)(new import_errors.TargetClosedError()) });
|
|
275
245
|
return;
|
|
276
246
|
}
|
|
277
247
|
let validParams;
|
|
278
248
|
let validMetadata;
|
|
279
249
|
try {
|
|
280
|
-
const validator = (0,
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
tChannelImpl: this._tChannelImplFromWire.bind(this),
|
|
287
|
-
binary: this._isLocal ? 'buffer' : 'fromBase64'
|
|
288
|
-
});
|
|
289
|
-
if (typeof dispatcher[method] !== 'function') throw new Error(`Mismatching dispatcher: "${dispatcher._type}" does not implement "${method}"`);
|
|
250
|
+
const validator = (0, import_validator.findValidator)(dispatcher._type, method, "Params");
|
|
251
|
+
const validatorContext = this._validatorFromWireContext();
|
|
252
|
+
validParams = validator(params, "", validatorContext);
|
|
253
|
+
validMetadata = metadataValidator(metadata, "", validatorContext);
|
|
254
|
+
if (typeof dispatcher[method] !== "function")
|
|
255
|
+
throw new Error(`Mismatching dispatcher: "${dispatcher._type}" does not implement "${method}"`);
|
|
290
256
|
} catch (e) {
|
|
291
|
-
this.onmessage({
|
|
292
|
-
id,
|
|
293
|
-
error: (0, _errors.serializeError)(e)
|
|
294
|
-
});
|
|
257
|
+
this.onmessage({ id, error: (0, import_errors.serializeError)(e) });
|
|
295
258
|
return;
|
|
296
259
|
}
|
|
297
|
-
const sdkObject = dispatcher._object instanceof
|
|
260
|
+
const sdkObject = dispatcher._object instanceof import_instrumentation.SdkObject ? dispatcher._object : void 0;
|
|
298
261
|
const callMetadata = {
|
|
299
262
|
id: `call@${id}`,
|
|
300
263
|
location: validMetadata.location,
|
|
301
264
|
apiName: validMetadata.apiName,
|
|
302
265
|
internal: validMetadata.internal,
|
|
303
266
|
stepId: validMetadata.stepId,
|
|
304
|
-
objectId: sdkObject
|
|
305
|
-
pageId: sdkObject
|
|
306
|
-
frameId: sdkObject
|
|
307
|
-
startTime: (0,
|
|
267
|
+
objectId: sdkObject?.guid,
|
|
268
|
+
pageId: sdkObject?.attribution?.page?.guid,
|
|
269
|
+
frameId: sdkObject?.attribution?.frame?.guid,
|
|
270
|
+
startTime: (0, import_utils.monotonicTime)(),
|
|
308
271
|
endTime: 0,
|
|
309
272
|
type: dispatcher._type,
|
|
310
273
|
method,
|
|
311
274
|
params: params || {},
|
|
312
275
|
log: []
|
|
313
276
|
};
|
|
314
|
-
if (sdkObject && params
|
|
315
|
-
// Process logs for waitForNavigation/waitForLoadState/etc.
|
|
277
|
+
if (sdkObject && params?.info?.waitId) {
|
|
316
278
|
const info = params.info;
|
|
317
279
|
switch (info.phase) {
|
|
318
|
-
case
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
{
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
originalMetadata.endTime = (0, _utils.monotonicTime)();
|
|
341
|
-
originalMetadata.error = info.error ? {
|
|
342
|
-
error: {
|
|
343
|
-
name: 'Error',
|
|
344
|
-
message: info.error
|
|
345
|
-
}
|
|
346
|
-
} : undefined;
|
|
347
|
-
this._waitOperations.delete(info.waitId);
|
|
348
|
-
await sdkObject.instrumentation.onAfterCall(sdkObject, originalMetadata);
|
|
349
|
-
this.onmessage({
|
|
350
|
-
id
|
|
351
|
-
});
|
|
352
|
-
return;
|
|
353
|
-
}
|
|
280
|
+
case "before": {
|
|
281
|
+
this._waitOperations.set(info.waitId, callMetadata);
|
|
282
|
+
await sdkObject.instrumentation.onBeforeCall(sdkObject, callMetadata);
|
|
283
|
+
this.onmessage({ id });
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
case "log": {
|
|
287
|
+
const originalMetadata = this._waitOperations.get(info.waitId);
|
|
288
|
+
originalMetadata.log.push(info.message);
|
|
289
|
+
sdkObject.instrumentation.onCallLog(sdkObject, originalMetadata, "api", info.message);
|
|
290
|
+
this.onmessage({ id });
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
case "after": {
|
|
294
|
+
const originalMetadata = this._waitOperations.get(info.waitId);
|
|
295
|
+
originalMetadata.endTime = (0, import_utils.monotonicTime)();
|
|
296
|
+
originalMetadata.error = info.error ? { error: { name: "Error", message: info.error } } : void 0;
|
|
297
|
+
this._waitOperations.delete(info.waitId);
|
|
298
|
+
await sdkObject.instrumentation.onAfterCall(sdkObject, originalMetadata);
|
|
299
|
+
this.onmessage({ id });
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
354
302
|
}
|
|
355
303
|
}
|
|
356
|
-
await
|
|
357
|
-
const response = {
|
|
358
|
-
id
|
|
359
|
-
};
|
|
304
|
+
await sdkObject?.instrumentation.onBeforeCall(sdkObject, callMetadata);
|
|
305
|
+
const response = { id };
|
|
360
306
|
try {
|
|
361
307
|
const result = await dispatcher._handleCommand(callMetadata, method, validParams);
|
|
362
|
-
const validator = (0,
|
|
363
|
-
response.result = validator(result,
|
|
364
|
-
tChannelImpl: this._tChannelImplToWire.bind(this),
|
|
365
|
-
binary: this._isLocal ? 'buffer' : 'toBase64'
|
|
366
|
-
});
|
|
308
|
+
const validator = (0, import_validator.findValidator)(dispatcher._type, method, "Result");
|
|
309
|
+
response.result = validator(result, "", this._validatorToWireContext());
|
|
367
310
|
callMetadata.result = result;
|
|
368
311
|
} catch (e) {
|
|
369
|
-
if ((0,
|
|
312
|
+
if ((0, import_errors.isTargetClosedError)(e) && sdkObject) {
|
|
370
313
|
const reason = closeReason(sdkObject);
|
|
371
|
-
if (reason)
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
314
|
+
if (reason)
|
|
315
|
+
(0, import_utils.rewriteErrorMessage)(e, reason);
|
|
316
|
+
} else if ((0, import_protocolError.isProtocolError)(e)) {
|
|
317
|
+
if (e.type === "closed") {
|
|
318
|
+
const reason = sdkObject ? closeReason(sdkObject) : void 0;
|
|
319
|
+
e = new import_errors.TargetClosedError(reason, e.browserLogMessage());
|
|
320
|
+
} else if (e.type === "crashed") {
|
|
321
|
+
(0, import_utils.rewriteErrorMessage)(e, "Target crashed " + e.browserLogMessage());
|
|
378
322
|
}
|
|
379
323
|
}
|
|
380
|
-
response.error = (0,
|
|
381
|
-
// The command handler could have set error in the metadata, do not reset it if there was no exception.
|
|
324
|
+
response.error = (0, import_errors.serializeError)(e);
|
|
382
325
|
callMetadata.error = response.error;
|
|
383
326
|
} finally {
|
|
384
|
-
callMetadata.endTime = (0,
|
|
385
|
-
await
|
|
327
|
+
callMetadata.endTime = (0, import_utils.monotonicTime)();
|
|
328
|
+
await sdkObject?.instrumentation.onAfterCall(sdkObject, callMetadata);
|
|
386
329
|
}
|
|
387
|
-
if (response.error)
|
|
330
|
+
if (response.error)
|
|
331
|
+
response.log = (0, import_callLog.compressCallLog)(callMetadata.log);
|
|
388
332
|
this.onmessage(response);
|
|
389
333
|
}
|
|
390
334
|
}
|
|
391
|
-
exports.DispatcherConnection = DispatcherConnection;
|
|
392
335
|
function closeReason(sdkObject) {
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
336
|
+
return sdkObject.attribution.page?._closeReason || sdkObject.attribution.context?._closeReason || sdkObject.attribution.browser?._closeReason;
|
|
337
|
+
}
|
|
338
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
339
|
+
0 && (module.exports = {
|
|
340
|
+
Dispatcher,
|
|
341
|
+
DispatcherConnection,
|
|
342
|
+
RootDispatcher,
|
|
343
|
+
dispatcherSymbol,
|
|
344
|
+
existingDispatcher,
|
|
345
|
+
setMaxDispatchersForTest
|
|
346
|
+
});
|