patchright-core 1.51.3 → 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/browsers.json +15 -13
- package/lib/androidServerImpl.js +42 -48
- package/lib/browserServerImpl.js +54 -67
- package/lib/cli/driver.js +71 -69
- package/lib/cli/program.js +312 -328
- package/lib/cli/programWithTestStub.js +51 -45
- package/lib/client/accessibility.js +31 -32
- package/lib/client/android.js +141 -228
- package/lib/client/api.js +135 -283
- package/lib/client/artifact.js +39 -36
- package/lib/client/browser.js +57 -61
- package/lib/client/browserContext.js +297 -326
- package/lib/client/browserType.js +92 -106
- package/lib/client/cdpSession.js +29 -31
- package/lib/client/channelOwner.js +82 -95
- package/lib/client/clientHelper.js +46 -38
- 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 +190 -212
- 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 +73 -75
- package/lib/client/elementHandle.js +111 -147
- 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 +135 -158
- package/lib/client/fileChooser.js +25 -24
- package/lib/client/fileUtils.js +31 -28
- package/lib/client/frame.js +187 -306
- package/lib/client/harRouter.js +42 -52
- package/lib/client/input.js +40 -69
- package/lib/client/jsHandle.js +54 -69
- package/lib/client/jsonPipe.js +27 -23
- package/lib/client/localUtils.js +29 -28
- package/lib/client/locator.js +161 -245
- package/lib/client/network.js +277 -295
- package/lib/client/page.js +270 -318
- package/lib/client/platform.js +46 -43
- package/lib/client/playwright.js +51 -66
- package/lib/client/selectors.js +48 -46
- package/lib/client/stream.js +29 -25
- package/lib/client/timeoutSettings.js +49 -39
- package/lib/client/tracing.js +48 -84
- 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 +61 -56
- package/lib/client/worker.js +48 -58
- package/lib/client/writableStream.js +27 -23
- 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 -53
- package/lib/inprocess.js +2 -19
- package/lib/outofprocess.js +53 -46
- package/lib/protocol/debug.js +209 -25
- package/lib/protocol/serializers.js +153 -134
- package/lib/protocol/validator.js +2714 -2714
- package/lib/protocol/validatorPrimitives.js +114 -73
- package/lib/remote/playwrightConnection.js +140 -157
- package/lib/remote/playwrightServer.js +99 -84
- package/lib/server/accessibility.js +44 -37
- package/lib/server/android/android.js +216 -209
- package/lib/server/android/backendAdb.js +89 -82
- package/lib/server/artifact.js +78 -55
- package/lib/server/bidi/bidiBrowser.js +221 -155
- package/lib/server/bidi/bidiChromium.js +106 -79
- package/lib/server/bidi/bidiConnection.js +66 -83
- package/lib/server/bidi/bidiExecutionContext.js +128 -113
- package/lib/server/bidi/bidiFirefox.js +76 -69
- package/lib/server/bidi/bidiInput.js +86 -97
- package/lib/server/bidi/bidiNetworkManager.js +137 -154
- package/lib/server/bidi/bidiOverCdp.js +57 -58
- package/lib/server/bidi/bidiPage.js +247 -219
- 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 +144 -131
- 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 +76 -84
- package/lib/server/browserContext.js +321 -346
- package/lib/server/browserType.js +169 -182
- package/lib/server/callLog.js +47 -44
- package/lib/server/chromium/chromium.js +212 -190
- package/lib/server/chromium/chromiumSwitches.js +86 -64
- package/lib/server/chromium/crAccessibility.js +157 -131
- package/lib/server/chromium/crBrowser.js +253 -273
- package/lib/server/chromium/crConnection.js +91 -116
- package/lib/server/chromium/crCoverage.js +113 -127
- package/lib/server/chromium/crDevTools.js +59 -51
- package/lib/server/chromium/crDragDrop.js +62 -79
- package/lib/server/chromium/crExecutionContext.js +88 -83
- package/lib/server/chromium/crInput.js +97 -95
- package/lib/server/chromium/crNetworkManager.js +284 -404
- package/lib/server/chromium/crPage.js +522 -608
- package/lib/server/chromium/crPdf.js +54 -86
- package/lib/server/chromium/crProtocolHelper.js +92 -80
- package/lib/server/chromium/crServiceWorker.js +82 -67
- 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 +62 -50
- package/lib/server/codegen/csharp.js +185 -160
- package/lib/server/codegen/java.js +155 -128
- 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 +140 -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 +97 -124
- package/lib/server/debugger.js +82 -78
- package/lib/server/deviceDescriptors.js +37 -24
- package/lib/server/deviceDescriptorsSource.json +50 -50
- 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 +176 -205
- 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 -66
- package/lib/server/dispatchers/dialogDispatcher.js +30 -27
- package/lib/server/dispatchers/dispatcher.js +169 -220
- package/lib/server/dispatchers/electronDispatcher.js +54 -57
- package/lib/server/dispatchers/elementHandlerDispatcher.js +77 -119
- package/lib/server/dispatchers/frameDispatcher.js +99 -163
- package/lib/server/dispatchers/jsHandleDispatcher.js +49 -66
- package/lib/server/dispatchers/jsonPipeDispatcher.js +35 -36
- package/lib/server/dispatchers/localUtilsDispatcher.js +95 -80
- package/lib/server/dispatchers/networkDispatchers.js +90 -107
- package/lib/server/dispatchers/pageDispatcher.js +128 -169
- package/lib/server/dispatchers/playwrightDispatcher.js +69 -76
- package/lib/server/dispatchers/selectorsDispatcher.js +28 -24
- package/lib/server/dispatchers/streamDispatcher.js +42 -45
- package/lib/server/dispatchers/tracingDispatcher.js +36 -41
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +96 -131
- package/lib/server/dispatchers/writableStreamDispatcher.js +54 -38
- package/lib/server/dom.js +413 -443
- package/lib/server/download.js +45 -35
- package/lib/server/electron/electron.js +156 -176
- package/lib/server/electron/loader.js +8 -36
- package/lib/server/errors.js +47 -46
- package/lib/server/fetch.js +289 -323
- package/lib/server/fileChooser.js +25 -24
- package/lib/server/fileUploadUtils.js +65 -59
- package/lib/server/firefox/ffAccessibility.js +153 -131
- package/lib/server/firefox/ffBrowser.js +213 -277
- package/lib/server/firefox/ffConnection.js +63 -84
- package/lib/server/firefox/ffExecutionContext.js +91 -73
- package/lib/server/firefox/ffInput.js +67 -69
- package/lib/server/firefox/ffNetworkManager.js +131 -110
- package/lib/server/firefox/ffPage.js +236 -273
- package/lib/server/firefox/firefox.js +76 -67
- 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 +730 -894
- package/lib/server/har/harRecorder.js +85 -77
- package/lib/server/har/harTracer.js +287 -222
- package/lib/server/harBackend.js +80 -80
- package/lib/server/helper.js +56 -59
- package/lib/server/index.js +59 -99
- package/lib/server/input.js +134 -163
- package/lib/server/instrumentation.js +49 -44
- package/lib/server/javascript.js +143 -134
- package/lib/server/launchApp.js +92 -73
- package/lib/server/localUtils.js +130 -122
- package/lib/server/macEditingCommands.js +141 -137
- package/lib/server/network.js +262 -296
- package/lib/server/page.js +329 -426
- 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 +70 -86
- package/lib/server/recorder/contextRecorder.js +134 -138
- package/lib/server/recorder/recorderApp.js +127 -136
- package/lib/server/recorder/recorderCollection.js +56 -44
- package/lib/server/recorder/recorderFrontend.js +15 -4
- package/lib/server/recorder/recorderRunner.js +79 -103
- package/lib/server/recorder/recorderUtils.js +56 -45
- package/lib/server/recorder/throttledFile.js +42 -30
- package/lib/server/recorder.js +177 -186
- package/lib/server/registry/browserFetcher.js +106 -101
- package/lib/server/registry/dependencies.js +245 -196
- package/lib/server/registry/index.js +904 -792
- package/lib/server/registry/nativeDeps.js +1073 -464
- 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 -70
- package/lib/server/storageScript.js +94 -100
- package/lib/server/timeoutSettings.js +58 -43
- package/lib/server/trace/recorder/snapshotter.js +70 -89
- package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
- package/lib/server/trace/recorder/tracing.js +321 -333
- package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
- package/lib/server/trace/viewer/traceViewer.js +168 -146
- package/lib/server/transport.js +124 -133
- 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 +37 -28
- package/lib/server/utils/debugLogger.js +69 -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 +138 -123
- 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 +143 -86
- 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 +73 -69
- 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 +76 -63
- package/lib/server/webkit/wkAccessibility.js +161 -118
- package/lib/server/webkit/wkBrowser.js +159 -176
- package/lib/server/webkit/wkConnection.js +59 -83
- package/lib/server/webkit/wkExecutionContext.js +84 -70
- package/lib/server/webkit/wkInput.js +82 -80
- package/lib/server/webkit/wkInterceptableRequest.js +102 -95
- package/lib/server/webkit/wkPage.js +525 -619
- package/lib/server/webkit/wkProvisionalPage.js +45 -56
- package/lib/server/webkit/wkWorkers.js +77 -77
- package/lib/utils/isomorphic/ariaSnapshot.js +144 -152
- package/lib/utils/isomorphic/assert.js +28 -22
- package/lib/utils/isomorphic/builtins.js +90 -0
- package/lib/utils/isomorphic/colors.js +66 -59
- package/lib/utils/isomorphic/cssParser.js +121 -125
- package/lib/utils/isomorphic/cssTokenizer.js +436 -364
- package/lib/utils/isomorphic/headers.js +38 -37
- package/lib/utils/isomorphic/locatorGenerators.js +340 -357
- package/lib/utils/isomorphic/locatorParser.js +96 -105
- package/lib/utils/isomorphic/locatorUtils.js +63 -44
- package/lib/utils/isomorphic/manualPromise.js +47 -39
- package/lib/utils/isomorphic/mimeType.js +448 -25
- package/lib/utils/isomorphic/multimap.js +35 -27
- package/lib/utils/isomorphic/rtti.js +35 -33
- package/lib/utils/isomorphic/selectorParser.js +183 -193
- package/lib/utils/isomorphic/semaphore.js +27 -24
- package/lib/utils/isomorphic/stackTrace.js +87 -98
- package/lib/utils/isomorphic/stringUtils.js +113 -106
- package/lib/utils/isomorphic/time.js +41 -22
- package/lib/utils/isomorphic/timeoutRunner.js +55 -54
- package/lib/utils/isomorphic/traceUtils.js +38 -41
- package/lib/utils/isomorphic/types.js +15 -4
- package/lib/utils/isomorphic/urlMatch.js +112 -67
- package/lib/utils/isomorphic/utilityScriptSerializers.js +248 -0
- package/lib/utils.js +97 -443
- package/lib/utilsBundle.js +101 -52
- package/lib/vite/htmlReport/index.html +21 -15
- package/lib/vite/recorder/assets/{codeMirrorModule-B9YMkrwa.js → codeMirrorModule-DVQi6prl.js} +1 -1
- package/lib/vite/recorder/assets/index-97EUAAbk.js +184 -0
- package/lib/vite/recorder/index.html +1 -1
- package/lib/vite/traceViewer/assets/{codeMirrorModule-1DiydmYA.js → codeMirrorModule-dvXVzLxY.js} +1 -1
- package/lib/vite/traceViewer/assets/defaultSettingsView-BjymbO6M.js +265 -0
- package/lib/vite/traceViewer/{defaultSettingsView.5fN5lw10.css → defaultSettingsView.QdHITyLI.css} +1 -1
- package/lib/vite/traceViewer/index.ChIUCJnj.js +2 -0
- package/lib/vite/traceViewer/index.html +3 -3
- package/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/lib/vite/traceViewer/uiMode.html +3 -3
- package/lib/vite/traceViewer/uiMode.jUCiCtdp.js +5 -0
- package/lib/zipBundle.js +32 -23
- package/package.json +1 -1
- package/types/protocol.d.ts +436 -17
- package/types/types.d.ts +35 -16
- package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
- package/lib/vite/recorder/assets/index-ELPgmkwA.js +0 -184
- package/lib/vite/traceViewer/assets/defaultSettingsView-l0TyP_G8.js +0 -259
- package/lib/vite/traceViewer/index.BqUZLSro.js +0 -2
- package/lib/vite/traceViewer/uiMode.C1d2m5sF.js +0 -5
|
@@ -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,44 +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
|
-
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var dom = _interopRequireWildcard(require("../dom"));
|
|
13
|
-
var _protocolError = require("../protocolError");
|
|
14
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
-
/**
|
|
17
|
-
* Copyright 2019 Google Inc. All rights reserved.
|
|
18
|
-
* Modifications copyright (c) Microsoft Corporation.
|
|
19
|
-
*
|
|
20
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
21
|
-
* you may not use this file except in compliance with the License.
|
|
22
|
-
* You may obtain a copy of the License at
|
|
23
|
-
*
|
|
24
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
25
|
-
*
|
|
26
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
27
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
28
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
29
|
-
* See the License for the specific language governing permissions and
|
|
30
|
-
* limitations under the License.
|
|
31
|
-
*/
|
|
32
|
-
|
|
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");
|
|
33
40
|
class FFExecutionContext {
|
|
34
41
|
constructor(session, executionContextId) {
|
|
35
|
-
this._session = void 0;
|
|
36
|
-
this._executionContextId = void 0;
|
|
37
42
|
this._session = session;
|
|
38
43
|
this._executionContextId = executionContextId;
|
|
39
44
|
}
|
|
40
45
|
async rawEvaluateJSON(expression) {
|
|
41
|
-
const payload = await this._session.send(
|
|
46
|
+
const payload = await this._session.send("Runtime.evaluate", {
|
|
42
47
|
expression,
|
|
43
48
|
returnByValue: true,
|
|
44
49
|
executionContextId: this._executionContextId
|
|
@@ -47,7 +52,7 @@ class FFExecutionContext {
|
|
|
47
52
|
return payload.result.value;
|
|
48
53
|
}
|
|
49
54
|
async rawEvaluateHandle(context, expression) {
|
|
50
|
-
const payload = await this._session.send(
|
|
55
|
+
const payload = await this._session.send("Runtime.evaluate", {
|
|
51
56
|
expression,
|
|
52
57
|
returnByValue: false,
|
|
53
58
|
executionContextId: this._executionContextId
|
|
@@ -56,55 +61,55 @@ class FFExecutionContext {
|
|
|
56
61
|
return createHandle(context, payload.result);
|
|
57
62
|
}
|
|
58
63
|
async evaluateWithArguments(expression, returnByValue, utilityScript, values, handles) {
|
|
59
|
-
const payload = await this._session.send(
|
|
64
|
+
const payload = await this._session.send("Runtime.callFunction", {
|
|
60
65
|
functionDeclaration: expression,
|
|
61
|
-
args: [
|
|
62
|
-
objectId: utilityScript._objectId,
|
|
63
|
-
value
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
})), ...handles.map(handle => ({
|
|
67
|
-
objectId: handle._objectId,
|
|
68
|
-
value: undefined
|
|
69
|
-
}))],
|
|
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
|
+
],
|
|
70
71
|
returnByValue,
|
|
71
72
|
executionContextId: this._executionContextId
|
|
72
73
|
}).catch(rewriteError);
|
|
73
74
|
checkException(payload.exceptionDetails);
|
|
74
|
-
if (returnByValue)
|
|
75
|
+
if (returnByValue)
|
|
76
|
+
return js.parseEvaluationResultValue(payload.result.value);
|
|
75
77
|
return createHandle(utilityScript._context, payload.result);
|
|
76
78
|
}
|
|
77
79
|
async getProperties(object) {
|
|
78
|
-
const response = await this._session.send(
|
|
80
|
+
const response = await this._session.send("Runtime.getObjectProperties", {
|
|
79
81
|
executionContextId: this._executionContextId,
|
|
80
82
|
objectId: object._objectId
|
|
81
83
|
});
|
|
82
|
-
const result = new Map();
|
|
83
|
-
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));
|
|
84
87
|
return result;
|
|
85
88
|
}
|
|
86
89
|
async releaseHandle(handle) {
|
|
87
|
-
if (!handle._objectId)
|
|
88
|
-
|
|
90
|
+
if (!handle._objectId)
|
|
91
|
+
return;
|
|
92
|
+
await this._session.send("Runtime.disposeObject", {
|
|
89
93
|
executionContextId: this._executionContextId,
|
|
90
94
|
objectId: handle._objectId
|
|
91
95
|
});
|
|
92
96
|
}
|
|
93
97
|
}
|
|
94
|
-
exports.FFExecutionContext = FFExecutionContext;
|
|
95
98
|
function checkException(exceptionDetails) {
|
|
96
|
-
if (!exceptionDetails)
|
|
97
|
-
|
|
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 : ""));
|
|
98
105
|
}
|
|
99
106
|
function rewriteError(error) {
|
|
100
|
-
if (error.message.includes(
|
|
101
|
-
result: {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
if (error instanceof TypeError && error.message.startsWith('Converting circular structure to JSON')) (0, _stackTrace.rewriteErrorMessage)(error, error.message + ' Are you passing a nested JSHandle?');
|
|
107
|
-
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.");
|
|
108
113
|
throw error;
|
|
109
114
|
}
|
|
110
115
|
function potentiallyUnserializableValue(remoteObject) {
|
|
@@ -113,19 +118,32 @@ function potentiallyUnserializableValue(remoteObject) {
|
|
|
113
118
|
return unserializableValue ? js.parseUnserializableValue(unserializableValue) : value;
|
|
114
119
|
}
|
|
115
120
|
function renderPreview(object) {
|
|
116
|
-
if (object.type ===
|
|
117
|
-
|
|
118
|
-
if (object.
|
|
119
|
-
|
|
120
|
-
if (object.
|
|
121
|
-
|
|
122
|
-
if (object.subtype
|
|
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);
|
|
124
137
|
}
|
|
125
138
|
function createHandle(context, remoteObject) {
|
|
126
|
-
if (remoteObject.subtype ===
|
|
127
|
-
(0,
|
|
139
|
+
if (remoteObject.subtype === "node") {
|
|
140
|
+
(0, import_assert.assert)(context instanceof dom.FrameExecutionContext);
|
|
128
141
|
return new dom.ElementHandle(context, remoteObject.objectId);
|
|
129
142
|
}
|
|
130
|
-
return new js.JSHandle(context, remoteObject.subtype || remoteObject.type ||
|
|
131
|
-
}
|
|
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,63 +1,70 @@
|
|
|
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
61
|
async keydown(modifiers, keyName, description, autoRepeat) {
|
|
51
62
|
let text = description.text;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
location
|
|
58
|
-
} = description;
|
|
59
|
-
await this._client.send('Page.dispatchKeyEvent', {
|
|
60
|
-
type: 'keydown',
|
|
63
|
+
if (text === "\r")
|
|
64
|
+
text = "";
|
|
65
|
+
const { code, key, location } = description;
|
|
66
|
+
await this._client.send("Page.dispatchKeyEvent", {
|
|
67
|
+
type: "keydown",
|
|
61
68
|
keyCode: description.keyCodeWithoutLocation,
|
|
62
69
|
code,
|
|
63
70
|
key,
|
|
@@ -67,13 +74,9 @@ class RawKeyboardImpl {
|
|
|
67
74
|
});
|
|
68
75
|
}
|
|
69
76
|
async keyup(modifiers, keyName, description) {
|
|
70
|
-
const {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
location
|
|
74
|
-
} = description;
|
|
75
|
-
await this._client.send('Page.dispatchKeyEvent', {
|
|
76
|
-
type: 'keyup',
|
|
77
|
+
const { code, key, location } = description;
|
|
78
|
+
await this._client.send("Page.dispatchKeyEvent", {
|
|
79
|
+
type: "keyup",
|
|
77
80
|
key,
|
|
78
81
|
keyCode: description.keyCodeWithoutLocation,
|
|
79
82
|
code,
|
|
@@ -82,21 +85,16 @@ class RawKeyboardImpl {
|
|
|
82
85
|
});
|
|
83
86
|
}
|
|
84
87
|
async sendText(text) {
|
|
85
|
-
await this._client.send(
|
|
86
|
-
text
|
|
87
|
-
});
|
|
88
|
+
await this._client.send("Page.insertText", { text });
|
|
88
89
|
}
|
|
89
90
|
}
|
|
90
|
-
exports.RawKeyboardImpl = RawKeyboardImpl;
|
|
91
91
|
class RawMouseImpl {
|
|
92
92
|
constructor(client) {
|
|
93
|
-
this._client = void 0;
|
|
94
|
-
this._page = void 0;
|
|
95
93
|
this._client = client;
|
|
96
94
|
}
|
|
97
95
|
async move(x, y, button, buttons, modifiers, forClick) {
|
|
98
|
-
await this._client.send(
|
|
99
|
-
type:
|
|
96
|
+
await this._client.send("Page.dispatchMouseEvent", {
|
|
97
|
+
type: "mousemove",
|
|
100
98
|
button: 0,
|
|
101
99
|
buttons: toButtonsMask(buttons),
|
|
102
100
|
x: Math.floor(x),
|
|
@@ -105,8 +103,8 @@ class RawMouseImpl {
|
|
|
105
103
|
});
|
|
106
104
|
}
|
|
107
105
|
async down(x, y, button, buttons, modifiers, clickCount) {
|
|
108
|
-
await this._client.send(
|
|
109
|
-
type:
|
|
106
|
+
await this._client.send("Page.dispatchMouseEvent", {
|
|
107
|
+
type: "mousedown",
|
|
110
108
|
button: toButtonNumber(button),
|
|
111
109
|
buttons: toButtonsMask(buttons),
|
|
112
110
|
x: Math.floor(x),
|
|
@@ -116,8 +114,8 @@ class RawMouseImpl {
|
|
|
116
114
|
});
|
|
117
115
|
}
|
|
118
116
|
async up(x, y, button, buttons, modifiers, clickCount) {
|
|
119
|
-
await this._client.send(
|
|
120
|
-
type:
|
|
117
|
+
await this._client.send("Page.dispatchMouseEvent", {
|
|
118
|
+
type: "mouseup",
|
|
121
119
|
button: toButtonNumber(button),
|
|
122
120
|
buttons: toButtonsMask(buttons),
|
|
123
121
|
x: Math.floor(x),
|
|
@@ -127,11 +125,8 @@ class RawMouseImpl {
|
|
|
127
125
|
});
|
|
128
126
|
}
|
|
129
127
|
async wheel(x, y, buttons, modifiers, deltaX, deltaY) {
|
|
130
|
-
|
|
131
|
-
await this.
|
|
132
|
-
world: 'utility'
|
|
133
|
-
});
|
|
134
|
-
await this._client.send('Page.dispatchWheelEvent', {
|
|
128
|
+
await this._page.mainFrame().evaluateExpression(`new Promise(requestAnimationFrame)`, { world: "utility" });
|
|
129
|
+
await this._client.send("Page.dispatchWheelEvent", {
|
|
135
130
|
deltaX,
|
|
136
131
|
deltaY,
|
|
137
132
|
x: Math.floor(x),
|
|
@@ -144,18 +139,21 @@ class RawMouseImpl {
|
|
|
144
139
|
this._page = page;
|
|
145
140
|
}
|
|
146
141
|
}
|
|
147
|
-
exports.RawMouseImpl = RawMouseImpl;
|
|
148
142
|
class RawTouchscreenImpl {
|
|
149
143
|
constructor(client) {
|
|
150
|
-
this._client = void 0;
|
|
151
144
|
this._client = client;
|
|
152
145
|
}
|
|
153
146
|
async tap(x, y, modifiers) {
|
|
154
|
-
await this._client.send(
|
|
147
|
+
await this._client.send("Page.dispatchTapEvent", {
|
|
155
148
|
x,
|
|
156
149
|
y,
|
|
157
150
|
modifiers: toModifiersMask(modifiers)
|
|
158
151
|
});
|
|
159
152
|
}
|
|
160
153
|
}
|
|
161
|
-
|
|
154
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
155
|
+
0 && (module.exports = {
|
|
156
|
+
RawKeyboardImpl,
|
|
157
|
+
RawMouseImpl,
|
|
158
|
+
RawTouchscreenImpl
|
|
159
|
+
});
|