@checkly/playwright-core 1.51.17-beta.2 → 1.54.2-beta.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 +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 +90 -113
- 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
|
@@ -1,73 +1,84 @@
|
|
|
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 wkBrowser_exports = {};
|
|
30
|
+
__export(wkBrowser_exports, {
|
|
31
|
+
WKBrowser: () => WKBrowser,
|
|
32
|
+
WKBrowserContext: () => WKBrowserContext
|
|
5
33
|
});
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var network =
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const DEFAULT_USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.4 Safari/605.1.15';
|
|
34
|
-
const BROWSER_VERSION = '18.4';
|
|
35
|
-
class WKBrowser extends _browser.Browser {
|
|
34
|
+
module.exports = __toCommonJS(wkBrowser_exports);
|
|
35
|
+
var import_utils = require("../../utils");
|
|
36
|
+
var import_browser = require("../browser");
|
|
37
|
+
var import_browserContext = require("../browserContext");
|
|
38
|
+
var network = __toESM(require("../network"));
|
|
39
|
+
var import_wkConnection = require("./wkConnection");
|
|
40
|
+
var import_wkPage = require("./wkPage");
|
|
41
|
+
var import_errors = require("../errors");
|
|
42
|
+
const BROWSER_VERSION = "26.0";
|
|
43
|
+
const DEFAULT_USER_AGENT = `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/${BROWSER_VERSION} Safari/605.1.15`;
|
|
44
|
+
class WKBrowser extends import_browser.Browser {
|
|
45
|
+
constructor(parent, transport, options) {
|
|
46
|
+
super(parent, options);
|
|
47
|
+
this._contexts = /* @__PURE__ */ new Map();
|
|
48
|
+
this._wkPages = /* @__PURE__ */ new Map();
|
|
49
|
+
this._connection = new import_wkConnection.WKConnection(transport, this._onDisconnect.bind(this), options.protocolLogger, options.browserLogsCollector);
|
|
50
|
+
this._browserSession = this._connection.browserSession;
|
|
51
|
+
this._browserSession.on("Playwright.pageProxyCreated", this._onPageProxyCreated.bind(this));
|
|
52
|
+
this._browserSession.on("Playwright.pageProxyDestroyed", this._onPageProxyDestroyed.bind(this));
|
|
53
|
+
this._browserSession.on("Playwright.provisionalLoadFailed", (event) => this._onProvisionalLoadFailed(event));
|
|
54
|
+
this._browserSession.on("Playwright.windowOpen", (event) => this._onWindowOpen(event));
|
|
55
|
+
this._browserSession.on("Playwright.downloadCreated", this._onDownloadCreated.bind(this));
|
|
56
|
+
this._browserSession.on("Playwright.downloadFilenameSuggested", this._onDownloadFilenameSuggested.bind(this));
|
|
57
|
+
this._browserSession.on("Playwright.downloadFinished", this._onDownloadFinished.bind(this));
|
|
58
|
+
this._browserSession.on("Playwright.screencastFinished", this._onScreencastFinished.bind(this));
|
|
59
|
+
this._browserSession.on(import_wkConnection.kPageProxyMessageReceived, this._onPageProxyMessageReceived.bind(this));
|
|
60
|
+
}
|
|
36
61
|
static async connect(parent, transport, options) {
|
|
37
62
|
const browser = new WKBrowser(parent, transport, options);
|
|
38
|
-
if (options.__testHookOnConnectToBrowser)
|
|
39
|
-
|
|
63
|
+
if (options.__testHookOnConnectToBrowser)
|
|
64
|
+
await options.__testHookOnConnectToBrowser();
|
|
65
|
+
const promises = [
|
|
66
|
+
browser._browserSession.send("Playwright.enable")
|
|
67
|
+
];
|
|
40
68
|
if (options.persistent) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
browser._defaultContext = new WKBrowserContext(browser, undefined, options.persistent);
|
|
69
|
+
options.persistent.userAgent ||= DEFAULT_USER_AGENT;
|
|
70
|
+
browser._defaultContext = new WKBrowserContext(browser, void 0, options.persistent);
|
|
44
71
|
promises.push(browser._defaultContext._initialize());
|
|
45
72
|
}
|
|
46
73
|
await Promise.all(promises);
|
|
47
74
|
return browser;
|
|
48
75
|
}
|
|
49
|
-
constructor(parent, transport, options) {
|
|
50
|
-
super(parent, options);
|
|
51
|
-
this._connection = void 0;
|
|
52
|
-
this._browserSession = void 0;
|
|
53
|
-
this._contexts = new Map();
|
|
54
|
-
this._wkPages = new Map();
|
|
55
|
-
this._connection = new _wkConnection.WKConnection(transport, this._onDisconnect.bind(this), options.protocolLogger, options.browserLogsCollector);
|
|
56
|
-
this._browserSession = this._connection.browserSession;
|
|
57
|
-
this._browserSession.on('Playwright.pageProxyCreated', this._onPageProxyCreated.bind(this));
|
|
58
|
-
this._browserSession.on('Playwright.pageProxyDestroyed', this._onPageProxyDestroyed.bind(this));
|
|
59
|
-
this._browserSession.on('Playwright.provisionalLoadFailed', event => this._onProvisionalLoadFailed(event));
|
|
60
|
-
this._browserSession.on('Playwright.windowOpen', event => this._onWindowOpen(event));
|
|
61
|
-
this._browserSession.on('Playwright.downloadCreated', this._onDownloadCreated.bind(this));
|
|
62
|
-
this._browserSession.on('Playwright.downloadFilenameSuggested', this._onDownloadFilenameSuggested.bind(this));
|
|
63
|
-
this._browserSession.on('Playwright.downloadFinished', this._onDownloadFinished.bind(this));
|
|
64
|
-
this._browserSession.on('Playwright.screencastFinished', this._onScreencastFinished.bind(this));
|
|
65
|
-
this._browserSession.on(_wkConnection.kPageProxyMessageReceived, this._onPageProxyMessageReceived.bind(this));
|
|
66
|
-
}
|
|
67
76
|
_onDisconnect() {
|
|
68
|
-
for (const wkPage of this._wkPages.values())
|
|
77
|
+
for (const wkPage of this._wkPages.values())
|
|
78
|
+
wkPage.didClose();
|
|
69
79
|
this._wkPages.clear();
|
|
70
|
-
for (const video of this._idToVideo.values())
|
|
80
|
+
for (const video of this._idToVideo.values())
|
|
81
|
+
video.artifact.reportFinished(new import_errors.TargetClosedError());
|
|
71
82
|
this._idToVideo.clear();
|
|
72
83
|
this._didClose();
|
|
73
84
|
}
|
|
@@ -76,12 +87,10 @@ class WKBrowser extends _browser.Browser {
|
|
|
76
87
|
const createOptions = proxy ? {
|
|
77
88
|
// Enable socks5 hostname resolution on Windows.
|
|
78
89
|
// See https://github.com/microsoft/playwright/issues/20451
|
|
79
|
-
proxyServer: process.platform ===
|
|
90
|
+
proxyServer: process.platform === "win32" ? proxy.server.replace(/^socks5:\/\//, "socks5h://") : proxy.server,
|
|
80
91
|
proxyBypassList: proxy.bypass
|
|
81
|
-
} :
|
|
82
|
-
const {
|
|
83
|
-
browserContextId
|
|
84
|
-
} = await this._browserSession.send('Playwright.createContext', createOptions);
|
|
92
|
+
} : void 0;
|
|
93
|
+
const { browserContextId } = await this._browserSession.send("Playwright.createContext", createOptions);
|
|
85
94
|
options.userAgent = options.userAgent || DEFAULT_USER_AGENT;
|
|
86
95
|
const context = new WKBrowserContext(this, browserContextId, options);
|
|
87
96
|
await context._initialize();
|
|
@@ -99,24 +108,17 @@ class WKBrowser extends _browser.Browser {
|
|
|
99
108
|
}
|
|
100
109
|
_onDownloadCreated(payload) {
|
|
101
110
|
const page = this._wkPages.get(payload.pageProxyId);
|
|
102
|
-
if (!page)
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
// here by simulating cancelled provisional load which matches downloads from network.
|
|
106
|
-
//
|
|
107
|
-
// TODO: this is racy, because download might be unrelated any navigation, and we will
|
|
108
|
-
// abort navigation that is still running. We should be able to fix this by
|
|
109
|
-
// instrumenting policy decision start/proceed/cancel.
|
|
110
|
-
page._page._frameManager.frameAbortedNavigation(payload.frameId, 'Download is starting');
|
|
111
|
+
if (!page)
|
|
112
|
+
return;
|
|
113
|
+
page._page.frameManager.frameAbortedNavigation(payload.frameId, "Download is starting");
|
|
111
114
|
let originPage = page._page.initializedOrUndefined();
|
|
112
|
-
// If it's a new window download, report it on the opener page.
|
|
113
115
|
if (!originPage) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
if (page._opener) originPage = page._opener._page.initializedOrUndefined();
|
|
116
|
+
page._firstNonInitialNavigationCommittedReject(new Error("Starting new page download"));
|
|
117
|
+
if (page._opener)
|
|
118
|
+
originPage = page._opener._page.initializedOrUndefined();
|
|
118
119
|
}
|
|
119
|
-
if (!originPage)
|
|
120
|
+
if (!originPage)
|
|
121
|
+
return;
|
|
120
122
|
this._downloadCreated(originPage, payload.uuid, payload.url);
|
|
121
123
|
}
|
|
122
124
|
_onDownloadFilenameSuggested(payload) {
|
|
@@ -126,204 +128,211 @@ class WKBrowser extends _browser.Browser {
|
|
|
126
128
|
this._downloadFinished(payload.uuid, payload.error);
|
|
127
129
|
}
|
|
128
130
|
_onScreencastFinished(payload) {
|
|
129
|
-
|
|
130
|
-
(_this$_takeVideo = this._takeVideo(payload.screencastId)) === null || _this$_takeVideo === void 0 || _this$_takeVideo.reportFinished();
|
|
131
|
+
this._takeVideo(payload.screencastId)?.reportFinished();
|
|
131
132
|
}
|
|
132
133
|
_onPageProxyCreated(event) {
|
|
133
134
|
const pageProxyId = event.pageProxyId;
|
|
134
135
|
let context = null;
|
|
135
136
|
if (event.browserContextId) {
|
|
136
|
-
// FIXME: we don't know about the default context id, so assume that all targets from
|
|
137
|
-
// unknown contexts are created in the 'default' context which can in practice be represented
|
|
138
|
-
// by multiple actual contexts in WebKit. Solving this properly will require adding context
|
|
139
|
-
// lifecycle events.
|
|
140
137
|
context = this._contexts.get(event.browserContextId) || null;
|
|
141
138
|
}
|
|
142
|
-
if (!context)
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
});
|
|
139
|
+
if (!context)
|
|
140
|
+
context = this._defaultContext;
|
|
141
|
+
if (!context)
|
|
142
|
+
return;
|
|
143
|
+
const pageProxySession = new import_wkConnection.WKSession(this._connection, pageProxyId, (message) => {
|
|
144
|
+
this._connection.rawSend({ ...message, pageProxyId });
|
|
149
145
|
});
|
|
150
|
-
const opener = event.openerId ? this._wkPages.get(event.openerId) :
|
|
151
|
-
const wkPage = new
|
|
146
|
+
const opener = event.openerId ? this._wkPages.get(event.openerId) : void 0;
|
|
147
|
+
const wkPage = new import_wkPage.WKPage(context, pageProxySession, opener || null);
|
|
152
148
|
this._wkPages.set(pageProxyId, wkPage);
|
|
153
149
|
}
|
|
154
150
|
_onPageProxyDestroyed(event) {
|
|
155
151
|
const pageProxyId = event.pageProxyId;
|
|
156
152
|
const wkPage = this._wkPages.get(pageProxyId);
|
|
157
|
-
if (!wkPage)
|
|
158
|
-
|
|
153
|
+
if (!wkPage)
|
|
154
|
+
return;
|
|
159
155
|
this._wkPages.delete(pageProxyId);
|
|
156
|
+
wkPage.didClose();
|
|
160
157
|
}
|
|
161
158
|
_onPageProxyMessageReceived(event) {
|
|
162
159
|
const wkPage = this._wkPages.get(event.pageProxyId);
|
|
163
|
-
if (!wkPage)
|
|
160
|
+
if (!wkPage)
|
|
161
|
+
return;
|
|
164
162
|
wkPage.dispatchMessageToSession(event.message);
|
|
165
163
|
}
|
|
166
164
|
_onProvisionalLoadFailed(event) {
|
|
167
165
|
const wkPage = this._wkPages.get(event.pageProxyId);
|
|
168
|
-
if (!wkPage)
|
|
166
|
+
if (!wkPage)
|
|
167
|
+
return;
|
|
169
168
|
wkPage.handleProvisionalLoadFailed(event);
|
|
170
169
|
}
|
|
171
170
|
_onWindowOpen(event) {
|
|
172
171
|
const wkPage = this._wkPages.get(event.pageProxyId);
|
|
173
|
-
if (!wkPage)
|
|
172
|
+
if (!wkPage)
|
|
173
|
+
return;
|
|
174
174
|
wkPage.handleWindowOpen(event);
|
|
175
175
|
}
|
|
176
176
|
isConnected() {
|
|
177
177
|
return !this._connection.isClosed();
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
|
-
|
|
181
|
-
class WKBrowserContext extends _browserContext.BrowserContext {
|
|
180
|
+
class WKBrowserContext extends import_browserContext.BrowserContext {
|
|
182
181
|
constructor(browser, browserContextId, options) {
|
|
183
182
|
super(browser, options, browserContextId);
|
|
184
183
|
this._validateEmulatedViewport(options.viewport);
|
|
185
184
|
this._authenticateProxyViaHeader();
|
|
186
185
|
}
|
|
187
186
|
async _initialize() {
|
|
188
|
-
(0,
|
|
187
|
+
(0, import_utils.assert)(!this._wkPages().length);
|
|
189
188
|
const browserContextId = this._browserContextId;
|
|
190
189
|
const promises = [super._initialize()];
|
|
191
|
-
promises.push(this._browser._browserSession.send(
|
|
192
|
-
behavior: this._options.acceptDownloads ===
|
|
190
|
+
promises.push(this._browser._browserSession.send("Playwright.setDownloadBehavior", {
|
|
191
|
+
behavior: this._options.acceptDownloads === "accept" ? "allow" : "deny",
|
|
193
192
|
downloadPath: this._browser.options.downloadsPath,
|
|
194
193
|
browserContextId
|
|
195
194
|
}));
|
|
196
|
-
if (this._options.ignoreHTTPSErrors || this._options.internalIgnoreHTTPSErrors)
|
|
197
|
-
browserContextId,
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
if (this._options.
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
if (this._options.
|
|
205
|
-
|
|
206
|
-
if (this._options.httpCredentials) promises.push(this.setHTTPCredentials(this._options.httpCredentials));
|
|
195
|
+
if (this._options.ignoreHTTPSErrors || this._options.internalIgnoreHTTPSErrors)
|
|
196
|
+
promises.push(this._browser._browserSession.send("Playwright.setIgnoreCertificateErrors", { browserContextId, ignore: true }));
|
|
197
|
+
if (this._options.locale)
|
|
198
|
+
promises.push(this._browser._browserSession.send("Playwright.setLanguages", { browserContextId, languages: [this._options.locale] }));
|
|
199
|
+
if (this._options.geolocation)
|
|
200
|
+
promises.push(this.setGeolocation(this._options.geolocation));
|
|
201
|
+
if (this._options.offline)
|
|
202
|
+
promises.push(this.doUpdateOffline());
|
|
203
|
+
if (this._options.httpCredentials)
|
|
204
|
+
promises.push(this.setHTTPCredentials(this._options.httpCredentials));
|
|
207
205
|
await Promise.all(promises);
|
|
208
206
|
}
|
|
209
207
|
_wkPages() {
|
|
210
|
-
return Array.from(this._browser._wkPages.values()).filter(wkPage => wkPage._browserContext === this);
|
|
208
|
+
return Array.from(this._browser._wkPages.values()).filter((wkPage) => wkPage._browserContext === this);
|
|
211
209
|
}
|
|
212
210
|
possiblyUninitializedPages() {
|
|
213
|
-
return this._wkPages().map(wkPage => wkPage._page);
|
|
211
|
+
return this._wkPages().map((wkPage) => wkPage._page);
|
|
214
212
|
}
|
|
215
|
-
async doCreateNewPage() {
|
|
216
|
-
(
|
|
217
|
-
const
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
});
|
|
222
|
-
return this._browser._wkPages.get(pageProxyId)._page;
|
|
213
|
+
async doCreateNewPage(markAsServerSideOnly) {
|
|
214
|
+
const { pageProxyId } = await this._browser._browserSession.send("Playwright.createPage", { browserContextId: this._browserContextId });
|
|
215
|
+
const page = this._browser._wkPages.get(pageProxyId)._page;
|
|
216
|
+
if (markAsServerSideOnly)
|
|
217
|
+
page.markAsServerSideOnly();
|
|
218
|
+
return page;
|
|
223
219
|
}
|
|
224
220
|
async doGetCookies(urls) {
|
|
225
|
-
const {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
browserContextId: this._browserContextId
|
|
229
|
-
});
|
|
230
|
-
return network.filterCookies(cookies.map(c => {
|
|
221
|
+
const { cookies } = await this._browser._browserSession.send("Playwright.getAllCookies", { browserContextId: this._browserContextId });
|
|
222
|
+
return network.filterCookies(cookies.map((c) => {
|
|
223
|
+
const { name, value, domain, path, expires, httpOnly, secure, sameSite } = c;
|
|
231
224
|
const copy = {
|
|
232
|
-
|
|
225
|
+
name,
|
|
226
|
+
value,
|
|
227
|
+
domain,
|
|
228
|
+
path,
|
|
229
|
+
expires: expires === -1 ? -1 : expires / 1e3,
|
|
230
|
+
httpOnly,
|
|
231
|
+
secure,
|
|
232
|
+
sameSite
|
|
233
233
|
};
|
|
234
|
-
copy.expires = c.expires === -1 ? -1 : c.expires / 1000;
|
|
235
|
-
delete copy.session;
|
|
236
234
|
return copy;
|
|
237
235
|
}), urls);
|
|
238
236
|
}
|
|
239
237
|
async addCookies(cookies) {
|
|
240
|
-
const cc = network.rewriteCookies(cookies).map(c =>
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
238
|
+
const cc = network.rewriteCookies(cookies).map((c) => {
|
|
239
|
+
const { name, value, domain, path, expires, httpOnly, secure, sameSite } = c;
|
|
240
|
+
const copy = {
|
|
241
|
+
name,
|
|
242
|
+
value,
|
|
243
|
+
domain,
|
|
244
|
+
path,
|
|
245
|
+
expires: expires && expires !== -1 ? expires * 1e3 : expires,
|
|
246
|
+
httpOnly,
|
|
247
|
+
secure,
|
|
248
|
+
sameSite,
|
|
249
|
+
session: expires === -1 || expires === void 0
|
|
250
|
+
};
|
|
251
|
+
return copy;
|
|
248
252
|
});
|
|
253
|
+
await this._browser._browserSession.send("Playwright.setCookies", { cookies: cc, browserContextId: this._browserContextId });
|
|
249
254
|
}
|
|
250
255
|
async doClearCookies() {
|
|
251
|
-
await this._browser._browserSession.send(
|
|
252
|
-
browserContextId: this._browserContextId
|
|
253
|
-
});
|
|
256
|
+
await this._browser._browserSession.send("Playwright.deleteAllCookies", { browserContextId: this._browserContextId });
|
|
254
257
|
}
|
|
255
258
|
async doGrantPermissions(origin, permissions) {
|
|
256
|
-
await Promise.all(this.pages().map(page => page.
|
|
259
|
+
await Promise.all(this.pages().map((page) => page.delegate._grantPermissions(origin, permissions)));
|
|
257
260
|
}
|
|
258
261
|
async doClearPermissions() {
|
|
259
|
-
await Promise.all(this.pages().map(page => page.
|
|
262
|
+
await Promise.all(this.pages().map((page) => page.delegate._clearPermissions()));
|
|
260
263
|
}
|
|
261
264
|
async setGeolocation(geolocation) {
|
|
262
|
-
(0,
|
|
265
|
+
(0, import_browserContext.verifyGeolocation)(geolocation);
|
|
263
266
|
this._options.geolocation = geolocation;
|
|
264
|
-
const payload = geolocation ? {
|
|
265
|
-
|
|
266
|
-
timestamp: Date.now()
|
|
267
|
-
} : undefined;
|
|
268
|
-
await this._browser._browserSession.send('Playwright.setGeolocationOverride', {
|
|
269
|
-
browserContextId: this._browserContextId,
|
|
270
|
-
geolocation: payload
|
|
271
|
-
});
|
|
267
|
+
const payload = geolocation ? { ...geolocation, timestamp: Date.now() } : void 0;
|
|
268
|
+
await this._browser._browserSession.send("Playwright.setGeolocationOverride", { browserContextId: this._browserContextId, geolocation: payload });
|
|
272
269
|
}
|
|
273
|
-
async
|
|
274
|
-
this.
|
|
275
|
-
|
|
270
|
+
async doUpdateExtraHTTPHeaders() {
|
|
271
|
+
for (const page of this.pages())
|
|
272
|
+
await page.delegate.updateExtraHTTPHeaders();
|
|
276
273
|
}
|
|
277
274
|
async setUserAgent(userAgent) {
|
|
278
275
|
this._options.userAgent = userAgent;
|
|
279
|
-
for (const page of this.pages())
|
|
276
|
+
for (const page of this.pages())
|
|
277
|
+
await page.delegate.updateUserAgent();
|
|
280
278
|
}
|
|
281
|
-
async
|
|
282
|
-
this.
|
|
283
|
-
|
|
279
|
+
async doUpdateOffline() {
|
|
280
|
+
for (const page of this.pages())
|
|
281
|
+
await page.delegate.updateOffline();
|
|
284
282
|
}
|
|
285
283
|
async doSetHTTPCredentials(httpCredentials) {
|
|
286
284
|
this._options.httpCredentials = httpCredentials;
|
|
287
|
-
for (const page of this.pages())
|
|
285
|
+
for (const page of this.pages())
|
|
286
|
+
await page.delegate.updateHttpCredentials();
|
|
288
287
|
}
|
|
289
288
|
async doAddInitScript(initScript) {
|
|
290
|
-
for (const page of this.pages())
|
|
289
|
+
for (const page of this.pages())
|
|
290
|
+
await page.delegate._updateBootstrapScript();
|
|
291
291
|
}
|
|
292
|
-
async
|
|
293
|
-
for (const page of this.pages())
|
|
292
|
+
async doRemoveInitScripts(initScripts) {
|
|
293
|
+
for (const page of this.pages())
|
|
294
|
+
await page.delegate._updateBootstrapScript();
|
|
294
295
|
}
|
|
295
296
|
async doUpdateRequestInterception() {
|
|
296
|
-
for (const page of this.pages())
|
|
297
|
+
for (const page of this.pages())
|
|
298
|
+
await page.delegate.updateRequestInterception();
|
|
299
|
+
}
|
|
300
|
+
async doUpdateDefaultViewport() {
|
|
301
|
+
}
|
|
302
|
+
async doUpdateDefaultEmulatedMedia() {
|
|
303
|
+
}
|
|
304
|
+
async doExposePlaywrightBinding() {
|
|
305
|
+
for (const page of this.pages())
|
|
306
|
+
await page.delegate.exposePlaywrightBinding();
|
|
307
|
+
}
|
|
308
|
+
onClosePersistent() {
|
|
297
309
|
}
|
|
298
|
-
onClosePersistent() {}
|
|
299
310
|
async clearCache() {
|
|
300
|
-
|
|
301
|
-
await this._browser._browserSession.send('Playwright.clearMemoryCache', {
|
|
311
|
+
await this._browser._browserSession.send("Playwright.clearMemoryCache", {
|
|
302
312
|
browserContextId: this._browserContextId
|
|
303
313
|
});
|
|
304
314
|
}
|
|
305
315
|
async doClose(reason) {
|
|
306
316
|
if (!this._browserContextId) {
|
|
307
|
-
await Promise.all(this._wkPages().map(wkPage => wkPage._stopVideo()));
|
|
308
|
-
|
|
309
|
-
await this._browser.close({
|
|
310
|
-
reason
|
|
311
|
-
});
|
|
317
|
+
await Promise.all(this._wkPages().map((wkPage) => wkPage._stopVideo()));
|
|
318
|
+
await this._browser.close({ reason });
|
|
312
319
|
} else {
|
|
313
|
-
await this._browser._browserSession.send(
|
|
314
|
-
browserContextId: this._browserContextId
|
|
315
|
-
});
|
|
320
|
+
await this._browser._browserSession.send("Playwright.deleteContext", { browserContextId: this._browserContextId });
|
|
316
321
|
this._browser._contexts.delete(this._browserContextId);
|
|
317
322
|
}
|
|
318
323
|
}
|
|
319
324
|
async cancelDownload(uuid) {
|
|
320
|
-
await this._browser._browserSession.send(
|
|
321
|
-
uuid
|
|
322
|
-
});
|
|
325
|
+
await this._browser._browserSession.send("Playwright.cancelDownload", { uuid });
|
|
323
326
|
}
|
|
324
327
|
_validateEmulatedViewport(viewportSize) {
|
|
325
|
-
if (!viewportSize)
|
|
326
|
-
|
|
328
|
+
if (!viewportSize)
|
|
329
|
+
return;
|
|
330
|
+
if (process.platform === "win32" && this._browser.options.headful && (viewportSize.width < 250 || viewportSize.height < 240))
|
|
331
|
+
throw new Error(`WebKit on Windows has a minimal viewport of 250x240.`);
|
|
327
332
|
}
|
|
328
333
|
}
|
|
329
|
-
|
|
334
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
335
|
+
0 && (module.exports = {
|
|
336
|
+
WKBrowser,
|
|
337
|
+
WKBrowserContext
|
|
338
|
+
});
|