rebrowser-playwright-core 1.49.1 → 1.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ThirdPartyNotices.txt +381 -55
- package/bin/reinstall_msedge_beta_linux.sh +6 -0
- package/bin/reinstall_msedge_dev_linux.sh +6 -0
- package/bin/reinstall_msedge_stable_linux.sh +6 -0
- package/browsers.json +28 -13
- package/index.js +0 -1
- package/lib/androidServerImpl.js +42 -48
- package/lib/browserServerImpl.js +60 -64
- package/lib/cli/driver.js +71 -69
- package/lib/cli/program.js +314 -354
- package/lib/cli/programWithTestStub.js +51 -44
- package/lib/client/accessibility.js +31 -32
- package/lib/client/android.js +146 -254
- package/lib/client/api.js +135 -283
- package/lib/client/artifact.js +39 -39
- package/lib/client/browser.js +59 -68
- package/lib/client/browserContext.js +302 -322
- package/lib/client/browserType.js +95 -143
- package/lib/client/cdpSession.js +29 -31
- package/lib/client/channelOwner.js +109 -139
- package/lib/client/clientHelper.js +49 -42
- package/lib/client/clientInstrumentation.js +40 -35
- package/lib/client/clientStackTrace.js +69 -0
- package/lib/client/clock.js +36 -36
- package/lib/client/connection.js +203 -218
- package/lib/client/consoleMessage.js +33 -33
- package/lib/client/coverage.js +25 -22
- package/lib/client/dialog.js +30 -31
- package/lib/client/download.js +25 -25
- package/lib/client/electron.js +74 -76
- package/lib/client/elementHandle.js +126 -163
- package/lib/client/errors.js +53 -53
- package/lib/client/eventEmitter.js +127 -127
- package/lib/client/events.js +72 -68
- package/lib/client/fetch.js +154 -178
- package/lib/client/fileChooser.js +25 -24
- package/lib/client/fileUtils.js +34 -0
- package/lib/client/frame.js +189 -307
- package/lib/client/harRouter.js +44 -56
- package/lib/client/input.js +40 -69
- package/lib/client/jsHandle.js +55 -71
- package/lib/client/jsonPipe.js +27 -23
- package/lib/client/localUtils.js +53 -28
- package/lib/client/locator.js +144 -230
- package/lib/client/network.js +285 -301
- package/lib/client/page.js +273 -312
- package/lib/client/platform.js +74 -0
- package/lib/client/playwright.js +62 -57
- package/lib/client/selectors.js +51 -43
- package/lib/client/stream.js +30 -45
- package/lib/client/timeoutSettings.js +75 -0
- package/lib/client/tracing.js +49 -82
- package/lib/client/types.js +26 -22
- package/lib/client/video.js +35 -27
- package/lib/client/waiter.js +71 -91
- package/lib/client/webError.js +25 -23
- package/lib/client/webSocket.js +111 -0
- package/lib/client/worker.js +48 -56
- package/lib/client/writableStream.js +28 -43
- package/lib/generated/clockSource.js +26 -5
- package/lib/generated/consoleApiSource.js +26 -5
- package/lib/generated/injectedScriptSource.js +26 -5
- package/lib/generated/pollingRecorderSource.js +26 -5
- package/lib/generated/utilityScriptSource.js +26 -5
- package/lib/generated/webSocketMockSource.js +375 -4
- package/lib/inProcessFactory.js +53 -48
- package/lib/inprocess.js +2 -19
- package/lib/outofprocess.js +53 -42
- package/lib/protocol/debug.js +209 -25
- package/lib/protocol/serializers.js +153 -134
- package/lib/protocol/validator.js +2712 -2667
- package/lib/protocol/validatorPrimitives.js +115 -75
- package/lib/remote/playwrightConnection.js +144 -152
- package/lib/remote/playwrightServer.js +106 -77
- package/lib/server/accessibility.js +44 -37
- package/lib/server/android/android.js +216 -206
- package/lib/server/android/backendAdb.js +89 -82
- package/lib/server/artifact.js +78 -55
- package/lib/server/bidi/bidiBrowser.js +227 -158
- package/lib/server/bidi/bidiChromium.js +106 -78
- package/lib/server/bidi/bidiConnection.js +66 -83
- package/lib/server/bidi/bidiExecutionContext.js +161 -97
- package/lib/server/bidi/bidiFirefox.js +76 -68
- package/lib/server/bidi/bidiInput.js +90 -102
- package/lib/server/bidi/bidiNetworkManager.js +141 -159
- package/lib/server/bidi/bidiOverCdp.js +57 -58
- package/lib/server/bidi/bidiPage.js +262 -261
- package/lib/server/bidi/bidiPdf.js +52 -86
- package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
- package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
- package/lib/server/bidi/third_party/bidiKeyboard.js +241 -223
- package/lib/server/bidi/third_party/bidiProtocol.js +144 -131
- package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
- package/lib/server/bidi/third_party/firefoxPrefs.js +149 -111
- package/lib/server/browser.js +76 -84
- package/lib/server/browserContext.js +343 -360
- package/lib/server/browserType.js +169 -181
- package/lib/server/callLog.js +82 -0
- package/lib/server/chromium/chromium.js +212 -190
- package/lib/server/chromium/chromiumSwitches.js +99 -44
- package/lib/server/chromium/crAccessibility.js +157 -131
- package/lib/server/chromium/crBrowser.js +262 -280
- package/lib/server/chromium/crConnection.js +121 -178
- package/lib/server/chromium/crCoverage.js +113 -127
- package/lib/server/chromium/crDevTools.js +64 -55
- package/lib/server/chromium/crDragDrop.js +62 -79
- package/lib/server/chromium/crExecutionContext.js +100 -91
- package/lib/server/chromium/crInput.js +101 -88
- package/lib/server/chromium/crNetworkManager.js +269 -370
- package/lib/server/chromium/crPage.js +509 -597
- package/lib/server/chromium/crPdf.js +54 -86
- package/lib/server/chromium/crProtocolHelper.js +92 -80
- package/lib/server/chromium/crServiceWorker.js +85 -69
- package/lib/server/chromium/defaultFontFamilies.js +152 -135
- package/lib/server/chromium/protocol.d.js +16 -0
- package/lib/server/chromium/videoRecorder.js +65 -99
- package/lib/server/clock.js +58 -46
- package/lib/server/codegen/csharp.js +191 -156
- package/lib/server/codegen/java.js +163 -125
- package/lib/server/codegen/javascript.js +166 -143
- package/lib/server/codegen/jsonl.js +33 -29
- package/lib/server/codegen/language.js +75 -52
- package/lib/server/codegen/languages.js +65 -27
- package/lib/server/codegen/python.js +141 -125
- package/lib/server/codegen/types.js +15 -4
- package/lib/server/console.js +28 -32
- package/lib/server/cookieStore.js +105 -86
- package/lib/server/debugController.js +102 -154
- package/lib/server/debugger.js +82 -78
- package/lib/server/deviceDescriptors.js +37 -24
- package/lib/server/deviceDescriptorsSource.json +131 -131
- package/lib/server/dialog.js +36 -35
- package/lib/server/dispatchers/androidDispatcher.js +196 -107
- package/lib/server/dispatchers/artifactDispatcher.js +62 -62
- package/lib/server/dispatchers/browserContextDispatcher.js +177 -217
- package/lib/server/dispatchers/browserDispatcher.js +78 -97
- package/lib/server/dispatchers/browserTypeDispatcher.js +35 -35
- package/lib/server/dispatchers/cdpSessionDispatcher.js +32 -36
- package/lib/server/dispatchers/debugControllerDispatcher.js +48 -64
- package/lib/server/dispatchers/dialogDispatcher.js +30 -27
- package/lib/server/dispatchers/dispatcher.js +180 -229
- package/lib/server/dispatchers/electronDispatcher.js +54 -57
- package/lib/server/dispatchers/elementHandlerDispatcher.js +79 -116
- package/lib/server/dispatchers/frameDispatcher.js +93 -162
- package/lib/server/dispatchers/jsHandleDispatcher.js +49 -66
- package/lib/server/dispatchers/jsonPipeDispatcher.js +35 -36
- package/lib/server/dispatchers/localUtilsDispatcher.js +107 -365
- package/lib/server/dispatchers/networkDispatchers.js +92 -109
- package/lib/server/dispatchers/pageDispatcher.js +130 -169
- package/lib/server/dispatchers/playwrightDispatcher.js +69 -76
- package/lib/server/dispatchers/selectorsDispatcher.js +28 -24
- package/lib/server/dispatchers/streamDispatcher.js +42 -44
- package/lib/server/dispatchers/tracingDispatcher.js +36 -41
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +100 -135
- package/lib/server/dispatchers/writableStreamDispatcher.js +54 -39
- package/lib/server/dom.js +424 -443
- package/lib/server/download.js +45 -35
- package/lib/server/electron/electron.js +156 -175
- package/lib/server/electron/loader.js +8 -36
- package/lib/server/errors.js +47 -46
- package/lib/server/fetch.js +302 -331
- package/lib/server/fileChooser.js +25 -24
- package/lib/server/fileUploadUtils.js +66 -57
- package/lib/server/firefox/ffAccessibility.js +153 -131
- package/lib/server/firefox/ffBrowser.js +218 -274
- package/lib/server/firefox/ffConnection.js +63 -84
- package/lib/server/firefox/ffExecutionContext.js +103 -77
- package/lib/server/firefox/ffInput.js +72 -63
- package/lib/server/firefox/ffNetworkManager.js +131 -110
- package/lib/server/firefox/ffPage.js +244 -302
- package/lib/server/firefox/firefox.js +76 -69
- package/lib/server/firefox/protocol.d.js +16 -0
- package/lib/server/formData.js +107 -35
- package/lib/server/frameSelectors.js +77 -111
- package/lib/server/frames.js +719 -855
- package/lib/server/har/harRecorder.js +85 -77
- package/lib/server/har/harTracer.js +288 -224
- package/lib/server/harBackend.js +157 -0
- package/lib/server/helper.js +56 -59
- package/lib/server/index.js +59 -106
- package/lib/server/input.js +136 -166
- package/lib/server/instrumentation.js +49 -44
- package/lib/server/javascript.js +157 -151
- package/lib/server/launchApp.js +92 -73
- package/lib/server/localUtils.js +211 -0
- package/lib/server/macEditingCommands.js +141 -137
- package/lib/server/network.js +263 -297
- package/lib/server/page.js +351 -434
- package/lib/server/pageBinding.js +88 -0
- package/lib/server/pipeTransport.js +49 -45
- package/lib/server/playwright.js +60 -67
- package/lib/server/progress.js +56 -51
- package/lib/server/protocolError.js +34 -31
- package/lib/server/recorder/chat.js +161 -0
- package/lib/server/recorder/contextRecorder.js +135 -148
- package/lib/server/recorder/recorderApp.js +129 -132
- package/lib/server/recorder/recorderCollection.js +57 -57
- package/lib/server/recorder/recorderFrontend.js +15 -4
- package/lib/server/recorder/recorderRunner.js +80 -100
- package/lib/server/recorder/recorderUtils.js +59 -72
- package/lib/server/recorder/throttledFile.js +42 -31
- package/lib/server/recorder.js +186 -190
- package/lib/server/registry/browserFetcher.js +107 -100
- package/lib/server/registry/dependencies.js +247 -198
- package/lib/server/registry/index.js +928 -709
- package/lib/server/registry/nativeDeps.js +1073 -461
- package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
- package/lib/server/screenshotter.js +166 -182
- package/lib/server/selectors.js +85 -46
- package/lib/server/socksClientCertificatesInterceptor.js +166 -185
- package/lib/server/socksInterceptor.js +62 -67
- package/lib/server/storageScript.js +154 -0
- package/lib/server/timeoutSettings.js +89 -0
- package/lib/server/trace/recorder/snapshotter.js +70 -88
- package/lib/server/trace/recorder/snapshotterInjected.js +246 -218
- package/lib/server/trace/recorder/tracing.js +324 -327
- package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
- package/lib/server/trace/viewer/traceViewer.js +172 -137
- package/lib/server/transport.js +125 -133
- package/lib/server/types.js +26 -22
- package/lib/server/usKeyboardLayout.js +135 -545
- package/lib/server/utils/ascii.js +44 -0
- package/lib/server/utils/comparators.js +161 -0
- package/lib/server/utils/crypto.js +216 -0
- package/lib/server/utils/debug.js +47 -0
- package/lib/server/utils/debugLogger.js +114 -0
- package/lib/server/utils/env.js +68 -0
- package/lib/server/utils/eventsHelper.js +39 -0
- package/lib/server/utils/expectUtils.js +38 -0
- package/lib/server/utils/fileUtils.js +191 -0
- package/lib/server/utils/happyEyeballs.js +207 -0
- package/lib/server/utils/hostPlatform.js +109 -0
- package/lib/server/utils/httpServer.js +218 -0
- package/lib/server/utils/image_tools/colorUtils.js +89 -0
- package/lib/{image_tools → server/utils/image_tools}/compare.js +44 -43
- package/lib/server/utils/image_tools/imageChannel.js +78 -0
- package/lib/{image_tools → server/utils/image_tools}/stats.js +40 -40
- package/lib/server/utils/linuxUtils.js +71 -0
- package/lib/server/utils/network.js +217 -0
- package/lib/server/utils/nodePlatform.js +148 -0
- package/lib/server/utils/pipeTransport.js +84 -0
- package/lib/server/utils/processLauncher.js +238 -0
- package/lib/server/utils/profiler.js +65 -0
- package/lib/server/utils/socksProxy.js +511 -0
- package/lib/server/utils/spawnAsync.js +41 -0
- package/lib/server/utils/task.js +51 -0
- package/lib/server/utils/userAgent.js +98 -0
- package/lib/server/utils/wsServer.js +132 -0
- package/lib/server/utils/zipFile.js +74 -0
- package/lib/server/utils/zones.js +57 -0
- package/lib/server/webkit/protocol.d.js +16 -0
- package/lib/server/webkit/webkit.js +76 -63
- package/lib/server/webkit/wkAccessibility.js +161 -118
- package/lib/server/webkit/wkBrowser.js +163 -180
- package/lib/server/webkit/wkConnection.js +59 -83
- package/lib/server/webkit/wkExecutionContext.js +96 -73
- package/lib/server/webkit/wkInput.js +87 -75
- package/lib/server/webkit/wkInterceptableRequest.js +102 -95
- package/lib/server/webkit/wkPage.js +536 -647
- package/lib/server/webkit/wkProvisionalPage.js +45 -56
- package/lib/server/webkit/wkWorkers.js +77 -77
- package/lib/utils/isomorphic/ariaSnapshot.js +245 -128
- package/lib/utils/isomorphic/assert.js +31 -0
- package/lib/utils/isomorphic/builtins.js +90 -0
- package/lib/utils/isomorphic/colors.js +72 -0
- package/lib/utils/isomorphic/cssParser.js +123 -127
- package/lib/utils/isomorphic/cssTokenizer.js +436 -364
- package/lib/utils/isomorphic/headers.js +53 -0
- package/lib/utils/isomorphic/locatorGenerators.js +344 -349
- package/lib/utils/isomorphic/locatorParser.js +103 -106
- package/lib/utils/isomorphic/locatorUtils.js +63 -44
- package/lib/utils/isomorphic/manualPromise.js +115 -0
- package/lib/utils/isomorphic/mimeType.js +453 -22
- package/lib/utils/isomorphic/multimap.js +81 -0
- package/lib/utils/isomorphic/rtti.js +43 -0
- package/lib/utils/isomorphic/selectorParser.js +183 -193
- package/lib/utils/isomorphic/semaphore.js +54 -0
- package/lib/utils/isomorphic/stackTrace.js +158 -0
- package/lib/utils/isomorphic/stringUtils.js +113 -106
- package/lib/utils/isomorphic/time.js +44 -0
- package/lib/utils/isomorphic/timeoutRunner.js +67 -0
- package/lib/utils/isomorphic/traceUtils.js +52 -32
- package/lib/utils/isomorphic/types.js +16 -0
- package/lib/utils/isomorphic/urlMatch.js +114 -71
- package/lib/utils/isomorphic/utilityScriptSerializers.js +248 -0
- package/lib/utils.js +101 -0
- package/lib/utilsBundle.js +101 -76
- package/lib/utilsBundleImpl/index.js +114 -116
- package/lib/vite/htmlReport/index.html +26 -20
- package/lib/vite/recorder/assets/{codeMirrorModule-C5j27SYZ.js → codeMirrorModule-DVQi6prl.js} +13 -13
- package/lib/vite/recorder/assets/index-97EUAAbk.js +184 -0
- package/lib/vite/recorder/assets/{index-iA1aAGZg.css → index-eHBmevrY.css} +1 -1
- package/lib/vite/recorder/index.html +2 -2
- package/lib/vite/traceViewer/assets/codeMirrorModule-DwAiTpyC.js +24 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-DkkRvn5X.js +265 -0
- package/lib/vite/traceViewer/assets/{xtermModule-BeNbaIVa.js → xtermModule-BoAIEibi.js} +7 -7
- package/lib/vite/traceViewer/defaultSettingsView.QdHITyLI.css +1 -0
- package/lib/vite/traceViewer/index.DvtSwn6E.js +2 -0
- package/lib/vite/traceViewer/index.html +4 -7
- package/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/lib/vite/traceViewer/{uiMode.voC1ZiOQ.css → uiMode.BatfzHMG.css} +1 -1
- package/lib/vite/traceViewer/uiMode.Sdytl9wc.js +5 -0
- package/lib/vite/traceViewer/uiMode.html +4 -7
- package/lib/zipBundle.js +32 -23
- package/lib/zipBundleImpl.js +4 -4
- package/package.json +7 -7
- package/types/protocol.d.ts +819 -127
- package/types/types.d.ts +181 -69
- package/bin/PrintDeps.exe +0 -0
- package/bin/README.md +0 -2
- package/lib/common/socksProxy.js +0 -569
- package/lib/common/timeoutSettings.js +0 -73
- package/lib/common/types.js +0 -5
- package/lib/image_tools/colorUtils.js +0 -98
- package/lib/image_tools/imageChannel.js +0 -70
- package/lib/protocol/transport.js +0 -82
- package/lib/server/ariaSnapshot.js +0 -33
- package/lib/server/isomorphic/utilityScriptSerializers.js +0 -226
- package/lib/server/recorder/recorderInTraceViewer.js +0 -144
- package/lib/utils/ascii.js +0 -31
- package/lib/utils/comparators.js +0 -153
- package/lib/utils/crypto.js +0 -171
- package/lib/utils/debug.js +0 -46
- package/lib/utils/debugLogger.js +0 -91
- package/lib/utils/env.js +0 -49
- package/lib/utils/eventsHelper.js +0 -38
- package/lib/utils/expectUtils.js +0 -33
- package/lib/utils/fileUtils.js +0 -205
- package/lib/utils/happy-eyeballs.js +0 -194
- package/lib/utils/headers.js +0 -52
- package/lib/utils/hostPlatform.js +0 -139
- package/lib/utils/httpServer.js +0 -237
- package/lib/utils/index.js +0 -368
- package/lib/utils/isomorphic/recorderUtils.js +0 -227
- package/lib/utils/linuxUtils.js +0 -78
- package/lib/utils/manualPromise.js +0 -109
- package/lib/utils/multimap.js +0 -75
- package/lib/utils/network.js +0 -160
- package/lib/utils/processLauncher.js +0 -248
- package/lib/utils/profiler.js +0 -53
- package/lib/utils/rtti.js +0 -44
- package/lib/utils/semaphore.js +0 -51
- package/lib/utils/sequence.js +0 -64
- package/lib/utils/spawnAsync.js +0 -45
- package/lib/utils/stackTrace.js +0 -134
- package/lib/utils/task.js +0 -58
- package/lib/utils/time.js +0 -37
- package/lib/utils/timeoutRunner.js +0 -66
- package/lib/utils/traceUtils.js +0 -44
- package/lib/utils/userAgent.js +0 -105
- package/lib/utils/wsServer.js +0 -127
- package/lib/utils/zipFile.js +0 -75
- package/lib/utils/zones.js +0 -71
- package/lib/vite/recorder/assets/index-m0XdVJHe.js +0 -184
- package/lib/vite/traceViewer/assets/codeMirrorModule-BBCX0spr.js +0 -24
- package/lib/vite/traceViewer/assets/inspectorTab-B4Iw34Ow.js +0 -68
- package/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +0 -1
- package/lib/vite/traceViewer/assets/workbench-DFlGYqou.js +0 -9
- package/lib/vite/traceViewer/embedded.CmarehFk.js +0 -2
- package/lib/vite/traceViewer/embedded.html +0 -18
- package/lib/vite/traceViewer/embedded.w7WN2u1R.css +0 -1
- package/lib/vite/traceViewer/index.FBucu_gE.js +0 -2
- package/lib/vite/traceViewer/inspectorTab.DEOUW62d.css +0 -1
- package/lib/vite/traceViewer/recorder.B_SY1GJM.css +0 -0
- package/lib/vite/traceViewer/recorder.CW_rzcEp.js +0 -2
- package/lib/vite/traceViewer/recorder.html +0 -17
- package/lib/vite/traceViewer/uiMode.CDUVjusr.js +0 -5
- package/lib/vite/traceViewer/workbench.C-zR9ysA.css +0 -1
- /package/lib/vite/recorder/assets/{codeMirrorModule-ez37Vkbh.css → codeMirrorModule-C3UTv-Ge.css} +0 -0
- /package/lib/vite/traceViewer/{codeMirrorModule.ez37Vkbh.css → codeMirrorModule.C3UTv-Ge.css} +0 -0
- /package/lib/vite/traceViewer/{index.CrbWWHbf.css → index.CFOW-Ezb.css} +0 -0
- /package/lib/vite/traceViewer/{xtermModule.DSXBckUd.css → xtermModule.Beg8tuEN.css} +0 -0
|
@@ -1,222 +1,169 @@
|
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
*
|
|
22
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
23
|
-
*
|
|
24
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
25
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
26
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
27
|
-
* See the License for the specific language governing permissions and
|
|
28
|
-
* limitations under the License.
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
// This is here just for api generation and checking.
|
|
32
|
-
|
|
33
|
-
class BrowserType extends _channelOwner.ChannelOwner {
|
|
34
|
-
constructor(...args) {
|
|
35
|
-
super(...args);
|
|
36
|
-
this._serverLauncher = void 0;
|
|
37
|
-
this._contexts = new Set();
|
|
38
|
-
this._playwright = void 0;
|
|
39
|
-
// Instrumentation.
|
|
40
|
-
this._defaultContextOptions = void 0;
|
|
41
|
-
this._defaultContextTimeout = void 0;
|
|
42
|
-
this._defaultContextNavigationTimeout = void 0;
|
|
43
|
-
this._defaultLaunchOptions = 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();
|
|
44
38
|
}
|
|
45
39
|
static from(browserType) {
|
|
46
40
|
return browserType._object;
|
|
47
41
|
}
|
|
48
42
|
executablePath() {
|
|
49
|
-
if (!this._initializer.executablePath)
|
|
43
|
+
if (!this._initializer.executablePath)
|
|
44
|
+
throw new Error("Browser is not supported on current platform");
|
|
50
45
|
return this._initializer.executablePath;
|
|
51
46
|
}
|
|
52
47
|
name() {
|
|
53
48
|
return this._initializer.name;
|
|
54
49
|
}
|
|
55
50
|
async launch(options = {}) {
|
|
56
|
-
|
|
57
|
-
(0,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
options = {
|
|
61
|
-
...this._defaultLaunchOptions,
|
|
62
|
-
...options
|
|
63
|
-
};
|
|
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 };
|
|
64
55
|
const launchOptions = {
|
|
65
56
|
...options,
|
|
66
|
-
ignoreDefaultArgs: Array.isArray(options.ignoreDefaultArgs) ? options.ignoreDefaultArgs :
|
|
57
|
+
ignoreDefaultArgs: Array.isArray(options.ignoreDefaultArgs) ? options.ignoreDefaultArgs : void 0,
|
|
67
58
|
ignoreAllDefaultArgs: !!options.ignoreDefaultArgs && !Array.isArray(options.ignoreDefaultArgs),
|
|
68
|
-
env: options.env ? (0,
|
|
59
|
+
env: options.env ? (0, import_clientHelper.envObjectToArray)(options.env) : void 0
|
|
69
60
|
};
|
|
70
61
|
return await this._wrapApiCall(async () => {
|
|
71
|
-
const browser =
|
|
62
|
+
const browser = import_browser.Browser.from((await this._channel.launch(launchOptions)).browser);
|
|
72
63
|
this._didLaunchBrowser(browser, options, logger);
|
|
73
64
|
return browser;
|
|
74
65
|
});
|
|
75
66
|
}
|
|
76
67
|
async launchServer(options = {}) {
|
|
77
|
-
if (!this._serverLauncher)
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
...options
|
|
81
|
-
};
|
|
68
|
+
if (!this._serverLauncher)
|
|
69
|
+
throw new Error("Launching server is not supported");
|
|
70
|
+
options = { ...this._playwright._defaultLaunchOptions, ...options };
|
|
82
71
|
return await this._serverLauncher.launchServer(options);
|
|
83
72
|
}
|
|
84
73
|
async launchPersistentContext(userDataDir, options = {}) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
...this._defaultLaunchOptions,
|
|
90
|
-
...this._defaultContextOptions,
|
|
91
|
-
...options
|
|
92
|
-
};
|
|
93
|
-
const contextParams = await (0, _browserContext.prepareBrowserContextParams)(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);
|
|
94
78
|
const persistentParams = {
|
|
95
79
|
...contextParams,
|
|
96
|
-
ignoreDefaultArgs: Array.isArray(options.ignoreDefaultArgs) ? options.ignoreDefaultArgs :
|
|
80
|
+
ignoreDefaultArgs: Array.isArray(options.ignoreDefaultArgs) ? options.ignoreDefaultArgs : void 0,
|
|
97
81
|
ignoreAllDefaultArgs: !!options.ignoreDefaultArgs && !Array.isArray(options.ignoreDefaultArgs),
|
|
98
|
-
env: options.env ? (0,
|
|
82
|
+
env: options.env ? (0, import_clientHelper.envObjectToArray)(options.env) : void 0,
|
|
99
83
|
channel: options.channel,
|
|
100
|
-
userDataDir
|
|
84
|
+
userDataDir: this._platform.path().isAbsolute(userDataDir) || !userDataDir ? userDataDir : this._platform.path().resolve(userDataDir)
|
|
101
85
|
};
|
|
102
86
|
return await this._wrapApiCall(async () => {
|
|
103
87
|
const result = await this._channel.launchPersistentContext(persistentParams);
|
|
104
|
-
const context =
|
|
88
|
+
const context = import_browserContext.BrowserContext.from(result.context);
|
|
105
89
|
await this._didCreateContext(context, contextParams, options, logger);
|
|
106
90
|
return context;
|
|
107
91
|
});
|
|
108
92
|
}
|
|
109
93
|
async connect(optionsOrWsEndpoint, options) {
|
|
110
|
-
if (typeof optionsOrWsEndpoint ===
|
|
111
|
-
...options,
|
|
112
|
-
|
|
113
|
-
});
|
|
114
|
-
(0, _utils.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");
|
|
115
97
|
return await this._connect(optionsOrWsEndpoint);
|
|
116
98
|
}
|
|
117
99
|
async _connect(params) {
|
|
118
100
|
const logger = params.logger;
|
|
119
101
|
return await this._wrapApiCall(async () => {
|
|
120
|
-
|
|
121
|
-
const
|
|
122
|
-
const headers = {
|
|
123
|
-
'x-playwright-browser': this.name(),
|
|
124
|
-
...params.headers
|
|
125
|
-
};
|
|
126
|
-
const localUtils = this._connection.localUtils();
|
|
102
|
+
const deadline = params.timeout ? (0, import_time.monotonicTime)() + params.timeout : 0;
|
|
103
|
+
const headers = { "x-playwright-browser": this.name(), ...params.headers };
|
|
127
104
|
const connectParams = {
|
|
128
105
|
wsEndpoint: params.wsEndpoint,
|
|
129
106
|
headers,
|
|
130
|
-
exposeNetwork:
|
|
107
|
+
exposeNetwork: params.exposeNetwork ?? params._exposeNetwork,
|
|
131
108
|
slowMo: params.slowMo,
|
|
132
109
|
timeout: params.timeout
|
|
133
110
|
};
|
|
134
|
-
if (params.__testHookRedirectPortForwarding)
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
headers: connectHeaders
|
|
138
|
-
} = await localUtils._channel.connect(connectParams);
|
|
139
|
-
const closePipe = () => pipe.close().catch(() => {});
|
|
140
|
-
const connection = new _connection.Connection(localUtils, this._instrumentation);
|
|
141
|
-
connection.markAsRemote();
|
|
142
|
-
connection.on('close', closePipe);
|
|
111
|
+
if (params.__testHookRedirectPortForwarding)
|
|
112
|
+
connectParams.socksProxyRedirectPortForTest = params.__testHookRedirectPortForwarding;
|
|
113
|
+
const connection = await (0, import_webSocket.connectOverWebSocket)(this._connection, connectParams);
|
|
143
114
|
let browser;
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
var _browser;
|
|
149
|
-
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();
|
|
150
119
|
context._onClose();
|
|
151
120
|
}
|
|
152
|
-
|
|
153
|
-
// Give a chance to any API call promises to reject upon page/context closure.
|
|
154
|
-
// This happens naturally when we receive page.onClose and browser.onClose from the server
|
|
155
|
-
// in separate tasks. However, upon pipe closure we used to dispatch them all synchronously
|
|
156
|
-
// here and promises did not have a chance to reject.
|
|
157
|
-
// The order of rejects vs closure is a part of the API contract and our test runner
|
|
158
|
-
// relies on it to attribute rejections to the right test.
|
|
159
|
-
setTimeout(() => {
|
|
160
|
-
var _browser2;
|
|
161
|
-
return (_browser2 = browser) === null || _browser2 === void 0 ? void 0 : _browser2._didClose();
|
|
162
|
-
}, 0);
|
|
163
|
-
};
|
|
164
|
-
pipe.on('closed', params => onPipeClosed(params.reason));
|
|
165
|
-
connection.onmessage = message => this._wrapApiCall(() => pipe.send({
|
|
166
|
-
message
|
|
167
|
-
}).catch(() => onPipeClosed()), /* isInternal */true);
|
|
168
|
-
pipe.on('message', ({
|
|
169
|
-
message
|
|
170
|
-
}) => {
|
|
171
|
-
try {
|
|
172
|
-
connection.dispatch(message);
|
|
173
|
-
} catch (e) {
|
|
174
|
-
closeError = String(e);
|
|
175
|
-
closePipe();
|
|
176
|
-
}
|
|
121
|
+
setTimeout(() => browser?._didClose(), 0);
|
|
177
122
|
});
|
|
178
|
-
const result = await (0,
|
|
179
|
-
|
|
180
|
-
|
|
123
|
+
const result = await (0, import_timeoutRunner.raceAgainstDeadline)(async () => {
|
|
124
|
+
if (params.__testHookBeforeCreateBrowser)
|
|
125
|
+
await params.__testHookBeforeCreateBrowser();
|
|
181
126
|
const playwright = await connection.initializePlaywright();
|
|
182
127
|
if (!playwright._initializer.preLaunchedBrowser) {
|
|
183
|
-
|
|
184
|
-
throw new Error(
|
|
128
|
+
connection.close();
|
|
129
|
+
throw new Error("Malformed endpoint. Did you use BrowserType.launchServer method?");
|
|
185
130
|
}
|
|
186
131
|
playwright._setSelectors(this._playwright.selectors);
|
|
187
|
-
browser =
|
|
132
|
+
browser = import_browser.Browser.from(playwright._initializer.preLaunchedBrowser);
|
|
188
133
|
this._didLaunchBrowser(browser, {}, logger);
|
|
189
134
|
browser._shouldCloseConnectionOnClose = true;
|
|
190
|
-
browser.
|
|
191
|
-
browser.on(_events.Events.Browser.Disconnected, () => this._wrapApiCall(() => closePipe(), /* isInternal */true));
|
|
135
|
+
browser.on(import_events.Events.Browser.Disconnected, () => connection.close());
|
|
192
136
|
return browser;
|
|
193
137
|
}, deadline);
|
|
194
138
|
if (!result.timedOut) {
|
|
195
139
|
return result.result;
|
|
196
140
|
} else {
|
|
197
|
-
|
|
141
|
+
connection.close();
|
|
198
142
|
throw new Error(`Timeout ${params.timeout}ms exceeded`);
|
|
199
143
|
}
|
|
200
144
|
});
|
|
201
145
|
}
|
|
202
146
|
async connectOverCDP(endpointURLOrOptions, options) {
|
|
203
|
-
if (typeof endpointURLOrOptions ===
|
|
204
|
-
|
|
205
|
-
|
|
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.");
|
|
206
151
|
return await this.connectOverCDP(endpointURL, endpointURLOrOptions);
|
|
207
152
|
}
|
|
208
153
|
async _connectOverCDP(endpointURL, params = {}) {
|
|
209
|
-
if (this.name() !==
|
|
210
|
-
|
|
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;
|
|
211
157
|
const result = await this._channel.connectOverCDP({
|
|
212
158
|
endpointURL,
|
|
213
159
|
headers,
|
|
214
160
|
slowMo: params.slowMo,
|
|
215
161
|
timeout: params.timeout
|
|
216
162
|
});
|
|
217
|
-
const browser =
|
|
163
|
+
const browser = import_browser.Browser.from(result.browser);
|
|
218
164
|
this._didLaunchBrowser(browser, {}, params.logger);
|
|
219
|
-
if (result.defaultContext)
|
|
165
|
+
if (result.defaultContext)
|
|
166
|
+
await this._didCreateContext(import_browserContext.BrowserContext.from(result.defaultContext), {}, {}, params.logger);
|
|
220
167
|
return browser;
|
|
221
168
|
}
|
|
222
169
|
_didLaunchBrowser(browser, browserOptions, logger) {
|
|
@@ -229,8 +176,10 @@ class BrowserType extends _channelOwner.ChannelOwner {
|
|
|
229
176
|
context._browserType = this;
|
|
230
177
|
this._contexts.add(context);
|
|
231
178
|
context._setOptions(contextOptions, browserOptions);
|
|
232
|
-
if (this._defaultContextTimeout !==
|
|
233
|
-
|
|
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);
|
|
234
183
|
await this._instrumentation.runAfterCreateBrowserContext(context);
|
|
235
184
|
}
|
|
236
185
|
async _willCloseContext(context) {
|
|
@@ -238,4 +187,7 @@ class BrowserType extends _channelOwner.ChannelOwner {
|
|
|
238
187
|
await this._instrumentation.runBeforeCloseBrowserContext(context);
|
|
239
188
|
}
|
|
240
189
|
}
|
|
241
|
-
|
|
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
|
+
});
|