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,87 +1,73 @@
|
|
|
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 wkConnection_exports = {};
|
|
20
|
+
__export(wkConnection_exports, {
|
|
21
|
+
WKConnection: () => WKConnection,
|
|
22
|
+
WKSession: () => WKSession,
|
|
23
|
+
kBrowserCloseMessageId: () => kBrowserCloseMessageId,
|
|
24
|
+
kPageProxyMessageReceived: () => kPageProxyMessageReceived
|
|
5
25
|
});
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
* Modifications copyright (c) Microsoft Corporation.
|
|
15
|
-
*
|
|
16
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
17
|
-
* you may not use this file except in compliance with the License.
|
|
18
|
-
* You may obtain a copy of the License at
|
|
19
|
-
*
|
|
20
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
21
|
-
*
|
|
22
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
23
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
24
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
25
|
-
* See the License for the specific language governing permissions and
|
|
26
|
-
* limitations under the License.
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
// WKPlaywright uses this special id to issue Browser.close command which we
|
|
30
|
-
// should ignore.
|
|
31
|
-
const kBrowserCloseMessageId = exports.kBrowserCloseMessageId = -9999;
|
|
32
|
-
|
|
33
|
-
// We emulate kPageProxyMessageReceived message to unify it with Browser.pageProxyCreated
|
|
34
|
-
// and Browser.pageProxyDestroyed for easier management.
|
|
35
|
-
const kPageProxyMessageReceived = exports.kPageProxyMessageReceived = Symbol('kPageProxyMessageReceived');
|
|
26
|
+
module.exports = __toCommonJS(wkConnection_exports);
|
|
27
|
+
var import_events = require("events");
|
|
28
|
+
var import_utils = require("../../utils");
|
|
29
|
+
var import_debugLogger = require("../utils/debugLogger");
|
|
30
|
+
var import_helper = require("../helper");
|
|
31
|
+
var import_protocolError = require("../protocolError");
|
|
32
|
+
const kBrowserCloseMessageId = -9999;
|
|
33
|
+
const kPageProxyMessageReceived = Symbol("kPageProxyMessageReceived");
|
|
36
34
|
class WKConnection {
|
|
37
35
|
constructor(transport, onDisconnect, protocolLogger, browserLogsCollector) {
|
|
38
|
-
this._transport = void 0;
|
|
39
|
-
this._onDisconnect = void 0;
|
|
40
|
-
this._protocolLogger = void 0;
|
|
41
|
-
this._browserLogsCollector = void 0;
|
|
42
|
-
this._browserDisconnectedLogs = void 0;
|
|
43
36
|
this._lastId = 0;
|
|
44
37
|
this._closed = false;
|
|
45
|
-
this.browserSession = void 0;
|
|
46
38
|
this._transport = transport;
|
|
47
39
|
this._onDisconnect = onDisconnect;
|
|
48
40
|
this._protocolLogger = protocolLogger;
|
|
49
41
|
this._browserLogsCollector = browserLogsCollector;
|
|
50
|
-
this.browserSession = new WKSession(this,
|
|
42
|
+
this.browserSession = new WKSession(this, "", (message) => {
|
|
51
43
|
this.rawSend(message);
|
|
52
44
|
});
|
|
53
45
|
this._transport.onmessage = this._dispatchMessage.bind(this);
|
|
54
|
-
// onclose should be set last, since it can be immediately called.
|
|
55
46
|
this._transport.onclose = this._onClose.bind(this);
|
|
56
47
|
}
|
|
57
48
|
nextMessageId() {
|
|
58
49
|
return ++this._lastId;
|
|
59
50
|
}
|
|
60
51
|
rawSend(message) {
|
|
61
|
-
this._protocolLogger(
|
|
52
|
+
this._protocolLogger("send", message);
|
|
62
53
|
this._transport.send(message);
|
|
63
54
|
}
|
|
64
55
|
_dispatchMessage(message) {
|
|
65
|
-
this._protocolLogger(
|
|
66
|
-
if (message.id === kBrowserCloseMessageId)
|
|
56
|
+
this._protocolLogger("receive", message);
|
|
57
|
+
if (message.id === kBrowserCloseMessageId)
|
|
58
|
+
return;
|
|
67
59
|
if (message.pageProxyId) {
|
|
68
|
-
const payload = {
|
|
69
|
-
|
|
70
|
-
pageProxyId: message.pageProxyId
|
|
71
|
-
};
|
|
72
|
-
this.browserSession.dispatchMessage({
|
|
73
|
-
method: kPageProxyMessageReceived,
|
|
74
|
-
params: payload
|
|
75
|
-
});
|
|
60
|
+
const payload = { message, pageProxyId: message.pageProxyId };
|
|
61
|
+
this.browserSession.dispatchMessage({ method: kPageProxyMessageReceived, params: payload });
|
|
76
62
|
return;
|
|
77
63
|
}
|
|
78
64
|
this.browserSession.dispatchMessage(message);
|
|
79
65
|
}
|
|
80
66
|
_onClose(reason) {
|
|
81
67
|
this._closed = true;
|
|
82
|
-
this._transport.onmessage =
|
|
83
|
-
this._transport.onclose =
|
|
84
|
-
this._browserDisconnectedLogs =
|
|
68
|
+
this._transport.onmessage = void 0;
|
|
69
|
+
this._transport.onclose = void 0;
|
|
70
|
+
this._browserDisconnectedLogs = import_helper.helper.formatBrowserLogs(this._browserLogsCollector.recentLogs(), reason);
|
|
85
71
|
this.browserSession.dispose();
|
|
86
72
|
this._onDisconnect();
|
|
87
73
|
}
|
|
@@ -89,24 +75,16 @@ class WKConnection {
|
|
|
89
75
|
return this._closed;
|
|
90
76
|
}
|
|
91
77
|
close() {
|
|
92
|
-
if (!this._closed)
|
|
78
|
+
if (!this._closed)
|
|
79
|
+
this._transport.close();
|
|
93
80
|
}
|
|
94
81
|
}
|
|
95
|
-
|
|
96
|
-
class WKSession extends _events.EventEmitter {
|
|
82
|
+
class WKSession extends import_events.EventEmitter {
|
|
97
83
|
constructor(connection, sessionId, rawSend) {
|
|
98
84
|
super();
|
|
99
|
-
this.connection = void 0;
|
|
100
|
-
this.sessionId = void 0;
|
|
101
85
|
this._disposed = false;
|
|
102
|
-
this.
|
|
103
|
-
this._callbacks = new Map();
|
|
86
|
+
this._callbacks = /* @__PURE__ */ new Map();
|
|
104
87
|
this._crashed = false;
|
|
105
|
-
this.on = void 0;
|
|
106
|
-
this.addListener = void 0;
|
|
107
|
-
this.off = void 0;
|
|
108
|
-
this.removeListener = void 0;
|
|
109
|
-
this.once = void 0;
|
|
110
88
|
this.setMaxListeners(0);
|
|
111
89
|
this.connection = connection;
|
|
112
90
|
this.sessionId = sessionId;
|
|
@@ -118,24 +96,17 @@ class WKSession extends _events.EventEmitter {
|
|
|
118
96
|
this.once = super.once;
|
|
119
97
|
}
|
|
120
98
|
async send(method, params) {
|
|
121
|
-
if (this._crashed || this._disposed || this.connection._browserDisconnectedLogs)
|
|
99
|
+
if (this._crashed || this._disposed || this.connection._browserDisconnectedLogs)
|
|
100
|
+
throw new import_protocolError.ProtocolError(this._crashed ? "crashed" : "closed", void 0, this.connection._browserDisconnectedLogs);
|
|
122
101
|
const id = this.connection.nextMessageId();
|
|
123
|
-
const messageObj = {
|
|
124
|
-
id,
|
|
125
|
-
method,
|
|
126
|
-
params
|
|
127
|
-
};
|
|
102
|
+
const messageObj = { id, method, params };
|
|
128
103
|
this._rawSend(messageObj);
|
|
129
104
|
return new Promise((resolve, reject) => {
|
|
130
|
-
this._callbacks.set(id, {
|
|
131
|
-
resolve,
|
|
132
|
-
reject,
|
|
133
|
-
error: new _protocolError.ProtocolError('error', method)
|
|
134
|
-
});
|
|
105
|
+
this._callbacks.set(id, { resolve, reject, error: new import_protocolError.ProtocolError("error", method) });
|
|
135
106
|
});
|
|
136
107
|
}
|
|
137
108
|
sendMayFail(method, params) {
|
|
138
|
-
return this.send(method, params).catch(error =>
|
|
109
|
+
return this.send(method, params).catch((error) => import_debugLogger.debugLogger.log("error", error));
|
|
139
110
|
}
|
|
140
111
|
markAsCrashed() {
|
|
141
112
|
this._crashed = true;
|
|
@@ -145,7 +116,7 @@ class WKSession extends _events.EventEmitter {
|
|
|
145
116
|
}
|
|
146
117
|
dispose() {
|
|
147
118
|
for (const callback of this._callbacks.values()) {
|
|
148
|
-
callback.error.type = this._crashed ?
|
|
119
|
+
callback.error.type = this._crashed ? "crashed" : "closed";
|
|
149
120
|
callback.error.logs = this.connection._browserDisconnectedLogs;
|
|
150
121
|
callback.reject(callback.error);
|
|
151
122
|
}
|
|
@@ -163,11 +134,16 @@ class WKSession extends _events.EventEmitter {
|
|
|
163
134
|
callback.resolve(object.result);
|
|
164
135
|
}
|
|
165
136
|
} else if (object.id && !object.error) {
|
|
166
|
-
|
|
167
|
-
(0, _utils.assert)(this.isDisposed());
|
|
137
|
+
(0, import_utils.assert)(this.isDisposed());
|
|
168
138
|
} else {
|
|
169
139
|
Promise.resolve().then(() => this.emit(object.method, object.params));
|
|
170
140
|
}
|
|
171
141
|
}
|
|
172
142
|
}
|
|
173
|
-
|
|
143
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
144
|
+
0 && (module.exports = {
|
|
145
|
+
WKConnection,
|
|
146
|
+
WKSession,
|
|
147
|
+
kBrowserCloseMessageId,
|
|
148
|
+
kPageProxyMessageReceived
|
|
149
|
+
});
|
|
@@ -1,49 +1,55 @@
|
|
|
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 wkExecutionContext_exports = {};
|
|
30
|
+
__export(wkExecutionContext_exports, {
|
|
31
|
+
WKExecutionContext: () => WKExecutionContext,
|
|
32
|
+
createHandle: () => createHandle
|
|
5
33
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var _protocolError = require("../protocolError");
|
|
12
|
-
var _assert = require("../../utils/isomorphic/assert");
|
|
13
|
-
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); }
|
|
14
|
-
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; }
|
|
15
|
-
/**
|
|
16
|
-
* Copyright 2017 Google Inc. All rights reserved.
|
|
17
|
-
* Modifications copyright (c) Microsoft Corporation.
|
|
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
|
-
|
|
34
|
+
module.exports = __toCommonJS(wkExecutionContext_exports);
|
|
35
|
+
var js = __toESM(require("../javascript"));
|
|
36
|
+
var dom = __toESM(require("../dom"));
|
|
37
|
+
var import_protocolError = require("../protocolError");
|
|
38
|
+
var import_assert = require("../../utils/isomorphic/assert");
|
|
32
39
|
class WKExecutionContext {
|
|
33
40
|
constructor(session, contextId) {
|
|
34
|
-
this._session = void 0;
|
|
35
|
-
this._contextId = void 0;
|
|
36
41
|
this._session = session;
|
|
37
42
|
this._contextId = contextId;
|
|
38
43
|
}
|
|
39
44
|
async rawEvaluateJSON(expression) {
|
|
40
45
|
try {
|
|
41
|
-
const response = await this._session.send(
|
|
46
|
+
const response = await this._session.send("Runtime.evaluate", {
|
|
42
47
|
expression,
|
|
43
48
|
contextId: this._contextId,
|
|
44
49
|
returnByValue: true
|
|
45
50
|
});
|
|
46
|
-
if (response.wasThrown)
|
|
51
|
+
if (response.wasThrown)
|
|
52
|
+
throw new js.JavaScriptErrorInEvaluate(response.result.description);
|
|
47
53
|
return response.result.value;
|
|
48
54
|
} catch (error) {
|
|
49
55
|
throw rewriteError(error);
|
|
@@ -51,12 +57,13 @@ class WKExecutionContext {
|
|
|
51
57
|
}
|
|
52
58
|
async rawEvaluateHandle(context, expression) {
|
|
53
59
|
try {
|
|
54
|
-
const response = await this._session.send(
|
|
60
|
+
const response = await this._session.send("Runtime.evaluate", {
|
|
55
61
|
expression,
|
|
56
62
|
contextId: this._contextId,
|
|
57
63
|
returnByValue: false
|
|
58
64
|
});
|
|
59
|
-
if (response.wasThrown)
|
|
65
|
+
if (response.wasThrown)
|
|
66
|
+
throw new js.JavaScriptErrorInEvaluate(response.result.description);
|
|
60
67
|
return createHandle(context, response.result);
|
|
61
68
|
} catch (error) {
|
|
62
69
|
throw rewriteError(error);
|
|
@@ -64,76 +71,83 @@ class WKExecutionContext {
|
|
|
64
71
|
}
|
|
65
72
|
async evaluateWithArguments(expression, returnByValue, utilityScript, values, handles) {
|
|
66
73
|
try {
|
|
67
|
-
const response = await this._session.send(
|
|
74
|
+
const response = await this._session.send("Runtime.callFunctionOn", {
|
|
68
75
|
functionDeclaration: expression,
|
|
69
76
|
objectId: utilityScript._objectId,
|
|
70
|
-
arguments: [
|
|
71
|
-
objectId: utilityScript._objectId
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
objectId: handle._objectId
|
|
76
|
-
}))],
|
|
77
|
+
arguments: [
|
|
78
|
+
{ objectId: utilityScript._objectId },
|
|
79
|
+
...values.map((value) => ({ value })),
|
|
80
|
+
...handles.map((handle) => ({ objectId: handle._objectId }))
|
|
81
|
+
],
|
|
77
82
|
returnByValue,
|
|
78
83
|
emulateUserGesture: true,
|
|
79
84
|
awaitPromise: true
|
|
80
85
|
});
|
|
81
|
-
if (response.wasThrown)
|
|
82
|
-
|
|
86
|
+
if (response.wasThrown)
|
|
87
|
+
throw new js.JavaScriptErrorInEvaluate(response.result.description);
|
|
88
|
+
if (returnByValue)
|
|
89
|
+
return js.parseEvaluationResultValue(response.result.value);
|
|
83
90
|
return createHandle(utilityScript._context, response.result);
|
|
84
91
|
} catch (error) {
|
|
85
92
|
throw rewriteError(error);
|
|
86
93
|
}
|
|
87
94
|
}
|
|
88
95
|
async getProperties(object) {
|
|
89
|
-
const response = await this._session.send(
|
|
96
|
+
const response = await this._session.send("Runtime.getProperties", {
|
|
90
97
|
objectId: object._objectId,
|
|
91
98
|
ownProperties: true
|
|
92
99
|
});
|
|
93
|
-
const result = new Map();
|
|
100
|
+
const result = /* @__PURE__ */ new Map();
|
|
94
101
|
for (const property of response.properties) {
|
|
95
|
-
if (!property.enumerable || !property.value)
|
|
102
|
+
if (!property.enumerable || !property.value)
|
|
103
|
+
continue;
|
|
96
104
|
result.set(property.name, createHandle(object._context, property.value));
|
|
97
105
|
}
|
|
98
106
|
return result;
|
|
99
107
|
}
|
|
100
108
|
async releaseHandle(handle) {
|
|
101
|
-
if (!handle._objectId)
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
});
|
|
109
|
+
if (!handle._objectId)
|
|
110
|
+
return;
|
|
111
|
+
await this._session.send("Runtime.releaseObject", { objectId: handle._objectId });
|
|
105
112
|
}
|
|
106
113
|
}
|
|
107
|
-
exports.WKExecutionContext = WKExecutionContext;
|
|
108
114
|
function potentiallyUnserializableValue(remoteObject) {
|
|
109
115
|
const value = remoteObject.value;
|
|
110
|
-
const isUnserializable = remoteObject.type ===
|
|
116
|
+
const isUnserializable = remoteObject.type === "number" && ["NaN", "-Infinity", "Infinity", "-0"].includes(remoteObject.description);
|
|
111
117
|
return isUnserializable ? js.parseUnserializableValue(remoteObject.description) : value;
|
|
112
118
|
}
|
|
113
119
|
function rewriteError(error) {
|
|
114
|
-
if (error.message.includes(
|
|
115
|
-
|
|
120
|
+
if (error.message.includes("Object has too long reference chain"))
|
|
121
|
+
throw new Error("Cannot serialize result: object reference chain is too long.");
|
|
122
|
+
if (!js.isJavaScriptErrorInEvaluate(error) && !(0, import_protocolError.isSessionClosedError)(error))
|
|
123
|
+
return new Error("Execution context was destroyed, most likely because of a navigation.");
|
|
116
124
|
return error;
|
|
117
125
|
}
|
|
118
126
|
function renderPreview(object) {
|
|
119
|
-
if (object.type ===
|
|
120
|
-
|
|
121
|
-
if (
|
|
127
|
+
if (object.type === "undefined")
|
|
128
|
+
return "undefined";
|
|
129
|
+
if ("value" in object)
|
|
130
|
+
return String(object.value);
|
|
131
|
+
if (object.description === "Object" && object.preview) {
|
|
122
132
|
const tokens = [];
|
|
123
|
-
for (const {
|
|
124
|
-
name
|
|
125
|
-
|
|
126
|
-
} of object.preview.properties) tokens.push(`${name}: ${value}`);
|
|
127
|
-
return `{${tokens.join(', ')}}`;
|
|
133
|
+
for (const { name, value } of object.preview.properties)
|
|
134
|
+
tokens.push(`${name}: ${value}`);
|
|
135
|
+
return `{${tokens.join(", ")}}`;
|
|
128
136
|
}
|
|
129
|
-
if (object.subtype ===
|
|
137
|
+
if (object.subtype === "array" && object.preview)
|
|
138
|
+
return js.sparseArrayToString(object.preview.properties);
|
|
130
139
|
return object.description;
|
|
131
140
|
}
|
|
132
141
|
function createHandle(context, remoteObject) {
|
|
133
|
-
if (remoteObject.subtype ===
|
|
134
|
-
(0,
|
|
142
|
+
if (remoteObject.subtype === "node") {
|
|
143
|
+
(0, import_assert.assert)(context instanceof dom.FrameExecutionContext);
|
|
135
144
|
return new dom.ElementHandle(context, remoteObject.objectId);
|
|
136
145
|
}
|
|
137
|
-
const isPromise = remoteObject.className ===
|
|
138
|
-
return new js.JSHandle(context, isPromise ?
|
|
139
|
-
}
|
|
146
|
+
const isPromise = remoteObject.className === "Promise";
|
|
147
|
+
return new js.JSHandle(context, isPromise ? "promise" : remoteObject.subtype || remoteObject.type, renderPreview(remoteObject), remoteObject.objectId, potentiallyUnserializableValue(remoteObject));
|
|
148
|
+
}
|
|
149
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
150
|
+
0 && (module.exports = {
|
|
151
|
+
WKExecutionContext,
|
|
152
|
+
createHandle
|
|
153
|
+
});
|