patchright-core 1.51.2 → 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 +288 -403
- 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 +741 -891
- 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-DpJ-EmBQ.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-DTenqiGw.js +0 -259
- package/lib/vite/traceViewer/index.CUq7VgrV.js +0 -2
- package/lib/vite/traceViewer/uiMode.CHJSAD7F.js +0 -5
|
@@ -1,160 +1,138 @@
|
|
|
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 browserType_exports = {};
|
|
20
|
+
__export(browserType_exports, {
|
|
21
|
+
BrowserType: () => BrowserType
|
|
5
22
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
33
|
-
// This is here just for api generation and checking.
|
|
34
|
-
|
|
35
|
-
class BrowserType extends _channelOwner.ChannelOwner {
|
|
36
|
-
constructor(...args) {
|
|
37
|
-
super(...args);
|
|
38
|
-
this._serverLauncher = void 0;
|
|
39
|
-
this._contexts = new Set();
|
|
40
|
-
this._playwright = void 0;
|
|
23
|
+
module.exports = __toCommonJS(browserType_exports);
|
|
24
|
+
var import_browser = require("./browser");
|
|
25
|
+
var import_browserContext = require("./browserContext");
|
|
26
|
+
var import_channelOwner = require("./channelOwner");
|
|
27
|
+
var import_clientHelper = require("./clientHelper");
|
|
28
|
+
var import_events = require("./events");
|
|
29
|
+
var import_assert = require("../utils/isomorphic/assert");
|
|
30
|
+
var import_headers = require("../utils/isomorphic/headers");
|
|
31
|
+
var import_time = require("../utils/isomorphic/time");
|
|
32
|
+
var import_timeoutRunner = require("../utils/isomorphic/timeoutRunner");
|
|
33
|
+
var import_webSocket = require("./webSocket");
|
|
34
|
+
class BrowserType extends import_channelOwner.ChannelOwner {
|
|
35
|
+
constructor() {
|
|
36
|
+
super(...arguments);
|
|
37
|
+
this._contexts = /* @__PURE__ */ new Set();
|
|
41
38
|
}
|
|
42
39
|
static from(browserType) {
|
|
43
40
|
return browserType._object;
|
|
44
41
|
}
|
|
45
42
|
executablePath() {
|
|
46
|
-
if (!this._initializer.executablePath)
|
|
43
|
+
if (!this._initializer.executablePath)
|
|
44
|
+
throw new Error("Browser is not supported on current platform");
|
|
47
45
|
return this._initializer.executablePath;
|
|
48
46
|
}
|
|
49
47
|
name() {
|
|
50
48
|
return this._initializer.name;
|
|
51
49
|
}
|
|
52
50
|
async launch(options = {}) {
|
|
53
|
-
|
|
54
|
-
(0,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
options = {
|
|
58
|
-
...this._playwright._defaultLaunchOptions,
|
|
59
|
-
...options
|
|
60
|
-
};
|
|
51
|
+
(0, import_assert.assert)(!options.userDataDir, "userDataDir option is not supported in `browserType.launch`. Use `browserType.launchPersistentContext` instead");
|
|
52
|
+
(0, import_assert.assert)(!options.port, "Cannot specify a port without launching as a server.");
|
|
53
|
+
const logger = options.logger || this._playwright._defaultLaunchOptions?.logger;
|
|
54
|
+
options = { ...this._playwright._defaultLaunchOptions, ...options };
|
|
61
55
|
const launchOptions = {
|
|
62
56
|
...options,
|
|
63
|
-
ignoreDefaultArgs: Array.isArray(options.ignoreDefaultArgs) ? options.ignoreDefaultArgs :
|
|
57
|
+
ignoreDefaultArgs: Array.isArray(options.ignoreDefaultArgs) ? options.ignoreDefaultArgs : void 0,
|
|
64
58
|
ignoreAllDefaultArgs: !!options.ignoreDefaultArgs && !Array.isArray(options.ignoreDefaultArgs),
|
|
65
|
-
env: options.env ? (0,
|
|
59
|
+
env: options.env ? (0, import_clientHelper.envObjectToArray)(options.env) : void 0
|
|
66
60
|
};
|
|
67
61
|
return await this._wrapApiCall(async () => {
|
|
68
|
-
const browser =
|
|
62
|
+
const browser = import_browser.Browser.from((await this._channel.launch(launchOptions)).browser);
|
|
69
63
|
this._didLaunchBrowser(browser, options, logger);
|
|
70
64
|
return browser;
|
|
71
65
|
});
|
|
72
66
|
}
|
|
73
67
|
async launchServer(options = {}) {
|
|
74
|
-
if (!this._serverLauncher)
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
...options
|
|
78
|
-
};
|
|
68
|
+
if (!this._serverLauncher)
|
|
69
|
+
throw new Error("Launching server is not supported");
|
|
70
|
+
options = { ...this._playwright._defaultLaunchOptions, ...options };
|
|
79
71
|
return await this._serverLauncher.launchServer(options);
|
|
80
72
|
}
|
|
81
73
|
async launchPersistentContext(userDataDir, options = {}) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
...this._playwright._defaultLaunchOptions,
|
|
87
|
-
...this._playwright._defaultContextOptions,
|
|
88
|
-
...options
|
|
89
|
-
};
|
|
90
|
-
const contextParams = await (0, _browserContext.prepareBrowserContextParams)(this._platform, options);
|
|
74
|
+
const logger = options.logger || this._playwright._defaultLaunchOptions?.logger;
|
|
75
|
+
(0, import_assert.assert)(!options.port, "Cannot specify a port without launching as a server.");
|
|
76
|
+
options = { ...this._playwright._defaultLaunchOptions, ...this._playwright._defaultContextOptions, ...options };
|
|
77
|
+
const contextParams = await (0, import_browserContext.prepareBrowserContextParams)(this._platform, options);
|
|
91
78
|
const persistentParams = {
|
|
92
79
|
...contextParams,
|
|
93
|
-
ignoreDefaultArgs: Array.isArray(options.ignoreDefaultArgs) ? options.ignoreDefaultArgs :
|
|
80
|
+
ignoreDefaultArgs: Array.isArray(options.ignoreDefaultArgs) ? options.ignoreDefaultArgs : void 0,
|
|
94
81
|
ignoreAllDefaultArgs: !!options.ignoreDefaultArgs && !Array.isArray(options.ignoreDefaultArgs),
|
|
95
|
-
env: options.env ? (0,
|
|
82
|
+
env: options.env ? (0, import_clientHelper.envObjectToArray)(options.env) : void 0,
|
|
96
83
|
channel: options.channel,
|
|
97
84
|
userDataDir: this._platform.path().isAbsolute(userDataDir) || !userDataDir ? userDataDir : this._platform.path().resolve(userDataDir)
|
|
98
85
|
};
|
|
99
86
|
return await this._wrapApiCall(async () => {
|
|
100
87
|
const result = await this._channel.launchPersistentContext(persistentParams);
|
|
101
|
-
const context =
|
|
88
|
+
const context = import_browserContext.BrowserContext.from(result.context);
|
|
102
89
|
await this._didCreateContext(context, contextParams, options, logger);
|
|
103
90
|
return context;
|
|
104
91
|
});
|
|
105
92
|
}
|
|
106
93
|
async connect(optionsOrWsEndpoint, options) {
|
|
107
|
-
if (typeof optionsOrWsEndpoint ===
|
|
108
|
-
...options,
|
|
109
|
-
|
|
110
|
-
});
|
|
111
|
-
(0, _assert.assert)(optionsOrWsEndpoint.wsEndpoint, 'options.wsEndpoint is required');
|
|
94
|
+
if (typeof optionsOrWsEndpoint === "string")
|
|
95
|
+
return await this._connect({ ...options, wsEndpoint: optionsOrWsEndpoint });
|
|
96
|
+
(0, import_assert.assert)(optionsOrWsEndpoint.wsEndpoint, "options.wsEndpoint is required");
|
|
112
97
|
return await this._connect(optionsOrWsEndpoint);
|
|
113
98
|
}
|
|
114
99
|
async _connect(params) {
|
|
115
100
|
const logger = params.logger;
|
|
116
101
|
return await this._wrapApiCall(async () => {
|
|
117
|
-
|
|
118
|
-
const
|
|
119
|
-
const headers = {
|
|
120
|
-
'x-playwright-browser': this.name(),
|
|
121
|
-
...params.headers
|
|
122
|
-
};
|
|
102
|
+
const deadline = params.timeout ? (0, import_time.monotonicTime)() + params.timeout : 0;
|
|
103
|
+
const headers = { "x-playwright-browser": this.name(), ...params.headers };
|
|
123
104
|
const connectParams = {
|
|
124
105
|
wsEndpoint: params.wsEndpoint,
|
|
125
106
|
headers,
|
|
126
|
-
exposeNetwork:
|
|
107
|
+
exposeNetwork: params.exposeNetwork ?? params._exposeNetwork,
|
|
127
108
|
slowMo: params.slowMo,
|
|
128
109
|
timeout: params.timeout
|
|
129
110
|
};
|
|
130
|
-
if (params.__testHookRedirectPortForwarding)
|
|
131
|
-
|
|
111
|
+
if (params.__testHookRedirectPortForwarding)
|
|
112
|
+
connectParams.socksProxyRedirectPortForTest = params.__testHookRedirectPortForwarding;
|
|
113
|
+
const connection = await (0, import_webSocket.connectOverWebSocket)(this._connection, connectParams);
|
|
132
114
|
let browser;
|
|
133
|
-
connection.on(
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
for (const page of context.pages()) page._onClose();
|
|
115
|
+
connection.on("close", () => {
|
|
116
|
+
for (const context of browser?.contexts() || []) {
|
|
117
|
+
for (const page of context.pages())
|
|
118
|
+
page._onClose();
|
|
138
119
|
context._onClose();
|
|
139
120
|
}
|
|
140
|
-
setTimeout(() =>
|
|
141
|
-
var _browser2;
|
|
142
|
-
return (_browser2 = browser) === null || _browser2 === void 0 ? void 0 : _browser2._didClose();
|
|
143
|
-
}, 0);
|
|
121
|
+
setTimeout(() => browser?._didClose(), 0);
|
|
144
122
|
});
|
|
145
|
-
const result = await (0,
|
|
146
|
-
|
|
147
|
-
|
|
123
|
+
const result = await (0, import_timeoutRunner.raceAgainstDeadline)(async () => {
|
|
124
|
+
if (params.__testHookBeforeCreateBrowser)
|
|
125
|
+
await params.__testHookBeforeCreateBrowser();
|
|
148
126
|
const playwright = await connection.initializePlaywright();
|
|
149
127
|
if (!playwright._initializer.preLaunchedBrowser) {
|
|
150
128
|
connection.close();
|
|
151
|
-
throw new Error(
|
|
129
|
+
throw new Error("Malformed endpoint. Did you use BrowserType.launchServer method?");
|
|
152
130
|
}
|
|
153
131
|
playwright._setSelectors(this._playwright.selectors);
|
|
154
|
-
browser =
|
|
132
|
+
browser = import_browser.Browser.from(playwright._initializer.preLaunchedBrowser);
|
|
155
133
|
this._didLaunchBrowser(browser, {}, logger);
|
|
156
134
|
browser._shouldCloseConnectionOnClose = true;
|
|
157
|
-
browser.on(
|
|
135
|
+
browser.on(import_events.Events.Browser.Disconnected, () => connection.close());
|
|
158
136
|
return browser;
|
|
159
137
|
}, deadline);
|
|
160
138
|
if (!result.timedOut) {
|
|
@@ -166,23 +144,26 @@ class BrowserType extends _channelOwner.ChannelOwner {
|
|
|
166
144
|
});
|
|
167
145
|
}
|
|
168
146
|
async connectOverCDP(endpointURLOrOptions, options) {
|
|
169
|
-
if (typeof endpointURLOrOptions ===
|
|
170
|
-
|
|
171
|
-
|
|
147
|
+
if (typeof endpointURLOrOptions === "string")
|
|
148
|
+
return await this._connectOverCDP(endpointURLOrOptions, options);
|
|
149
|
+
const endpointURL = "endpointURL" in endpointURLOrOptions ? endpointURLOrOptions.endpointURL : endpointURLOrOptions.wsEndpoint;
|
|
150
|
+
(0, import_assert.assert)(endpointURL, "Cannot connect over CDP without wsEndpoint.");
|
|
172
151
|
return await this.connectOverCDP(endpointURL, endpointURLOrOptions);
|
|
173
152
|
}
|
|
174
153
|
async _connectOverCDP(endpointURL, params = {}) {
|
|
175
|
-
if (this.name() !==
|
|
176
|
-
|
|
154
|
+
if (this.name() !== "chromium")
|
|
155
|
+
throw new Error("Connecting over CDP is only supported in Chromium.");
|
|
156
|
+
const headers = params.headers ? (0, import_headers.headersObjectToArray)(params.headers) : void 0;
|
|
177
157
|
const result = await this._channel.connectOverCDP({
|
|
178
158
|
endpointURL,
|
|
179
159
|
headers,
|
|
180
160
|
slowMo: params.slowMo,
|
|
181
161
|
timeout: params.timeout
|
|
182
162
|
});
|
|
183
|
-
const browser =
|
|
163
|
+
const browser = import_browser.Browser.from(result.browser);
|
|
184
164
|
this._didLaunchBrowser(browser, {}, params.logger);
|
|
185
|
-
if (result.defaultContext)
|
|
165
|
+
if (result.defaultContext)
|
|
166
|
+
await this._didCreateContext(import_browserContext.BrowserContext.from(result.defaultContext), {}, {}, params.logger);
|
|
186
167
|
return browser;
|
|
187
168
|
}
|
|
188
169
|
_didLaunchBrowser(browser, browserOptions, logger) {
|
|
@@ -195,8 +176,10 @@ class BrowserType extends _channelOwner.ChannelOwner {
|
|
|
195
176
|
context._browserType = this;
|
|
196
177
|
this._contexts.add(context);
|
|
197
178
|
context._setOptions(contextOptions, browserOptions);
|
|
198
|
-
if (this._playwright._defaultContextTimeout !==
|
|
199
|
-
|
|
179
|
+
if (this._playwright._defaultContextTimeout !== void 0)
|
|
180
|
+
context.setDefaultTimeout(this._playwright._defaultContextTimeout);
|
|
181
|
+
if (this._playwright._defaultContextNavigationTimeout !== void 0)
|
|
182
|
+
context.setDefaultNavigationTimeout(this._playwright._defaultContextNavigationTimeout);
|
|
200
183
|
await this._instrumentation.runAfterCreateBrowserContext(context);
|
|
201
184
|
}
|
|
202
185
|
async _willCloseContext(context) {
|
|
@@ -204,4 +187,7 @@ class BrowserType extends _channelOwner.ChannelOwner {
|
|
|
204
187
|
await this._instrumentation.runBeforeCloseBrowserContext(context);
|
|
205
188
|
}
|
|
206
189
|
}
|
|
207
|
-
|
|
190
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
191
|
+
0 && (module.exports = {
|
|
192
|
+
BrowserType
|
|
193
|
+
});
|
package/lib/client/cdpSession.js
CHANGED
|
@@ -1,36 +1,34 @@
|
|
|
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 cdpSession_exports = {};
|
|
20
|
+
__export(cdpSession_exports, {
|
|
21
|
+
CDPSession: () => CDPSession
|
|
5
22
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
* 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
|
-
|
|
24
|
-
class CDPSession extends _channelOwner.ChannelOwner {
|
|
23
|
+
module.exports = __toCommonJS(cdpSession_exports);
|
|
24
|
+
var import_channelOwner = require("./channelOwner");
|
|
25
|
+
class CDPSession extends import_channelOwner.ChannelOwner {
|
|
25
26
|
static from(cdpSession) {
|
|
26
27
|
return cdpSession._object;
|
|
27
28
|
}
|
|
28
29
|
constructor(parent, type, guid, initializer) {
|
|
29
30
|
super(parent, type, guid, initializer);
|
|
30
|
-
this._channel.on(
|
|
31
|
-
method,
|
|
32
|
-
params
|
|
33
|
-
}) => {
|
|
31
|
+
this._channel.on("event", ({ method, params }) => {
|
|
34
32
|
this.emit(method, params);
|
|
35
33
|
});
|
|
36
34
|
this.on = super.on;
|
|
@@ -40,14 +38,14 @@ class CDPSession extends _channelOwner.ChannelOwner {
|
|
|
40
38
|
this.once = super.once;
|
|
41
39
|
}
|
|
42
40
|
async send(method, params) {
|
|
43
|
-
const result = await this._channel.send({
|
|
44
|
-
method,
|
|
45
|
-
params
|
|
46
|
-
});
|
|
41
|
+
const result = await this._channel.send({ method, params });
|
|
47
42
|
return result.result;
|
|
48
43
|
}
|
|
49
44
|
async detach() {
|
|
50
45
|
return await this._channel.detach();
|
|
51
46
|
}
|
|
52
47
|
}
|
|
53
|
-
|
|
48
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
49
|
+
0 && (module.exports = {
|
|
50
|
+
CDPSession
|
|
51
|
+
});
|