@checkly/playwright-core 1.51.17-beta.2 → 1.54.2-beta.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/ThirdPartyNotices.txt +65 -123
- package/browsers.json +16 -14
- package/index.js +1 -1
- package/lib/androidServerImpl.js +47 -50
- package/lib/browserServerImpl.js +89 -69
- package/lib/checkly/escapeRegExp.js +23 -27
- package/lib/checkly/fetch.js +64 -46
- package/lib/checkly/secretsFilter.js +49 -35
- package/lib/cli/driver.js +71 -69
- package/lib/cli/program.js +400 -359
- package/lib/cli/programWithTestStub.js +51 -45
- package/lib/client/accessibility.js +31 -32
- package/lib/client/android.js +151 -242
- package/lib/client/api.js +135 -283
- package/lib/client/artifact.js +39 -36
- package/lib/client/browser.js +96 -71
- package/lib/client/browserContext.js +314 -345
- package/lib/client/browserType.js +103 -127
- package/lib/client/cdpSession.js +29 -31
- package/lib/client/channelOwner.js +89 -112
- package/lib/client/clientHelper.js +48 -39
- 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 +188 -214
- 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 +80 -77
- package/lib/client/elementHandle.js +120 -159
- 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 +166 -190
- package/lib/client/fileChooser.js +25 -24
- package/lib/client/fileUtils.js +31 -28
- package/lib/client/frame.js +207 -306
- package/lib/client/harRouter.js +42 -52
- package/lib/client/input.js +42 -69
- package/lib/client/jsHandle.js +54 -69
- package/lib/client/jsonPipe.js +27 -23
- package/lib/client/localUtils.js +29 -29
- package/lib/client/locator.js +145 -237
- package/lib/client/network.js +282 -307
- package/lib/client/page.js +269 -318
- package/lib/client/platform.js +46 -43
- package/lib/client/playwright.js +51 -76
- package/lib/client/selectors.js +45 -63
- package/lib/client/stream.js +29 -25
- package/lib/client/timeoutSettings.js +55 -41
- package/lib/client/tracing.js +49 -96
- 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 +43 -56
- package/lib/client/worker.js +48 -56
- package/lib/client/writableStream.js +27 -23
- package/lib/generated/bindingsControllerSource.js +28 -0
- package/lib/generated/clockSource.js +26 -6
- package/lib/generated/consoleApiSource.js +26 -6
- package/lib/generated/injectedScriptSource.js +26 -6
- package/lib/generated/pollingRecorderSource.js +26 -6
- package/lib/generated/storageScriptSource.js +28 -0
- package/lib/generated/utilityScriptSource.js +26 -6
- package/lib/generated/webSocketMockSource.js +333 -5
- package/lib/inProcessFactory.js +51 -53
- package/lib/inprocess.js +2 -19
- package/lib/outofprocess.js +51 -46
- package/lib/protocol/serializers.js +153 -134
- package/lib/protocol/validator.js +2807 -2739
- package/lib/protocol/validatorPrimitives.js +114 -73
- package/lib/remote/playwrightConnection.js +88 -242
- package/lib/remote/playwrightServer.js +305 -92
- package/lib/server/accessibility.js +44 -37
- package/lib/server/android/android.js +251 -241
- package/lib/server/android/backendAdb.js +87 -82
- package/lib/server/artifact.js +78 -55
- package/lib/server/bidi/bidiBrowser.js +297 -158
- package/lib/server/bidi/bidiChromium.js +119 -89
- package/lib/server/bidi/bidiConnection.js +66 -83
- package/lib/server/bidi/bidiExecutionContext.js +129 -113
- package/lib/server/bidi/bidiFirefox.js +86 -76
- package/lib/server/bidi/bidiInput.js +106 -117
- package/lib/server/bidi/bidiNetworkManager.js +142 -159
- package/lib/server/bidi/bidiOverCdp.js +57 -58
- package/lib/server/bidi/bidiPage.js +260 -260
- 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 +22 -137
- package/lib/server/bidi/third_party/bidiProtocolCore.js +152 -0
- package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
- 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 +93 -95
- package/lib/server/browserContext.js +419 -429
- package/lib/server/browserType.js +186 -216
- package/lib/server/callLog.js +47 -44
- package/lib/server/chromium/chromium.js +235 -203
- package/lib/server/chromium/chromiumSwitches.js +100 -67
- package/lib/server/chromium/crAccessibility.js +157 -131
- package/lib/server/chromium/crBrowser.js +310 -292
- package/lib/server/chromium/crConnection.js +95 -121
- package/lib/server/chromium/crCoverage.js +121 -131
- package/lib/server/chromium/crDevTools.js +60 -51
- package/lib/server/chromium/crDragDrop.js +68 -84
- package/lib/server/chromium/crExecutionContext.js +89 -83
- package/lib/server/chromium/crInput.js +118 -113
- package/lib/server/chromium/crNetworkManager.js +274 -375
- package/lib/server/chromium/crPage.js +536 -593
- package/lib/server/chromium/crPdf.js +54 -86
- package/lib/server/chromium/crProtocolHelper.js +92 -80
- package/lib/server/chromium/crServiceWorker.js +84 -73
- package/lib/server/chromium/defaultFontFamilies.js +152 -135
- package/lib/server/chromium/protocol.d.js +16 -0
- package/lib/server/chromium/videoRecorder.js +66 -99
- package/lib/server/clock.js +107 -83
- package/lib/server/codegen/csharp.js +192 -162
- package/lib/server/codegen/java.js +156 -129
- 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 +141 -126
- package/lib/server/codegen/types.js +15 -4
- package/lib/server/console.js +28 -32
- package/lib/server/cookieStore.js +108 -86
- package/lib/server/debugController.js +147 -151
- package/lib/server/debugger.js +86 -78
- package/lib/server/deviceDescriptors.js +37 -24
- package/lib/server/deviceDescriptorsSource.json +238 -128
- package/lib/server/dialog.js +84 -39
- package/lib/server/dispatchers/androidDispatcher.js +257 -148
- package/lib/server/dispatchers/artifactDispatcher.js +79 -79
- package/lib/server/dispatchers/browserContextDispatcher.js +289 -259
- package/lib/server/dispatchers/browserDispatcher.js +96 -148
- package/lib/server/dispatchers/browserTypeDispatcher.js +50 -41
- package/lib/server/dispatchers/cdpSessionDispatcher.js +35 -39
- package/lib/server/dispatchers/debugControllerDispatcher.js +65 -83
- package/lib/server/dispatchers/dialogDispatcher.js +34 -31
- package/lib/server/dispatchers/dispatcher.js +208 -248
- package/lib/server/dispatchers/electronDispatcher.js +66 -70
- package/lib/server/dispatchers/elementHandlerDispatcher.js +164 -216
- package/lib/server/dispatchers/frameDispatcher.js +211 -272
- package/lib/server/dispatchers/jsHandleDispatcher.js +63 -75
- package/lib/server/dispatchers/jsonPipeDispatcher.js +37 -38
- package/lib/server/dispatchers/localUtilsDispatcher.js +121 -119
- package/lib/server/dispatchers/networkDispatchers.js +117 -128
- package/lib/server/dispatchers/pageDispatcher.js +256 -248
- package/lib/server/dispatchers/playwrightDispatcher.js +92 -87
- package/lib/server/dispatchers/streamDispatcher.js +52 -48
- package/lib/server/dispatchers/tracingDispatcher.js +47 -52
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +126 -150
- package/lib/server/dispatchers/writableStreamDispatcher.js +65 -43
- package/lib/server/dom.js +485 -582
- package/lib/server/download.js +47 -37
- package/lib/server/electron/electron.js +216 -243
- package/lib/server/electron/loader.js +9 -37
- package/lib/server/errors.js +47 -46
- package/lib/server/fetch.js +317 -360
- package/lib/server/fileChooser.js +25 -24
- package/lib/server/fileUploadUtils.js +66 -60
- package/lib/server/firefox/ffAccessibility.js +153 -131
- package/lib/server/firefox/ffBrowser.js +268 -305
- package/lib/server/firefox/ffConnection.js +63 -84
- package/lib/server/firefox/ffExecutionContext.js +92 -73
- package/lib/server/firefox/ffInput.js +82 -84
- package/lib/server/firefox/ffNetworkManager.js +137 -114
- package/lib/server/firefox/ffPage.js +261 -293
- package/lib/server/firefox/firefox.js +80 -72
- package/lib/server/firefox/protocol.d.js +16 -0
- package/lib/server/formData.js +107 -35
- package/lib/server/frameSelectors.js +98 -114
- package/lib/server/frames.js +845 -1055
- package/lib/server/har/harRecorder.js +85 -77
- package/lib/server/har/harTracer.js +290 -223
- package/lib/server/harBackend.js +80 -80
- package/lib/server/helper.js +55 -59
- package/lib/server/index.js +59 -99
- package/lib/server/input.js +151 -189
- package/lib/server/instrumentation.js +57 -44
- package/lib/server/javascript.js +133 -134
- package/lib/server/launchApp.js +113 -75
- package/lib/server/localUtils.js +150 -142
- package/lib/server/macEditingCommands.js +141 -137
- package/lib/server/network.js +299 -303
- package/lib/server/page.js +513 -544
- package/lib/server/pipeTransport.js +49 -45
- package/lib/server/playwright.js +58 -67
- package/lib/server/progress.js +137 -68
- package/lib/server/protocolError.js +34 -31
- package/lib/server/recorder/chat.js +70 -86
- package/lib/server/recorder/recorderApp.js +341 -176
- package/lib/server/recorder/recorderInTraceViewer.js +65 -94
- package/lib/server/recorder/recorderRunner.js +93 -116
- package/lib/server/recorder/recorderSignalProcessor.js +83 -0
- package/lib/server/recorder/recorderUtils.js +104 -47
- package/lib/server/recorder/throttledFile.js +42 -30
- package/lib/server/recorder.js +395 -275
- package/lib/server/registry/browserFetcher.js +106 -101
- package/lib/server/registry/dependencies.js +245 -196
- package/lib/server/registry/index.js +930 -803
- package/lib/server/registry/nativeDeps.js +1073 -464
- package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
- package/lib/server/screenshotter.js +160 -191
- package/lib/server/selectors.js +90 -51
- package/lib/server/socksClientCertificatesInterceptor.js +171 -186
- package/lib/server/socksInterceptor.js +62 -70
- package/lib/server/trace/recorder/snapshotter.js +76 -102
- package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
- package/lib/server/trace/recorder/tracing.js +354 -362
- package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
- package/lib/server/trace/viewer/traceViewer.js +160 -147
- package/lib/server/transport.js +119 -134
- 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 +36 -32
- package/lib/server/utils/debugLogger.js +77 -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 +141 -126
- 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 +152 -96
- 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 +68 -75
- 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 +77 -61
- package/lib/server/webkit/wkAccessibility.js +161 -118
- package/lib/server/webkit/wkBrowser.js +193 -184
- package/lib/server/webkit/wkConnection.js +59 -83
- package/lib/server/webkit/wkExecutionContext.js +85 -70
- package/lib/server/webkit/wkInput.js +97 -95
- package/lib/server/webkit/wkInterceptableRequest.js +102 -95
- package/lib/server/webkit/wkPage.js +568 -667
- package/lib/server/webkit/wkProvisionalPage.js +45 -56
- package/lib/server/webkit/wkWorkers.js +79 -79
- package/lib/utils/expectUtils.js +31 -26
- package/lib/utils/isomorphic/ariaSnapshot.js +149 -152
- package/lib/utils/isomorphic/assert.js +28 -22
- package/lib/utils/isomorphic/colors.js +66 -59
- package/lib/utils/isomorphic/cssParser.js +120 -125
- package/lib/utils/isomorphic/cssTokenizer.js +436 -364
- package/lib/utils/isomorphic/headers.js +38 -37
- package/lib/utils/isomorphic/locatorGenerators.js +358 -357
- package/lib/utils/isomorphic/locatorParser.js +96 -105
- package/lib/utils/isomorphic/locatorUtils.js +63 -44
- package/lib/utils/isomorphic/manualPromise.js +46 -39
- package/lib/utils/isomorphic/mimeType.js +447 -25
- package/lib/utils/isomorphic/multimap.js +34 -27
- package/lib/utils/isomorphic/protocolFormatter.js +68 -0
- package/lib/utils/isomorphic/protocolMetainfo.js +321 -0
- package/lib/utils/isomorphic/recorderUtils.js +140 -181
- package/lib/utils/isomorphic/rtti.js +35 -33
- package/lib/utils/isomorphic/selectorParser.js +182 -193
- package/lib/utils/isomorphic/semaphore.js +27 -24
- package/lib/utils/isomorphic/stackTrace.js +87 -98
- package/lib/utils/isomorphic/stringUtils.js +98 -112
- package/lib/utils/isomorphic/time.js +46 -22
- package/lib/utils/isomorphic/timeoutRunner.js +53 -53
- package/lib/utils/isomorphic/traceUtils.js +37 -41
- package/lib/utils/isomorphic/types.js +15 -4
- package/lib/utils/isomorphic/urlMatch.js +113 -67
- package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
- package/lib/utils.js +101 -443
- package/lib/utilsBundle.js +101 -52
- package/lib/utilsBundleImpl/index.js +160 -150
- package/lib/zipBundle.js +32 -23
- package/lib/zipBundleImpl.js +4 -4
- package/package.json +1 -1
- package/types/protocol.d.ts +1267 -1057
- package/types/types.d.ts +131 -29
- 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/compare.js +0 -108
- package/lib/image_tools/imageChannel.js +0 -70
- package/lib/image_tools/stats.js +0 -102
- package/lib/protocol/debug.js +0 -27
- package/lib/protocol/transport.js +0 -82
- package/lib/server/dispatchers/selectorsDispatcher.js +0 -36
- package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
- package/lib/server/recorder/contextRecorder.js +0 -290
- package/lib/server/recorder/recorderCollection.js +0 -104
- package/lib/server/recorder/recorderFrontend.js +0 -5
- package/lib/server/storageScript.js +0 -160
- package/lib/server/timeoutSettings.js +0 -74
- package/lib/third_party/diff_match_patch.js +0 -2222
- package/lib/utils/ascii.js +0 -31
- package/lib/utils/comparators.js +0 -171
- package/lib/utils/crypto.js +0 -174
- 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/fileUtils.js +0 -205
- package/lib/utils/happy-eyeballs.js +0 -210
- package/lib/utils/headers.js +0 -52
- package/lib/utils/hostPlatform.js +0 -133
- package/lib/utils/httpServer.js +0 -237
- package/lib/utils/index.js +0 -368
- 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/spawnAsync.js +0 -45
- package/lib/utils/stackTrace.js +0 -121
- 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 -62
- package/lib/vite/htmlReport/index.html +0 -69
- package/lib/vite/recorder/assets/codeMirrorModule-B9YMkrwa.js +0 -24
- package/lib/vite/recorder/assets/codeMirrorModule-C3UTv-Ge.css +0 -1
- package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
- package/lib/vite/recorder/assets/index-ELPgmkwA.js +0 -184
- package/lib/vite/recorder/assets/index-eHBmevrY.css +0 -1
- package/lib/vite/recorder/index.html +0 -29
- package/lib/vite/recorder/playwright-logo.svg +0 -9
- package/lib/vite/traceViewer/assets/codeMirrorModule-gU1OOCQO.js +0 -24
- package/lib/vite/traceViewer/assets/defaultSettingsView-B5n_FjMx.js +0 -1
- package/lib/vite/traceViewer/assets/inspectorTab-6Tru8Mn_.js +0 -235
- package/lib/vite/traceViewer/assets/workbench-B_Nj4NA2.js +0 -25
- package/lib/vite/traceViewer/assets/xtermModule-BoAIEibi.js +0 -9
- package/lib/vite/traceViewer/codeMirrorModule.C3UTv-Ge.css +0 -1
- package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
- package/lib/vite/traceViewer/defaultSettingsView.CO3FR0CX.css +0 -1
- package/lib/vite/traceViewer/embedded.DpNPH6mk.js +0 -2
- package/lib/vite/traceViewer/embedded.html +0 -18
- package/lib/vite/traceViewer/embedded.mLhjB5IF.css +0 -1
- package/lib/vite/traceViewer/index.CFOW-Ezb.css +0 -1
- package/lib/vite/traceViewer/index.CuE3SYGw.js +0 -2
- package/lib/vite/traceViewer/index.html +0 -47
- package/lib/vite/traceViewer/inspectorTab.CXDulcFG.css +0 -1
- package/lib/vite/traceViewer/playwright-logo.svg +0 -9
- package/lib/vite/traceViewer/recorder.BD-uZJs7.js +0 -2
- package/lib/vite/traceViewer/recorder.html +0 -17
- package/lib/vite/traceViewer/recorder.tn0RQdqM.css +0 -0
- package/lib/vite/traceViewer/snapshot.html +0 -21
- package/lib/vite/traceViewer/sw.bundle.js +0 -3
- package/lib/vite/traceViewer/uiMode.BatfzHMG.css +0 -1
- package/lib/vite/traceViewer/uiMode.DHrNgddz.js +0 -5
- package/lib/vite/traceViewer/uiMode.html +0 -21
- package/lib/vite/traceViewer/workbench.B9vIAzH9.css +0 -1
- package/lib/vite/traceViewer/xtermModule.Beg8tuEN.css +0 -32
package/lib/server/javascript.js
CHANGED
|
@@ -1,45 +1,53 @@
|
|
|
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 javascript_exports = {};
|
|
30
|
+
__export(javascript_exports, {
|
|
31
|
+
ExecutionContext: () => ExecutionContext,
|
|
32
|
+
JSHandle: () => JSHandle,
|
|
33
|
+
JavaScriptErrorInEvaluate: () => JavaScriptErrorInEvaluate,
|
|
34
|
+
evaluate: () => evaluate,
|
|
35
|
+
evaluateExpression: () => evaluateExpression,
|
|
36
|
+
isJavaScriptErrorInEvaluate: () => isJavaScriptErrorInEvaluate,
|
|
37
|
+
normalizeEvaluationExpression: () => normalizeEvaluationExpression,
|
|
38
|
+
parseUnserializableValue: () => parseUnserializableValue,
|
|
39
|
+
sparseArrayToString: () => sparseArrayToString
|
|
5
40
|
});
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var _instrumentation = require("./instrumentation");
|
|
14
|
-
var utilityScriptSource = _interopRequireWildcard(require("../generated/utilityScriptSource"));
|
|
15
|
-
var _utils = require("../utils");
|
|
16
|
-
var _utilityScriptSerializers = require("./isomorphic/utilityScriptSerializers");
|
|
17
|
-
var _manualPromise = require("../utils/isomorphic/manualPromise");
|
|
18
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
19
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
|
-
/**
|
|
21
|
-
* Copyright (c) Microsoft Corporation.
|
|
22
|
-
*
|
|
23
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
24
|
-
* you may not use this file except in compliance with the License.
|
|
25
|
-
* You may obtain a copy of the License at
|
|
26
|
-
*
|
|
27
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
28
|
-
*
|
|
29
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
30
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
31
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
32
|
-
* See the License for the specific language governing permissions and
|
|
33
|
-
* limitations under the License.
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
class ExecutionContext extends _instrumentation.SdkObject {
|
|
41
|
+
module.exports = __toCommonJS(javascript_exports);
|
|
42
|
+
var import_instrumentation = require("./instrumentation");
|
|
43
|
+
var rawUtilityScriptSource = __toESM(require("../generated/utilityScriptSource"));
|
|
44
|
+
var import_utils = require("../utils");
|
|
45
|
+
var import_utilityScriptSerializers = require("../utils/isomorphic/utilityScriptSerializers");
|
|
46
|
+
var import_manualPromise = require("../utils/isomorphic/manualPromise");
|
|
47
|
+
class ExecutionContext extends import_instrumentation.SdkObject {
|
|
37
48
|
constructor(parent, delegate, worldNameForTest) {
|
|
38
|
-
super(parent,
|
|
39
|
-
this.
|
|
40
|
-
this._utilityScriptPromise = void 0;
|
|
41
|
-
this._contextDestroyedScope = new _manualPromise.LongStandingScope();
|
|
42
|
-
this.worldNameForTest = void 0;
|
|
49
|
+
super(parent, "execution-context");
|
|
50
|
+
this._contextDestroyedScope = new import_manualPromise.LongStandingScope();
|
|
43
51
|
this.worldNameForTest = worldNameForTest;
|
|
44
52
|
this.delegate = delegate;
|
|
45
53
|
}
|
|
@@ -56,7 +64,7 @@ class ExecutionContext extends _instrumentation.SdkObject {
|
|
|
56
64
|
return this._raceAgainstContextDestroyed(this.delegate.rawEvaluateHandle(this, expression));
|
|
57
65
|
}
|
|
58
66
|
async evaluateWithArguments(expression, returnByValue, values, handles) {
|
|
59
|
-
const utilityScript = await this.
|
|
67
|
+
const utilityScript = await this.utilityScript();
|
|
60
68
|
return this._raceAgainstContextDestroyed(this.delegate.evaluateWithArguments(expression, returnByValue, utilityScript, values, handles));
|
|
61
69
|
}
|
|
62
70
|
getProperties(object) {
|
|
@@ -68,73 +76,58 @@ class ExecutionContext extends _instrumentation.SdkObject {
|
|
|
68
76
|
adoptIfNeeded(handle) {
|
|
69
77
|
return null;
|
|
70
78
|
}
|
|
71
|
-
|
|
79
|
+
utilityScript() {
|
|
72
80
|
if (!this._utilityScriptPromise) {
|
|
73
81
|
const source = `
|
|
74
82
|
(() => {
|
|
75
83
|
const module = {};
|
|
76
|
-
${
|
|
77
|
-
return new (module.exports.UtilityScript())(${(0,
|
|
84
|
+
${rawUtilityScriptSource.source}
|
|
85
|
+
return new (module.exports.UtilityScript())(globalThis, ${(0, import_utils.isUnderTest)()});
|
|
78
86
|
})();`;
|
|
79
|
-
this._utilityScriptPromise = this._raceAgainstContextDestroyed(this.delegate.rawEvaluateHandle(this, source)).then(handle => {
|
|
80
|
-
handle._setPreview(
|
|
87
|
+
this._utilityScriptPromise = this._raceAgainstContextDestroyed(this.delegate.rawEvaluateHandle(this, source)).then((handle) => {
|
|
88
|
+
handle._setPreview("UtilityScript");
|
|
81
89
|
return handle;
|
|
82
90
|
});
|
|
83
91
|
}
|
|
84
92
|
return this._utilityScriptPromise;
|
|
85
93
|
}
|
|
86
94
|
async doSlowMo() {
|
|
87
|
-
// overridden in FrameExecutionContext
|
|
88
95
|
}
|
|
89
96
|
}
|
|
90
|
-
|
|
91
|
-
class JSHandle extends _instrumentation.SdkObject {
|
|
97
|
+
class JSHandle extends import_instrumentation.SdkObject {
|
|
92
98
|
constructor(context, type, preview, objectId, value) {
|
|
93
|
-
super(context,
|
|
99
|
+
super(context, "handle");
|
|
94
100
|
this.__jshandle = true;
|
|
95
|
-
this._context = void 0;
|
|
96
101
|
this._disposed = false;
|
|
97
|
-
this._objectId = void 0;
|
|
98
|
-
this._value = void 0;
|
|
99
|
-
this._objectType = void 0;
|
|
100
|
-
this._preview = void 0;
|
|
101
|
-
this._previewCallback = void 0;
|
|
102
102
|
this._context = context;
|
|
103
103
|
this._objectId = objectId;
|
|
104
104
|
this._value = value;
|
|
105
105
|
this._objectType = type;
|
|
106
106
|
this._preview = this._objectId ? preview || `JSHandle@${this._objectType}` : String(value);
|
|
107
|
-
if (this._objectId && globalThis.leakedJSHandles)
|
|
107
|
+
if (this._objectId && globalThis.leakedJSHandles)
|
|
108
|
+
globalThis.leakedJSHandles.set(this, new Error("Leaked JSHandle"));
|
|
108
109
|
}
|
|
109
110
|
async evaluate(pageFunction, arg) {
|
|
110
|
-
return evaluate(this._context, true
|
|
111
|
+
return evaluate(this._context, true, pageFunction, this, arg);
|
|
111
112
|
}
|
|
112
113
|
async evaluateHandle(pageFunction, arg) {
|
|
113
|
-
return evaluate(this._context, false
|
|
114
|
+
return evaluate(this._context, false, pageFunction, this, arg);
|
|
114
115
|
}
|
|
115
116
|
async evaluateExpression(expression, options, arg) {
|
|
116
|
-
const value = await evaluateExpression(this._context, expression, {
|
|
117
|
-
...options,
|
|
118
|
-
returnByValue: true
|
|
119
|
-
}, this, arg);
|
|
117
|
+
const value = await evaluateExpression(this._context, expression, { ...options, returnByValue: true }, this, arg);
|
|
120
118
|
await this._context.doSlowMo();
|
|
121
119
|
return value;
|
|
122
120
|
}
|
|
123
121
|
async evaluateExpressionHandle(expression, options, arg) {
|
|
124
|
-
const value = await evaluateExpression(this._context, expression, {
|
|
125
|
-
...options,
|
|
126
|
-
returnByValue: false
|
|
127
|
-
}, this, arg);
|
|
122
|
+
const value = await evaluateExpression(this._context, expression, { ...options, returnByValue: false }, this, arg);
|
|
128
123
|
await this._context.doSlowMo();
|
|
129
124
|
return value;
|
|
130
125
|
}
|
|
131
126
|
async getProperty(propertyName) {
|
|
132
|
-
const objectHandle = await this.evaluateHandle((object,
|
|
133
|
-
const
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
result[propertyName] = object[propertyName];
|
|
137
|
-
return result;
|
|
127
|
+
const objectHandle = await this.evaluateHandle((object, propertyName2) => {
|
|
128
|
+
const result2 = { __proto__: null };
|
|
129
|
+
result2[propertyName2] = object[propertyName2];
|
|
130
|
+
return result2;
|
|
138
131
|
}, propertyName);
|
|
139
132
|
const properties = await objectHandle.getProperties();
|
|
140
133
|
const result = properties.get(propertyName);
|
|
@@ -142,14 +135,16 @@ class JSHandle extends _instrumentation.SdkObject {
|
|
|
142
135
|
return result;
|
|
143
136
|
}
|
|
144
137
|
async getProperties() {
|
|
145
|
-
if (!this._objectId)
|
|
138
|
+
if (!this._objectId)
|
|
139
|
+
return /* @__PURE__ */ new Map();
|
|
146
140
|
return this._context.getProperties(this);
|
|
147
141
|
}
|
|
148
142
|
rawValue() {
|
|
149
143
|
return this._value;
|
|
150
144
|
}
|
|
151
145
|
async jsonValue() {
|
|
152
|
-
if (!this._objectId)
|
|
146
|
+
if (!this._objectId)
|
|
147
|
+
return this._value;
|
|
153
148
|
const script = `(utilityScript, ...args) => utilityScript.jsonValue(...args)`;
|
|
154
149
|
return this._context.evaluateWithArguments(script, true, [true], [this]);
|
|
155
150
|
}
|
|
@@ -157,11 +152,14 @@ class JSHandle extends _instrumentation.SdkObject {
|
|
|
157
152
|
return null;
|
|
158
153
|
}
|
|
159
154
|
dispose() {
|
|
160
|
-
if (this._disposed)
|
|
155
|
+
if (this._disposed)
|
|
156
|
+
return;
|
|
161
157
|
this._disposed = true;
|
|
162
158
|
if (this._objectId) {
|
|
163
|
-
this._context.releaseHandle(this).catch(e => {
|
|
164
|
-
|
|
159
|
+
this._context.releaseHandle(this).catch((e) => {
|
|
160
|
+
});
|
|
161
|
+
if (globalThis.leakedJSHandles)
|
|
162
|
+
globalThis.leakedJSHandles.delete(this);
|
|
165
163
|
}
|
|
166
164
|
}
|
|
167
165
|
toString() {
|
|
@@ -178,115 +176,116 @@ class JSHandle extends _instrumentation.SdkObject {
|
|
|
178
176
|
}
|
|
179
177
|
_setPreview(preview) {
|
|
180
178
|
this._preview = preview;
|
|
181
|
-
if (this._previewCallback)
|
|
179
|
+
if (this._previewCallback)
|
|
180
|
+
this._previewCallback(preview);
|
|
182
181
|
}
|
|
183
182
|
}
|
|
184
|
-
exports.JSHandle = JSHandle;
|
|
185
183
|
async function evaluate(context, returnByValue, pageFunction, ...args) {
|
|
186
|
-
return evaluateExpression(context, String(pageFunction), {
|
|
187
|
-
returnByValue,
|
|
188
|
-
isFunction: typeof pageFunction === 'function'
|
|
189
|
-
}, ...args);
|
|
184
|
+
return evaluateExpression(context, String(pageFunction), { returnByValue, isFunction: typeof pageFunction === "function" }, ...args);
|
|
190
185
|
}
|
|
191
186
|
async function evaluateExpression(context, expression, options, ...args) {
|
|
192
187
|
expression = normalizeEvaluationExpression(expression, options.isFunction);
|
|
193
188
|
const handles = [];
|
|
194
189
|
const toDispose = [];
|
|
195
|
-
const pushHandle = handle => {
|
|
190
|
+
const pushHandle = (handle) => {
|
|
196
191
|
handles.push(handle);
|
|
197
192
|
return handles.length - 1;
|
|
198
193
|
};
|
|
199
|
-
args = args.map(arg => (0,
|
|
194
|
+
args = args.map((arg) => (0, import_utilityScriptSerializers.serializeAsCallArgument)(arg, (handle) => {
|
|
200
195
|
if (handle instanceof JSHandle) {
|
|
201
|
-
if (!handle._objectId)
|
|
202
|
-
fallThrough: handle._value
|
|
203
|
-
|
|
204
|
-
|
|
196
|
+
if (!handle._objectId)
|
|
197
|
+
return { fallThrough: handle._value };
|
|
198
|
+
if (handle._disposed)
|
|
199
|
+
throw new JavaScriptErrorInEvaluate("JSHandle is disposed!");
|
|
205
200
|
const adopted = context.adoptIfNeeded(handle);
|
|
206
|
-
if (adopted === null)
|
|
207
|
-
h: pushHandle(Promise.resolve(handle))
|
|
208
|
-
};
|
|
201
|
+
if (adopted === null)
|
|
202
|
+
return { h: pushHandle(Promise.resolve(handle)) };
|
|
209
203
|
toDispose.push(adopted);
|
|
210
|
-
return {
|
|
211
|
-
h: pushHandle(adopted)
|
|
212
|
-
};
|
|
204
|
+
return { h: pushHandle(adopted) };
|
|
213
205
|
}
|
|
214
|
-
return {
|
|
215
|
-
fallThrough: handle
|
|
216
|
-
};
|
|
206
|
+
return { fallThrough: handle };
|
|
217
207
|
}));
|
|
218
208
|
const utilityScriptObjects = [];
|
|
219
209
|
for (const handle of await Promise.all(handles)) {
|
|
220
|
-
if (handle._context !== context)
|
|
210
|
+
if (handle._context !== context)
|
|
211
|
+
throw new JavaScriptErrorInEvaluate("JSHandles can be evaluated only in the context they were created!");
|
|
221
212
|
utilityScriptObjects.push(handle);
|
|
222
213
|
}
|
|
223
|
-
|
|
224
|
-
// See UtilityScript for arguments.
|
|
225
214
|
const utilityScriptValues = [options.isFunction, options.returnByValue, expression, args.length, ...args];
|
|
226
215
|
const script = `(utilityScript, ...args) => utilityScript.evaluate(...args)`;
|
|
227
216
|
try {
|
|
228
217
|
return await context.evaluateWithArguments(script, options.returnByValue || false, utilityScriptValues, utilityScriptObjects);
|
|
229
218
|
} finally {
|
|
230
|
-
toDispose.map(handlePromise => handlePromise.then(handle => handle.dispose()));
|
|
219
|
+
toDispose.map((handlePromise) => handlePromise.then((handle) => handle.dispose()));
|
|
231
220
|
}
|
|
232
221
|
}
|
|
233
222
|
function parseUnserializableValue(unserializableValue) {
|
|
234
|
-
if (unserializableValue ===
|
|
235
|
-
|
|
236
|
-
if (unserializableValue ===
|
|
237
|
-
|
|
223
|
+
if (unserializableValue === "NaN")
|
|
224
|
+
return NaN;
|
|
225
|
+
if (unserializableValue === "Infinity")
|
|
226
|
+
return Infinity;
|
|
227
|
+
if (unserializableValue === "-Infinity")
|
|
228
|
+
return -Infinity;
|
|
229
|
+
if (unserializableValue === "-0")
|
|
230
|
+
return -0;
|
|
238
231
|
}
|
|
239
232
|
function normalizeEvaluationExpression(expression, isFunction) {
|
|
240
233
|
expression = expression.trim();
|
|
241
234
|
if (isFunction) {
|
|
242
235
|
try {
|
|
243
|
-
new Function(
|
|
236
|
+
new Function("(" + expression + ")");
|
|
244
237
|
} catch (e1) {
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
238
|
+
if (expression.startsWith("async "))
|
|
239
|
+
expression = "async function " + expression.substring("async ".length);
|
|
240
|
+
else
|
|
241
|
+
expression = "function " + expression;
|
|
248
242
|
try {
|
|
249
|
-
new Function(
|
|
243
|
+
new Function("(" + expression + ")");
|
|
250
244
|
} catch (e2) {
|
|
251
|
-
|
|
252
|
-
throw new Error('Passed function is not well-serializable!');
|
|
245
|
+
throw new Error("Passed function is not well-serializable!");
|
|
253
246
|
}
|
|
254
247
|
}
|
|
255
248
|
}
|
|
256
|
-
if (/^(async)?\s*function(\s|\()/.test(expression))
|
|
249
|
+
if (/^(async)?\s*function(\s|\()/.test(expression))
|
|
250
|
+
expression = "(" + expression + ")";
|
|
257
251
|
return expression;
|
|
258
252
|
}
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
class JavaScriptErrorInEvaluate extends Error {}
|
|
262
|
-
exports.JavaScriptErrorInEvaluate = JavaScriptErrorInEvaluate;
|
|
253
|
+
class JavaScriptErrorInEvaluate extends Error {
|
|
254
|
+
}
|
|
263
255
|
function isJavaScriptErrorInEvaluate(error) {
|
|
264
256
|
return error instanceof JavaScriptErrorInEvaluate;
|
|
265
257
|
}
|
|
266
258
|
function sparseArrayToString(entries) {
|
|
267
259
|
const arrayEntries = [];
|
|
268
|
-
for (const {
|
|
269
|
-
name,
|
|
270
|
-
value
|
|
271
|
-
} of entries) {
|
|
260
|
+
for (const { name, value } of entries) {
|
|
272
261
|
const index = +name;
|
|
273
|
-
if (isNaN(index) || index < 0)
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
value
|
|
277
|
-
});
|
|
262
|
+
if (isNaN(index) || index < 0)
|
|
263
|
+
continue;
|
|
264
|
+
arrayEntries.push({ index, value });
|
|
278
265
|
}
|
|
279
266
|
arrayEntries.sort((a, b) => a.index - b.index);
|
|
280
267
|
let lastIndex = -1;
|
|
281
268
|
const tokens = [];
|
|
282
|
-
for (const {
|
|
283
|
-
index,
|
|
284
|
-
value
|
|
285
|
-
} of arrayEntries) {
|
|
269
|
+
for (const { index, value } of arrayEntries) {
|
|
286
270
|
const emptyItems = index - lastIndex - 1;
|
|
287
|
-
if (emptyItems === 1)
|
|
271
|
+
if (emptyItems === 1)
|
|
272
|
+
tokens.push(`empty`);
|
|
273
|
+
else if (emptyItems > 1)
|
|
274
|
+
tokens.push(`empty x ${emptyItems}`);
|
|
288
275
|
tokens.push(String(value));
|
|
289
276
|
lastIndex = index;
|
|
290
277
|
}
|
|
291
|
-
return
|
|
292
|
-
}
|
|
278
|
+
return "[" + tokens.join(", ") + "]";
|
|
279
|
+
}
|
|
280
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
281
|
+
0 && (module.exports = {
|
|
282
|
+
ExecutionContext,
|
|
283
|
+
JSHandle,
|
|
284
|
+
JavaScriptErrorInEvaluate,
|
|
285
|
+
evaluate,
|
|
286
|
+
evaluateExpression,
|
|
287
|
+
isJavaScriptErrorInEvaluate,
|
|
288
|
+
normalizeEvaluationExpression,
|
|
289
|
+
parseUnserializableValue,
|
|
290
|
+
sparseArrayToString
|
|
291
|
+
});
|
package/lib/server/launchApp.js
CHANGED
|
@@ -1,91 +1,129 @@
|
|
|
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 launchApp_exports = {};
|
|
30
|
+
__export(launchApp_exports, {
|
|
31
|
+
launchApp: () => launchApp,
|
|
32
|
+
syncLocalStorageWithSettings: () => syncLocalStorageWithSettings
|
|
5
33
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Copyright (c) Microsoft Corporation.
|
|
16
|
-
*
|
|
17
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
18
|
-
* you may not use this file except in compliance with the License.
|
|
19
|
-
* You may obtain a copy of the License at
|
|
20
|
-
*
|
|
21
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
22
|
-
*
|
|
23
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
24
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
25
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
26
|
-
* See the License for the specific language governing permissions and
|
|
27
|
-
* limitations under the License.
|
|
28
|
-
*/
|
|
29
|
-
|
|
34
|
+
module.exports = __toCommonJS(launchApp_exports);
|
|
35
|
+
var import_fs = __toESM(require("fs"));
|
|
36
|
+
var import_path = __toESM(require("path"));
|
|
37
|
+
var import_utils = require("../utils");
|
|
38
|
+
var import_instrumentation = require("./instrumentation");
|
|
39
|
+
var import_registry = require("./registry");
|
|
40
|
+
var import_registry2 = require("./registry");
|
|
41
|
+
var import_progress = require("./progress");
|
|
30
42
|
async function launchApp(browserType, options) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (browserType.name() ===
|
|
34
|
-
args.push(
|
|
43
|
+
const args = [...options.persistentContextOptions?.args ?? []];
|
|
44
|
+
let channel = options.persistentContextOptions?.channel;
|
|
45
|
+
if (browserType.name() === "chromium") {
|
|
46
|
+
args.push(
|
|
47
|
+
"--app=data:text/html,",
|
|
48
|
+
`--window-size=${options.windowSize.width},${options.windowSize.height}`,
|
|
49
|
+
...options.windowPosition ? [`--window-position=${options.windowPosition.x},${options.windowPosition.y}`] : [],
|
|
50
|
+
"--test-type="
|
|
51
|
+
);
|
|
52
|
+
if (!channel && !options.persistentContextOptions?.executablePath)
|
|
53
|
+
channel = (0, import_registry.findChromiumChannelBestEffort)(options.sdkLanguage);
|
|
54
|
+
}
|
|
55
|
+
const controller = new import_progress.ProgressController((0, import_instrumentation.serverSideCallMetadata)(), browserType);
|
|
56
|
+
let context;
|
|
57
|
+
try {
|
|
58
|
+
context = await controller.run((progress) => browserType.launchPersistentContext(progress, "", {
|
|
59
|
+
ignoreDefaultArgs: ["--enable-automation"],
|
|
60
|
+
...options?.persistentContextOptions,
|
|
61
|
+
channel,
|
|
62
|
+
noDefaultViewport: options.persistentContextOptions?.noDefaultViewport ?? true,
|
|
63
|
+
acceptDownloads: options?.persistentContextOptions?.acceptDownloads ?? ((0, import_utils.isUnderTest)() ? "accept" : "internal-browser-default"),
|
|
64
|
+
colorScheme: options?.persistentContextOptions?.colorScheme ?? "no-override",
|
|
65
|
+
args
|
|
66
|
+
}), 0);
|
|
67
|
+
} catch (error) {
|
|
68
|
+
if (channel) {
|
|
69
|
+
error = (0, import_utils.rewriteErrorMessage)(error, [
|
|
70
|
+
`Failed to launch "${channel}" channel.`,
|
|
71
|
+
"Using custom channels could lead to unexpected behavior due to Enterprise policies (chrome://policy).",
|
|
72
|
+
"Install the default browser instead:",
|
|
73
|
+
(0, import_utils.wrapInASCIIBox)(`${(0, import_registry.buildPlaywrightCLICommand)(options.sdkLanguage, "install")}`, 2)
|
|
74
|
+
].join("\n"));
|
|
75
|
+
}
|
|
76
|
+
throw error;
|
|
35
77
|
}
|
|
36
|
-
const context = await browserType.launchPersistentContext((0, _instrumentation.serverSideCallMetadata)(), '', {
|
|
37
|
-
ignoreDefaultArgs: ['--enable-automation'],
|
|
38
|
-
...(options === null || options === void 0 ? void 0 : options.persistentContextOptions),
|
|
39
|
-
channel: (_options$persistentCo3 = (_options$persistentCo4 = options.persistentContextOptions) === null || _options$persistentCo4 === void 0 ? void 0 : _options$persistentCo4.channel) !== null && _options$persistentCo3 !== void 0 ? _options$persistentCo3 : !((_options$persistentCo5 = options.persistentContextOptions) !== null && _options$persistentCo5 !== void 0 && _options$persistentCo5.executablePath) ? (0, _registry.findChromiumChannel)(options.sdkLanguage) : undefined,
|
|
40
|
-
noDefaultViewport: (_options$persistentCo6 = (_options$persistentCo7 = options.persistentContextOptions) === null || _options$persistentCo7 === void 0 ? void 0 : _options$persistentCo7.noDefaultViewport) !== null && _options$persistentCo6 !== void 0 ? _options$persistentCo6 : true,
|
|
41
|
-
acceptDownloads: (_options$persistentCo8 = options === null || options === void 0 || (_options$persistentCo9 = options.persistentContextOptions) === null || _options$persistentCo9 === void 0 ? void 0 : _options$persistentCo9.acceptDownloads) !== null && _options$persistentCo8 !== void 0 ? _options$persistentCo8 : (0, _utils.isUnderTest)() ? 'accept' : 'internal-browser-default',
|
|
42
|
-
colorScheme: (_options$persistentCo10 = options === null || options === void 0 || (_options$persistentCo11 = options.persistentContextOptions) === null || _options$persistentCo11 === void 0 ? void 0 : _options$persistentCo11.colorScheme) !== null && _options$persistentCo10 !== void 0 ? _options$persistentCo10 : 'no-override',
|
|
43
|
-
args
|
|
44
|
-
});
|
|
45
78
|
const [page] = context.pages();
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
context.on('page', async newPage => {
|
|
50
|
-
if (newPage.mainFrame().url() === 'chrome://new-tab-page/') {
|
|
79
|
+
if (browserType.name() === "chromium" && process.platform === "darwin") {
|
|
80
|
+
context.on("page", async (newPage) => {
|
|
81
|
+
if (newPage.mainFrame().url() === "chrome://new-tab-page/") {
|
|
51
82
|
await page.bringToFront();
|
|
52
|
-
await newPage.close(
|
|
83
|
+
await newPage.close();
|
|
53
84
|
}
|
|
54
85
|
});
|
|
55
86
|
}
|
|
56
|
-
if (browserType.name() ===
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
page
|
|
60
|
-
};
|
|
87
|
+
if (browserType.name() === "chromium")
|
|
88
|
+
await installAppIcon(page);
|
|
89
|
+
return { context, page };
|
|
61
90
|
}
|
|
62
91
|
async function installAppIcon(page) {
|
|
63
|
-
const icon = await
|
|
64
|
-
const crPage = page.
|
|
65
|
-
await crPage._mainFrameSession._client.send(
|
|
66
|
-
image: icon.toString(
|
|
92
|
+
const icon = await import_fs.default.promises.readFile(require.resolve("./chromium/appIcon.png"));
|
|
93
|
+
const crPage = page.delegate;
|
|
94
|
+
await crPage._mainFrameSession._client.send("Browser.setDockTile", {
|
|
95
|
+
image: icon.toString("base64")
|
|
67
96
|
});
|
|
68
97
|
}
|
|
69
98
|
async function syncLocalStorageWithSettings(page, appName) {
|
|
70
|
-
if ((0,
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
99
|
+
if ((0, import_utils.isUnderTest)())
|
|
100
|
+
return;
|
|
101
|
+
const settingsFile = import_path.default.join(import_registry2.registryDirectory, ".settings", `${appName}.json`);
|
|
102
|
+
const controller = new import_progress.ProgressController((0, import_instrumentation.serverSideCallMetadata)(), page);
|
|
103
|
+
await controller.run(async (progress) => {
|
|
104
|
+
await page.exposeBinding(progress, "_saveSerializedSettings", false, (_, settings2) => {
|
|
105
|
+
import_fs.default.mkdirSync(import_path.default.dirname(settingsFile), { recursive: true });
|
|
106
|
+
import_fs.default.writeFileSync(settingsFile, settings2);
|
|
75
107
|
});
|
|
76
|
-
|
|
108
|
+
const settings = await import_fs.default.promises.readFile(settingsFile, "utf-8").catch(() => "{}");
|
|
109
|
+
await page.addInitScript(
|
|
110
|
+
progress,
|
|
111
|
+
`(${String((settings2) => {
|
|
112
|
+
if (location && location.protocol === "data:")
|
|
113
|
+
return;
|
|
114
|
+
if (window.top !== window)
|
|
115
|
+
return;
|
|
116
|
+
Object.entries(settings2).map(([k, v]) => localStorage[k] = v);
|
|
117
|
+
window.saveSettings = () => {
|
|
118
|
+
window._saveSerializedSettings(JSON.stringify({ ...localStorage }));
|
|
119
|
+
};
|
|
120
|
+
})})(${settings});
|
|
121
|
+
`
|
|
122
|
+
);
|
|
77
123
|
});
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
window.saveSettings = () => {
|
|
85
|
-
window._saveSerializedSettings(JSON.stringify({
|
|
86
|
-
...localStorage
|
|
87
|
-
}));
|
|
88
|
-
};
|
|
89
|
-
})})(${settings});
|
|
90
|
-
`);
|
|
91
|
-
}
|
|
124
|
+
}
|
|
125
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
126
|
+
0 && (module.exports = {
|
|
127
|
+
launchApp,
|
|
128
|
+
syncLocalStorageWithSettings
|
|
129
|
+
});
|