@limrun/playwright-core 1.56.1-lim.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/README.md +3 -0
- package/ThirdPartyNotices.txt +1502 -0
- package/bin/install_media_pack.ps1 +5 -0
- package/bin/install_webkit_wsl.ps1 +35 -0
- package/bin/reinstall_chrome_beta_linux.sh +42 -0
- package/bin/reinstall_chrome_beta_mac.sh +13 -0
- package/bin/reinstall_chrome_beta_win.ps1 +24 -0
- package/bin/reinstall_chrome_stable_linux.sh +42 -0
- package/bin/reinstall_chrome_stable_mac.sh +12 -0
- package/bin/reinstall_chrome_stable_win.ps1 +24 -0
- package/bin/reinstall_msedge_beta_linux.sh +48 -0
- package/bin/reinstall_msedge_beta_mac.sh +11 -0
- package/bin/reinstall_msedge_beta_win.ps1 +23 -0
- package/bin/reinstall_msedge_dev_linux.sh +48 -0
- package/bin/reinstall_msedge_dev_mac.sh +11 -0
- package/bin/reinstall_msedge_dev_win.ps1 +23 -0
- package/bin/reinstall_msedge_stable_linux.sh +48 -0
- package/bin/reinstall_msedge_stable_mac.sh +11 -0
- package/bin/reinstall_msedge_stable_win.ps1 +24 -0
- package/browsers.json +80 -0
- package/cli.js +18 -0
- package/index.d.ts +17 -0
- package/index.js +32 -0
- package/index.mjs +28 -0
- package/lib/androidServerImpl.js +65 -0
- package/lib/browserServerImpl.js +120 -0
- package/lib/cli/driver.js +97 -0
- package/lib/cli/program.js +633 -0
- package/lib/cli/programWithTestStub.js +74 -0
- package/lib/client/accessibility.js +49 -0
- package/lib/client/android.js +361 -0
- package/lib/client/api.js +137 -0
- package/lib/client/artifact.js +79 -0
- package/lib/client/browser.js +163 -0
- package/lib/client/browserContext.js +529 -0
- package/lib/client/browserType.js +184 -0
- package/lib/client/cdpSession.js +51 -0
- package/lib/client/channelOwner.js +194 -0
- package/lib/client/clientHelper.js +64 -0
- package/lib/client/clientInstrumentation.js +55 -0
- package/lib/client/clientStackTrace.js +69 -0
- package/lib/client/clock.js +68 -0
- package/lib/client/connection.js +314 -0
- package/lib/client/consoleMessage.js +54 -0
- package/lib/client/coverage.js +44 -0
- package/lib/client/dialog.js +56 -0
- package/lib/client/download.js +62 -0
- package/lib/client/electron.js +138 -0
- package/lib/client/elementHandle.js +281 -0
- package/lib/client/errors.js +77 -0
- package/lib/client/eventEmitter.js +314 -0
- package/lib/client/events.js +99 -0
- package/lib/client/fetch.js +369 -0
- package/lib/client/fileChooser.js +46 -0
- package/lib/client/fileUtils.js +34 -0
- package/lib/client/frame.js +408 -0
- package/lib/client/harRouter.js +87 -0
- package/lib/client/input.js +84 -0
- package/lib/client/jsHandle.js +109 -0
- package/lib/client/jsonPipe.js +39 -0
- package/lib/client/localUtils.js +60 -0
- package/lib/client/locator.js +366 -0
- package/lib/client/network.js +747 -0
- package/lib/client/page.js +721 -0
- package/lib/client/platform.js +74 -0
- package/lib/client/playwright.js +75 -0
- package/lib/client/selectors.js +55 -0
- package/lib/client/stream.js +39 -0
- package/lib/client/timeoutSettings.js +79 -0
- package/lib/client/tracing.js +117 -0
- package/lib/client/types.js +28 -0
- package/lib/client/video.js +59 -0
- package/lib/client/waiter.js +142 -0
- package/lib/client/webError.js +39 -0
- package/lib/client/webSocket.js +93 -0
- package/lib/client/worker.js +63 -0
- package/lib/client/writableStream.js +39 -0
- package/lib/generated/bindingsControllerSource.js +28 -0
- package/lib/generated/clockSource.js +28 -0
- package/lib/generated/injectedScriptSource.js +28 -0
- package/lib/generated/pollingRecorderSource.js +28 -0
- package/lib/generated/storageScriptSource.js +28 -0
- package/lib/generated/utilityScriptSource.js +28 -0
- package/lib/generated/webSocketMockSource.js +336 -0
- package/lib/inProcessFactory.js +62 -0
- package/lib/inprocess.js +3 -0
- package/lib/outofprocess.js +76 -0
- package/lib/protocol/serializers.js +192 -0
- package/lib/protocol/validator.js +2912 -0
- package/lib/protocol/validatorPrimitives.js +193 -0
- package/lib/remote/playwrightConnection.js +129 -0
- package/lib/remote/playwrightServer.js +335 -0
- package/lib/server/accessibility.js +69 -0
- package/lib/server/android/android.js +465 -0
- package/lib/server/android/backendAdb.js +177 -0
- package/lib/server/artifact.js +127 -0
- package/lib/server/bidi/bidiBrowser.js +490 -0
- package/lib/server/bidi/bidiChromium.js +153 -0
- package/lib/server/bidi/bidiConnection.js +212 -0
- package/lib/server/bidi/bidiExecutionContext.js +221 -0
- package/lib/server/bidi/bidiFirefox.js +130 -0
- package/lib/server/bidi/bidiInput.js +146 -0
- package/lib/server/bidi/bidiNetworkManager.js +383 -0
- package/lib/server/bidi/bidiOverCdp.js +102 -0
- package/lib/server/bidi/bidiPage.js +552 -0
- package/lib/server/bidi/bidiPdf.js +106 -0
- package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
- package/lib/server/bidi/third_party/bidiDeserializer.js +98 -0
- package/lib/server/bidi/third_party/bidiKeyboard.js +256 -0
- package/lib/server/bidi/third_party/bidiProtocol.js +24 -0
- package/lib/server/bidi/third_party/bidiProtocolCore.js +179 -0
- package/lib/server/bidi/third_party/bidiProtocolPermissions.js +42 -0
- package/lib/server/bidi/third_party/bidiSerializer.js +148 -0
- package/lib/server/bidi/third_party/firefoxPrefs.js +259 -0
- package/lib/server/browser.js +149 -0
- package/lib/server/browserContext.js +696 -0
- package/lib/server/browserType.js +328 -0
- package/lib/server/callLog.js +82 -0
- package/lib/server/chromium/appIcon.png +0 -0
- package/lib/server/chromium/chromium.js +391 -0
- package/lib/server/chromium/chromiumSwitches.js +95 -0
- package/lib/server/chromium/crAccessibility.js +263 -0
- package/lib/server/chromium/crBrowser.js +502 -0
- package/lib/server/chromium/crConnection.js +202 -0
- package/lib/server/chromium/crCoverage.js +235 -0
- package/lib/server/chromium/crDevTools.js +113 -0
- package/lib/server/chromium/crDragDrop.js +131 -0
- package/lib/server/chromium/crExecutionContext.js +146 -0
- package/lib/server/chromium/crInput.js +187 -0
- package/lib/server/chromium/crNetworkManager.js +666 -0
- package/lib/server/chromium/crPage.js +1069 -0
- package/lib/server/chromium/crPdf.js +121 -0
- package/lib/server/chromium/crProtocolHelper.js +145 -0
- package/lib/server/chromium/crServiceWorker.js +123 -0
- package/lib/server/chromium/defaultFontFamilies.js +162 -0
- package/lib/server/chromium/protocol.d.js +16 -0
- package/lib/server/chromium/videoRecorder.js +113 -0
- package/lib/server/clock.js +149 -0
- package/lib/server/codegen/csharp.js +327 -0
- package/lib/server/codegen/java.js +274 -0
- package/lib/server/codegen/javascript.js +270 -0
- package/lib/server/codegen/jsonl.js +52 -0
- package/lib/server/codegen/language.js +132 -0
- package/lib/server/codegen/languages.js +68 -0
- package/lib/server/codegen/python.js +279 -0
- package/lib/server/codegen/types.js +16 -0
- package/lib/server/console.js +53 -0
- package/lib/server/cookieStore.js +206 -0
- package/lib/server/debugController.js +191 -0
- package/lib/server/debugger.js +119 -0
- package/lib/server/deviceDescriptors.js +39 -0
- package/lib/server/deviceDescriptorsSource.json +1779 -0
- package/lib/server/dialog.js +116 -0
- package/lib/server/dispatchers/androidDispatcher.js +325 -0
- package/lib/server/dispatchers/artifactDispatcher.js +118 -0
- package/lib/server/dispatchers/browserContextDispatcher.js +364 -0
- package/lib/server/dispatchers/browserDispatcher.js +118 -0
- package/lib/server/dispatchers/browserTypeDispatcher.js +64 -0
- package/lib/server/dispatchers/cdpSessionDispatcher.js +44 -0
- package/lib/server/dispatchers/debugControllerDispatcher.js +78 -0
- package/lib/server/dispatchers/dialogDispatcher.js +47 -0
- package/lib/server/dispatchers/dispatcher.js +371 -0
- package/lib/server/dispatchers/electronDispatcher.js +89 -0
- package/lib/server/dispatchers/elementHandlerDispatcher.js +181 -0
- package/lib/server/dispatchers/frameDispatcher.js +227 -0
- package/lib/server/dispatchers/jsHandleDispatcher.js +85 -0
- package/lib/server/dispatchers/jsonPipeDispatcher.js +58 -0
- package/lib/server/dispatchers/localUtilsDispatcher.js +149 -0
- package/lib/server/dispatchers/networkDispatchers.js +213 -0
- package/lib/server/dispatchers/pageDispatcher.js +401 -0
- package/lib/server/dispatchers/playwrightDispatcher.js +112 -0
- package/lib/server/dispatchers/streamDispatcher.js +67 -0
- package/lib/server/dispatchers/tracingDispatcher.js +68 -0
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +165 -0
- package/lib/server/dispatchers/writableStreamDispatcher.js +79 -0
- package/lib/server/dom.js +806 -0
- package/lib/server/download.js +70 -0
- package/lib/server/electron/electron.js +270 -0
- package/lib/server/electron/loader.js +29 -0
- package/lib/server/errors.js +69 -0
- package/lib/server/fetch.js +621 -0
- package/lib/server/fileChooser.js +43 -0
- package/lib/server/fileUploadUtils.js +84 -0
- package/lib/server/firefox/ffAccessibility.js +238 -0
- package/lib/server/firefox/ffBrowser.js +428 -0
- package/lib/server/firefox/ffConnection.js +147 -0
- package/lib/server/firefox/ffExecutionContext.js +150 -0
- package/lib/server/firefox/ffInput.js +159 -0
- package/lib/server/firefox/ffNetworkManager.js +256 -0
- package/lib/server/firefox/ffPage.js +503 -0
- package/lib/server/firefox/firefox.js +105 -0
- package/lib/server/firefox/protocol.d.js +16 -0
- package/lib/server/formData.js +147 -0
- package/lib/server/frameSelectors.js +156 -0
- package/lib/server/frames.js +1448 -0
- package/lib/server/har/harRecorder.js +147 -0
- package/lib/server/har/harTracer.js +607 -0
- package/lib/server/harBackend.js +157 -0
- package/lib/server/helper.js +96 -0
- package/lib/server/index.js +58 -0
- package/lib/server/input.js +273 -0
- package/lib/server/instrumentation.js +69 -0
- package/lib/server/javascript.js +291 -0
- package/lib/server/launchApp.js +128 -0
- package/lib/server/localUtils.js +218 -0
- package/lib/server/macEditingCommands.js +143 -0
- package/lib/server/network.js +629 -0
- package/lib/server/page.js +870 -0
- package/lib/server/pipeTransport.js +89 -0
- package/lib/server/playwright.js +71 -0
- package/lib/server/progress.js +112 -0
- package/lib/server/protocolError.js +52 -0
- package/lib/server/recorder/chat.js +161 -0
- package/lib/server/recorder/recorderApp.js +387 -0
- package/lib/server/recorder/recorderRunner.js +138 -0
- package/lib/server/recorder/recorderSignalProcessor.js +83 -0
- package/lib/server/recorder/recorderUtils.js +157 -0
- package/lib/server/recorder/throttledFile.js +57 -0
- package/lib/server/recorder.js +498 -0
- package/lib/server/registry/browserFetcher.js +175 -0
- package/lib/server/registry/dependencies.js +371 -0
- package/lib/server/registry/index.js +1333 -0
- package/lib/server/registry/nativeDeps.js +1280 -0
- package/lib/server/registry/oopDownloadBrowserMain.js +120 -0
- package/lib/server/screenshotter.js +333 -0
- package/lib/server/selectors.js +112 -0
- package/lib/server/socksClientCertificatesInterceptor.js +383 -0
- package/lib/server/socksInterceptor.js +95 -0
- package/lib/server/trace/recorder/snapshotter.js +147 -0
- package/lib/server/trace/recorder/snapshotterInjected.js +541 -0
- package/lib/server/trace/recorder/tracing.js +602 -0
- package/lib/server/trace/test/inMemorySnapshotter.js +87 -0
- package/lib/server/trace/viewer/traceViewer.js +240 -0
- package/lib/server/transport.js +181 -0
- package/lib/server/types.js +28 -0
- package/lib/server/usKeyboardLayout.js +145 -0
- 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 +42 -0
- package/lib/server/utils/debugLogger.js +122 -0
- package/lib/server/utils/env.js +73 -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 +111 -0
- package/lib/server/utils/httpServer.js +218 -0
- package/lib/server/utils/image_tools/colorUtils.js +89 -0
- package/lib/server/utils/image_tools/compare.js +109 -0
- package/lib/server/utils/image_tools/imageChannel.js +78 -0
- package/lib/server/utils/image_tools/stats.js +102 -0
- package/lib/server/utils/linuxUtils.js +71 -0
- package/lib/server/utils/network.js +227 -0
- package/lib/server/utils/nodePlatform.js +148 -0
- package/lib/server/utils/pipeTransport.js +84 -0
- package/lib/server/utils/processLauncher.js +241 -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 +121 -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 +119 -0
- package/lib/server/webkit/wkAccessibility.js +237 -0
- package/lib/server/webkit/wkBrowser.js +339 -0
- package/lib/server/webkit/wkConnection.js +149 -0
- package/lib/server/webkit/wkExecutionContext.js +154 -0
- package/lib/server/webkit/wkInput.js +181 -0
- package/lib/server/webkit/wkInterceptableRequest.js +169 -0
- package/lib/server/webkit/wkPage.js +1134 -0
- package/lib/server/webkit/wkProvisionalPage.js +83 -0
- package/lib/server/webkit/wkWorkers.js +104 -0
- package/lib/server/webkit/wsl/webkit-wsl-transport-client.js +74 -0
- package/lib/server/webkit/wsl/webkit-wsl-transport-server.js +113 -0
- package/lib/third_party/pixelmatch.js +255 -0
- package/lib/utils/isomorphic/ariaSnapshot.js +392 -0
- package/lib/utils/isomorphic/assert.js +31 -0
- package/lib/utils/isomorphic/colors.js +72 -0
- package/lib/utils/isomorphic/cssParser.js +245 -0
- package/lib/utils/isomorphic/cssTokenizer.js +1051 -0
- package/lib/utils/isomorphic/headers.js +53 -0
- package/lib/utils/isomorphic/locatorGenerators.js +673 -0
- package/lib/utils/isomorphic/locatorParser.js +176 -0
- package/lib/utils/isomorphic/locatorUtils.js +81 -0
- package/lib/utils/isomorphic/manualPromise.js +114 -0
- package/lib/utils/isomorphic/mimeType.js +459 -0
- package/lib/utils/isomorphic/multimap.js +80 -0
- package/lib/utils/isomorphic/protocolFormatter.js +78 -0
- package/lib/utils/isomorphic/protocolMetainfo.js +321 -0
- package/lib/utils/isomorphic/rtti.js +43 -0
- package/lib/utils/isomorphic/selectorParser.js +386 -0
- package/lib/utils/isomorphic/semaphore.js +54 -0
- package/lib/utils/isomorphic/stackTrace.js +158 -0
- package/lib/utils/isomorphic/stringUtils.js +155 -0
- package/lib/utils/isomorphic/time.js +49 -0
- package/lib/utils/isomorphic/timeoutRunner.js +66 -0
- package/lib/utils/isomorphic/traceUtils.js +58 -0
- package/lib/utils/isomorphic/types.js +16 -0
- package/lib/utils/isomorphic/urlMatch.js +176 -0
- package/lib/utils/isomorphic/utilityScriptSerializers.js +251 -0
- package/lib/utils.js +107 -0
- package/lib/utilsBundle.js +109 -0
- package/lib/utilsBundleImpl/index.js +218 -0
- package/lib/utilsBundleImpl/xdg-open +1066 -0
- package/lib/vite/htmlReport/index.html +84 -0
- package/lib/vite/recorder/assets/codeMirrorModule-C3UTv-Ge.css +1 -0
- package/lib/vite/recorder/assets/codeMirrorModule-RJCXzfmE.js +24 -0
- package/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
- package/lib/vite/recorder/assets/index-Ri0uHF7I.css +1 -0
- package/lib/vite/recorder/assets/index-Y-X2TGJv.js +193 -0
- package/lib/vite/recorder/index.html +29 -0
- package/lib/vite/recorder/playwright-logo.svg +9 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-eyVcHN77.js +24 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-w0zYjHsW.js +265 -0
- package/lib/vite/traceViewer/assets/xtermModule-CsJ4vdCR.js +9 -0
- package/lib/vite/traceViewer/codeMirrorModule.C3UTv-Ge.css +1 -0
- package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
- package/lib/vite/traceViewer/defaultSettingsView.TQ8_7ybu.css +1 -0
- package/lib/vite/traceViewer/index.Bx16ehp1.js +2 -0
- package/lib/vite/traceViewer/index.I8N9v4jT.css +1 -0
- package/lib/vite/traceViewer/index.html +43 -0
- package/lib/vite/traceViewer/playwright-logo.svg +9 -0
- package/lib/vite/traceViewer/snapshot.html +21 -0
- package/lib/vite/traceViewer/sw.bundle.js +3 -0
- package/lib/vite/traceViewer/uiMode.Btcz36p_.css +1 -0
- package/lib/vite/traceViewer/uiMode.DRQ310U5.js +5 -0
- package/lib/vite/traceViewer/uiMode.html +17 -0
- package/lib/vite/traceViewer/xtermModule.DYP7pi_n.css +32 -0
- package/lib/zipBundle.js +34 -0
- package/lib/zipBundleImpl.js +5 -0
- package/package.json +42 -0
- package/types/protocol.d.ts +23130 -0
- package/types/structs.d.ts +45 -0
- package/types/types.d.ts +22853 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
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 wkConnection_exports = {};
|
|
20
|
+
__export(wkConnection_exports, {
|
|
21
|
+
WKConnection: () => WKConnection,
|
|
22
|
+
WKSession: () => WKSession,
|
|
23
|
+
kBrowserCloseMessageId: () => kBrowserCloseMessageId,
|
|
24
|
+
kPageProxyMessageReceived: () => kPageProxyMessageReceived
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(wkConnection_exports);
|
|
27
|
+
var import_events = require("events");
|
|
28
|
+
var import_utils = require("../../utils");
|
|
29
|
+
var import_debugLogger = require("../utils/debugLogger");
|
|
30
|
+
var import_helper = require("../helper");
|
|
31
|
+
var import_protocolError = require("../protocolError");
|
|
32
|
+
const kBrowserCloseMessageId = -9999;
|
|
33
|
+
const kPageProxyMessageReceived = Symbol("kPageProxyMessageReceived");
|
|
34
|
+
class WKConnection {
|
|
35
|
+
constructor(transport, onDisconnect, protocolLogger, browserLogsCollector) {
|
|
36
|
+
this._lastId = 0;
|
|
37
|
+
this._closed = false;
|
|
38
|
+
this._transport = transport;
|
|
39
|
+
this._onDisconnect = onDisconnect;
|
|
40
|
+
this._protocolLogger = protocolLogger;
|
|
41
|
+
this._browserLogsCollector = browserLogsCollector;
|
|
42
|
+
this.browserSession = new WKSession(this, "", (message) => {
|
|
43
|
+
this.rawSend(message);
|
|
44
|
+
});
|
|
45
|
+
this._transport.onmessage = this._dispatchMessage.bind(this);
|
|
46
|
+
this._transport.onclose = this._onClose.bind(this);
|
|
47
|
+
}
|
|
48
|
+
nextMessageId() {
|
|
49
|
+
return ++this._lastId;
|
|
50
|
+
}
|
|
51
|
+
rawSend(message) {
|
|
52
|
+
this._protocolLogger("send", message);
|
|
53
|
+
this._transport.send(message);
|
|
54
|
+
}
|
|
55
|
+
_dispatchMessage(message) {
|
|
56
|
+
this._protocolLogger("receive", message);
|
|
57
|
+
if (message.id === kBrowserCloseMessageId)
|
|
58
|
+
return;
|
|
59
|
+
if (message.pageProxyId) {
|
|
60
|
+
const payload = { message, pageProxyId: message.pageProxyId };
|
|
61
|
+
this.browserSession.dispatchMessage({ method: kPageProxyMessageReceived, params: payload });
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
this.browserSession.dispatchMessage(message);
|
|
65
|
+
}
|
|
66
|
+
_onClose(reason) {
|
|
67
|
+
this._closed = true;
|
|
68
|
+
this._transport.onmessage = void 0;
|
|
69
|
+
this._transport.onclose = void 0;
|
|
70
|
+
this._browserDisconnectedLogs = import_helper.helper.formatBrowserLogs(this._browserLogsCollector.recentLogs(), reason);
|
|
71
|
+
this.browserSession.dispose();
|
|
72
|
+
this._onDisconnect();
|
|
73
|
+
}
|
|
74
|
+
isClosed() {
|
|
75
|
+
return this._closed;
|
|
76
|
+
}
|
|
77
|
+
close() {
|
|
78
|
+
if (!this._closed)
|
|
79
|
+
this._transport.close();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
class WKSession extends import_events.EventEmitter {
|
|
83
|
+
constructor(connection, sessionId, rawSend) {
|
|
84
|
+
super();
|
|
85
|
+
this._disposed = false;
|
|
86
|
+
this._callbacks = /* @__PURE__ */ new Map();
|
|
87
|
+
this._crashed = false;
|
|
88
|
+
this.setMaxListeners(0);
|
|
89
|
+
this.connection = connection;
|
|
90
|
+
this.sessionId = sessionId;
|
|
91
|
+
this._rawSend = rawSend;
|
|
92
|
+
this.on = super.on;
|
|
93
|
+
this.off = super.removeListener;
|
|
94
|
+
this.addListener = super.addListener;
|
|
95
|
+
this.removeListener = super.removeListener;
|
|
96
|
+
this.once = super.once;
|
|
97
|
+
}
|
|
98
|
+
async send(method, params) {
|
|
99
|
+
if (this._crashed || this._disposed || this.connection._browserDisconnectedLogs)
|
|
100
|
+
throw new import_protocolError.ProtocolError(this._crashed ? "crashed" : "closed", void 0, this.connection._browserDisconnectedLogs);
|
|
101
|
+
const id = this.connection.nextMessageId();
|
|
102
|
+
const messageObj = { id, method, params };
|
|
103
|
+
this._rawSend(messageObj);
|
|
104
|
+
return new Promise((resolve, reject) => {
|
|
105
|
+
this._callbacks.set(id, { resolve, reject, error: new import_protocolError.ProtocolError("error", method) });
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
sendMayFail(method, params) {
|
|
109
|
+
return this.send(method, params).catch((error) => import_debugLogger.debugLogger.log("error", error));
|
|
110
|
+
}
|
|
111
|
+
markAsCrashed() {
|
|
112
|
+
this._crashed = true;
|
|
113
|
+
}
|
|
114
|
+
isDisposed() {
|
|
115
|
+
return this._disposed;
|
|
116
|
+
}
|
|
117
|
+
dispose() {
|
|
118
|
+
for (const callback of this._callbacks.values()) {
|
|
119
|
+
callback.error.type = this._crashed ? "crashed" : "closed";
|
|
120
|
+
callback.error.logs = this.connection._browserDisconnectedLogs;
|
|
121
|
+
callback.reject(callback.error);
|
|
122
|
+
}
|
|
123
|
+
this._callbacks.clear();
|
|
124
|
+
this._disposed = true;
|
|
125
|
+
}
|
|
126
|
+
dispatchMessage(object) {
|
|
127
|
+
if (object.id && this._callbacks.has(object.id)) {
|
|
128
|
+
const callback = this._callbacks.get(object.id);
|
|
129
|
+
this._callbacks.delete(object.id);
|
|
130
|
+
if (object.error) {
|
|
131
|
+
callback.error.setMessage(object.error.message);
|
|
132
|
+
callback.reject(callback.error);
|
|
133
|
+
} else {
|
|
134
|
+
callback.resolve(object.result);
|
|
135
|
+
}
|
|
136
|
+
} else if (object.id && !object.error) {
|
|
137
|
+
(0, import_utils.assert)(this.isDisposed());
|
|
138
|
+
} else {
|
|
139
|
+
Promise.resolve().then(() => this.emit(object.method, object.params));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
144
|
+
0 && (module.exports = {
|
|
145
|
+
WKConnection,
|
|
146
|
+
WKSession,
|
|
147
|
+
kBrowserCloseMessageId,
|
|
148
|
+
kPageProxyMessageReceived
|
|
149
|
+
});
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
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 wkExecutionContext_exports = {};
|
|
30
|
+
__export(wkExecutionContext_exports, {
|
|
31
|
+
WKExecutionContext: () => WKExecutionContext,
|
|
32
|
+
createHandle: () => createHandle
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(wkExecutionContext_exports);
|
|
35
|
+
var js = __toESM(require("../javascript"));
|
|
36
|
+
var dom = __toESM(require("../dom"));
|
|
37
|
+
var import_protocolError = require("../protocolError");
|
|
38
|
+
var import_assert = require("../../utils/isomorphic/assert");
|
|
39
|
+
var import_utilityScriptSerializers = require("../../utils/isomorphic/utilityScriptSerializers");
|
|
40
|
+
class WKExecutionContext {
|
|
41
|
+
constructor(session, contextId) {
|
|
42
|
+
this._session = session;
|
|
43
|
+
this._contextId = contextId;
|
|
44
|
+
}
|
|
45
|
+
async rawEvaluateJSON(expression) {
|
|
46
|
+
try {
|
|
47
|
+
const response = await this._session.send("Runtime.evaluate", {
|
|
48
|
+
expression,
|
|
49
|
+
contextId: this._contextId,
|
|
50
|
+
returnByValue: true
|
|
51
|
+
});
|
|
52
|
+
if (response.wasThrown)
|
|
53
|
+
throw new js.JavaScriptErrorInEvaluate(response.result.description);
|
|
54
|
+
return response.result.value;
|
|
55
|
+
} catch (error) {
|
|
56
|
+
throw rewriteError(error);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
async rawEvaluateHandle(context, expression) {
|
|
60
|
+
try {
|
|
61
|
+
const response = await this._session.send("Runtime.evaluate", {
|
|
62
|
+
expression,
|
|
63
|
+
contextId: this._contextId,
|
|
64
|
+
returnByValue: false
|
|
65
|
+
});
|
|
66
|
+
if (response.wasThrown)
|
|
67
|
+
throw new js.JavaScriptErrorInEvaluate(response.result.description);
|
|
68
|
+
return createHandle(context, response.result);
|
|
69
|
+
} catch (error) {
|
|
70
|
+
throw rewriteError(error);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async evaluateWithArguments(expression, returnByValue, utilityScript, values, handles) {
|
|
74
|
+
try {
|
|
75
|
+
const response = await this._session.send("Runtime.callFunctionOn", {
|
|
76
|
+
functionDeclaration: expression,
|
|
77
|
+
objectId: utilityScript._objectId,
|
|
78
|
+
arguments: [
|
|
79
|
+
{ objectId: utilityScript._objectId },
|
|
80
|
+
...values.map((value) => ({ value })),
|
|
81
|
+
...handles.map((handle) => ({ objectId: handle._objectId }))
|
|
82
|
+
],
|
|
83
|
+
returnByValue,
|
|
84
|
+
emulateUserGesture: true,
|
|
85
|
+
awaitPromise: true
|
|
86
|
+
});
|
|
87
|
+
if (response.wasThrown)
|
|
88
|
+
throw new js.JavaScriptErrorInEvaluate(response.result.description);
|
|
89
|
+
if (returnByValue)
|
|
90
|
+
return (0, import_utilityScriptSerializers.parseEvaluationResultValue)(response.result.value);
|
|
91
|
+
return createHandle(utilityScript._context, response.result);
|
|
92
|
+
} catch (error) {
|
|
93
|
+
throw rewriteError(error);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
async getProperties(object) {
|
|
97
|
+
const response = await this._session.send("Runtime.getProperties", {
|
|
98
|
+
objectId: object._objectId,
|
|
99
|
+
ownProperties: true
|
|
100
|
+
});
|
|
101
|
+
const result = /* @__PURE__ */ new Map();
|
|
102
|
+
for (const property of response.properties) {
|
|
103
|
+
if (!property.enumerable || !property.value)
|
|
104
|
+
continue;
|
|
105
|
+
result.set(property.name, createHandle(object._context, property.value));
|
|
106
|
+
}
|
|
107
|
+
return result;
|
|
108
|
+
}
|
|
109
|
+
async releaseHandle(handle) {
|
|
110
|
+
if (!handle._objectId)
|
|
111
|
+
return;
|
|
112
|
+
await this._session.send("Runtime.releaseObject", { objectId: handle._objectId });
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function potentiallyUnserializableValue(remoteObject) {
|
|
116
|
+
const value = remoteObject.value;
|
|
117
|
+
const isUnserializable = remoteObject.type === "number" && ["NaN", "-Infinity", "Infinity", "-0"].includes(remoteObject.description);
|
|
118
|
+
return isUnserializable ? js.parseUnserializableValue(remoteObject.description) : value;
|
|
119
|
+
}
|
|
120
|
+
function rewriteError(error) {
|
|
121
|
+
if (error.message.includes("Object has too long reference chain"))
|
|
122
|
+
throw new Error("Cannot serialize result: object reference chain is too long.");
|
|
123
|
+
if (!js.isJavaScriptErrorInEvaluate(error) && !(0, import_protocolError.isSessionClosedError)(error))
|
|
124
|
+
return new Error("Execution context was destroyed, most likely because of a navigation.");
|
|
125
|
+
return error;
|
|
126
|
+
}
|
|
127
|
+
function renderPreview(object) {
|
|
128
|
+
if (object.type === "undefined")
|
|
129
|
+
return "undefined";
|
|
130
|
+
if ("value" in object)
|
|
131
|
+
return String(object.value);
|
|
132
|
+
if (object.description === "Object" && object.preview) {
|
|
133
|
+
const tokens = [];
|
|
134
|
+
for (const { name, value } of object.preview.properties)
|
|
135
|
+
tokens.push(`${name}: ${value}`);
|
|
136
|
+
return `{${tokens.join(", ")}}`;
|
|
137
|
+
}
|
|
138
|
+
if (object.subtype === "array" && object.preview)
|
|
139
|
+
return js.sparseArrayToString(object.preview.properties);
|
|
140
|
+
return object.description;
|
|
141
|
+
}
|
|
142
|
+
function createHandle(context, remoteObject) {
|
|
143
|
+
if (remoteObject.subtype === "node") {
|
|
144
|
+
(0, import_assert.assert)(context instanceof dom.FrameExecutionContext);
|
|
145
|
+
return new dom.ElementHandle(context, remoteObject.objectId);
|
|
146
|
+
}
|
|
147
|
+
const isPromise = remoteObject.className === "Promise";
|
|
148
|
+
return new js.JSHandle(context, isPromise ? "promise" : remoteObject.subtype || remoteObject.type, renderPreview(remoteObject), remoteObject.objectId, potentiallyUnserializableValue(remoteObject));
|
|
149
|
+
}
|
|
150
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
151
|
+
0 && (module.exports = {
|
|
152
|
+
WKExecutionContext,
|
|
153
|
+
createHandle
|
|
154
|
+
});
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
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 wkInput_exports = {};
|
|
30
|
+
__export(wkInput_exports, {
|
|
31
|
+
RawKeyboardImpl: () => RawKeyboardImpl,
|
|
32
|
+
RawMouseImpl: () => RawMouseImpl,
|
|
33
|
+
RawTouchscreenImpl: () => RawTouchscreenImpl
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(wkInput_exports);
|
|
36
|
+
var import_utils = require("../../utils");
|
|
37
|
+
var input = __toESM(require("../input"));
|
|
38
|
+
var import_macEditingCommands = require("../macEditingCommands");
|
|
39
|
+
function toModifiersMask(modifiers) {
|
|
40
|
+
let mask = 0;
|
|
41
|
+
if (modifiers.has("Shift"))
|
|
42
|
+
mask |= 1;
|
|
43
|
+
if (modifiers.has("Control"))
|
|
44
|
+
mask |= 2;
|
|
45
|
+
if (modifiers.has("Alt"))
|
|
46
|
+
mask |= 4;
|
|
47
|
+
if (modifiers.has("Meta"))
|
|
48
|
+
mask |= 8;
|
|
49
|
+
return mask;
|
|
50
|
+
}
|
|
51
|
+
function toButtonsMask(buttons) {
|
|
52
|
+
let mask = 0;
|
|
53
|
+
if (buttons.has("left"))
|
|
54
|
+
mask |= 1;
|
|
55
|
+
if (buttons.has("right"))
|
|
56
|
+
mask |= 2;
|
|
57
|
+
if (buttons.has("middle"))
|
|
58
|
+
mask |= 4;
|
|
59
|
+
return mask;
|
|
60
|
+
}
|
|
61
|
+
class RawKeyboardImpl {
|
|
62
|
+
constructor(session) {
|
|
63
|
+
this._pageProxySession = session;
|
|
64
|
+
}
|
|
65
|
+
setSession(session) {
|
|
66
|
+
this._session = session;
|
|
67
|
+
}
|
|
68
|
+
async keydown(progress, modifiers, keyName, description, autoRepeat) {
|
|
69
|
+
const parts = [];
|
|
70
|
+
for (const modifier of ["Shift", "Control", "Alt", "Meta"]) {
|
|
71
|
+
if (modifiers.has(modifier))
|
|
72
|
+
parts.push(modifier);
|
|
73
|
+
}
|
|
74
|
+
const { code, keyCode, key, text } = description;
|
|
75
|
+
parts.push(code);
|
|
76
|
+
const shortcut = parts.join("+");
|
|
77
|
+
let commands = import_macEditingCommands.macEditingCommands[shortcut];
|
|
78
|
+
if ((0, import_utils.isString)(commands))
|
|
79
|
+
commands = [commands];
|
|
80
|
+
await progress.race(this._pageProxySession.send("Input.dispatchKeyEvent", {
|
|
81
|
+
type: "keyDown",
|
|
82
|
+
modifiers: toModifiersMask(modifiers),
|
|
83
|
+
windowsVirtualKeyCode: keyCode,
|
|
84
|
+
code,
|
|
85
|
+
key,
|
|
86
|
+
text,
|
|
87
|
+
unmodifiedText: text,
|
|
88
|
+
autoRepeat,
|
|
89
|
+
macCommands: commands,
|
|
90
|
+
isKeypad: description.location === input.keypadLocation
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
async keyup(progress, modifiers, keyName, description) {
|
|
94
|
+
const { code, key } = description;
|
|
95
|
+
await progress.race(this._pageProxySession.send("Input.dispatchKeyEvent", {
|
|
96
|
+
type: "keyUp",
|
|
97
|
+
modifiers: toModifiersMask(modifiers),
|
|
98
|
+
key,
|
|
99
|
+
windowsVirtualKeyCode: description.keyCode,
|
|
100
|
+
code,
|
|
101
|
+
isKeypad: description.location === input.keypadLocation
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
async sendText(progress, text) {
|
|
105
|
+
await progress.race(this._session.send("Page.insertText", { text }));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
class RawMouseImpl {
|
|
109
|
+
constructor(session) {
|
|
110
|
+
this._pageProxySession = session;
|
|
111
|
+
}
|
|
112
|
+
setSession(session) {
|
|
113
|
+
this._session = session;
|
|
114
|
+
}
|
|
115
|
+
async move(progress, x, y, button, buttons, modifiers, forClick) {
|
|
116
|
+
await progress.race(this._pageProxySession.send("Input.dispatchMouseEvent", {
|
|
117
|
+
type: "move",
|
|
118
|
+
button,
|
|
119
|
+
buttons: toButtonsMask(buttons),
|
|
120
|
+
x,
|
|
121
|
+
y,
|
|
122
|
+
modifiers: toModifiersMask(modifiers)
|
|
123
|
+
}));
|
|
124
|
+
}
|
|
125
|
+
async down(progress, x, y, button, buttons, modifiers, clickCount) {
|
|
126
|
+
await progress.race(this._pageProxySession.send("Input.dispatchMouseEvent", {
|
|
127
|
+
type: "down",
|
|
128
|
+
button,
|
|
129
|
+
buttons: toButtonsMask(buttons),
|
|
130
|
+
x,
|
|
131
|
+
y,
|
|
132
|
+
modifiers: toModifiersMask(modifiers),
|
|
133
|
+
clickCount
|
|
134
|
+
}));
|
|
135
|
+
}
|
|
136
|
+
async up(progress, x, y, button, buttons, modifiers, clickCount) {
|
|
137
|
+
await progress.race(this._pageProxySession.send("Input.dispatchMouseEvent", {
|
|
138
|
+
type: "up",
|
|
139
|
+
button,
|
|
140
|
+
buttons: toButtonsMask(buttons),
|
|
141
|
+
x,
|
|
142
|
+
y,
|
|
143
|
+
modifiers: toModifiersMask(modifiers),
|
|
144
|
+
clickCount
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
147
|
+
async wheel(progress, x, y, buttons, modifiers, deltaX, deltaY) {
|
|
148
|
+
if (this._page?.browserContext._options.isMobile)
|
|
149
|
+
throw new Error("Mouse wheel is not supported in mobile WebKit");
|
|
150
|
+
await this._session.send("Page.updateScrollingState");
|
|
151
|
+
await progress.race(this._page.mainFrame().evaluateExpression(`new Promise(requestAnimationFrame)`, { world: "utility" }));
|
|
152
|
+
await progress.race(this._pageProxySession.send("Input.dispatchWheelEvent", {
|
|
153
|
+
x,
|
|
154
|
+
y,
|
|
155
|
+
deltaX,
|
|
156
|
+
deltaY,
|
|
157
|
+
modifiers: toModifiersMask(modifiers)
|
|
158
|
+
}));
|
|
159
|
+
}
|
|
160
|
+
setPage(page) {
|
|
161
|
+
this._page = page;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
class RawTouchscreenImpl {
|
|
165
|
+
constructor(session) {
|
|
166
|
+
this._pageProxySession = session;
|
|
167
|
+
}
|
|
168
|
+
async tap(progress, x, y, modifiers) {
|
|
169
|
+
await progress.race(this._pageProxySession.send("Input.dispatchTapEvent", {
|
|
170
|
+
x,
|
|
171
|
+
y,
|
|
172
|
+
modifiers: toModifiersMask(modifiers)
|
|
173
|
+
}));
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
177
|
+
0 && (module.exports = {
|
|
178
|
+
RawKeyboardImpl,
|
|
179
|
+
RawMouseImpl,
|
|
180
|
+
RawTouchscreenImpl
|
|
181
|
+
});
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
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 wkInterceptableRequest_exports = {};
|
|
30
|
+
__export(wkInterceptableRequest_exports, {
|
|
31
|
+
WKInterceptableRequest: () => WKInterceptableRequest,
|
|
32
|
+
WKRouteImpl: () => WKRouteImpl
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(wkInterceptableRequest_exports);
|
|
35
|
+
var import_utils = require("../../utils");
|
|
36
|
+
var network = __toESM(require("../network"));
|
|
37
|
+
const errorReasons = {
|
|
38
|
+
"aborted": "Cancellation",
|
|
39
|
+
"accessdenied": "AccessControl",
|
|
40
|
+
"addressunreachable": "General",
|
|
41
|
+
"blockedbyclient": "Cancellation",
|
|
42
|
+
"blockedbyresponse": "General",
|
|
43
|
+
"connectionaborted": "General",
|
|
44
|
+
"connectionclosed": "General",
|
|
45
|
+
"connectionfailed": "General",
|
|
46
|
+
"connectionrefused": "General",
|
|
47
|
+
"connectionreset": "General",
|
|
48
|
+
"internetdisconnected": "General",
|
|
49
|
+
"namenotresolved": "General",
|
|
50
|
+
"timedout": "Timeout",
|
|
51
|
+
"failed": "General"
|
|
52
|
+
};
|
|
53
|
+
class WKInterceptableRequest {
|
|
54
|
+
constructor(session, frame, event, redirectedFrom, documentId) {
|
|
55
|
+
this._session = session;
|
|
56
|
+
this._requestId = event.requestId;
|
|
57
|
+
const resourceType = event.type ? event.type.toLowerCase() : redirectedFrom ? redirectedFrom.request.resourceType() : "other";
|
|
58
|
+
let postDataBuffer = null;
|
|
59
|
+
this._timestamp = event.timestamp;
|
|
60
|
+
this._wallTime = event.walltime * 1e3;
|
|
61
|
+
if (event.request.postData)
|
|
62
|
+
postDataBuffer = Buffer.from(event.request.postData, "base64");
|
|
63
|
+
this.request = new network.Request(
|
|
64
|
+
frame._page.browserContext,
|
|
65
|
+
frame,
|
|
66
|
+
null,
|
|
67
|
+
redirectedFrom?.request || null,
|
|
68
|
+
documentId,
|
|
69
|
+
event.request.url,
|
|
70
|
+
resourceType,
|
|
71
|
+
event.request.method,
|
|
72
|
+
postDataBuffer,
|
|
73
|
+
(0, import_utils.headersObjectToArray)(event.request.headers)
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
adoptRequestFromNewProcess(newSession, requestId) {
|
|
77
|
+
this._session = newSession;
|
|
78
|
+
this._requestId = requestId;
|
|
79
|
+
}
|
|
80
|
+
createResponse(responsePayload) {
|
|
81
|
+
const getResponseBody = async () => {
|
|
82
|
+
const response2 = await this._session.send("Network.getResponseBody", { requestId: this._requestId });
|
|
83
|
+
return Buffer.from(response2.body, response2.base64Encoded ? "base64" : "utf8");
|
|
84
|
+
};
|
|
85
|
+
const timingPayload = responsePayload.timing;
|
|
86
|
+
const timing = {
|
|
87
|
+
startTime: this._wallTime,
|
|
88
|
+
domainLookupStart: timingPayload ? wkMillisToRoundishMillis(timingPayload.domainLookupStart) : -1,
|
|
89
|
+
domainLookupEnd: timingPayload ? wkMillisToRoundishMillis(timingPayload.domainLookupEnd) : -1,
|
|
90
|
+
connectStart: timingPayload ? wkMillisToRoundishMillis(timingPayload.connectStart) : -1,
|
|
91
|
+
secureConnectionStart: timingPayload ? wkMillisToRoundishMillis(timingPayload.secureConnectionStart) : -1,
|
|
92
|
+
connectEnd: timingPayload ? wkMillisToRoundishMillis(timingPayload.connectEnd) : -1,
|
|
93
|
+
requestStart: timingPayload ? wkMillisToRoundishMillis(timingPayload.requestStart) : -1,
|
|
94
|
+
responseStart: timingPayload ? wkMillisToRoundishMillis(timingPayload.responseStart) : -1
|
|
95
|
+
};
|
|
96
|
+
const setCookieSeparator = process.platform === "darwin" ? "," : "playwright-set-cookie-separator";
|
|
97
|
+
const response = new network.Response(this.request, responsePayload.status, responsePayload.statusText, (0, import_utils.headersObjectToArray)(responsePayload.headers, ",", setCookieSeparator), timing, getResponseBody, responsePayload.source === "service-worker");
|
|
98
|
+
response.setRawResponseHeaders(null);
|
|
99
|
+
response.setTransferSize(null);
|
|
100
|
+
if (responsePayload.requestHeaders && Object.keys(responsePayload.requestHeaders).length) {
|
|
101
|
+
const headers = { ...responsePayload.requestHeaders };
|
|
102
|
+
if (!headers["host"])
|
|
103
|
+
headers["Host"] = new URL(this.request.url()).host;
|
|
104
|
+
this.request.setRawRequestHeaders((0, import_utils.headersObjectToArray)(headers));
|
|
105
|
+
} else {
|
|
106
|
+
this.request.setRawRequestHeaders(null);
|
|
107
|
+
}
|
|
108
|
+
return response;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
class WKRouteImpl {
|
|
112
|
+
constructor(session, requestId) {
|
|
113
|
+
this._session = session;
|
|
114
|
+
this._requestId = requestId;
|
|
115
|
+
}
|
|
116
|
+
async abort(errorCode) {
|
|
117
|
+
const errorType = errorReasons[errorCode];
|
|
118
|
+
(0, import_utils.assert)(errorType, "Unknown error code: " + errorCode);
|
|
119
|
+
await this._session.sendMayFail("Network.interceptRequestWithError", { requestId: this._requestId, errorType });
|
|
120
|
+
}
|
|
121
|
+
async fulfill(response) {
|
|
122
|
+
if (300 <= response.status && response.status < 400)
|
|
123
|
+
throw new Error("Cannot fulfill with redirect status: " + response.status);
|
|
124
|
+
let mimeType = response.isBase64 ? "application/octet-stream" : "text/plain";
|
|
125
|
+
const headers = (0, import_utils.headersArrayToObject)(
|
|
126
|
+
response.headers,
|
|
127
|
+
true
|
|
128
|
+
/* lowerCase */
|
|
129
|
+
);
|
|
130
|
+
const contentType = headers["content-type"];
|
|
131
|
+
if (contentType)
|
|
132
|
+
mimeType = contentType.split(";")[0].trim();
|
|
133
|
+
await this._session.sendMayFail("Network.interceptRequestWithResponse", {
|
|
134
|
+
requestId: this._requestId,
|
|
135
|
+
status: response.status,
|
|
136
|
+
statusText: network.statusText(response.status),
|
|
137
|
+
mimeType,
|
|
138
|
+
headers,
|
|
139
|
+
base64Encoded: response.isBase64,
|
|
140
|
+
content: response.body
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
async continue(overrides) {
|
|
144
|
+
await this._session.sendMayFail("Network.interceptWithRequest", {
|
|
145
|
+
requestId: this._requestId,
|
|
146
|
+
url: overrides.url,
|
|
147
|
+
method: overrides.method,
|
|
148
|
+
headers: overrides.headers ? (0, import_utils.headersArrayToObject)(
|
|
149
|
+
overrides.headers,
|
|
150
|
+
false
|
|
151
|
+
/* lowerCase */
|
|
152
|
+
) : void 0,
|
|
153
|
+
postData: overrides.postData ? Buffer.from(overrides.postData).toString("base64") : void 0
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
function wkMillisToRoundishMillis(value) {
|
|
158
|
+
if (value === -1e3)
|
|
159
|
+
return -1;
|
|
160
|
+
if (value <= 0) {
|
|
161
|
+
return -1;
|
|
162
|
+
}
|
|
163
|
+
return (value * 1e3 | 0) / 1e3;
|
|
164
|
+
}
|
|
165
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
166
|
+
0 && (module.exports = {
|
|
167
|
+
WKInterceptableRequest,
|
|
168
|
+
WKRouteImpl
|
|
169
|
+
});
|