@checkly/playwright-core 1.41.2-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/NOTICE +5 -0
- package/README.md +3 -0
- package/ThirdPartyNotices.txt +1513 -0
- package/bin/PrintDeps.exe +0 -0
- package/bin/README.md +2 -0
- package/bin/install_media_pack.ps1 +5 -0
- package/bin/reinstall_chrome_beta_linux.sh +40 -0
- package/bin/reinstall_chrome_beta_mac.sh +13 -0
- package/bin/reinstall_chrome_beta_win.ps1 +23 -0
- package/bin/reinstall_chrome_stable_linux.sh +40 -0
- package/bin/reinstall_chrome_stable_mac.sh +12 -0
- package/bin/reinstall_chrome_stable_win.ps1 +23 -0
- package/bin/reinstall_msedge_beta_linux.sh +40 -0
- package/bin/reinstall_msedge_beta_mac.sh +11 -0
- package/bin/reinstall_msedge_beta_win.ps1 +22 -0
- package/bin/reinstall_msedge_dev_linux.sh +40 -0
- package/bin/reinstall_msedge_dev_mac.sh +11 -0
- package/bin/reinstall_msedge_dev_win.ps1 +22 -0
- package/bin/reinstall_msedge_stable_linux.sh +40 -0
- package/bin/reinstall_msedge_stable_mac.sh +11 -0
- package/bin/reinstall_msedge_stable_win.ps1 +23 -0
- package/browsers.json +64 -0
- package/cli.js +17 -0
- package/index.d.ts +17 -0
- package/index.js +33 -0
- package/index.mjs +28 -0
- package/lib/androidServerImpl.js +69 -0
- package/lib/browserServerImpl.js +92 -0
- package/lib/cli/driver.js +97 -0
- package/lib/cli/program.js +582 -0
- package/lib/cli/programWithTestStub.js +67 -0
- package/lib/client/accessibility.js +50 -0
- package/lib/client/android.js +473 -0
- package/lib/client/api.js +272 -0
- package/lib/client/artifact.js +79 -0
- package/lib/client/browser.js +145 -0
- package/lib/client/browserContext.js +509 -0
- package/lib/client/browserType.js +233 -0
- package/lib/client/cdpSession.js +53 -0
- package/lib/client/channelOwner.js +229 -0
- package/lib/client/clientHelper.js +57 -0
- package/lib/client/clientInstrumentation.js +40 -0
- package/lib/client/connection.js +327 -0
- package/lib/client/consoleMessage.js +55 -0
- package/lib/client/coverage.js +41 -0
- package/lib/client/dialog.js +57 -0
- package/lib/client/download.js +62 -0
- package/lib/client/electron.js +130 -0
- package/lib/client/elementHandle.js +291 -0
- package/lib/client/errors.js +77 -0
- package/lib/client/events.js +93 -0
- package/lib/client/fetch.js +343 -0
- package/lib/client/fileChooser.js +45 -0
- package/lib/client/frame.js +506 -0
- package/lib/client/harRouter.js +93 -0
- package/lib/client/input.js +111 -0
- package/lib/client/jsHandle.js +123 -0
- package/lib/client/jsonPipe.js +35 -0
- package/lib/client/localUtils.js +35 -0
- package/lib/client/locator.js +432 -0
- package/lib/client/network.js +601 -0
- package/lib/client/page.js +707 -0
- package/lib/client/playwright.js +74 -0
- package/lib/client/selectors.js +67 -0
- package/lib/client/stream.js +54 -0
- package/lib/client/tracing.js +135 -0
- package/lib/client/types.js +24 -0
- package/lib/client/video.js +51 -0
- package/lib/client/waiter.js +158 -0
- package/lib/client/webError.js +37 -0
- package/lib/client/worker.js +71 -0
- package/lib/client/writableStream.js +54 -0
- package/lib/common/socksProxy.js +569 -0
- package/lib/common/timeoutSettings.js +73 -0
- package/lib/common/types.js +5 -0
- package/lib/generated/consoleApiSource.js +7 -0
- package/lib/generated/injectedScriptSource.js +7 -0
- package/lib/generated/recorderSource.js +7 -0
- package/lib/generated/utilityScriptSource.js +7 -0
- package/lib/image_tools/colorUtils.js +98 -0
- package/lib/image_tools/compare.js +108 -0
- package/lib/image_tools/imageChannel.js +70 -0
- package/lib/image_tools/stats.js +102 -0
- package/lib/inProcessFactory.js +54 -0
- package/lib/inprocess.js +20 -0
- package/lib/outofprocess.js +67 -0
- package/lib/protocol/debug.js +27 -0
- package/lib/protocol/serializers.js +172 -0
- package/lib/protocol/transport.js +82 -0
- package/lib/protocol/validator.js +2599 -0
- package/lib/protocol/validatorPrimitives.js +139 -0
- package/lib/remote/playwrightConnection.js +274 -0
- package/lib/remote/playwrightServer.js +110 -0
- package/lib/server/accessibility.js +62 -0
- package/lib/server/android/android.js +441 -0
- package/lib/server/android/backendAdb.js +172 -0
- package/lib/server/artifact.js +104 -0
- package/lib/server/browser.js +129 -0
- package/lib/server/browserContext.js +609 -0
- package/lib/server/browserType.js +300 -0
- package/lib/server/chromium/appIcon.png +0 -0
- package/lib/server/chromium/chromium.js +346 -0
- package/lib/server/chromium/chromiumSwitches.js +41 -0
- package/lib/server/chromium/crAccessibility.js +237 -0
- package/lib/server/chromium/crBrowser.js +521 -0
- package/lib/server/chromium/crConnection.js +228 -0
- package/lib/server/chromium/crCoverage.js +246 -0
- package/lib/server/chromium/crDevTools.js +104 -0
- package/lib/server/chromium/crDragDrop.js +144 -0
- package/lib/server/chromium/crExecutionContext.js +156 -0
- package/lib/server/chromium/crInput.js +171 -0
- package/lib/server/chromium/crNetworkManager.js +723 -0
- package/lib/server/chromium/crPage.js +1173 -0
- package/lib/server/chromium/crPdf.js +147 -0
- package/lib/server/chromium/crProtocolHelper.js +131 -0
- package/lib/server/chromium/crServiceWorker.js +115 -0
- package/lib/server/chromium/defaultFontFamilies.js +145 -0
- package/lib/server/chromium/videoRecorder.js +155 -0
- package/lib/server/console.js +59 -0
- package/lib/server/cookieStore.js +112 -0
- package/lib/server/debugController.js +236 -0
- package/lib/server/debugger.js +132 -0
- package/lib/server/deviceDescriptors.js +21 -0
- package/lib/server/deviceDescriptorsSource.json +1549 -0
- package/lib/server/dialog.js +70 -0
- package/lib/server/dispatchers/androidDispatcher.js +193 -0
- package/lib/server/dispatchers/artifactDispatcher.js +118 -0
- package/lib/server/dispatchers/browserContextDispatcher.js +306 -0
- package/lib/server/dispatchers/browserDispatcher.js +170 -0
- package/lib/server/dispatchers/browserTypeDispatcher.js +55 -0
- package/lib/server/dispatchers/cdpSessionDispatcher.js +48 -0
- package/lib/server/dispatchers/debugControllerDispatcher.js +103 -0
- package/lib/server/dispatchers/dialogDispatcher.js +44 -0
- package/lib/server/dispatchers/dispatcher.js +400 -0
- package/lib/server/dispatchers/electronDispatcher.js +80 -0
- package/lib/server/dispatchers/elementHandlerDispatcher.js +228 -0
- package/lib/server/dispatchers/frameDispatcher.js +287 -0
- package/lib/server/dispatchers/jsHandleDispatcher.js +102 -0
- package/lib/server/dispatchers/jsonPipeDispatcher.js +61 -0
- package/lib/server/dispatchers/localUtilsDispatcher.js +399 -0
- package/lib/server/dispatchers/networkDispatchers.js +221 -0
- package/lib/server/dispatchers/pageDispatcher.js +363 -0
- package/lib/server/dispatchers/playwrightDispatcher.js +105 -0
- package/lib/server/dispatchers/selectorsDispatcher.js +36 -0
- package/lib/server/dispatchers/streamDispatcher.js +62 -0
- package/lib/server/dispatchers/tracingDispatcher.js +54 -0
- package/lib/server/dispatchers/writableStreamDispatcher.js +55 -0
- package/lib/server/dom.js +808 -0
- package/lib/server/download.js +53 -0
- package/lib/server/electron/electron.js +254 -0
- package/lib/server/electron/loader.js +57 -0
- package/lib/server/errors.js +68 -0
- package/lib/server/fetch.js +611 -0
- package/lib/server/fileChooser.js +42 -0
- package/lib/server/fileUploadUtils.js +71 -0
- package/lib/server/firefox/ffAccessibility.js +215 -0
- package/lib/server/firefox/ffBrowser.js +447 -0
- package/lib/server/firefox/ffConnection.js +168 -0
- package/lib/server/firefox/ffExecutionContext.js +138 -0
- package/lib/server/firefox/ffInput.js +150 -0
- package/lib/server/firefox/ffNetworkManager.js +231 -0
- package/lib/server/firefox/ffPage.js +558 -0
- package/lib/server/firefox/firefox.js +91 -0
- package/lib/server/formData.js +75 -0
- package/lib/server/frameSelectors.js +171 -0
- package/lib/server/frames.js +1597 -0
- package/lib/server/har/harRecorder.js +139 -0
- package/lib/server/har/harTracer.js +539 -0
- package/lib/server/helper.js +103 -0
- package/lib/server/index.js +96 -0
- package/lib/server/input.js +301 -0
- package/lib/server/instrumentation.js +74 -0
- package/lib/server/isomorphic/utilityScriptSerializers.js +212 -0
- package/lib/server/javascript.js +305 -0
- package/lib/server/launchApp.js +90 -0
- package/lib/server/macEditingCommands.js +139 -0
- package/lib/server/network.js +607 -0
- package/lib/server/page.js +793 -0
- package/lib/server/pipeTransport.js +85 -0
- package/lib/server/playwright.js +82 -0
- package/lib/server/progress.js +102 -0
- package/lib/server/protocolError.js +49 -0
- package/lib/server/recorder/codeGenerator.js +153 -0
- package/lib/server/recorder/csharp.js +310 -0
- package/lib/server/recorder/java.js +216 -0
- package/lib/server/recorder/javascript.js +229 -0
- package/lib/server/recorder/jsonl.js +47 -0
- package/lib/server/recorder/language.js +44 -0
- package/lib/server/recorder/python.js +275 -0
- package/lib/server/recorder/recorderActions.js +5 -0
- package/lib/server/recorder/recorderApp.js +181 -0
- package/lib/server/recorder/recorderUtils.js +48 -0
- package/lib/server/recorder/utils.js +45 -0
- package/lib/server/recorder.js +700 -0
- package/lib/server/registry/browserFetcher.js +168 -0
- package/lib/server/registry/dependencies.js +322 -0
- package/lib/server/registry/index.js +925 -0
- package/lib/server/registry/nativeDeps.js +383 -0
- package/lib/server/registry/oopDownloadBrowserMain.js +138 -0
- package/lib/server/screenshotter.js +354 -0
- package/lib/server/selectors.js +73 -0
- package/lib/server/socksInterceptor.js +100 -0
- package/lib/server/trace/recorder/snapshotter.js +168 -0
- package/lib/server/trace/recorder/snapshotterInjected.js +493 -0
- package/lib/server/trace/recorder/tracing.js +552 -0
- package/lib/server/trace/test/inMemorySnapshotter.js +93 -0
- package/lib/server/trace/viewer/traceViewer.js +229 -0
- package/lib/server/transport.js +191 -0
- package/lib/server/types.js +24 -0
- package/lib/server/usKeyboardLayout.js +555 -0
- package/lib/server/webkit/webkit.js +87 -0
- package/lib/server/webkit/wkAccessibility.js +194 -0
- package/lib/server/webkit/wkBrowser.js +328 -0
- package/lib/server/webkit/wkConnection.js +173 -0
- package/lib/server/webkit/wkExecutionContext.js +146 -0
- package/lib/server/webkit/wkInput.js +169 -0
- package/lib/server/webkit/wkInterceptableRequest.js +158 -0
- package/lib/server/webkit/wkPage.js +1198 -0
- package/lib/server/webkit/wkProvisionalPage.js +59 -0
- package/lib/server/webkit/wkWorkers.js +104 -0
- package/lib/third_party/diff_match_patch.js +2222 -0
- package/lib/third_party/pixelmatch.js +255 -0
- package/lib/utils/ascii.js +31 -0
- package/lib/utils/comparators.js +171 -0
- package/lib/utils/crypto.js +33 -0
- package/lib/utils/debug.js +46 -0
- package/lib/utils/debugLogger.js +89 -0
- package/lib/utils/env.js +47 -0
- package/lib/utils/eventsHelper.js +38 -0
- package/lib/utils/fileUtils.js +66 -0
- package/lib/utils/glob.js +83 -0
- package/lib/utils/happy-eyeballs.js +154 -0
- package/lib/utils/headers.js +52 -0
- package/lib/utils/hostPlatform.js +124 -0
- package/lib/utils/httpServer.js +195 -0
- package/lib/utils/index.js +324 -0
- package/lib/utils/isomorphic/cssParser.js +250 -0
- package/lib/utils/isomorphic/cssTokenizer.js +979 -0
- package/lib/utils/isomorphic/locatorGenerators.js +651 -0
- package/lib/utils/isomorphic/locatorParser.js +179 -0
- package/lib/utils/isomorphic/locatorUtils.js +62 -0
- package/lib/utils/isomorphic/selectorParser.js +397 -0
- package/lib/utils/isomorphic/stringUtils.js +107 -0
- package/lib/utils/isomorphic/traceUtils.js +39 -0
- package/lib/utils/linuxUtils.js +78 -0
- package/lib/utils/manualPromise.js +109 -0
- package/lib/utils/mimeType.js +29 -0
- package/lib/utils/multimap.js +75 -0
- package/lib/utils/network.js +189 -0
- package/lib/utils/processLauncher.js +248 -0
- package/lib/utils/profiler.js +53 -0
- package/lib/utils/rtti.js +41 -0
- package/lib/utils/semaphore.js +51 -0
- package/lib/utils/spawnAsync.js +45 -0
- package/lib/utils/stackTrace.js +123 -0
- package/lib/utils/task.js +58 -0
- package/lib/utils/time.js +37 -0
- package/lib/utils/timeoutRunner.js +131 -0
- package/lib/utils/traceUtils.js +44 -0
- package/lib/utils/userAgent.js +105 -0
- package/lib/utils/wsServer.js +125 -0
- package/lib/utils/zipFile.js +75 -0
- package/lib/utils/zones.js +99 -0
- package/lib/utilsBundle.js +81 -0
- package/lib/utilsBundleImpl/index.js +51 -0
- package/lib/utilsBundleImpl/xdg-open +1066 -0
- package/lib/vite/htmlReport/index.html +66 -0
- package/lib/vite/recorder/assets/codeMirrorModule-Hs9-1ZG4.css +1 -0
- package/lib/vite/recorder/assets/codeMirrorModule-I9ks4y7D.js +24 -0
- package/lib/vite/recorder/assets/codicon-zGuYmc9o.ttf +0 -0
- package/lib/vite/recorder/assets/index-ljsTwXtJ.css +1 -0
- package/lib/vite/recorder/assets/index-yg8ypzl6.js +47 -0
- package/lib/vite/recorder/index.html +29 -0
- package/lib/vite/recorder/playwright-logo.svg +9 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-GluP1cQ1.js +24 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-fqJB1XDu.js +24 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-y3M3aAqy.js +24 -0
- package/lib/vite/traceViewer/assets/wsPort-Rvwd4WC-.js +69 -0
- package/lib/vite/traceViewer/assets/wsPort-dlD7vDkY.js +69 -0
- package/lib/vite/traceViewer/assets/wsPort-qOE2NWrO.js +69 -0
- package/lib/vite/traceViewer/assets/xtermModule-Yt6xwiJ_.js +9 -0
- package/lib/vite/traceViewer/codeMirrorModule.Hs9-1ZG4.css +1 -0
- package/lib/vite/traceViewer/codicon.zGuYmc9o.ttf +0 -0
- package/lib/vite/traceViewer/index.-g_5lMbJ.css +1 -0
- package/lib/vite/traceViewer/index.4X7zDysg.js +2 -0
- package/lib/vite/traceViewer/index.HkJgzlGy.js +2 -0
- package/lib/vite/traceViewer/index.html +26 -0
- package/lib/vite/traceViewer/index.kRjx5sAJ.js +2 -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 +4 -0
- package/lib/vite/traceViewer/uiMode.1Wcp_Kto.js +10 -0
- package/lib/vite/traceViewer/uiMode.GTNzARcV.js +10 -0
- package/lib/vite/traceViewer/uiMode.html +17 -0
- package/lib/vite/traceViewer/uiMode.pWy0Re7G.css +1 -0
- package/lib/vite/traceViewer/uiMode.zV-7Lf9v.js +10 -0
- package/lib/vite/traceViewer/wsPort.kSgQKQ0y.css +1 -0
- package/lib/vite/traceViewer/xtermModule.0lwXJFHT.css +32 -0
- package/lib/zipBundle.js +25 -0
- package/lib/zipBundleImpl.js +5 -0
- package/package.json +43 -0
- package/types/protocol.d.ts +20304 -0
- package/types/structs.d.ts +45 -0
- package/types/types.d.ts +20626 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.RecorderApp = exports.EmptyRecorderApp = void 0;
|
|
7
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
8
|
+
var _path = _interopRequireDefault(require("path"));
|
|
9
|
+
var _progress = require("../progress");
|
|
10
|
+
var _events = require("events");
|
|
11
|
+
var _instrumentation = require("../instrumentation");
|
|
12
|
+
var _utils = require("../../utils");
|
|
13
|
+
var _utilsBundle = require("../../utilsBundle");
|
|
14
|
+
var _launchApp = require("../launchApp");
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
+
/**
|
|
17
|
+
* Copyright (c) Microsoft Corporation.
|
|
18
|
+
*
|
|
19
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
20
|
+
* you may not use this file except in compliance with the License.
|
|
21
|
+
* You may obtain a copy of the License at
|
|
22
|
+
*
|
|
23
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
24
|
+
*
|
|
25
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
26
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
27
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
28
|
+
* See the License for the specific language governing permissions and
|
|
29
|
+
* limitations under the License.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
class EmptyRecorderApp extends _events.EventEmitter {
|
|
33
|
+
async close() {}
|
|
34
|
+
async setPaused(paused) {}
|
|
35
|
+
async setMode(mode) {}
|
|
36
|
+
async setFileIfNeeded(file) {}
|
|
37
|
+
async setSelector(selector, userGesture) {}
|
|
38
|
+
async updateCallLogs(callLogs) {}
|
|
39
|
+
async setSources(sources) {}
|
|
40
|
+
}
|
|
41
|
+
exports.EmptyRecorderApp = EmptyRecorderApp;
|
|
42
|
+
class RecorderApp extends _events.EventEmitter {
|
|
43
|
+
constructor(recorder, page, wsEndpoint) {
|
|
44
|
+
super();
|
|
45
|
+
this._page = void 0;
|
|
46
|
+
this.wsEndpoint = void 0;
|
|
47
|
+
this._recorder = void 0;
|
|
48
|
+
this.setMaxListeners(0);
|
|
49
|
+
this._recorder = recorder;
|
|
50
|
+
this._page = page;
|
|
51
|
+
this.wsEndpoint = wsEndpoint;
|
|
52
|
+
}
|
|
53
|
+
async close() {
|
|
54
|
+
await this._page.context().close({
|
|
55
|
+
reason: 'Recorder window closed'
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
async _init() {
|
|
59
|
+
await (0, _launchApp.syncLocalStorageWithSettings)(this._page, 'recorder');
|
|
60
|
+
await this._page._setServerRequestInterceptor(route => {
|
|
61
|
+
if (!route.request().url().startsWith('https://playwright/')) return false;
|
|
62
|
+
const uri = route.request().url().substring('https://playwright/'.length);
|
|
63
|
+
const file = require.resolve('../../vite/recorder/' + uri);
|
|
64
|
+
_fs.default.promises.readFile(file).then(buffer => {
|
|
65
|
+
route.fulfill({
|
|
66
|
+
requestUrl: route.request().url(),
|
|
67
|
+
status: 200,
|
|
68
|
+
headers: [{
|
|
69
|
+
name: 'Content-Type',
|
|
70
|
+
value: _utilsBundle.mime.getType(_path.default.extname(file)) || 'application/octet-stream'
|
|
71
|
+
}],
|
|
72
|
+
body: buffer.toString('base64'),
|
|
73
|
+
isBase64: true
|
|
74
|
+
}).catch(() => {});
|
|
75
|
+
});
|
|
76
|
+
return true;
|
|
77
|
+
});
|
|
78
|
+
await this._page.exposeBinding('dispatch', false, (_, data) => this.emit('event', data));
|
|
79
|
+
this._page.once('close', () => {
|
|
80
|
+
this.emit('close');
|
|
81
|
+
this._page.context().close({
|
|
82
|
+
reason: 'Recorder window closed'
|
|
83
|
+
}).catch(() => {});
|
|
84
|
+
});
|
|
85
|
+
const mainFrame = this._page.mainFrame();
|
|
86
|
+
await mainFrame.goto((0, _instrumentation.serverSideCallMetadata)(), 'https://playwright/index.html');
|
|
87
|
+
}
|
|
88
|
+
static async open(recorder, inspectedContext, handleSIGINT) {
|
|
89
|
+
const sdkLanguage = inspectedContext.attribution.playwright.options.sdkLanguage;
|
|
90
|
+
const headed = !!inspectedContext._browser.options.headful;
|
|
91
|
+
const recorderPlaywright = require('../playwright').createPlaywright({
|
|
92
|
+
sdkLanguage: 'javascript',
|
|
93
|
+
isInternalPlaywright: true
|
|
94
|
+
});
|
|
95
|
+
const {
|
|
96
|
+
context,
|
|
97
|
+
page
|
|
98
|
+
} = await (0, _launchApp.launchApp)(recorderPlaywright.chromium, {
|
|
99
|
+
sdkLanguage,
|
|
100
|
+
windowSize: {
|
|
101
|
+
width: 600,
|
|
102
|
+
height: 600
|
|
103
|
+
},
|
|
104
|
+
windowPosition: {
|
|
105
|
+
x: 1020,
|
|
106
|
+
y: 10
|
|
107
|
+
},
|
|
108
|
+
persistentContextOptions: {
|
|
109
|
+
noDefaultViewport: true,
|
|
110
|
+
headless: !!process.env.PWTEST_CLI_HEADLESS || (0, _utils.isUnderTest)() && !headed,
|
|
111
|
+
useWebSocket: !!process.env.PWTEST_RECORDER_PORT,
|
|
112
|
+
handleSIGINT,
|
|
113
|
+
args: process.env.PWTEST_RECORDER_PORT ? [`--remote-debugging-port=${process.env.PWTEST_RECORDER_PORT}`] : []
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
const controller = new _progress.ProgressController((0, _instrumentation.serverSideCallMetadata)(), context._browser);
|
|
117
|
+
await controller.run(async progress => {
|
|
118
|
+
await context._browser._defaultContext._loadDefaultContextAsIs(progress);
|
|
119
|
+
});
|
|
120
|
+
const result = new RecorderApp(recorder, page, context._browser.options.wsEndpoint);
|
|
121
|
+
await result._init();
|
|
122
|
+
return result;
|
|
123
|
+
}
|
|
124
|
+
async setMode(mode) {
|
|
125
|
+
await this._page.mainFrame().evaluateExpression((mode => {
|
|
126
|
+
window.playwrightSetMode(mode);
|
|
127
|
+
}).toString(), {
|
|
128
|
+
isFunction: true
|
|
129
|
+
}, mode).catch(() => {});
|
|
130
|
+
}
|
|
131
|
+
async setFileIfNeeded(file) {
|
|
132
|
+
await this._page.mainFrame().evaluateExpression((file => {
|
|
133
|
+
window.playwrightSetFileIfNeeded(file);
|
|
134
|
+
}).toString(), {
|
|
135
|
+
isFunction: true
|
|
136
|
+
}, file).catch(() => {});
|
|
137
|
+
}
|
|
138
|
+
async setPaused(paused) {
|
|
139
|
+
await this._page.mainFrame().evaluateExpression((paused => {
|
|
140
|
+
window.playwrightSetPaused(paused);
|
|
141
|
+
}).toString(), {
|
|
142
|
+
isFunction: true
|
|
143
|
+
}, paused).catch(() => {});
|
|
144
|
+
}
|
|
145
|
+
async setSources(sources) {
|
|
146
|
+
await this._page.mainFrame().evaluateExpression((sources => {
|
|
147
|
+
window.playwrightSetSources(sources);
|
|
148
|
+
}).toString(), {
|
|
149
|
+
isFunction: true
|
|
150
|
+
}, sources).catch(() => {});
|
|
151
|
+
|
|
152
|
+
// Testing harness for runCLI mode.
|
|
153
|
+
if (process.env.PWTEST_CLI_IS_UNDER_TEST && sources.length) process._didSetSourcesForTest(sources[0].text);
|
|
154
|
+
}
|
|
155
|
+
async setSelector(selector, userGesture) {
|
|
156
|
+
if (userGesture) {
|
|
157
|
+
if (this._recorder.mode() === 'inspecting') {
|
|
158
|
+
this._recorder.setMode('standby');
|
|
159
|
+
this._page.bringToFront();
|
|
160
|
+
} else {
|
|
161
|
+
this._recorder.setMode('recording');
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
await this._page.mainFrame().evaluateExpression((data => {
|
|
165
|
+
window.playwrightSetSelector(data.selector, data.userGesture);
|
|
166
|
+
}).toString(), {
|
|
167
|
+
isFunction: true
|
|
168
|
+
}, {
|
|
169
|
+
selector,
|
|
170
|
+
userGesture
|
|
171
|
+
}).catch(() => {});
|
|
172
|
+
}
|
|
173
|
+
async updateCallLogs(callLogs) {
|
|
174
|
+
await this._page.mainFrame().evaluateExpression((callLogs => {
|
|
175
|
+
window.playwrightUpdateLogs(callLogs);
|
|
176
|
+
}).toString(), {
|
|
177
|
+
isFunction: true
|
|
178
|
+
}, callLogs).catch(() => {});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
exports.RecorderApp = RecorderApp;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.metadataToCallLog = metadataToCallLog;
|
|
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
|
+
function metadataToCallLog(metadata, status) {
|
|
24
|
+
var _metadata$params, _metadata$params2, _metadata$error;
|
|
25
|
+
let title = metadata.apiName || metadata.method;
|
|
26
|
+
if (metadata.method === 'waitForEventInfo') title += `(${metadata.params.info.event})`;
|
|
27
|
+
title = title.replace('object.expect', 'expect');
|
|
28
|
+
if (metadata.error) status = 'error';
|
|
29
|
+
const params = {
|
|
30
|
+
url: (_metadata$params = metadata.params) === null || _metadata$params === void 0 ? void 0 : _metadata$params.url,
|
|
31
|
+
selector: (_metadata$params2 = metadata.params) === null || _metadata$params2 === void 0 ? void 0 : _metadata$params2.selector
|
|
32
|
+
};
|
|
33
|
+
let duration = metadata.endTime ? metadata.endTime - metadata.startTime : undefined;
|
|
34
|
+
if (typeof duration === 'number' && metadata.pauseStartTime && metadata.pauseEndTime) {
|
|
35
|
+
duration -= metadata.pauseEndTime - metadata.pauseStartTime;
|
|
36
|
+
duration = Math.max(duration, 0);
|
|
37
|
+
}
|
|
38
|
+
const callLog = {
|
|
39
|
+
id: metadata.id,
|
|
40
|
+
messages: metadata.log,
|
|
41
|
+
title,
|
|
42
|
+
status,
|
|
43
|
+
error: (_metadata$error = metadata.error) === null || _metadata$error === void 0 || (_metadata$error = _metadata$error.error) === null || _metadata$error === void 0 ? void 0 : _metadata$error.message,
|
|
44
|
+
params,
|
|
45
|
+
duration
|
|
46
|
+
};
|
|
47
|
+
return callLog;
|
|
48
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.toClickOptions = toClickOptions;
|
|
7
|
+
exports.toModifiers = toModifiers;
|
|
8
|
+
/**
|
|
9
|
+
* Copyright (c) Microsoft Corporation.
|
|
10
|
+
*
|
|
11
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12
|
+
* you may not use this file except in compliance with the License.
|
|
13
|
+
* You may obtain a copy of the License at
|
|
14
|
+
*
|
|
15
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
16
|
+
*
|
|
17
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
18
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
20
|
+
* See the License for the specific language governing permissions and
|
|
21
|
+
* limitations under the License.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
function toClickOptions(action) {
|
|
25
|
+
let method = 'click';
|
|
26
|
+
if (action.clickCount === 2) method = 'dblclick';
|
|
27
|
+
const modifiers = toModifiers(action.modifiers);
|
|
28
|
+
const options = {};
|
|
29
|
+
if (action.button !== 'left') options.button = action.button;
|
|
30
|
+
if (modifiers.length) options.modifiers = modifiers;
|
|
31
|
+
if (action.clickCount > 2) options.clickCount = action.clickCount;
|
|
32
|
+
if (action.position) options.position = action.position;
|
|
33
|
+
return {
|
|
34
|
+
method,
|
|
35
|
+
options
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function toModifiers(modifiers) {
|
|
39
|
+
const result = [];
|
|
40
|
+
if (modifiers & 1) result.push('Alt');
|
|
41
|
+
if (modifiers & 2) result.push('Control');
|
|
42
|
+
if (modifiers & 4) result.push('Meta');
|
|
43
|
+
if (modifiers & 8) result.push('Shift');
|
|
44
|
+
return result;
|
|
45
|
+
}
|