patchright-core 1.51.2 → 1.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browsers.json +15 -13
- package/lib/androidServerImpl.js +42 -48
- package/lib/browserServerImpl.js +54 -67
- package/lib/cli/driver.js +71 -69
- package/lib/cli/program.js +312 -328
- package/lib/cli/programWithTestStub.js +51 -45
- package/lib/client/accessibility.js +31 -32
- package/lib/client/android.js +141 -228
- package/lib/client/api.js +135 -283
- package/lib/client/artifact.js +39 -36
- package/lib/client/browser.js +57 -61
- package/lib/client/browserContext.js +297 -326
- package/lib/client/browserType.js +92 -106
- package/lib/client/cdpSession.js +29 -31
- package/lib/client/channelOwner.js +82 -95
- package/lib/client/clientHelper.js +46 -38
- package/lib/client/clientInstrumentation.js +40 -37
- package/lib/client/clientStackTrace.js +41 -37
- package/lib/client/clock.js +36 -36
- package/lib/client/connection.js +190 -212
- package/lib/client/consoleMessage.js +31 -28
- package/lib/client/coverage.js +25 -22
- package/lib/client/dialog.js +30 -31
- package/lib/client/download.js +25 -25
- package/lib/client/electron.js +73 -75
- package/lib/client/elementHandle.js +111 -147
- package/lib/client/errors.js +53 -53
- package/lib/client/eventEmitter.js +124 -121
- package/lib/client/events.js +72 -68
- package/lib/client/fetch.js +135 -158
- package/lib/client/fileChooser.js +25 -24
- package/lib/client/fileUtils.js +31 -28
- package/lib/client/frame.js +187 -306
- package/lib/client/harRouter.js +42 -52
- package/lib/client/input.js +40 -69
- package/lib/client/jsHandle.js +54 -69
- package/lib/client/jsonPipe.js +27 -23
- package/lib/client/localUtils.js +29 -28
- package/lib/client/locator.js +161 -245
- package/lib/client/network.js +277 -295
- package/lib/client/page.js +270 -318
- package/lib/client/platform.js +46 -43
- package/lib/client/playwright.js +51 -66
- package/lib/client/selectors.js +48 -46
- package/lib/client/stream.js +29 -25
- package/lib/client/timeoutSettings.js +49 -39
- package/lib/client/tracing.js +48 -84
- package/lib/client/types.js +26 -22
- package/lib/client/video.js +35 -27
- package/lib/client/waiter.js +69 -88
- package/lib/client/webError.js +25 -23
- package/lib/client/webSocket.js +61 -56
- package/lib/client/worker.js +48 -58
- package/lib/client/writableStream.js +27 -23
- package/lib/generated/clockSource.js +26 -5
- package/lib/generated/consoleApiSource.js +26 -5
- package/lib/generated/injectedScriptSource.js +26 -5
- package/lib/generated/pollingRecorderSource.js +26 -5
- package/lib/generated/utilityScriptSource.js +26 -5
- package/lib/generated/webSocketMockSource.js +375 -4
- package/lib/inProcessFactory.js +53 -53
- package/lib/inprocess.js +2 -19
- package/lib/outofprocess.js +53 -46
- package/lib/protocol/debug.js +209 -25
- package/lib/protocol/serializers.js +153 -134
- package/lib/protocol/validator.js +2714 -2714
- package/lib/protocol/validatorPrimitives.js +114 -73
- package/lib/remote/playwrightConnection.js +140 -157
- package/lib/remote/playwrightServer.js +99 -84
- package/lib/server/accessibility.js +44 -37
- package/lib/server/android/android.js +216 -209
- package/lib/server/android/backendAdb.js +89 -82
- package/lib/server/artifact.js +78 -55
- package/lib/server/bidi/bidiBrowser.js +221 -155
- package/lib/server/bidi/bidiChromium.js +106 -79
- package/lib/server/bidi/bidiConnection.js +66 -83
- package/lib/server/bidi/bidiExecutionContext.js +128 -113
- package/lib/server/bidi/bidiFirefox.js +76 -69
- package/lib/server/bidi/bidiInput.js +86 -97
- package/lib/server/bidi/bidiNetworkManager.js +137 -154
- package/lib/server/bidi/bidiOverCdp.js +57 -58
- package/lib/server/bidi/bidiPage.js +247 -219
- package/lib/server/bidi/bidiPdf.js +52 -86
- package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
- package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
- package/lib/server/bidi/third_party/bidiKeyboard.js +236 -220
- package/lib/server/bidi/third_party/bidiProtocol.js +144 -131
- package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
- package/lib/server/bidi/third_party/firefoxPrefs.js +141 -119
- package/lib/server/browser.js +76 -84
- package/lib/server/browserContext.js +321 -346
- package/lib/server/browserType.js +169 -182
- package/lib/server/callLog.js +47 -44
- package/lib/server/chromium/chromium.js +212 -190
- package/lib/server/chromium/chromiumSwitches.js +86 -64
- package/lib/server/chromium/crAccessibility.js +157 -131
- package/lib/server/chromium/crBrowser.js +253 -273
- package/lib/server/chromium/crConnection.js +91 -116
- package/lib/server/chromium/crCoverage.js +113 -127
- package/lib/server/chromium/crDevTools.js +59 -51
- package/lib/server/chromium/crDragDrop.js +62 -79
- package/lib/server/chromium/crExecutionContext.js +88 -83
- package/lib/server/chromium/crInput.js +97 -95
- package/lib/server/chromium/crNetworkManager.js +288 -403
- package/lib/server/chromium/crPage.js +522 -608
- package/lib/server/chromium/crPdf.js +54 -86
- package/lib/server/chromium/crProtocolHelper.js +92 -80
- package/lib/server/chromium/crServiceWorker.js +82 -67
- package/lib/server/chromium/defaultFontFamilies.js +152 -135
- package/lib/server/chromium/protocol.d.js +16 -0
- package/lib/server/chromium/videoRecorder.js +65 -99
- package/lib/server/clock.js +62 -50
- package/lib/server/codegen/csharp.js +185 -160
- package/lib/server/codegen/java.js +155 -128
- package/lib/server/codegen/javascript.js +163 -148
- package/lib/server/codegen/jsonl.js +32 -28
- package/lib/server/codegen/language.js +75 -52
- package/lib/server/codegen/languages.js +65 -27
- package/lib/server/codegen/python.js +140 -125
- package/lib/server/codegen/types.js +15 -4
- package/lib/server/console.js +28 -32
- package/lib/server/cookieStore.js +105 -86
- package/lib/server/debugController.js +97 -124
- package/lib/server/debugger.js +82 -78
- package/lib/server/deviceDescriptors.js +37 -24
- package/lib/server/deviceDescriptorsSource.json +50 -50
- package/lib/server/dialog.js +36 -35
- package/lib/server/dispatchers/androidDispatcher.js +196 -107
- package/lib/server/dispatchers/artifactDispatcher.js +62 -62
- package/lib/server/dispatchers/browserContextDispatcher.js +176 -205
- package/lib/server/dispatchers/browserDispatcher.js +78 -97
- package/lib/server/dispatchers/browserTypeDispatcher.js +35 -35
- package/lib/server/dispatchers/cdpSessionDispatcher.js +32 -36
- package/lib/server/dispatchers/debugControllerDispatcher.js +48 -66
- package/lib/server/dispatchers/dialogDispatcher.js +30 -27
- package/lib/server/dispatchers/dispatcher.js +169 -220
- package/lib/server/dispatchers/electronDispatcher.js +54 -57
- package/lib/server/dispatchers/elementHandlerDispatcher.js +77 -119
- package/lib/server/dispatchers/frameDispatcher.js +99 -163
- package/lib/server/dispatchers/jsHandleDispatcher.js +49 -66
- package/lib/server/dispatchers/jsonPipeDispatcher.js +35 -36
- package/lib/server/dispatchers/localUtilsDispatcher.js +95 -80
- package/lib/server/dispatchers/networkDispatchers.js +90 -107
- package/lib/server/dispatchers/pageDispatcher.js +128 -169
- package/lib/server/dispatchers/playwrightDispatcher.js +69 -76
- package/lib/server/dispatchers/selectorsDispatcher.js +28 -24
- package/lib/server/dispatchers/streamDispatcher.js +42 -45
- package/lib/server/dispatchers/tracingDispatcher.js +36 -41
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +96 -131
- package/lib/server/dispatchers/writableStreamDispatcher.js +54 -38
- package/lib/server/dom.js +413 -443
- package/lib/server/download.js +45 -35
- package/lib/server/electron/electron.js +156 -176
- package/lib/server/electron/loader.js +8 -36
- package/lib/server/errors.js +47 -46
- package/lib/server/fetch.js +289 -323
- package/lib/server/fileChooser.js +25 -24
- package/lib/server/fileUploadUtils.js +65 -59
- package/lib/server/firefox/ffAccessibility.js +153 -131
- package/lib/server/firefox/ffBrowser.js +213 -277
- package/lib/server/firefox/ffConnection.js +63 -84
- package/lib/server/firefox/ffExecutionContext.js +91 -73
- package/lib/server/firefox/ffInput.js +67 -69
- package/lib/server/firefox/ffNetworkManager.js +131 -110
- package/lib/server/firefox/ffPage.js +236 -273
- package/lib/server/firefox/firefox.js +76 -67
- package/lib/server/firefox/protocol.d.js +16 -0
- package/lib/server/formData.js +107 -35
- package/lib/server/frameSelectors.js +77 -111
- package/lib/server/frames.js +741 -891
- package/lib/server/har/harRecorder.js +85 -77
- package/lib/server/har/harTracer.js +287 -222
- package/lib/server/harBackend.js +80 -80
- package/lib/server/helper.js +56 -59
- package/lib/server/index.js +59 -99
- package/lib/server/input.js +134 -163
- package/lib/server/instrumentation.js +49 -44
- package/lib/server/javascript.js +143 -134
- package/lib/server/launchApp.js +92 -73
- package/lib/server/localUtils.js +130 -122
- package/lib/server/macEditingCommands.js +141 -137
- package/lib/server/network.js +262 -296
- package/lib/server/page.js +329 -426
- package/lib/server/pageBinding.js +88 -0
- package/lib/server/pipeTransport.js +49 -45
- package/lib/server/playwright.js +60 -67
- package/lib/server/progress.js +56 -51
- package/lib/server/protocolError.js +34 -31
- package/lib/server/recorder/chat.js +70 -86
- package/lib/server/recorder/contextRecorder.js +134 -138
- package/lib/server/recorder/recorderApp.js +127 -136
- package/lib/server/recorder/recorderCollection.js +56 -44
- package/lib/server/recorder/recorderFrontend.js +15 -4
- package/lib/server/recorder/recorderRunner.js +79 -103
- package/lib/server/recorder/recorderUtils.js +56 -45
- package/lib/server/recorder/throttledFile.js +42 -30
- package/lib/server/recorder.js +177 -186
- package/lib/server/registry/browserFetcher.js +106 -101
- package/lib/server/registry/dependencies.js +245 -196
- package/lib/server/registry/index.js +904 -792
- package/lib/server/registry/nativeDeps.js +1073 -464
- package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
- package/lib/server/screenshotter.js +166 -182
- package/lib/server/selectors.js +85 -46
- package/lib/server/socksClientCertificatesInterceptor.js +166 -185
- package/lib/server/socksInterceptor.js +62 -70
- package/lib/server/storageScript.js +94 -100
- package/lib/server/timeoutSettings.js +58 -43
- package/lib/server/trace/recorder/snapshotter.js +70 -89
- package/lib/server/trace/recorder/snapshotterInjected.js +238 -217
- package/lib/server/trace/recorder/tracing.js +321 -333
- package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
- package/lib/server/trace/viewer/traceViewer.js +168 -146
- package/lib/server/transport.js +124 -133
- package/lib/server/types.js +26 -22
- package/lib/server/usKeyboardLayout.js +135 -545
- package/lib/server/utils/ascii.js +39 -26
- package/lib/server/utils/comparators.js +105 -103
- package/lib/server/utils/crypto.js +157 -112
- package/lib/server/utils/debug.js +37 -28
- package/lib/server/utils/debugLogger.js +69 -48
- package/lib/server/utils/env.js +52 -37
- package/lib/server/utils/eventsHelper.js +29 -28
- package/lib/server/utils/expectUtils.js +31 -26
- package/lib/server/utils/fileUtils.js +123 -136
- package/lib/server/utils/happyEyeballs.js +138 -123
- package/lib/server/utils/hostPlatform.js +84 -120
- package/lib/server/utils/httpServer.js +106 -121
- package/lib/server/utils/image_tools/colorUtils.js +42 -51
- package/lib/server/utils/image_tools/compare.js +44 -43
- package/lib/server/utils/image_tools/imageChannel.js +38 -30
- package/lib/server/utils/image_tools/stats.js +40 -40
- package/lib/server/utils/linuxUtils.js +50 -37
- package/lib/server/utils/network.js +143 -86
- package/lib/server/utils/nodePlatform.js +87 -79
- package/lib/server/utils/pipeTransport.js +44 -42
- package/lib/server/utils/processLauncher.js +111 -121
- package/lib/server/utils/profiler.js +52 -39
- package/lib/server/utils/socksProxy.js +280 -339
- package/lib/server/utils/spawnAsync.js +37 -41
- package/lib/server/utils/task.js +31 -38
- package/lib/server/utils/userAgent.js +73 -66
- package/lib/server/utils/wsServer.js +73 -69
- package/lib/server/utils/zipFile.js +36 -37
- package/lib/server/utils/zones.js +37 -34
- package/lib/server/webkit/protocol.d.js +16 -0
- package/lib/server/webkit/webkit.js +76 -63
- package/lib/server/webkit/wkAccessibility.js +161 -118
- package/lib/server/webkit/wkBrowser.js +159 -176
- package/lib/server/webkit/wkConnection.js +59 -83
- package/lib/server/webkit/wkExecutionContext.js +84 -70
- package/lib/server/webkit/wkInput.js +82 -80
- package/lib/server/webkit/wkInterceptableRequest.js +102 -95
- package/lib/server/webkit/wkPage.js +525 -619
- package/lib/server/webkit/wkProvisionalPage.js +45 -56
- package/lib/server/webkit/wkWorkers.js +77 -77
- package/lib/utils/isomorphic/ariaSnapshot.js +144 -152
- package/lib/utils/isomorphic/assert.js +28 -22
- package/lib/utils/isomorphic/builtins.js +90 -0
- package/lib/utils/isomorphic/colors.js +66 -59
- package/lib/utils/isomorphic/cssParser.js +121 -125
- package/lib/utils/isomorphic/cssTokenizer.js +436 -364
- package/lib/utils/isomorphic/headers.js +38 -37
- package/lib/utils/isomorphic/locatorGenerators.js +340 -357
- package/lib/utils/isomorphic/locatorParser.js +96 -105
- package/lib/utils/isomorphic/locatorUtils.js +63 -44
- package/lib/utils/isomorphic/manualPromise.js +47 -39
- package/lib/utils/isomorphic/mimeType.js +448 -25
- package/lib/utils/isomorphic/multimap.js +35 -27
- package/lib/utils/isomorphic/rtti.js +35 -33
- package/lib/utils/isomorphic/selectorParser.js +183 -193
- package/lib/utils/isomorphic/semaphore.js +27 -24
- package/lib/utils/isomorphic/stackTrace.js +87 -98
- package/lib/utils/isomorphic/stringUtils.js +113 -106
- package/lib/utils/isomorphic/time.js +41 -22
- package/lib/utils/isomorphic/timeoutRunner.js +55 -54
- package/lib/utils/isomorphic/traceUtils.js +38 -41
- package/lib/utils/isomorphic/types.js +15 -4
- package/lib/utils/isomorphic/urlMatch.js +112 -67
- package/lib/utils/isomorphic/utilityScriptSerializers.js +248 -0
- package/lib/utils.js +97 -443
- package/lib/utilsBundle.js +101 -52
- package/lib/vite/htmlReport/index.html +21 -15
- package/lib/vite/recorder/assets/{codeMirrorModule-B9YMkrwa.js → codeMirrorModule-DVQi6prl.js} +1 -1
- package/lib/vite/recorder/assets/index-97EUAAbk.js +184 -0
- package/lib/vite/recorder/index.html +1 -1
- package/lib/vite/traceViewer/assets/{codeMirrorModule-DpJ-EmBQ.js → codeMirrorModule-dvXVzLxY.js} +1 -1
- package/lib/vite/traceViewer/assets/defaultSettingsView-BjymbO6M.js +265 -0
- package/lib/vite/traceViewer/{defaultSettingsView.5fN5lw10.css → defaultSettingsView.QdHITyLI.css} +1 -1
- package/lib/vite/traceViewer/index.ChIUCJnj.js +2 -0
- package/lib/vite/traceViewer/index.html +3 -3
- package/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/lib/vite/traceViewer/uiMode.html +3 -3
- package/lib/vite/traceViewer/uiMode.jUCiCtdp.js +5 -0
- package/lib/zipBundle.js +32 -23
- package/package.json +1 -1
- package/types/protocol.d.ts +436 -17
- package/types/types.d.ts +35 -16
- package/lib/server/isomorphic/utilityScriptSerializers.js +0 -229
- package/lib/vite/recorder/assets/index-ELPgmkwA.js +0 -184
- package/lib/vite/traceViewer/assets/defaultSettingsView-DTenqiGw.js +0 -259
- package/lib/vite/traceViewer/index.CUq7VgrV.js +0 -2
- package/lib/vite/traceViewer/uiMode.CHJSAD7F.js +0 -5
|
@@ -1,130 +1,131 @@
|
|
|
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 recorderApp_exports = {};
|
|
30
|
+
__export(recorderApp_exports, {
|
|
31
|
+
EmptyRecorderApp: () => EmptyRecorderApp,
|
|
32
|
+
RecorderApp: () => RecorderApp
|
|
5
33
|
});
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
constructor(...args) {
|
|
34
|
-
super(...args);
|
|
35
|
-
this.wsEndpointForTest = void 0;
|
|
36
|
-
}
|
|
37
|
-
async close() {}
|
|
38
|
-
async setPaused(paused) {}
|
|
39
|
-
async setMode(mode) {}
|
|
40
|
-
async setRunningFile(file) {}
|
|
41
|
-
async elementPicked(elementInfo, userGesture) {}
|
|
42
|
-
async updateCallLogs(callLogs) {}
|
|
43
|
-
async setSources(sources, primaryPageURL) {}
|
|
44
|
-
async setActions(actions, sources) {}
|
|
34
|
+
module.exports = __toCommonJS(recorderApp_exports);
|
|
35
|
+
var import_events = require("events");
|
|
36
|
+
var import_fs = __toESM(require("fs"));
|
|
37
|
+
var import_path = __toESM(require("path"));
|
|
38
|
+
var import_debug = require("../utils/debug");
|
|
39
|
+
var import_utilsBundle = require("../../utilsBundle");
|
|
40
|
+
var import_instrumentation = require("../instrumentation");
|
|
41
|
+
var import_launchApp = require("../launchApp");
|
|
42
|
+
var import_launchApp2 = require("../launchApp");
|
|
43
|
+
var import_progress = require("../progress");
|
|
44
|
+
class EmptyRecorderApp extends import_events.EventEmitter {
|
|
45
|
+
async close() {
|
|
46
|
+
}
|
|
47
|
+
async setPaused(paused) {
|
|
48
|
+
}
|
|
49
|
+
async setMode(mode) {
|
|
50
|
+
}
|
|
51
|
+
async setRunningFile(file) {
|
|
52
|
+
}
|
|
53
|
+
async elementPicked(elementInfo, userGesture) {
|
|
54
|
+
}
|
|
55
|
+
async updateCallLogs(callLogs) {
|
|
56
|
+
}
|
|
57
|
+
async setSources(sources, primaryPageURL) {
|
|
58
|
+
}
|
|
59
|
+
async setActions(actions, sources) {
|
|
60
|
+
}
|
|
45
61
|
}
|
|
46
|
-
|
|
47
|
-
class RecorderApp extends _events.EventEmitter {
|
|
62
|
+
class RecorderApp extends import_events.EventEmitter {
|
|
48
63
|
constructor(recorder, page, wsEndpoint) {
|
|
49
64
|
super();
|
|
50
|
-
this._page = void 0;
|
|
51
|
-
this.wsEndpointForTest = void 0;
|
|
52
|
-
this._recorder = void 0;
|
|
53
65
|
this.setMaxListeners(0);
|
|
54
66
|
this._recorder = recorder;
|
|
55
67
|
this._page = page;
|
|
56
68
|
this.wsEndpointForTest = wsEndpoint;
|
|
57
69
|
}
|
|
58
70
|
async close() {
|
|
59
|
-
await this._page.context().close({
|
|
60
|
-
reason: 'Recorder window closed'
|
|
61
|
-
});
|
|
71
|
+
await this._page.context().close({ reason: "Recorder window closed" });
|
|
62
72
|
}
|
|
63
73
|
async _init() {
|
|
64
|
-
await (0,
|
|
65
|
-
await this._page._setServerRequestInterceptor(route => {
|
|
66
|
-
if (!route.request().url().startsWith(
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
|
|
74
|
+
await (0, import_launchApp.syncLocalStorageWithSettings)(this._page, "recorder");
|
|
75
|
+
await this._page._setServerRequestInterceptor((route) => {
|
|
76
|
+
if (!route.request().url().startsWith("https://playwright/"))
|
|
77
|
+
return false;
|
|
78
|
+
const uri = route.request().url().substring("https://playwright/".length);
|
|
79
|
+
const file = require.resolve("../../vite/recorder/" + uri);
|
|
80
|
+
import_fs.default.promises.readFile(file).then((buffer) => {
|
|
70
81
|
route.fulfill({
|
|
71
82
|
status: 200,
|
|
72
|
-
headers: [
|
|
73
|
-
name:
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
body: buffer.toString('base64'),
|
|
83
|
+
headers: [
|
|
84
|
+
{ name: "Content-Type", value: import_utilsBundle.mime.getType(import_path.default.extname(file)) || "application/octet-stream" }
|
|
85
|
+
],
|
|
86
|
+
body: buffer.toString("base64"),
|
|
77
87
|
isBase64: true
|
|
78
|
-
}).catch(() => {
|
|
88
|
+
}).catch(() => {
|
|
89
|
+
});
|
|
79
90
|
});
|
|
80
91
|
return true;
|
|
81
92
|
});
|
|
82
|
-
await this._page.exposeBinding(
|
|
83
|
-
this._page.once(
|
|
84
|
-
this.emit(
|
|
85
|
-
this._page.context().close({
|
|
86
|
-
|
|
87
|
-
}).catch(() => {});
|
|
93
|
+
await this._page.exposeBinding("dispatch", false, (_, data) => this.emit("event", data));
|
|
94
|
+
this._page.once("close", () => {
|
|
95
|
+
this.emit("close");
|
|
96
|
+
this._page.context().close({ reason: "Recorder window closed" }).catch(() => {
|
|
97
|
+
});
|
|
88
98
|
});
|
|
89
99
|
const mainFrame = this._page.mainFrame();
|
|
90
|
-
await mainFrame.goto((0,
|
|
100
|
+
await mainFrame.goto((0, import_instrumentation.serverSideCallMetadata)(), process.env.PW_HMR ? "http://localhost:44225" : "https://playwright/index.html");
|
|
91
101
|
}
|
|
92
102
|
static factory(context) {
|
|
93
|
-
return async recorder => {
|
|
94
|
-
if (process.env.PW_CODEGEN_NO_INSPECTOR)
|
|
103
|
+
return async (recorder) => {
|
|
104
|
+
if (process.env.PW_CODEGEN_NO_INSPECTOR)
|
|
105
|
+
return new EmptyRecorderApp();
|
|
95
106
|
return await RecorderApp._open(recorder, context);
|
|
96
107
|
};
|
|
97
108
|
}
|
|
98
109
|
static async _open(recorder, inspectedContext) {
|
|
99
110
|
const sdkLanguage = inspectedContext.attribution.playwright.options.sdkLanguage;
|
|
100
111
|
const headed = !!inspectedContext._browser.options.headful;
|
|
101
|
-
const recorderPlaywright = require(
|
|
102
|
-
|
|
103
|
-
isInternalPlaywright: true
|
|
104
|
-
});
|
|
105
|
-
const {
|
|
106
|
-
context,
|
|
107
|
-
page
|
|
108
|
-
} = await (0, _launchApp.launchApp)(recorderPlaywright.chromium, {
|
|
112
|
+
const recorderPlaywright = require("../playwright").createPlaywright({ sdkLanguage: "javascript", isInternalPlaywright: true });
|
|
113
|
+
const { context, page } = await (0, import_launchApp2.launchApp)(recorderPlaywright.chromium, {
|
|
109
114
|
sdkLanguage,
|
|
110
|
-
windowSize: {
|
|
111
|
-
|
|
112
|
-
height: 600
|
|
113
|
-
},
|
|
114
|
-
windowPosition: {
|
|
115
|
-
x: 1020,
|
|
116
|
-
y: 10
|
|
117
|
-
},
|
|
115
|
+
windowSize: { width: 600, height: 600 },
|
|
116
|
+
windowPosition: { x: 1020, y: 10 },
|
|
118
117
|
persistentContextOptions: {
|
|
119
118
|
noDefaultViewport: true,
|
|
120
|
-
headless: !!process.env.PWTEST_CLI_HEADLESS || (0,
|
|
121
|
-
useWebSocket: (0,
|
|
119
|
+
headless: !!process.env.PWTEST_CLI_HEADLESS || (0, import_debug.isUnderTest)() && !headed,
|
|
120
|
+
useWebSocket: (0, import_debug.isUnderTest)(),
|
|
122
121
|
handleSIGINT: recorder.handleSIGINT,
|
|
123
|
-
executablePath: inspectedContext._browser.options.isChromium ? inspectedContext._browser.options.customExecutablePath :
|
|
122
|
+
executablePath: inspectedContext._browser.options.isChromium ? inspectedContext._browser.options.customExecutablePath : void 0,
|
|
123
|
+
// Use the same channel as the inspected context to guarantee that the browser is installed.
|
|
124
|
+
channel: inspectedContext._browser.options.isChromium ? inspectedContext._browser.options.channel : void 0
|
|
124
125
|
}
|
|
125
126
|
});
|
|
126
|
-
const controller = new
|
|
127
|
-
await controller.run(async progress => {
|
|
127
|
+
const controller = new import_progress.ProgressController((0, import_instrumentation.serverSideCallMetadata)(), context._browser);
|
|
128
|
+
await controller.run(async (progress) => {
|
|
128
129
|
await context._browser._defaultContext._loadDefaultContextAsIs(progress);
|
|
129
130
|
});
|
|
130
131
|
const result = new RecorderApp(recorder, page, context._browser.options.wsEndpoint);
|
|
@@ -132,62 +133,52 @@ class RecorderApp extends _events.EventEmitter {
|
|
|
132
133
|
return result;
|
|
133
134
|
}
|
|
134
135
|
async setMode(mode) {
|
|
135
|
-
await this._page.mainFrame().evaluateExpression((
|
|
136
|
-
window.playwrightSetMode(
|
|
137
|
-
}).toString(), {
|
|
138
|
-
|
|
139
|
-
}, mode).catch(() => {});
|
|
136
|
+
await this._page.mainFrame().evaluateExpression(((mode2) => {
|
|
137
|
+
window.playwrightSetMode(mode2);
|
|
138
|
+
}).toString(), { isFunction: true }, mode).catch(() => {
|
|
139
|
+
});
|
|
140
140
|
}
|
|
141
141
|
async setRunningFile(file) {
|
|
142
|
-
await this._page.mainFrame().evaluateExpression((
|
|
143
|
-
window.playwrightSetRunningFile(
|
|
144
|
-
}).toString(), {
|
|
145
|
-
|
|
146
|
-
}, file).catch(() => {});
|
|
142
|
+
await this._page.mainFrame().evaluateExpression(((file2) => {
|
|
143
|
+
window.playwrightSetRunningFile(file2);
|
|
144
|
+
}).toString(), { isFunction: true }, file).catch(() => {
|
|
145
|
+
});
|
|
147
146
|
}
|
|
148
147
|
async setPaused(paused) {
|
|
149
|
-
await this._page.mainFrame().evaluateExpression((
|
|
150
|
-
window.playwrightSetPaused(
|
|
151
|
-
}).toString(), {
|
|
152
|
-
|
|
153
|
-
}, paused).catch(() => {});
|
|
148
|
+
await this._page.mainFrame().evaluateExpression(((paused2) => {
|
|
149
|
+
window.playwrightSetPaused(paused2);
|
|
150
|
+
}).toString(), { isFunction: true }, paused).catch(() => {
|
|
151
|
+
});
|
|
154
152
|
}
|
|
155
153
|
async setSources(sources, primaryPageURL) {
|
|
156
|
-
await this._page.mainFrame().evaluateExpression((({
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
})
|
|
160
|
-
window.playwrightSetSources(sources, primaryPageURL);
|
|
161
|
-
}).toString(), {
|
|
162
|
-
isFunction: true
|
|
163
|
-
}, {
|
|
164
|
-
sources,
|
|
165
|
-
primaryPageURL
|
|
166
|
-
}).catch(() => {});
|
|
167
|
-
|
|
168
|
-
// Testing harness for runCLI mode.
|
|
154
|
+
await this._page.mainFrame().evaluateExpression((({ sources: sources2, primaryPageURL: primaryPageURL2 }) => {
|
|
155
|
+
window.playwrightSetSources(sources2, primaryPageURL2);
|
|
156
|
+
}).toString(), { isFunction: true }, { sources, primaryPageURL }).catch(() => {
|
|
157
|
+
});
|
|
169
158
|
if (process.env.PWTEST_CLI_IS_UNDER_TEST && sources.length) {
|
|
170
|
-
if (process._didSetSourcesForTest(sources[0].text))
|
|
159
|
+
if (process._didSetSourcesForTest(sources[0].text))
|
|
160
|
+
this.close();
|
|
171
161
|
}
|
|
172
162
|
}
|
|
173
|
-
async setActions(actions, sources) {
|
|
163
|
+
async setActions(actions, sources) {
|
|
164
|
+
}
|
|
174
165
|
async elementPicked(elementInfo, userGesture) {
|
|
175
|
-
if (userGesture)
|
|
176
|
-
|
|
166
|
+
if (userGesture)
|
|
167
|
+
this._page.bringToFront();
|
|
168
|
+
await this._page.mainFrame().evaluateExpression(((param) => {
|
|
177
169
|
window.playwrightElementPicked(param.elementInfo, param.userGesture);
|
|
178
|
-
}).toString(), {
|
|
179
|
-
|
|
180
|
-
}, {
|
|
181
|
-
elementInfo,
|
|
182
|
-
userGesture
|
|
183
|
-
}).catch(() => {});
|
|
170
|
+
}).toString(), { isFunction: true }, { elementInfo, userGesture }).catch(() => {
|
|
171
|
+
});
|
|
184
172
|
}
|
|
185
173
|
async updateCallLogs(callLogs) {
|
|
186
|
-
await this._page.mainFrame().evaluateExpression((
|
|
187
|
-
window.playwrightUpdateLogs(
|
|
188
|
-
}).toString(), {
|
|
189
|
-
|
|
190
|
-
}, callLogs).catch(() => {});
|
|
174
|
+
await this._page.mainFrame().evaluateExpression(((callLogs2) => {
|
|
175
|
+
window.playwrightUpdateLogs(callLogs2);
|
|
176
|
+
}).toString(), { isFunction: true }, callLogs).catch(() => {
|
|
177
|
+
});
|
|
191
178
|
}
|
|
192
179
|
}
|
|
193
|
-
|
|
180
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
181
|
+
0 && (module.exports = {
|
|
182
|
+
EmptyRecorderApp,
|
|
183
|
+
RecorderApp
|
|
184
|
+
});
|
|
@@ -1,78 +1,86 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var recorderCollection_exports = {};
|
|
20
|
+
__export(recorderCollection_exports, {
|
|
21
|
+
RecorderCollection: () => RecorderCollection
|
|
5
22
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
* Copyright (c) Microsoft Corporation.
|
|
14
|
-
*
|
|
15
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
16
|
-
* you may not use this file except in compliance with the License.
|
|
17
|
-
* You may obtain a copy of the License at
|
|
18
|
-
*
|
|
19
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
20
|
-
*
|
|
21
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
22
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
23
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
24
|
-
* See the License for the specific language governing permissions and
|
|
25
|
-
* limitations under the License.
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
class RecorderCollection extends _events.EventEmitter {
|
|
23
|
+
module.exports = __toCommonJS(recorderCollection_exports);
|
|
24
|
+
var import_events = require("events");
|
|
25
|
+
var import_recorderRunner = require("./recorderRunner");
|
|
26
|
+
var import_recorderUtils = require("./recorderUtils");
|
|
27
|
+
var import_debug = require("../utils/debug");
|
|
28
|
+
var import_time = require("../../utils/isomorphic/time");
|
|
29
|
+
class RecorderCollection extends import_events.EventEmitter {
|
|
29
30
|
constructor(pageAliases) {
|
|
30
31
|
super();
|
|
31
32
|
this._actions = [];
|
|
32
33
|
this._enabled = false;
|
|
33
|
-
this._pageAliases = void 0;
|
|
34
34
|
this._pageAliases = pageAliases;
|
|
35
35
|
}
|
|
36
36
|
restart() {
|
|
37
37
|
this._actions = [];
|
|
38
|
-
this.emit(
|
|
38
|
+
this.emit("change", []);
|
|
39
39
|
}
|
|
40
40
|
setEnabled(enabled) {
|
|
41
41
|
this._enabled = enabled;
|
|
42
42
|
}
|
|
43
43
|
async performAction(actionInContext) {
|
|
44
44
|
await this._addAction(actionInContext, async () => {
|
|
45
|
-
await (0,
|
|
45
|
+
await (0, import_recorderRunner.performAction)(this._pageAliases, actionInContext);
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
48
|
addRecordedAction(actionInContext) {
|
|
49
|
-
if ([
|
|
49
|
+
if (["openPage", "closePage"].includes(actionInContext.action.name)) {
|
|
50
50
|
this._actions.push(actionInContext);
|
|
51
51
|
this._fireChange();
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
54
|
-
this._addAction(actionInContext).catch(() => {
|
|
54
|
+
this._addAction(actionInContext).catch(() => {
|
|
55
|
+
});
|
|
55
56
|
}
|
|
56
57
|
async _addAction(actionInContext, callback) {
|
|
57
|
-
if (!this._enabled)
|
|
58
|
-
|
|
58
|
+
if (!this._enabled)
|
|
59
|
+
return;
|
|
60
|
+
if (actionInContext.action.name === "openPage" || actionInContext.action.name === "closePage") {
|
|
59
61
|
this._actions.push(actionInContext);
|
|
60
62
|
this._fireChange();
|
|
61
63
|
return;
|
|
62
64
|
}
|
|
63
65
|
this._actions.push(actionInContext);
|
|
64
66
|
this._fireChange();
|
|
65
|
-
await
|
|
66
|
-
actionInContext.endTime = (0,
|
|
67
|
+
await callback?.().catch();
|
|
68
|
+
actionInContext.endTime = (0, import_time.monotonicTime)();
|
|
67
69
|
}
|
|
68
70
|
signal(pageAlias, frame, signal) {
|
|
69
|
-
if (!this._enabled)
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
if (!this._enabled)
|
|
72
|
+
return;
|
|
73
|
+
if (signal.name === "navigation" && frame._page.mainFrame() === frame) {
|
|
74
|
+
const timestamp = (0, import_time.monotonicTime)();
|
|
72
75
|
const lastAction = this._actions[this._actions.length - 1];
|
|
73
|
-
const signalThreshold = (0,
|
|
76
|
+
const signalThreshold = (0, import_debug.isUnderTest)() ? 500 : 5e3;
|
|
74
77
|
let generateGoto = false;
|
|
75
|
-
if (!lastAction)
|
|
78
|
+
if (!lastAction)
|
|
79
|
+
generateGoto = true;
|
|
80
|
+
else if (lastAction.action.name !== "click" && lastAction.action.name !== "press" && lastAction.action.name !== "fill")
|
|
81
|
+
generateGoto = true;
|
|
82
|
+
else if (timestamp - lastAction.startTime > signalThreshold)
|
|
83
|
+
generateGoto = true;
|
|
76
84
|
if (generateGoto) {
|
|
77
85
|
this.addRecordedAction({
|
|
78
86
|
frame: {
|
|
@@ -80,7 +88,7 @@ class RecorderCollection extends _events.EventEmitter {
|
|
|
80
88
|
framePath: []
|
|
81
89
|
},
|
|
82
90
|
action: {
|
|
83
|
-
name:
|
|
91
|
+
name: "navigate",
|
|
84
92
|
url: frame.url(),
|
|
85
93
|
signals: []
|
|
86
94
|
},
|
|
@@ -97,8 +105,12 @@ class RecorderCollection extends _events.EventEmitter {
|
|
|
97
105
|
}
|
|
98
106
|
}
|
|
99
107
|
_fireChange() {
|
|
100
|
-
if (!this._enabled)
|
|
101
|
-
|
|
108
|
+
if (!this._enabled)
|
|
109
|
+
return;
|
|
110
|
+
this.emit("change", (0, import_recorderUtils.collapseActions)(this._actions));
|
|
102
111
|
}
|
|
103
112
|
}
|
|
104
|
-
|
|
113
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
114
|
+
0 && (module.exports = {
|
|
115
|
+
RecorderCollection
|
|
116
|
+
});
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var recorderFrontend_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(recorderFrontend_exports);
|