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
package/lib/server/console.js
CHANGED
|
@@ -1,41 +1,33 @@
|
|
|
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 console_exports = {};
|
|
20
|
+
__export(console_exports, {
|
|
21
|
+
ConsoleMessage: () => ConsoleMessage
|
|
5
22
|
});
|
|
6
|
-
exports
|
|
7
|
-
/**
|
|
8
|
-
* Copyright (c) Microsoft Corporation.
|
|
9
|
-
*
|
|
10
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11
|
-
* you may not use this file except in compliance with the License.
|
|
12
|
-
* You may obtain a copy of the License at
|
|
13
|
-
*
|
|
14
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
15
|
-
*
|
|
16
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
17
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
18
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19
|
-
* See the License for the specific language governing permissions and
|
|
20
|
-
* limitations under the License.
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
+
module.exports = __toCommonJS(console_exports);
|
|
23
24
|
class ConsoleMessage {
|
|
24
25
|
constructor(page, type, text, args, location) {
|
|
25
|
-
this._type = void 0;
|
|
26
|
-
this._text = void 0;
|
|
27
|
-
this._args = void 0;
|
|
28
|
-
this._location = void 0;
|
|
29
|
-
this._page = void 0;
|
|
30
26
|
this._page = page;
|
|
31
27
|
this._type = type;
|
|
32
28
|
this._text = text;
|
|
33
29
|
this._args = args;
|
|
34
|
-
this._location = location || {
|
|
35
|
-
url: '',
|
|
36
|
-
lineNumber: 0,
|
|
37
|
-
columnNumber: 0
|
|
38
|
-
};
|
|
30
|
+
this._location = location || { url: "", lineNumber: 0, columnNumber: 0 };
|
|
39
31
|
}
|
|
40
32
|
page() {
|
|
41
33
|
return this._page;
|
|
@@ -44,7 +36,8 @@ class ConsoleMessage {
|
|
|
44
36
|
return this._type;
|
|
45
37
|
}
|
|
46
38
|
text() {
|
|
47
|
-
if (this._text ===
|
|
39
|
+
if (this._text === void 0)
|
|
40
|
+
this._text = this._args.map((arg) => arg.preview()).join(" ");
|
|
48
41
|
return this._text;
|
|
49
42
|
}
|
|
50
43
|
args() {
|
|
@@ -54,4 +47,7 @@ class ConsoleMessage {
|
|
|
54
47
|
return this._location;
|
|
55
48
|
}
|
|
56
49
|
}
|
|
57
|
-
|
|
50
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
51
|
+
0 && (module.exports = {
|
|
52
|
+
ConsoleMessage
|
|
53
|
+
});
|
|
@@ -1,42 +1,44 @@
|
|
|
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 cookieStore_exports = {};
|
|
20
|
+
__export(cookieStore_exports, {
|
|
21
|
+
CookieStore: () => CookieStore,
|
|
22
|
+
domainMatches: () => domainMatches,
|
|
23
|
+
parseRawCookie: () => parseRawCookie
|
|
5
24
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
exports.parseRawCookie = parseRawCookie;
|
|
9
|
-
var _network = require("./network");
|
|
10
|
-
/**
|
|
11
|
-
* Copyright (c) Microsoft Corporation.
|
|
12
|
-
*
|
|
13
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
14
|
-
* you may not use this file except in compliance with the License.
|
|
15
|
-
* You may obtain a copy of the License at
|
|
16
|
-
*
|
|
17
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
-
*
|
|
19
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
20
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
21
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
22
|
-
* See the License for the specific language governing permissions and
|
|
23
|
-
* limitations under the License.
|
|
24
|
-
*/
|
|
25
|
-
|
|
25
|
+
module.exports = __toCommonJS(cookieStore_exports);
|
|
26
|
+
var import_network = require("./network");
|
|
26
27
|
class Cookie {
|
|
27
28
|
constructor(data) {
|
|
28
|
-
this._raw = void 0;
|
|
29
29
|
this._raw = data;
|
|
30
30
|
}
|
|
31
31
|
name() {
|
|
32
32
|
return this._raw.name;
|
|
33
33
|
}
|
|
34
|
-
|
|
35
34
|
// https://datatracker.ietf.org/doc/html/rfc6265#section-5.4
|
|
36
35
|
matches(url) {
|
|
37
|
-
if (this._raw.secure && url.protocol !==
|
|
38
|
-
|
|
39
|
-
if (!
|
|
36
|
+
if (this._raw.secure && (url.protocol !== "https:" && url.hostname !== "localhost"))
|
|
37
|
+
return false;
|
|
38
|
+
if (!domainMatches(url.hostname, this._raw.domain))
|
|
39
|
+
return false;
|
|
40
|
+
if (!pathMatches(url.pathname, this._raw.path))
|
|
41
|
+
return false;
|
|
40
42
|
return true;
|
|
41
43
|
}
|
|
42
44
|
equals(other) {
|
|
@@ -49,38 +51,42 @@ class Cookie {
|
|
|
49
51
|
this._raw.expires = other._raw.expires;
|
|
50
52
|
}
|
|
51
53
|
expired() {
|
|
52
|
-
if (this._raw.expires === -1)
|
|
53
|
-
|
|
54
|
+
if (this._raw.expires === -1)
|
|
55
|
+
return false;
|
|
56
|
+
return this._raw.expires * 1e3 < Date.now();
|
|
54
57
|
}
|
|
55
58
|
}
|
|
56
59
|
class CookieStore {
|
|
57
60
|
constructor() {
|
|
58
|
-
this._nameToCookies = new Map();
|
|
61
|
+
this._nameToCookies = /* @__PURE__ */ new Map();
|
|
59
62
|
}
|
|
60
63
|
addCookies(cookies) {
|
|
61
|
-
for (const cookie of cookies)
|
|
64
|
+
for (const cookie of cookies)
|
|
65
|
+
this._addCookie(new Cookie(cookie));
|
|
62
66
|
}
|
|
63
67
|
cookies(url) {
|
|
64
68
|
const result = [];
|
|
65
69
|
for (const cookie of this._cookiesIterator()) {
|
|
66
|
-
if (cookie.matches(url))
|
|
70
|
+
if (cookie.matches(url))
|
|
71
|
+
result.push(cookie.networkCookie());
|
|
67
72
|
}
|
|
68
73
|
return result;
|
|
69
74
|
}
|
|
70
75
|
allCookies() {
|
|
71
76
|
const result = [];
|
|
72
|
-
for (const cookie of this._cookiesIterator())
|
|
77
|
+
for (const cookie of this._cookiesIterator())
|
|
78
|
+
result.push(cookie.networkCookie());
|
|
73
79
|
return result;
|
|
74
80
|
}
|
|
75
81
|
_addCookie(cookie) {
|
|
76
82
|
let set = this._nameToCookies.get(cookie.name());
|
|
77
83
|
if (!set) {
|
|
78
|
-
set = new Set();
|
|
84
|
+
set = /* @__PURE__ */ new Set();
|
|
79
85
|
this._nameToCookies.set(cookie.name(), set);
|
|
80
86
|
}
|
|
81
|
-
// https://datatracker.ietf.org/doc/html/rfc6265#section-5.3
|
|
82
87
|
for (const other of set) {
|
|
83
|
-
if (other.equals(cookie))
|
|
88
|
+
if (other.equals(cookie))
|
|
89
|
+
set.delete(other);
|
|
84
90
|
}
|
|
85
91
|
set.add(cookie);
|
|
86
92
|
CookieStore.pruneExpired(set);
|
|
@@ -88,81 +94,84 @@ class CookieStore {
|
|
|
88
94
|
*_cookiesIterator() {
|
|
89
95
|
for (const [name, cookies] of this._nameToCookies) {
|
|
90
96
|
CookieStore.pruneExpired(cookies);
|
|
91
|
-
for (const cookie of cookies)
|
|
92
|
-
|
|
97
|
+
for (const cookie of cookies)
|
|
98
|
+
yield cookie;
|
|
99
|
+
if (cookies.size === 0)
|
|
100
|
+
this._nameToCookies.delete(name);
|
|
93
101
|
}
|
|
94
102
|
}
|
|
95
103
|
static pruneExpired(cookies) {
|
|
96
104
|
for (const cookie of cookies) {
|
|
97
|
-
if (cookie.expired())
|
|
105
|
+
if (cookie.expired())
|
|
106
|
+
cookies.delete(cookie);
|
|
98
107
|
}
|
|
99
108
|
}
|
|
100
109
|
}
|
|
101
|
-
exports.CookieStore = CookieStore;
|
|
102
110
|
function parseRawCookie(header) {
|
|
103
|
-
const pairs = header.split(
|
|
104
|
-
let key =
|
|
105
|
-
let
|
|
106
|
-
const separatorPos = p.indexOf(
|
|
111
|
+
const pairs = header.split(";").filter((s) => s.trim().length > 0).map((p) => {
|
|
112
|
+
let key = "";
|
|
113
|
+
let value2 = "";
|
|
114
|
+
const separatorPos = p.indexOf("=");
|
|
107
115
|
if (separatorPos === -1) {
|
|
108
|
-
// If only a key is specified, the value is left undefined.
|
|
109
116
|
key = p.trim();
|
|
110
117
|
} else {
|
|
111
|
-
// Otherwise we assume that the key is the element before the first `=`
|
|
112
118
|
key = p.slice(0, separatorPos).trim();
|
|
113
|
-
|
|
114
|
-
value = p.slice(separatorPos + 1).trim();
|
|
119
|
+
value2 = p.slice(separatorPos + 1).trim();
|
|
115
120
|
}
|
|
116
|
-
return [key,
|
|
121
|
+
return [key, value2];
|
|
117
122
|
});
|
|
118
|
-
if (!pairs.length)
|
|
123
|
+
if (!pairs.length)
|
|
124
|
+
return null;
|
|
119
125
|
const [name, value] = pairs[0];
|
|
120
126
|
const cookie = {
|
|
121
127
|
name,
|
|
122
128
|
value
|
|
123
129
|
};
|
|
124
130
|
for (let i = 1; i < pairs.length; i++) {
|
|
125
|
-
const [
|
|
126
|
-
switch (
|
|
127
|
-
case
|
|
128
|
-
const expiresMs = +new Date(
|
|
129
|
-
// https://datatracker.ietf.org/doc/html/rfc6265#section-5.2.1
|
|
131
|
+
const [name2, value2] = pairs[i];
|
|
132
|
+
switch (name2.toLowerCase()) {
|
|
133
|
+
case "expires":
|
|
134
|
+
const expiresMs = +new Date(value2);
|
|
130
135
|
if (isFinite(expiresMs)) {
|
|
131
|
-
if (expiresMs <= 0)
|
|
136
|
+
if (expiresMs <= 0)
|
|
137
|
+
cookie.expires = 0;
|
|
138
|
+
else
|
|
139
|
+
cookie.expires = Math.min(expiresMs / 1e3, import_network.kMaxCookieExpiresDateInSeconds);
|
|
132
140
|
}
|
|
133
141
|
break;
|
|
134
|
-
case
|
|
135
|
-
const maxAgeSec = parseInt(
|
|
142
|
+
case "max-age":
|
|
143
|
+
const maxAgeSec = parseInt(value2, 10);
|
|
136
144
|
if (isFinite(maxAgeSec)) {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
145
|
+
if (maxAgeSec <= 0)
|
|
146
|
+
cookie.expires = 0;
|
|
147
|
+
else
|
|
148
|
+
cookie.expires = Math.min(Date.now() / 1e3 + maxAgeSec, import_network.kMaxCookieExpiresDateInSeconds);
|
|
141
149
|
}
|
|
142
150
|
break;
|
|
143
|
-
case
|
|
144
|
-
cookie.domain =
|
|
145
|
-
if (cookie.domain && !cookie.domain.startsWith(
|
|
151
|
+
case "domain":
|
|
152
|
+
cookie.domain = value2.toLocaleLowerCase() || "";
|
|
153
|
+
if (cookie.domain && !cookie.domain.startsWith(".") && cookie.domain.includes("."))
|
|
154
|
+
cookie.domain = "." + cookie.domain;
|
|
146
155
|
break;
|
|
147
|
-
case
|
|
148
|
-
cookie.path =
|
|
156
|
+
case "path":
|
|
157
|
+
cookie.path = value2 || "";
|
|
149
158
|
break;
|
|
150
|
-
case
|
|
159
|
+
case "secure":
|
|
151
160
|
cookie.secure = true;
|
|
152
161
|
break;
|
|
153
|
-
case
|
|
162
|
+
case "httponly":
|
|
154
163
|
cookie.httpOnly = true;
|
|
155
164
|
break;
|
|
156
|
-
case
|
|
157
|
-
switch (
|
|
158
|
-
case
|
|
159
|
-
cookie.sameSite =
|
|
165
|
+
case "samesite":
|
|
166
|
+
switch (value2.toLowerCase()) {
|
|
167
|
+
case "none":
|
|
168
|
+
cookie.sameSite = "None";
|
|
160
169
|
break;
|
|
161
|
-
case
|
|
162
|
-
cookie.sameSite =
|
|
170
|
+
case "lax":
|
|
171
|
+
cookie.sameSite = "Lax";
|
|
163
172
|
break;
|
|
164
|
-
case
|
|
165
|
-
cookie.sameSite =
|
|
173
|
+
case "strict":
|
|
174
|
+
cookie.sameSite = "Strict";
|
|
166
175
|
break;
|
|
167
176
|
}
|
|
168
177
|
break;
|
|
@@ -171,15 +180,25 @@ function parseRawCookie(header) {
|
|
|
171
180
|
return cookie;
|
|
172
181
|
}
|
|
173
182
|
function domainMatches(value, domain) {
|
|
174
|
-
if (value === domain)
|
|
175
|
-
|
|
176
|
-
if (!domain.startsWith(
|
|
177
|
-
|
|
183
|
+
if (value === domain)
|
|
184
|
+
return true;
|
|
185
|
+
if (!domain.startsWith("."))
|
|
186
|
+
return false;
|
|
187
|
+
value = "." + value;
|
|
178
188
|
return value.endsWith(domain);
|
|
179
189
|
}
|
|
180
190
|
function pathMatches(value, path) {
|
|
181
|
-
if (value === path)
|
|
182
|
-
|
|
183
|
-
if (!
|
|
191
|
+
if (value === path)
|
|
192
|
+
return true;
|
|
193
|
+
if (!value.endsWith("/"))
|
|
194
|
+
value = value + "/";
|
|
195
|
+
if (!path.endsWith("/"))
|
|
196
|
+
path = path + "/";
|
|
184
197
|
return value.startsWith(path);
|
|
185
|
-
}
|
|
198
|
+
}
|
|
199
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
200
|
+
0 && (module.exports = {
|
|
201
|
+
CookieStore,
|
|
202
|
+
domainMatches,
|
|
203
|
+
parseRawCookie
|
|
204
|
+
});
|
|
@@ -1,48 +1,51 @@
|
|
|
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 debugController_exports = {};
|
|
20
|
+
__export(debugController_exports, {
|
|
21
|
+
DebugController: () => DebugController
|
|
5
22
|
});
|
|
6
|
-
exports
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
*
|
|
18
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
19
|
-
* you may not use this file except in compliance with the License.
|
|
20
|
-
* You may obtain a copy of the License at
|
|
21
|
-
*
|
|
22
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
23
|
-
*
|
|
24
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
25
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
26
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
27
|
-
* See the License for the specific language governing permissions and
|
|
28
|
-
* limitations under the License.
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
const internalMetadata = (0, _instrumentation.serverSideCallMetadata)();
|
|
32
|
-
class DebugController extends _instrumentation.SdkObject {
|
|
23
|
+
module.exports = __toCommonJS(debugController_exports);
|
|
24
|
+
var import_instrumentation = require("./instrumentation");
|
|
25
|
+
var import_processLauncher = require("./utils/processLauncher");
|
|
26
|
+
var import_recorder = require("./recorder");
|
|
27
|
+
var import_utils = require("../utils");
|
|
28
|
+
var import_ariaSnapshot = require("../utils/isomorphic/ariaSnapshot");
|
|
29
|
+
var import_utilsBundle = require("../utilsBundle");
|
|
30
|
+
var import_recorderApp = require("./recorder/recorderApp");
|
|
31
|
+
var import_locatorParser = require("../utils/isomorphic/locatorParser");
|
|
32
|
+
const internalMetadata = (0, import_instrumentation.serverSideCallMetadata)();
|
|
33
|
+
class DebugController extends import_instrumentation.SdkObject {
|
|
33
34
|
constructor(playwright) {
|
|
34
|
-
super({
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
},
|
|
38
|
-
instrumentation: (0, _instrumentation.createInstrumentation)()
|
|
39
|
-
}, undefined, 'DebugController');
|
|
40
|
-
this._trackHierarchyListener = void 0;
|
|
41
|
-
this._playwright = void 0;
|
|
42
|
-
this._sdkLanguage = 'javascript';
|
|
43
|
-
this._codegenId = 'playwright-test';
|
|
35
|
+
super({ attribution: { isInternalPlaywright: true }, instrumentation: (0, import_instrumentation.createInstrumentation)() }, void 0, "DebugController");
|
|
36
|
+
this._sdkLanguage = "javascript";
|
|
37
|
+
this._codegenId = "playwright-test";
|
|
44
38
|
this._playwright = playwright;
|
|
45
39
|
}
|
|
40
|
+
static {
|
|
41
|
+
this.Events = {
|
|
42
|
+
StateChanged: "stateChanged",
|
|
43
|
+
InspectRequested: "inspectRequested",
|
|
44
|
+
SourceChanged: "sourceChanged",
|
|
45
|
+
Paused: "paused",
|
|
46
|
+
SetModeRequested: "setModeRequested"
|
|
47
|
+
};
|
|
48
|
+
}
|
|
46
49
|
initialize(codegenId, sdkLanguage) {
|
|
47
50
|
this._codegenId = codegenId;
|
|
48
51
|
this._sdkLanguage = sdkLanguage;
|
|
@@ -60,153 +63,123 @@ class DebugController extends _instrumentation.SdkObject {
|
|
|
60
63
|
this._emitSnapshot(true);
|
|
61
64
|
} else if (!enabled && this._trackHierarchyListener) {
|
|
62
65
|
this._playwright.instrumentation.removeListener(this._trackHierarchyListener);
|
|
63
|
-
this._trackHierarchyListener =
|
|
66
|
+
this._trackHierarchyListener = void 0;
|
|
64
67
|
}
|
|
65
68
|
}
|
|
66
69
|
async resetForReuse() {
|
|
67
|
-
const contexts = new Set();
|
|
68
|
-
for (const page of this._playwright.allPages())
|
|
69
|
-
|
|
70
|
+
const contexts = /* @__PURE__ */ new Set();
|
|
71
|
+
for (const page of this._playwright.allPages())
|
|
72
|
+
contexts.add(page.context());
|
|
73
|
+
for (const context of contexts)
|
|
74
|
+
await context.resetForReuse(internalMetadata, null);
|
|
70
75
|
}
|
|
71
76
|
async navigate(url) {
|
|
72
|
-
for (const p of this._playwright.allPages())
|
|
77
|
+
for (const p of this._playwright.allPages())
|
|
78
|
+
await p.mainFrame().goto(internalMetadata, url);
|
|
73
79
|
}
|
|
74
80
|
async setRecorderMode(params) {
|
|
75
|
-
// TODO: |file| is only used in the legacy mode.
|
|
76
81
|
await this._closeBrowsersWithoutPages();
|
|
77
|
-
if (params.mode ===
|
|
82
|
+
if (params.mode === "none") {
|
|
78
83
|
for (const recorder of await this._allRecorders()) {
|
|
79
84
|
recorder.hideHighlightedSelector();
|
|
80
|
-
recorder.setMode(
|
|
85
|
+
recorder.setMode("none");
|
|
81
86
|
}
|
|
82
87
|
return;
|
|
83
88
|
}
|
|
84
|
-
if (!this._playwright.allBrowsers().length)
|
|
85
|
-
headless: !!process.env.PW_DEBUG_CONTROLLER_HEADLESS
|
|
86
|
-
});
|
|
87
|
-
// Create page if none.
|
|
89
|
+
if (!this._playwright.allBrowsers().length)
|
|
90
|
+
await this._playwright.chromium.launch(internalMetadata, { headless: !!process.env.PW_DEBUG_CONTROLLER_HEADLESS });
|
|
88
91
|
const pages = this._playwright.allPages();
|
|
89
92
|
if (!pages.length) {
|
|
90
93
|
const [browser] = this._playwright.allBrowsers();
|
|
91
|
-
const {
|
|
92
|
-
context
|
|
93
|
-
} = await browser.newContextForReuse({}, internalMetadata);
|
|
94
|
+
const { context } = await browser.newContextForReuse({}, internalMetadata);
|
|
94
95
|
await context.newPage(internalMetadata);
|
|
95
96
|
}
|
|
96
|
-
// Update test id attribute.
|
|
97
97
|
if (params.testIdAttributeName) {
|
|
98
|
-
for (const page of this._playwright.allPages())
|
|
98
|
+
for (const page of this._playwright.allPages())
|
|
99
|
+
page.context().selectors().setTestIdAttributeName(params.testIdAttributeName);
|
|
99
100
|
}
|
|
100
|
-
// Toggle the mode.
|
|
101
101
|
for (const recorder of await this._allRecorders()) {
|
|
102
102
|
recorder.hideHighlightedSelector();
|
|
103
|
-
if (params.mode !==
|
|
103
|
+
if (params.mode !== "inspecting")
|
|
104
|
+
recorder.setOutput(this._codegenId, params.file);
|
|
104
105
|
recorder.setMode(params.mode);
|
|
105
106
|
}
|
|
106
107
|
}
|
|
107
108
|
async highlight(params) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
const ariaTemplate = params.ariaTemplate ? (0,
|
|
109
|
+
if (params.selector)
|
|
110
|
+
(0, import_locatorParser.unsafeLocatorOrSelectorAsSelector)(this._sdkLanguage, params.selector, "data-testid");
|
|
111
|
+
const ariaTemplate = params.ariaTemplate ? (0, import_ariaSnapshot.parseAriaSnapshotUnsafe)(import_utilsBundle.yaml, params.ariaTemplate) : void 0;
|
|
111
112
|
for (const recorder of await this._allRecorders()) {
|
|
112
|
-
if (ariaTemplate)
|
|
113
|
+
if (ariaTemplate)
|
|
114
|
+
recorder.setHighlightedAriaTemplate(ariaTemplate);
|
|
115
|
+
else if (params.selector)
|
|
116
|
+
recorder.setHighlightedSelector(this._sdkLanguage, params.selector);
|
|
113
117
|
}
|
|
114
118
|
}
|
|
115
119
|
async hideHighlight() {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
// Hide all locator.highlight highlights.
|
|
120
|
+
for (const recorder of await this._allRecorders())
|
|
121
|
+
recorder.hideHighlightedSelector();
|
|
119
122
|
await this._playwright.hideHighlight();
|
|
120
123
|
}
|
|
121
124
|
allBrowsers() {
|
|
122
125
|
return [...this._playwright.allBrowsers()];
|
|
123
126
|
}
|
|
124
127
|
async resume() {
|
|
125
|
-
for (const recorder of await this._allRecorders())
|
|
128
|
+
for (const recorder of await this._allRecorders())
|
|
129
|
+
recorder.resume();
|
|
126
130
|
}
|
|
127
131
|
async kill() {
|
|
128
|
-
(0,
|
|
132
|
+
(0, import_processLauncher.gracefullyProcessExitDoNotHang)(0);
|
|
129
133
|
}
|
|
130
134
|
async closeAllBrowsers() {
|
|
131
|
-
await Promise.all(this.allBrowsers().map(browser => browser.close({
|
|
132
|
-
reason: 'Close all browsers requested'
|
|
133
|
-
})));
|
|
135
|
+
await Promise.all(this.allBrowsers().map((browser) => browser.close({ reason: "Close all browsers requested" })));
|
|
134
136
|
}
|
|
135
137
|
_emitSnapshot(initial) {
|
|
136
138
|
const pageCount = this._playwright.allPages().length;
|
|
137
|
-
if (initial && !pageCount)
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
});
|
|
139
|
+
if (initial && !pageCount)
|
|
140
|
+
return;
|
|
141
|
+
this.emit(DebugController.Events.StateChanged, { pageCount });
|
|
141
142
|
}
|
|
142
143
|
async _allRecorders() {
|
|
143
|
-
const contexts = new Set();
|
|
144
|
-
for (const page of this._playwright.allPages())
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
}, () => Promise.resolve(new InspectingRecorderApp(this)))));
|
|
144
|
+
const contexts = /* @__PURE__ */ new Set();
|
|
145
|
+
for (const page of this._playwright.allPages())
|
|
146
|
+
contexts.add(page.context());
|
|
147
|
+
const result = await Promise.all([...contexts].map((c) => import_recorder.Recorder.showInspector(c, { omitCallTracking: true }, () => Promise.resolve(new InspectingRecorderApp(this)))));
|
|
148
148
|
return result.filter(Boolean);
|
|
149
149
|
}
|
|
150
150
|
async _closeBrowsersWithoutPages() {
|
|
151
151
|
for (const browser of this._playwright.allBrowsers()) {
|
|
152
152
|
for (const context of browser.contexts()) {
|
|
153
|
-
if (!context.pages().length)
|
|
154
|
-
reason:
|
|
155
|
-
});
|
|
153
|
+
if (!context.pages().length)
|
|
154
|
+
await context.close({ reason: "Browser collected" });
|
|
156
155
|
}
|
|
157
|
-
if (!browser.contexts())
|
|
158
|
-
reason:
|
|
159
|
-
});
|
|
156
|
+
if (!browser.contexts())
|
|
157
|
+
await browser.close({ reason: "Browser collected" });
|
|
160
158
|
}
|
|
161
159
|
}
|
|
162
160
|
}
|
|
163
|
-
|
|
164
|
-
DebugController.Events = {
|
|
165
|
-
StateChanged: 'stateChanged',
|
|
166
|
-
InspectRequested: 'inspectRequested',
|
|
167
|
-
SourceChanged: 'sourceChanged',
|
|
168
|
-
Paused: 'paused',
|
|
169
|
-
SetModeRequested: 'setModeRequested'
|
|
170
|
-
};
|
|
171
|
-
class InspectingRecorderApp extends _recorderApp.EmptyRecorderApp {
|
|
161
|
+
class InspectingRecorderApp extends import_recorderApp.EmptyRecorderApp {
|
|
172
162
|
constructor(debugController) {
|
|
173
163
|
super();
|
|
174
|
-
this._debugController = void 0;
|
|
175
164
|
this._debugController = debugController;
|
|
176
165
|
}
|
|
177
166
|
async elementPicked(elementInfo) {
|
|
178
|
-
const locator = (0,
|
|
179
|
-
this._debugController.emit(DebugController.Events.InspectRequested, {
|
|
180
|
-
selector: elementInfo.selector,
|
|
181
|
-
locator,
|
|
182
|
-
ariaSnapshot: elementInfo.ariaSnapshot
|
|
183
|
-
});
|
|
167
|
+
const locator = (0, import_utils.asLocator)(this._debugController._sdkLanguage, elementInfo.selector);
|
|
168
|
+
this._debugController.emit(DebugController.Events.InspectRequested, { selector: elementInfo.selector, locator, ariaSnapshot: elementInfo.ariaSnapshot });
|
|
184
169
|
}
|
|
185
170
|
async setSources(sources) {
|
|
186
|
-
const source = sources.find(s => s.id === this._debugController._codegenId);
|
|
187
|
-
const {
|
|
188
|
-
|
|
189
|
-
header,
|
|
190
|
-
footer,
|
|
191
|
-
actions
|
|
192
|
-
} = source || {
|
|
193
|
-
text: ''
|
|
194
|
-
};
|
|
195
|
-
this._debugController.emit(DebugController.Events.SourceChanged, {
|
|
196
|
-
text,
|
|
197
|
-
header,
|
|
198
|
-
footer,
|
|
199
|
-
actions
|
|
200
|
-
});
|
|
171
|
+
const source = sources.find((s) => s.id === this._debugController._codegenId);
|
|
172
|
+
const { text, header, footer, actions } = source || { text: "" };
|
|
173
|
+
this._debugController.emit(DebugController.Events.SourceChanged, { text, header, footer, actions });
|
|
201
174
|
}
|
|
202
175
|
async setPaused(paused) {
|
|
203
|
-
this._debugController.emit(DebugController.Events.Paused, {
|
|
204
|
-
paused
|
|
205
|
-
});
|
|
176
|
+
this._debugController.emit(DebugController.Events.Paused, { paused });
|
|
206
177
|
}
|
|
207
178
|
async setMode(mode) {
|
|
208
|
-
this._debugController.emit(DebugController.Events.SetModeRequested, {
|
|
209
|
-
mode
|
|
210
|
-
});
|
|
179
|
+
this._debugController.emit(DebugController.Events.SetModeRequested, { mode });
|
|
211
180
|
}
|
|
212
|
-
}
|
|
181
|
+
}
|
|
182
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
183
|
+
0 && (module.exports = {
|
|
184
|
+
DebugController
|
|
185
|
+
});
|