patchright-core 1.51.3 → 1.52.1
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 +56 -71
- 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 +371 -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 +221 -112
- package/lib/server/frames.js +731 -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 +326 -423
- 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 +86 -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-CXVeovup.js} +1 -1
- package/lib/vite/recorder/assets/index-BsWQsSGl.js +184 -0
- package/lib/vite/recorder/index.html +1 -1
- package/lib/vite/traceViewer/assets/{codeMirrorModule-1DiydmYA.js → codeMirrorModule-_GLjJL-7.js} +1 -1
- package/lib/vite/traceViewer/assets/defaultSettingsView-DtCQiGHe.js +265 -0
- package/lib/vite/traceViewer/{defaultSettingsView.5fN5lw10.css → defaultSettingsView.QdHITyLI.css} +1 -1
- package/lib/vite/traceViewer/index.cFZzK9RN.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.XVPIqBeS.js +5 -0
- package/lib/vite/traceViewer/uiMode.html +3 -3
- 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,50 +1,56 @@
|
|
|
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 localUtilsDispatcher_exports = {};
|
|
30
|
+
__export(localUtilsDispatcher_exports, {
|
|
31
|
+
LocalUtilsDispatcher: () => LocalUtilsDispatcher
|
|
5
32
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var localUtils =
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Copyright (c) Microsoft Corporation.
|
|
21
|
-
*
|
|
22
|
-
* Licensed under the Apache License, Version 2.0 (the 'License");
|
|
23
|
-
* you may not use this file except in compliance with the License.
|
|
24
|
-
* You may obtain a copy of the License at
|
|
25
|
-
*
|
|
26
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
27
|
-
*
|
|
28
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
29
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
30
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
31
|
-
* See the License for the specific language governing permissions and
|
|
32
|
-
* limitations under the License.
|
|
33
|
-
*/
|
|
34
|
-
|
|
35
|
-
class LocalUtilsDispatcher extends _dispatcher.Dispatcher {
|
|
33
|
+
module.exports = __toCommonJS(localUtilsDispatcher_exports);
|
|
34
|
+
var import_dispatcher = require("./dispatcher");
|
|
35
|
+
var import_instrumentation = require("../../server/instrumentation");
|
|
36
|
+
var localUtils = __toESM(require("../localUtils"));
|
|
37
|
+
var import_userAgent = require("../utils/userAgent");
|
|
38
|
+
var import_deviceDescriptors = require("../deviceDescriptors");
|
|
39
|
+
var import_jsonPipeDispatcher = require("../dispatchers/jsonPipeDispatcher");
|
|
40
|
+
var import_progress = require("../progress");
|
|
41
|
+
var import_socksInterceptor = require("../socksInterceptor");
|
|
42
|
+
var import_transport = require("../transport");
|
|
43
|
+
var import_network = require("../utils/network");
|
|
44
|
+
var import_urlMatch = require("../../utils/isomorphic/urlMatch");
|
|
45
|
+
class LocalUtilsDispatcher extends import_dispatcher.Dispatcher {
|
|
36
46
|
constructor(scope, playwright) {
|
|
37
|
-
const
|
|
38
|
-
const deviceDescriptors = Object.entries(
|
|
39
|
-
|
|
40
|
-
descriptor
|
|
41
|
-
}));
|
|
42
|
-
super(scope, _localUtils, 'LocalUtils', {
|
|
47
|
+
const localUtils2 = new import_instrumentation.SdkObject(playwright, "localUtils", "localUtils");
|
|
48
|
+
const deviceDescriptors = Object.entries(import_deviceDescriptors.deviceDescriptors).map(([name, descriptor]) => ({ name, descriptor }));
|
|
49
|
+
super(scope, localUtils2, "LocalUtils", {
|
|
43
50
|
deviceDescriptors
|
|
44
51
|
});
|
|
45
|
-
this.
|
|
46
|
-
this.
|
|
47
|
-
this._stackSessions = new Map();
|
|
52
|
+
this._harBackends = /* @__PURE__ */ new Map();
|
|
53
|
+
this._stackSessions = /* @__PURE__ */ new Map();
|
|
48
54
|
this._type_LocalUtils = true;
|
|
49
55
|
}
|
|
50
56
|
async zip(params) {
|
|
@@ -72,21 +78,21 @@ class LocalUtilsDispatcher extends _dispatcher.Dispatcher {
|
|
|
72
78
|
return await localUtils.addStackToTracingNoReply(this._stackSessions, params);
|
|
73
79
|
}
|
|
74
80
|
async connect(params, metadata) {
|
|
75
|
-
const controller = new
|
|
76
|
-
controller.setLogName(
|
|
77
|
-
return await controller.run(async progress => {
|
|
78
|
-
var _params$exposeNetwork;
|
|
81
|
+
const controller = new import_progress.ProgressController(metadata, this._object);
|
|
82
|
+
controller.setLogName("browser");
|
|
83
|
+
return await controller.run(async (progress) => {
|
|
79
84
|
const wsHeaders = {
|
|
80
|
-
|
|
81
|
-
|
|
85
|
+
"User-Agent": (0, import_userAgent.getUserAgent)(),
|
|
86
|
+
"x-playwright-proxy": params.exposeNetwork ?? "",
|
|
82
87
|
...params.headers
|
|
83
88
|
};
|
|
84
89
|
const wsEndpoint = await urlToWSEndpoint(progress, params.wsEndpoint);
|
|
85
|
-
const transport = await
|
|
86
|
-
const socksInterceptor = new
|
|
87
|
-
const pipe = new
|
|
88
|
-
transport.onmessage = json => {
|
|
89
|
-
if (socksInterceptor.interceptMessage(json))
|
|
90
|
+
const transport = await import_transport.WebSocketTransport.connect(progress, wsEndpoint, { headers: wsHeaders, followRedirects: true, debugLogHeader: "x-playwright-debug-log" });
|
|
91
|
+
const socksInterceptor = new import_socksInterceptor.SocksInterceptor(transport, params.exposeNetwork, params.socksProxyRedirectPortForTest);
|
|
92
|
+
const pipe = new import_jsonPipeDispatcher.JsonPipeDispatcher(this);
|
|
93
|
+
transport.onmessage = (json) => {
|
|
94
|
+
if (socksInterceptor.interceptMessage(json))
|
|
95
|
+
return;
|
|
90
96
|
const cb = () => {
|
|
91
97
|
try {
|
|
92
98
|
pipe.dispatch(json);
|
|
@@ -94,47 +100,56 @@ class LocalUtilsDispatcher extends _dispatcher.Dispatcher {
|
|
|
94
100
|
transport.close();
|
|
95
101
|
}
|
|
96
102
|
};
|
|
97
|
-
if (params.slowMo)
|
|
103
|
+
if (params.slowMo)
|
|
104
|
+
setTimeout(cb, params.slowMo);
|
|
105
|
+
else
|
|
106
|
+
cb();
|
|
98
107
|
};
|
|
99
|
-
pipe.on(
|
|
108
|
+
pipe.on("message", (message) => {
|
|
100
109
|
transport.send(message);
|
|
101
110
|
});
|
|
102
|
-
transport.onclose = reason => {
|
|
103
|
-
socksInterceptor
|
|
111
|
+
transport.onclose = (reason) => {
|
|
112
|
+
socksInterceptor?.cleanup();
|
|
104
113
|
pipe.wasClosed(reason);
|
|
105
114
|
};
|
|
106
|
-
pipe.on(
|
|
107
|
-
return {
|
|
108
|
-
pipe,
|
|
109
|
-
headers: transport.headers
|
|
110
|
-
};
|
|
115
|
+
pipe.on("close", () => transport.close());
|
|
116
|
+
return { pipe, headers: transport.headers };
|
|
111
117
|
}, params.timeout || 0);
|
|
112
118
|
}
|
|
119
|
+
async globToRegex(params, metadata) {
|
|
120
|
+
const regex = (0, import_urlMatch.resolveGlobToRegexPattern)(params.baseURL, params.glob, params.webSocketUrl);
|
|
121
|
+
return { regex };
|
|
122
|
+
}
|
|
113
123
|
}
|
|
114
|
-
exports.LocalUtilsDispatcher = LocalUtilsDispatcher;
|
|
115
124
|
async function urlToWSEndpoint(progress, endpointURL) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
progress
|
|
125
|
+
if (endpointURL.startsWith("ws"))
|
|
126
|
+
return endpointURL;
|
|
127
|
+
progress?.log(`<ws preparing> retrieving websocket url from ${endpointURL}`);
|
|
119
128
|
const fetchUrl = new URL(endpointURL);
|
|
120
|
-
if (!fetchUrl.pathname.endsWith(
|
|
121
|
-
|
|
122
|
-
|
|
129
|
+
if (!fetchUrl.pathname.endsWith("/"))
|
|
130
|
+
fetchUrl.pathname += "/";
|
|
131
|
+
fetchUrl.pathname += "json";
|
|
132
|
+
const json = await (0, import_network.fetchData)({
|
|
123
133
|
url: fetchUrl.toString(),
|
|
124
|
-
method:
|
|
125
|
-
timeout:
|
|
126
|
-
headers: {
|
|
127
|
-
'User-Agent': (0, _userAgent.getUserAgent)()
|
|
128
|
-
}
|
|
134
|
+
method: "GET",
|
|
135
|
+
timeout: progress?.timeUntilDeadline() ?? 3e4,
|
|
136
|
+
headers: { "User-Agent": (0, import_userAgent.getUserAgent)() }
|
|
129
137
|
}, async (params, response) => {
|
|
130
|
-
return new Error(`Unexpected status ${response.statusCode} when connecting to ${fetchUrl.toString()}
|
|
138
|
+
return new Error(`Unexpected status ${response.statusCode} when connecting to ${fetchUrl.toString()}.
|
|
139
|
+
This does not look like a Playwright server, try connecting via ws://.`);
|
|
131
140
|
});
|
|
132
|
-
progress
|
|
141
|
+
progress?.throwIfAborted();
|
|
133
142
|
const wsUrl = new URL(endpointURL);
|
|
134
143
|
let wsEndpointPath = JSON.parse(json).wsEndpointPath;
|
|
135
|
-
if (wsEndpointPath.startsWith(
|
|
136
|
-
|
|
144
|
+
if (wsEndpointPath.startsWith("/"))
|
|
145
|
+
wsEndpointPath = wsEndpointPath.substring(1);
|
|
146
|
+
if (!wsUrl.pathname.endsWith("/"))
|
|
147
|
+
wsUrl.pathname += "/";
|
|
137
148
|
wsUrl.pathname += wsEndpointPath;
|
|
138
|
-
wsUrl.protocol = wsUrl.protocol ===
|
|
149
|
+
wsUrl.protocol = wsUrl.protocol === "https:" ? "wss:" : "ws:";
|
|
139
150
|
return wsUrl.toString();
|
|
140
|
-
}
|
|
151
|
+
}
|
|
152
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
153
|
+
0 && (module.exports = {
|
|
154
|
+
LocalUtilsDispatcher
|
|
155
|
+
});
|
|
@@ -1,85 +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 networkDispatchers_exports = {};
|
|
20
|
+
__export(networkDispatchers_exports, {
|
|
21
|
+
APIRequestContextDispatcher: () => APIRequestContextDispatcher,
|
|
22
|
+
RequestDispatcher: () => RequestDispatcher,
|
|
23
|
+
ResponseDispatcher: () => ResponseDispatcher,
|
|
24
|
+
RouteDispatcher: () => RouteDispatcher,
|
|
25
|
+
WebSocketDispatcher: () => WebSocketDispatcher
|
|
5
26
|
});
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
* 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
|
-
class RequestDispatcher extends _dispatcher.Dispatcher {
|
|
27
|
+
module.exports = __toCommonJS(networkDispatchers_exports);
|
|
28
|
+
var import_network = require("../network");
|
|
29
|
+
var import_dispatcher = require("./dispatcher");
|
|
30
|
+
var import_frameDispatcher = require("./frameDispatcher");
|
|
31
|
+
var import_pageDispatcher = require("./pageDispatcher");
|
|
32
|
+
var import_tracingDispatcher = require("./tracingDispatcher");
|
|
33
|
+
class RequestDispatcher extends import_dispatcher.Dispatcher {
|
|
29
34
|
static from(scope, request) {
|
|
30
|
-
const result = (0,
|
|
35
|
+
const result = (0, import_dispatcher.existingDispatcher)(request);
|
|
31
36
|
return result || new RequestDispatcher(scope, request);
|
|
32
37
|
}
|
|
33
38
|
static fromNullable(scope, request) {
|
|
34
|
-
return request ? RequestDispatcher.from(scope, request) :
|
|
39
|
+
return request ? RequestDispatcher.from(scope, request) : void 0;
|
|
35
40
|
}
|
|
36
41
|
constructor(scope, request) {
|
|
37
|
-
var _request$frame;
|
|
38
42
|
const postData = request.postDataBuffer();
|
|
39
|
-
// Always try to attach request to the page, if not, frame.
|
|
40
43
|
const frame = request.frame();
|
|
41
|
-
const page =
|
|
42
|
-
const pageDispatcher = page ? (0,
|
|
43
|
-
const frameDispatcher = frame ?
|
|
44
|
-
super(pageDispatcher || frameDispatcher || scope, request,
|
|
45
|
-
frame:
|
|
46
|
-
serviceWorker:
|
|
44
|
+
const page = request.frame()?._page;
|
|
45
|
+
const pageDispatcher = page ? (0, import_dispatcher.existingDispatcher)(page) : null;
|
|
46
|
+
const frameDispatcher = frame ? import_frameDispatcher.FrameDispatcher.from(scope, frame) : null;
|
|
47
|
+
super(pageDispatcher || frameDispatcher || scope, request, "Request", {
|
|
48
|
+
frame: import_frameDispatcher.FrameDispatcher.fromNullable(scope, request.frame()),
|
|
49
|
+
serviceWorker: import_pageDispatcher.WorkerDispatcher.fromNullable(scope, request.serviceWorker()),
|
|
47
50
|
url: request.url(),
|
|
48
51
|
resourceType: request.resourceType(),
|
|
49
52
|
method: request.method(),
|
|
50
|
-
postData: postData === null ?
|
|
53
|
+
postData: postData === null ? void 0 : postData,
|
|
51
54
|
headers: request.headers(),
|
|
52
55
|
isNavigationRequest: request.isNavigationRequest(),
|
|
53
56
|
redirectedFrom: RequestDispatcher.fromNullable(scope, request.redirectedFrom())
|
|
54
57
|
});
|
|
55
|
-
this._type_Request = void 0;
|
|
56
|
-
this._browserContextDispatcher = void 0;
|
|
57
58
|
this._type_Request = true;
|
|
58
59
|
this._browserContextDispatcher = scope;
|
|
59
60
|
}
|
|
60
61
|
async rawRequestHeaders(params) {
|
|
61
|
-
return {
|
|
62
|
-
headers: await this._object.rawRequestHeaders()
|
|
63
|
-
};
|
|
62
|
+
return { headers: await this._object.rawRequestHeaders() };
|
|
64
63
|
}
|
|
65
64
|
async response() {
|
|
66
|
-
return {
|
|
67
|
-
response: ResponseDispatcher.fromNullable(this._browserContextDispatcher, await this._object.response())
|
|
68
|
-
};
|
|
65
|
+
return { response: ResponseDispatcher.fromNullable(this._browserContextDispatcher, await this._object.response()) };
|
|
69
66
|
}
|
|
70
67
|
}
|
|
71
|
-
|
|
72
|
-
class ResponseDispatcher extends _dispatcher.Dispatcher {
|
|
73
|
-
static from(scope, response) {
|
|
74
|
-
const result = (0, _dispatcher.existingDispatcher)(response);
|
|
75
|
-
const requestDispatcher = RequestDispatcher.from(scope, response.request());
|
|
76
|
-
return result || new ResponseDispatcher(requestDispatcher, response);
|
|
77
|
-
}
|
|
78
|
-
static fromNullable(scope, response) {
|
|
79
|
-
return response ? ResponseDispatcher.from(scope, response) : undefined;
|
|
80
|
-
}
|
|
68
|
+
class ResponseDispatcher extends import_dispatcher.Dispatcher {
|
|
81
69
|
constructor(scope, response) {
|
|
82
|
-
super(scope, response,
|
|
70
|
+
super(scope, response, "Response", {
|
|
83
71
|
// TODO: responses in popups can point to non-reported requests.
|
|
84
72
|
request: scope,
|
|
85
73
|
url: response.url(),
|
|
@@ -91,45 +79,42 @@ class ResponseDispatcher extends _dispatcher.Dispatcher {
|
|
|
91
79
|
});
|
|
92
80
|
this._type_Response = true;
|
|
93
81
|
}
|
|
82
|
+
static from(scope, response) {
|
|
83
|
+
const result = (0, import_dispatcher.existingDispatcher)(response);
|
|
84
|
+
const requestDispatcher = RequestDispatcher.from(scope, response.request());
|
|
85
|
+
return result || new ResponseDispatcher(requestDispatcher, response);
|
|
86
|
+
}
|
|
87
|
+
static fromNullable(scope, response) {
|
|
88
|
+
return response ? ResponseDispatcher.from(scope, response) : void 0;
|
|
89
|
+
}
|
|
94
90
|
async body() {
|
|
95
|
-
return {
|
|
96
|
-
binary: await this._object.body()
|
|
97
|
-
};
|
|
91
|
+
return { binary: await this._object.body() };
|
|
98
92
|
}
|
|
99
93
|
async securityDetails() {
|
|
100
|
-
return {
|
|
101
|
-
value: (await this._object.securityDetails()) || undefined
|
|
102
|
-
};
|
|
94
|
+
return { value: await this._object.securityDetails() || void 0 };
|
|
103
95
|
}
|
|
104
96
|
async serverAddr() {
|
|
105
|
-
return {
|
|
106
|
-
value: (await this._object.serverAddr()) || undefined
|
|
107
|
-
};
|
|
97
|
+
return { value: await this._object.serverAddr() || void 0 };
|
|
108
98
|
}
|
|
109
99
|
async rawResponseHeaders(params) {
|
|
110
|
-
return {
|
|
111
|
-
headers: await this._object.rawResponseHeaders()
|
|
112
|
-
};
|
|
100
|
+
return { headers: await this._object.rawResponseHeaders() };
|
|
113
101
|
}
|
|
114
102
|
async sizes(params) {
|
|
115
|
-
return {
|
|
116
|
-
sizes: await this._object.sizes()
|
|
117
|
-
};
|
|
103
|
+
return { sizes: await this._object.sizes() };
|
|
118
104
|
}
|
|
119
105
|
}
|
|
120
|
-
|
|
121
|
-
class RouteDispatcher extends _dispatcher.Dispatcher {
|
|
122
|
-
static from(scope, route) {
|
|
123
|
-
const result = (0, _dispatcher.existingDispatcher)(route);
|
|
124
|
-
return result || new RouteDispatcher(scope, route);
|
|
125
|
-
}
|
|
106
|
+
class RouteDispatcher extends import_dispatcher.Dispatcher {
|
|
126
107
|
constructor(scope, route) {
|
|
127
|
-
super(scope, route,
|
|
108
|
+
super(scope, route, "Route", {
|
|
128
109
|
// Context route can point to a non-reported request, so we send the request in the initializer.
|
|
129
110
|
request: scope
|
|
130
111
|
});
|
|
131
112
|
this._type_Route = true;
|
|
132
113
|
}
|
|
114
|
+
static from(scope, route) {
|
|
115
|
+
const result = (0, import_dispatcher.existingDispatcher)(route);
|
|
116
|
+
return result || new RouteDispatcher(scope, route);
|
|
117
|
+
}
|
|
133
118
|
async continue(params, metadata) {
|
|
134
119
|
await this._object.continue({
|
|
135
120
|
url: params.url,
|
|
@@ -143,46 +128,41 @@ class RouteDispatcher extends _dispatcher.Dispatcher {
|
|
|
143
128
|
await this._object.fulfill(params);
|
|
144
129
|
}
|
|
145
130
|
async abort(params, metadata) {
|
|
146
|
-
await this._object.abort(params.errorCode ||
|
|
131
|
+
await this._object.abort(params.errorCode || "failed");
|
|
147
132
|
}
|
|
148
133
|
async redirectNavigationRequest(params) {
|
|
149
134
|
await this._object.redirectNavigationRequest(params.url);
|
|
150
135
|
}
|
|
151
136
|
}
|
|
152
|
-
|
|
153
|
-
class WebSocketDispatcher extends _dispatcher.Dispatcher {
|
|
137
|
+
class WebSocketDispatcher extends import_dispatcher.Dispatcher {
|
|
154
138
|
constructor(scope, webSocket) {
|
|
155
|
-
super(scope, webSocket,
|
|
139
|
+
super(scope, webSocket, "WebSocket", {
|
|
156
140
|
url: webSocket.url()
|
|
157
141
|
});
|
|
158
142
|
this._type_EventTarget = true;
|
|
159
143
|
this._type_WebSocket = true;
|
|
160
|
-
this.addObjectListener(
|
|
161
|
-
this.addObjectListener(
|
|
162
|
-
this.addObjectListener(
|
|
163
|
-
|
|
164
|
-
}));
|
|
165
|
-
this.addObjectListener(_network.WebSocket.Events.Close, () => this._dispatchEvent('close', {}));
|
|
144
|
+
this.addObjectListener(import_network.WebSocket.Events.FrameSent, (event) => this._dispatchEvent("frameSent", event));
|
|
145
|
+
this.addObjectListener(import_network.WebSocket.Events.FrameReceived, (event) => this._dispatchEvent("frameReceived", event));
|
|
146
|
+
this.addObjectListener(import_network.WebSocket.Events.SocketError, (error) => this._dispatchEvent("socketError", { error }));
|
|
147
|
+
this.addObjectListener(import_network.WebSocket.Events.Close, () => this._dispatchEvent("close", {}));
|
|
166
148
|
}
|
|
167
149
|
}
|
|
168
|
-
|
|
169
|
-
class APIRequestContextDispatcher extends _dispatcher.Dispatcher {
|
|
170
|
-
static from(scope, request) {
|
|
171
|
-
const result = (0, _dispatcher.existingDispatcher)(request);
|
|
172
|
-
return result || new APIRequestContextDispatcher(scope, request);
|
|
173
|
-
}
|
|
174
|
-
static fromNullable(scope, request) {
|
|
175
|
-
return request ? APIRequestContextDispatcher.from(scope, request) : undefined;
|
|
176
|
-
}
|
|
150
|
+
class APIRequestContextDispatcher extends import_dispatcher.Dispatcher {
|
|
177
151
|
constructor(parentScope, request) {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
super(parentScope, request, 'APIRequestContext', {
|
|
152
|
+
const tracing = import_tracingDispatcher.TracingDispatcher.from(parentScope, request.tracing());
|
|
153
|
+
super(parentScope, request, "APIRequestContext", {
|
|
181
154
|
tracing
|
|
182
155
|
});
|
|
183
156
|
this._type_APIRequestContext = true;
|
|
184
157
|
this.adopt(tracing);
|
|
185
158
|
}
|
|
159
|
+
static from(scope, request) {
|
|
160
|
+
const result = (0, import_dispatcher.existingDispatcher)(request);
|
|
161
|
+
return result || new APIRequestContextDispatcher(scope, request);
|
|
162
|
+
}
|
|
163
|
+
static fromNullable(scope, request) {
|
|
164
|
+
return request ? APIRequestContextDispatcher.from(scope, request) : void 0;
|
|
165
|
+
}
|
|
186
166
|
async storageState(params) {
|
|
187
167
|
return this._object.storageState(params.indexedDB);
|
|
188
168
|
}
|
|
@@ -204,18 +184,21 @@ class APIRequestContextDispatcher extends _dispatcher.Dispatcher {
|
|
|
204
184
|
};
|
|
205
185
|
}
|
|
206
186
|
async fetchResponseBody(params) {
|
|
207
|
-
return {
|
|
208
|
-
binary: this._object.fetchResponses.get(params.fetchUid)
|
|
209
|
-
};
|
|
187
|
+
return { binary: this._object.fetchResponses.get(params.fetchUid) };
|
|
210
188
|
}
|
|
211
189
|
async fetchLog(params) {
|
|
212
190
|
const log = this._object.fetchLog.get(params.fetchUid) || [];
|
|
213
|
-
return {
|
|
214
|
-
log
|
|
215
|
-
};
|
|
191
|
+
return { log };
|
|
216
192
|
}
|
|
217
193
|
async disposeAPIResponse(params) {
|
|
218
194
|
this._object.disposeResponse(params.fetchUid);
|
|
219
195
|
}
|
|
220
196
|
}
|
|
221
|
-
|
|
197
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
198
|
+
0 && (module.exports = {
|
|
199
|
+
APIRequestContextDispatcher,
|
|
200
|
+
RequestDispatcher,
|
|
201
|
+
ResponseDispatcher,
|
|
202
|
+
RouteDispatcher,
|
|
203
|
+
WebSocketDispatcher
|
|
204
|
+
});
|