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,111 +1,92 @@
|
|
|
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 ffConnection_exports = {};
|
|
20
|
+
__export(ffConnection_exports, {
|
|
21
|
+
ConnectionEvents: () => ConnectionEvents,
|
|
22
|
+
FFConnection: () => FFConnection,
|
|
23
|
+
FFSession: () => FFSession,
|
|
24
|
+
kBrowserCloseMessageId: () => kBrowserCloseMessageId
|
|
5
25
|
});
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
28
|
-
const ConnectionEvents = exports.ConnectionEvents = {
|
|
29
|
-
Disconnected: Symbol('Disconnected')
|
|
26
|
+
module.exports = __toCommonJS(ffConnection_exports);
|
|
27
|
+
var import_events = require("events");
|
|
28
|
+
var import_debugLogger = require("../utils/debugLogger");
|
|
29
|
+
var import_helper = require("../helper");
|
|
30
|
+
var import_protocolError = require("../protocolError");
|
|
31
|
+
const ConnectionEvents = {
|
|
32
|
+
Disconnected: Symbol("Disconnected")
|
|
30
33
|
};
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
// should ignore.
|
|
34
|
-
const kBrowserCloseMessageId = exports.kBrowserCloseMessageId = -9999;
|
|
35
|
-
class FFConnection extends _events.EventEmitter {
|
|
34
|
+
const kBrowserCloseMessageId = -9999;
|
|
35
|
+
class FFConnection extends import_events.EventEmitter {
|
|
36
36
|
constructor(transport, protocolLogger, browserLogsCollector) {
|
|
37
37
|
super();
|
|
38
|
-
this._lastId = void 0;
|
|
39
|
-
this._transport = void 0;
|
|
40
|
-
this._protocolLogger = void 0;
|
|
41
|
-
this._browserLogsCollector = void 0;
|
|
42
|
-
this._browserDisconnectedLogs = void 0;
|
|
43
|
-
this.rootSession = void 0;
|
|
44
|
-
this._sessions = void 0;
|
|
45
|
-
this._closed = void 0;
|
|
46
38
|
this.setMaxListeners(0);
|
|
47
39
|
this._transport = transport;
|
|
48
40
|
this._protocolLogger = protocolLogger;
|
|
49
41
|
this._browserLogsCollector = browserLogsCollector;
|
|
50
42
|
this._lastId = 0;
|
|
51
|
-
this._sessions = new Map();
|
|
43
|
+
this._sessions = /* @__PURE__ */ new Map();
|
|
52
44
|
this._closed = false;
|
|
53
|
-
this.rootSession = new FFSession(this,
|
|
54
|
-
this._sessions.set(
|
|
45
|
+
this.rootSession = new FFSession(this, "", (message) => this._rawSend(message));
|
|
46
|
+
this._sessions.set("", this.rootSession);
|
|
55
47
|
this._transport.onmessage = this._onMessage.bind(this);
|
|
56
|
-
// onclose should be set last, since it can be immediately called.
|
|
57
48
|
this._transport.onclose = this._onClose.bind(this);
|
|
58
49
|
}
|
|
59
50
|
nextMessageId() {
|
|
60
51
|
return ++this._lastId;
|
|
61
52
|
}
|
|
62
53
|
_rawSend(message) {
|
|
63
|
-
this._protocolLogger(
|
|
54
|
+
this._protocolLogger("send", message);
|
|
64
55
|
this._transport.send(message);
|
|
65
56
|
}
|
|
66
57
|
async _onMessage(message) {
|
|
67
|
-
this._protocolLogger(
|
|
68
|
-
if (message.id === kBrowserCloseMessageId)
|
|
69
|
-
|
|
70
|
-
|
|
58
|
+
this._protocolLogger("receive", message);
|
|
59
|
+
if (message.id === kBrowserCloseMessageId)
|
|
60
|
+
return;
|
|
61
|
+
const session = this._sessions.get(message.sessionId || "");
|
|
62
|
+
if (session)
|
|
63
|
+
session.dispatchMessage(message);
|
|
71
64
|
}
|
|
72
65
|
_onClose(reason) {
|
|
73
66
|
this._closed = true;
|
|
74
|
-
this._transport.onmessage =
|
|
75
|
-
this._transport.onclose =
|
|
76
|
-
this._browserDisconnectedLogs =
|
|
67
|
+
this._transport.onmessage = void 0;
|
|
68
|
+
this._transport.onclose = void 0;
|
|
69
|
+
this._browserDisconnectedLogs = import_helper.helper.formatBrowserLogs(this._browserLogsCollector.recentLogs(), reason);
|
|
77
70
|
this.rootSession.dispose();
|
|
78
71
|
Promise.resolve().then(() => this.emit(ConnectionEvents.Disconnected));
|
|
79
72
|
}
|
|
80
73
|
close() {
|
|
81
|
-
if (!this._closed)
|
|
74
|
+
if (!this._closed)
|
|
75
|
+
this._transport.close();
|
|
82
76
|
}
|
|
83
77
|
createSession(sessionId) {
|
|
84
|
-
const session = new FFSession(this, sessionId, message => this._rawSend({
|
|
85
|
-
...message,
|
|
86
|
-
sessionId
|
|
87
|
-
}));
|
|
78
|
+
const session = new FFSession(this, sessionId, (message) => this._rawSend({ ...message, sessionId }));
|
|
88
79
|
this._sessions.set(sessionId, session);
|
|
89
80
|
return session;
|
|
90
81
|
}
|
|
91
82
|
}
|
|
92
|
-
|
|
93
|
-
class FFSession extends _events.EventEmitter {
|
|
83
|
+
class FFSession extends import_events.EventEmitter {
|
|
94
84
|
constructor(connection, sessionId, rawSend) {
|
|
95
85
|
super();
|
|
96
|
-
this._connection = void 0;
|
|
97
86
|
this._disposed = false;
|
|
98
|
-
this._callbacks = void 0;
|
|
99
|
-
this._sessionId = void 0;
|
|
100
|
-
this._rawSend = void 0;
|
|
101
87
|
this._crashed = false;
|
|
102
|
-
this.on = void 0;
|
|
103
|
-
this.addListener = void 0;
|
|
104
|
-
this.off = void 0;
|
|
105
|
-
this.removeListener = void 0;
|
|
106
|
-
this.once = void 0;
|
|
107
88
|
this.setMaxListeners(0);
|
|
108
|
-
this._callbacks = new Map();
|
|
89
|
+
this._callbacks = /* @__PURE__ */ new Map();
|
|
109
90
|
this._connection = connection;
|
|
110
91
|
this._sessionId = sessionId;
|
|
111
92
|
this._rawSend = rawSend;
|
|
@@ -119,28 +100,20 @@ class FFSession extends _events.EventEmitter {
|
|
|
119
100
|
this._crashed = true;
|
|
120
101
|
}
|
|
121
102
|
async send(method, params) {
|
|
122
|
-
if (this._crashed || this._disposed || this._connection._closed || this._connection._browserDisconnectedLogs)
|
|
103
|
+
if (this._crashed || this._disposed || this._connection._closed || this._connection._browserDisconnectedLogs)
|
|
104
|
+
throw new import_protocolError.ProtocolError(this._crashed ? "crashed" : "closed", void 0, this._connection._browserDisconnectedLogs);
|
|
123
105
|
const id = this._connection.nextMessageId();
|
|
124
|
-
this._rawSend({
|
|
125
|
-
method,
|
|
126
|
-
params,
|
|
127
|
-
id
|
|
128
|
-
});
|
|
106
|
+
this._rawSend({ method, params, id });
|
|
129
107
|
return new Promise((resolve, reject) => {
|
|
130
|
-
this._callbacks.set(id, {
|
|
131
|
-
resolve,
|
|
132
|
-
reject,
|
|
133
|
-
error: new _protocolError.ProtocolError('error', method)
|
|
134
|
-
});
|
|
108
|
+
this._callbacks.set(id, { resolve, reject, error: new import_protocolError.ProtocolError("error", method) });
|
|
135
109
|
});
|
|
136
110
|
}
|
|
137
111
|
sendMayFail(method, params) {
|
|
138
|
-
return this.send(method, params).catch(error =>
|
|
112
|
+
return this.send(method, params).catch((error) => import_debugLogger.debugLogger.log("error", error));
|
|
139
113
|
}
|
|
140
114
|
dispatchMessage(object) {
|
|
141
115
|
if (object.id) {
|
|
142
116
|
const callback = this._callbacks.get(object.id);
|
|
143
|
-
// Callbacks could be all rejected if someone has called `.dispose()`.
|
|
144
117
|
if (callback) {
|
|
145
118
|
this._callbacks.delete(object.id);
|
|
146
119
|
if (object.error) {
|
|
@@ -158,11 +131,17 @@ class FFSession extends _events.EventEmitter {
|
|
|
158
131
|
this._disposed = true;
|
|
159
132
|
this._connection._sessions.delete(this._sessionId);
|
|
160
133
|
for (const callback of this._callbacks.values()) {
|
|
161
|
-
callback.error.type = this._crashed ?
|
|
134
|
+
callback.error.type = this._crashed ? "crashed" : "closed";
|
|
162
135
|
callback.error.logs = this._connection._browserDisconnectedLogs;
|
|
163
136
|
callback.reject(callback.error);
|
|
164
137
|
}
|
|
165
138
|
this._callbacks.clear();
|
|
166
139
|
}
|
|
167
140
|
}
|
|
168
|
-
|
|
141
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
142
|
+
0 && (module.exports = {
|
|
143
|
+
ConnectionEvents,
|
|
144
|
+
FFConnection,
|
|
145
|
+
FFSession,
|
|
146
|
+
kBrowserCloseMessageId
|
|
147
|
+
});
|
|
@@ -1,41 +1,49 @@
|
|
|
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 ffExecutionContext_exports = {};
|
|
30
|
+
__export(ffExecutionContext_exports, {
|
|
31
|
+
FFExecutionContext: () => FFExecutionContext,
|
|
32
|
+
createHandle: () => createHandle
|
|
5
33
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
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 && Object.prototype.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; }
|
|
13
|
-
/**
|
|
14
|
-
* Copyright 2019 Google Inc. All rights reserved.
|
|
15
|
-
* Modifications copyright (c) Microsoft Corporation.
|
|
16
|
-
*
|
|
17
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
18
|
-
* you may not use this file except in compliance with the License.
|
|
19
|
-
* You may obtain a copy of the License at
|
|
20
|
-
*
|
|
21
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
22
|
-
*
|
|
23
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
24
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
25
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
26
|
-
* See the License for the specific language governing permissions and
|
|
27
|
-
* limitations under the License.
|
|
28
|
-
*/
|
|
29
|
-
|
|
34
|
+
module.exports = __toCommonJS(ffExecutionContext_exports);
|
|
35
|
+
var import_assert = require("../../utils/isomorphic/assert");
|
|
36
|
+
var import_stackTrace = require("../../utils/isomorphic/stackTrace");
|
|
37
|
+
var js = __toESM(require("../javascript"));
|
|
38
|
+
var dom = __toESM(require("../dom"));
|
|
39
|
+
var import_protocolError = require("../protocolError");
|
|
30
40
|
class FFExecutionContext {
|
|
31
41
|
constructor(session, executionContextId) {
|
|
32
|
-
this._session = void 0;
|
|
33
|
-
this._executionContextId = void 0;
|
|
34
42
|
this._session = session;
|
|
35
43
|
this._executionContextId = executionContextId;
|
|
36
44
|
}
|
|
37
45
|
async rawEvaluateJSON(expression) {
|
|
38
|
-
const payload = await this._session.send(
|
|
46
|
+
const payload = await this._session.send("Runtime.evaluate", {
|
|
39
47
|
expression,
|
|
40
48
|
returnByValue: true,
|
|
41
49
|
executionContextId: this._executionContextId
|
|
@@ -43,67 +51,65 @@ class FFExecutionContext {
|
|
|
43
51
|
checkException(payload.exceptionDetails);
|
|
44
52
|
return payload.result.value;
|
|
45
53
|
}
|
|
46
|
-
async rawEvaluateHandle(expression) {
|
|
47
|
-
const payload = await this._session.send(
|
|
54
|
+
async rawEvaluateHandle(context, expression) {
|
|
55
|
+
const payload = await this._session.send("Runtime.evaluate", {
|
|
48
56
|
expression,
|
|
49
57
|
returnByValue: false,
|
|
50
58
|
executionContextId: this._executionContextId
|
|
51
59
|
}).catch(rewriteError);
|
|
52
60
|
checkException(payload.exceptionDetails);
|
|
53
|
-
return payload.result
|
|
61
|
+
return createHandle(context, payload.result);
|
|
54
62
|
}
|
|
55
|
-
async evaluateWithArguments(expression, returnByValue, utilityScript, values,
|
|
56
|
-
const payload = await this._session.send(
|
|
63
|
+
async evaluateWithArguments(expression, returnByValue, utilityScript, values, handles) {
|
|
64
|
+
const payload = await this._session.send("Runtime.callFunction", {
|
|
57
65
|
functionDeclaration: expression,
|
|
58
|
-
args: [
|
|
59
|
-
objectId: utilityScript._objectId,
|
|
60
|
-
value
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
})), ...objectIds.map(objectId => ({
|
|
64
|
-
objectId,
|
|
65
|
-
value: undefined
|
|
66
|
-
}))],
|
|
66
|
+
args: [
|
|
67
|
+
{ objectId: utilityScript._objectId, value: void 0 },
|
|
68
|
+
...values.map((value) => ({ value })),
|
|
69
|
+
...handles.map((handle) => ({ objectId: handle._objectId, value: void 0 }))
|
|
70
|
+
],
|
|
67
71
|
returnByValue,
|
|
68
72
|
executionContextId: this._executionContextId
|
|
69
73
|
}).catch(rewriteError);
|
|
70
74
|
checkException(payload.exceptionDetails);
|
|
71
|
-
if (returnByValue)
|
|
72
|
-
|
|
75
|
+
if (returnByValue)
|
|
76
|
+
return js.parseEvaluationResultValue(payload.result.value);
|
|
77
|
+
return createHandle(utilityScript._context, payload.result);
|
|
73
78
|
}
|
|
74
|
-
async getProperties(
|
|
75
|
-
const response = await this._session.send(
|
|
79
|
+
async getProperties(object) {
|
|
80
|
+
const response = await this._session.send("Runtime.getObjectProperties", {
|
|
76
81
|
executionContextId: this._executionContextId,
|
|
77
|
-
objectId
|
|
82
|
+
objectId: object._objectId
|
|
78
83
|
});
|
|
79
|
-
const result = new Map();
|
|
80
|
-
for (const property of response.properties)
|
|
84
|
+
const result = /* @__PURE__ */ new Map();
|
|
85
|
+
for (const property of response.properties)
|
|
86
|
+
result.set(property.name, createHandle(object._context, property.value));
|
|
81
87
|
return result;
|
|
82
88
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
await this._session.send('Runtime.disposeObject', {
|
|
89
|
+
async releaseHandle(handle) {
|
|
90
|
+
if (!handle._objectId)
|
|
91
|
+
return;
|
|
92
|
+
await this._session.send("Runtime.disposeObject", {
|
|
88
93
|
executionContextId: this._executionContextId,
|
|
89
|
-
objectId
|
|
94
|
+
objectId: handle._objectId
|
|
90
95
|
});
|
|
91
96
|
}
|
|
92
97
|
}
|
|
93
|
-
exports.FFExecutionContext = FFExecutionContext;
|
|
94
98
|
function checkException(exceptionDetails) {
|
|
95
|
-
if (!exceptionDetails)
|
|
96
|
-
|
|
99
|
+
if (!exceptionDetails)
|
|
100
|
+
return;
|
|
101
|
+
if (exceptionDetails.value)
|
|
102
|
+
throw new js.JavaScriptErrorInEvaluate(JSON.stringify(exceptionDetails.value));
|
|
103
|
+
else
|
|
104
|
+
throw new js.JavaScriptErrorInEvaluate(exceptionDetails.text + (exceptionDetails.stack ? "\n" + exceptionDetails.stack : ""));
|
|
97
105
|
}
|
|
98
106
|
function rewriteError(error) {
|
|
99
|
-
if (error.message.includes(
|
|
100
|
-
result: {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
if (error instanceof TypeError && error.message.startsWith('Converting circular structure to JSON')) (0, _stackTrace.rewriteErrorMessage)(error, error.message + ' Are you passing a nested JSHandle?');
|
|
106
|
-
if (!js.isJavaScriptErrorInEvaluate(error) && !(0, _protocolError.isSessionClosedError)(error)) throw new Error('Execution context was destroyed, most likely because of a navigation.');
|
|
107
|
+
if (error.message.includes("cyclic object value") || error.message.includes("Object is not serializable"))
|
|
108
|
+
return { result: { type: "undefined", value: void 0 } };
|
|
109
|
+
if (error instanceof TypeError && error.message.startsWith("Converting circular structure to JSON"))
|
|
110
|
+
(0, import_stackTrace.rewriteErrorMessage)(error, error.message + " Are you passing a nested JSHandle?");
|
|
111
|
+
if (!js.isJavaScriptErrorInEvaluate(error) && !(0, import_protocolError.isSessionClosedError)(error))
|
|
112
|
+
throw new Error("Execution context was destroyed, most likely because of a navigation.");
|
|
107
113
|
throw error;
|
|
108
114
|
}
|
|
109
115
|
function potentiallyUnserializableValue(remoteObject) {
|
|
@@ -112,12 +118,32 @@ function potentiallyUnserializableValue(remoteObject) {
|
|
|
112
118
|
return unserializableValue ? js.parseUnserializableValue(unserializableValue) : value;
|
|
113
119
|
}
|
|
114
120
|
function renderPreview(object) {
|
|
115
|
-
if (object.type ===
|
|
116
|
-
|
|
117
|
-
if (object.
|
|
118
|
-
|
|
119
|
-
if (object.
|
|
120
|
-
|
|
121
|
-
if (object.subtype
|
|
122
|
-
|
|
123
|
-
|
|
121
|
+
if (object.type === "undefined")
|
|
122
|
+
return "undefined";
|
|
123
|
+
if (object.unserializableValue)
|
|
124
|
+
return String(object.unserializableValue);
|
|
125
|
+
if (object.type === "symbol")
|
|
126
|
+
return "Symbol()";
|
|
127
|
+
if (object.subtype === "regexp")
|
|
128
|
+
return "RegExp";
|
|
129
|
+
if (object.subtype === "weakmap")
|
|
130
|
+
return "WeakMap";
|
|
131
|
+
if (object.subtype === "weakset")
|
|
132
|
+
return "WeakSet";
|
|
133
|
+
if (object.subtype)
|
|
134
|
+
return object.subtype[0].toUpperCase() + object.subtype.slice(1);
|
|
135
|
+
if ("value" in object)
|
|
136
|
+
return String(object.value);
|
|
137
|
+
}
|
|
138
|
+
function createHandle(context, remoteObject) {
|
|
139
|
+
if (remoteObject.subtype === "node") {
|
|
140
|
+
(0, import_assert.assert)(context instanceof dom.FrameExecutionContext);
|
|
141
|
+
return new dom.ElementHandle(context, remoteObject.objectId);
|
|
142
|
+
}
|
|
143
|
+
return new js.JSHandle(context, remoteObject.subtype || remoteObject.type || "", renderPreview(remoteObject), remoteObject.objectId, potentiallyUnserializableValue(remoteObject));
|
|
144
|
+
}
|
|
145
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
146
|
+
0 && (module.exports = {
|
|
147
|
+
FFExecutionContext,
|
|
148
|
+
createHandle
|
|
149
|
+
});
|
|
@@ -1,58 +1,71 @@
|
|
|
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,
|
|
51
|
-
|
|
52
|
-
if (text ===
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
61
|
+
async keydown(modifiers, keyName, description, autoRepeat) {
|
|
62
|
+
let text = description.text;
|
|
63
|
+
if (text === "\r")
|
|
64
|
+
text = "";
|
|
65
|
+
const { code, key, location } = description;
|
|
66
|
+
await this._client.send("Page.dispatchKeyEvent", {
|
|
67
|
+
type: "keydown",
|
|
68
|
+
keyCode: description.keyCodeWithoutLocation,
|
|
56
69
|
code,
|
|
57
70
|
key,
|
|
58
71
|
repeat: autoRepeat,
|
|
@@ -60,32 +73,28 @@ class RawKeyboardImpl {
|
|
|
60
73
|
text
|
|
61
74
|
});
|
|
62
75
|
}
|
|
63
|
-
async keyup(modifiers,
|
|
64
|
-
|
|
65
|
-
|
|
76
|
+
async keyup(modifiers, keyName, description) {
|
|
77
|
+
const { code, key, location } = description;
|
|
78
|
+
await this._client.send("Page.dispatchKeyEvent", {
|
|
79
|
+
type: "keyup",
|
|
66
80
|
key,
|
|
67
|
-
keyCode: keyCodeWithoutLocation,
|
|
81
|
+
keyCode: description.keyCodeWithoutLocation,
|
|
68
82
|
code,
|
|
69
83
|
location,
|
|
70
84
|
repeat: false
|
|
71
85
|
});
|
|
72
86
|
}
|
|
73
87
|
async sendText(text) {
|
|
74
|
-
await this._client.send(
|
|
75
|
-
text
|
|
76
|
-
});
|
|
88
|
+
await this._client.send("Page.insertText", { text });
|
|
77
89
|
}
|
|
78
90
|
}
|
|
79
|
-
exports.RawKeyboardImpl = RawKeyboardImpl;
|
|
80
91
|
class RawMouseImpl {
|
|
81
92
|
constructor(client) {
|
|
82
|
-
this._client = void 0;
|
|
83
|
-
this._page = void 0;
|
|
84
93
|
this._client = client;
|
|
85
94
|
}
|
|
86
95
|
async move(x, y, button, buttons, modifiers, forClick) {
|
|
87
|
-
await this._client.send(
|
|
88
|
-
type:
|
|
96
|
+
await this._client.send("Page.dispatchMouseEvent", {
|
|
97
|
+
type: "mousemove",
|
|
89
98
|
button: 0,
|
|
90
99
|
buttons: toButtonsMask(buttons),
|
|
91
100
|
x: Math.floor(x),
|
|
@@ -94,8 +103,8 @@ class RawMouseImpl {
|
|
|
94
103
|
});
|
|
95
104
|
}
|
|
96
105
|
async down(x, y, button, buttons, modifiers, clickCount) {
|
|
97
|
-
await this._client.send(
|
|
98
|
-
type:
|
|
106
|
+
await this._client.send("Page.dispatchMouseEvent", {
|
|
107
|
+
type: "mousedown",
|
|
99
108
|
button: toButtonNumber(button),
|
|
100
109
|
buttons: toButtonsMask(buttons),
|
|
101
110
|
x: Math.floor(x),
|
|
@@ -105,8 +114,8 @@ class RawMouseImpl {
|
|
|
105
114
|
});
|
|
106
115
|
}
|
|
107
116
|
async up(x, y, button, buttons, modifiers, clickCount) {
|
|
108
|
-
await this._client.send(
|
|
109
|
-
type:
|
|
117
|
+
await this._client.send("Page.dispatchMouseEvent", {
|
|
118
|
+
type: "mouseup",
|
|
110
119
|
button: toButtonNumber(button),
|
|
111
120
|
buttons: toButtonsMask(buttons),
|
|
112
121
|
x: Math.floor(x),
|
|
@@ -116,11 +125,8 @@ class RawMouseImpl {
|
|
|
116
125
|
});
|
|
117
126
|
}
|
|
118
127
|
async wheel(x, y, buttons, modifiers, deltaX, deltaY) {
|
|
119
|
-
|
|
120
|
-
await this.
|
|
121
|
-
world: 'utility'
|
|
122
|
-
});
|
|
123
|
-
await this._client.send('Page.dispatchWheelEvent', {
|
|
128
|
+
await this._page.mainFrame().evaluateExpression(`new Promise(requestAnimationFrame)`, { world: "utility" });
|
|
129
|
+
await this._client.send("Page.dispatchWheelEvent", {
|
|
124
130
|
deltaX,
|
|
125
131
|
deltaY,
|
|
126
132
|
x: Math.floor(x),
|
|
@@ -133,18 +139,21 @@ class RawMouseImpl {
|
|
|
133
139
|
this._page = page;
|
|
134
140
|
}
|
|
135
141
|
}
|
|
136
|
-
exports.RawMouseImpl = RawMouseImpl;
|
|
137
142
|
class RawTouchscreenImpl {
|
|
138
143
|
constructor(client) {
|
|
139
|
-
this._client = void 0;
|
|
140
144
|
this._client = client;
|
|
141
145
|
}
|
|
142
146
|
async tap(x, y, modifiers) {
|
|
143
|
-
await this._client.send(
|
|
147
|
+
await this._client.send("Page.dispatchTapEvent", {
|
|
144
148
|
x,
|
|
145
149
|
y,
|
|
146
150
|
modifiers: toModifiersMask(modifiers)
|
|
147
151
|
});
|
|
148
152
|
}
|
|
149
153
|
}
|
|
150
|
-
|
|
154
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
155
|
+
0 && (module.exports = {
|
|
156
|
+
RawKeyboardImpl,
|
|
157
|
+
RawMouseImpl,
|
|
158
|
+
RawTouchscreenImpl
|
|
159
|
+
});
|