browsertime 21.5.3 → 21.6.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/CHANGELOG.md +15 -1
- package/lib/chrome/webdriver/setupChromiumOptions.js +7 -1
- package/lib/core/engine/command/bidi.js +4 -4
- package/lib/core/engine/command/measure.js +22 -10
- package/lib/core/engine/index.js +1 -0
- package/lib/extensionserver/index.js +0 -2
- package/lib/extensionserver/setup.js +0 -10
- package/lib/firefox/firefoxBidi.js +77 -2
- package/lib/firefox/webdriver/firefox.js +20 -2
- package/lib/video/screenRecording/desktop/desktopRecorder.js +6 -0
- package/lib/video/video.js +12 -8
- package/package.json +10 -10
- package/types/core/engine/command/measure.d.ts +2 -3
- package/types/core/engine/command/measure.d.ts.map +1 -1
- package/types/video/screenRecording/desktop/desktopRecorder.d.ts +2 -2
- package/types/video/screenRecording/desktop/desktopRecorder.d.ts.map +1 -1
- package/types/video/screenRecording/desktop/ffmpegRecorder.d.ts +1 -1
- package/types/video/video.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Browsertime changelog (we do [semantic versioning](https://semver.org))
|
|
2
2
|
|
|
3
|
+
## 21.6.0 - 2024-03-20
|
|
4
|
+
### Added
|
|
5
|
+
* Chrome 123, Firefox 124 and Edge 122 in the Docker container [#2110](https://github.com/sitespeedio/browsertime/pull/2110).
|
|
6
|
+
* Chromedriver 123 and Edgedriver 122 [#2111](https://github.com/sitespeedio/browsertime/pull/2111).
|
|
7
|
+
|
|
8
|
+
### Fixed
|
|
9
|
+
* Fix a bug in stopAsError so that you can continue to measure other pages after the stop. Also follow the documentation and mark the run as a failure [#2107](https://github.com/sitespeedio/browsertime/pull/2107).
|
|
10
|
+
* Use bidi for Firefox when using `--basicAuth` [#2093](https://github.com/sitespeedio/browsertime/pull/2093) (needs Firefox 124).
|
|
11
|
+
* Use bidi for Firefox when using `--cookie` [#2090](https://github.com/sitespeedio/browsertime/pull/2090) (needs Firefox 124).
|
|
12
|
+
|
|
13
|
+
## 21.5.4 - 2024-03-13
|
|
14
|
+
### Fixed
|
|
15
|
+
* Fix for `--injectJs` for Firefox [#2103](https://github.com/sitespeedio/browsertime/pull/2103).
|
|
16
|
+
|
|
3
17
|
## 21.5.3 - 2024-03-12
|
|
4
18
|
### Fixed
|
|
5
19
|
* Fixed `commands.bidi.*` that stopped working [#2101](https://github.com/sitespeedio/browsertime/pull/2101).
|
|
@@ -42,7 +56,7 @@
|
|
|
42
56
|
|
|
43
57
|
## 21.2.1 - 2024-02-11
|
|
44
58
|
### Fixed
|
|
45
|
-
* Fix correct JavaScript
|
|
59
|
+
* Fix correct JavaScript signature for stopAsError in types.
|
|
46
60
|
|
|
47
61
|
## 21.2.0 - 2024-02-11
|
|
48
62
|
### Added
|
|
@@ -27,7 +27,13 @@ const CHROME_FEATURES_THAT_WE_DISABLES = [
|
|
|
27
27
|
'MediaRouter',
|
|
28
28
|
'OfflinePagesPrefetching',
|
|
29
29
|
'OptimizationHints',
|
|
30
|
-
'Translate'
|
|
30
|
+
'Translate',
|
|
31
|
+
'msAutofillEdgeCoupons',
|
|
32
|
+
'msShoppingTrigger',
|
|
33
|
+
'msEdgeShoppingUI',
|
|
34
|
+
'msEntityExtraction',
|
|
35
|
+
'msEntityExtractionProactive',
|
|
36
|
+
'msWebAssist'
|
|
31
37
|
];
|
|
32
38
|
|
|
33
39
|
export function setupChromiumOptions(
|
|
@@ -32,7 +32,7 @@ export class Bidi {
|
|
|
32
32
|
*/
|
|
33
33
|
async onMessage(f) {
|
|
34
34
|
if (this.browserName === 'firefox') {
|
|
35
|
-
const client = this.engineDelegate.getBidi();
|
|
35
|
+
const client = await this.engineDelegate.getBidi();
|
|
36
36
|
const ws = await client.socket;
|
|
37
37
|
ws.on('message', f);
|
|
38
38
|
} else {
|
|
@@ -65,7 +65,7 @@ export class Bidi {
|
|
|
65
65
|
*/
|
|
66
66
|
async subscribe(messageType) {
|
|
67
67
|
if (this.browserName === 'firefox') {
|
|
68
|
-
const client = this.engineDelegate.getBidi();
|
|
68
|
+
const client = await this.engineDelegate.getBidi();
|
|
69
69
|
return client.subscribe(messageType, [
|
|
70
70
|
await this.engineDelegate.getWindowHandle()
|
|
71
71
|
]);
|
|
@@ -85,7 +85,7 @@ export class Bidi {
|
|
|
85
85
|
*/
|
|
86
86
|
async unsubscribe(messageType) {
|
|
87
87
|
if (this.browserName === 'firefox') {
|
|
88
|
-
const client = this.engineDelegate.getBidi();
|
|
88
|
+
const client = await this.engineDelegate.getBidi();
|
|
89
89
|
return client.unsubscribe(messageType, [
|
|
90
90
|
this.engineDelegate.getWindowHandle()
|
|
91
91
|
]);
|
|
@@ -113,7 +113,7 @@ export class Bidi {
|
|
|
113
113
|
async send(parameters) {
|
|
114
114
|
if (this.browserName === 'firefox') {
|
|
115
115
|
try {
|
|
116
|
-
const client = this.engineDelegate.getBidi();
|
|
116
|
+
const client = await this.engineDelegate.getBidi();
|
|
117
117
|
return client.send(parameters);
|
|
118
118
|
} catch (error) {
|
|
119
119
|
log.error(
|
|
@@ -205,11 +205,14 @@ export class Measure {
|
|
|
205
205
|
} else {
|
|
206
206
|
this.result.at(-1).error.push(message);
|
|
207
207
|
}
|
|
208
|
-
} else {
|
|
209
|
-
// error not associated to a start/run so far
|
|
210
|
-
log.error('No page that could be associated with the error:' + message);
|
|
211
208
|
}
|
|
212
209
|
}
|
|
210
|
+
// Add the error in the generic failure
|
|
211
|
+
if (this.result.failureMessages) {
|
|
212
|
+
this.result.failureMessages.push(message);
|
|
213
|
+
} else {
|
|
214
|
+
this.result.failureMessages = [message];
|
|
215
|
+
}
|
|
213
216
|
}
|
|
214
217
|
|
|
215
218
|
/**
|
|
@@ -217,7 +220,7 @@ export class Measure {
|
|
|
217
220
|
* @private
|
|
218
221
|
*/
|
|
219
222
|
_failure(message) {
|
|
220
|
-
log.
|
|
223
|
+
log.info('Mark run as failure with message: %s', message);
|
|
221
224
|
this.result.markedAsFailure = 1;
|
|
222
225
|
if (this.result.failureMessages) {
|
|
223
226
|
this.result.failureMessages.push(message);
|
|
@@ -378,14 +381,22 @@ export class Measure {
|
|
|
378
381
|
*
|
|
379
382
|
* @async
|
|
380
383
|
* @param {string} errorMessage - The message about the error. This will end up on the HTML report for sitespeed.io so give it a good message so you know what's gone wrong.
|
|
381
|
-
* @param {string} optionalURL - The URL of the page that you wanted to test. If you don't know the URL (you clicked on a link etc) skip it.
|
|
382
384
|
* @returns {Promise} A promise that resolves when the stop process has completed.
|
|
383
385
|
* @since 21.2.0
|
|
384
386
|
*/
|
|
385
|
-
async stopAsError(errorMessage
|
|
386
|
-
this.
|
|
387
|
+
async stopAsError(errorMessage) {
|
|
388
|
+
this._failure(errorMessage);
|
|
387
389
|
this.areWeMeasuring = false;
|
|
388
|
-
|
|
390
|
+
// Remove the last result
|
|
391
|
+
this.result.pop();
|
|
392
|
+
|
|
393
|
+
await this._stopVideo();
|
|
394
|
+
|
|
395
|
+
if (this.options.tcpdump) {
|
|
396
|
+
await this.tcpDump.stop();
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
return;
|
|
389
400
|
}
|
|
390
401
|
/**
|
|
391
402
|
* Stops the measurement process, collects metrics, and handles any post-measurement tasks.
|
|
@@ -397,7 +408,7 @@ export class Measure {
|
|
|
397
408
|
* @throws {Error} Throws an error if there are issues in stopping the measurement or collecting data.
|
|
398
409
|
* @returns {Promise} A promise that resolves with the collected metrics data.
|
|
399
410
|
*/
|
|
400
|
-
async stop(testedStartUrl
|
|
411
|
+
async stop(testedStartUrl) {
|
|
401
412
|
log.debug('Stop measuring');
|
|
402
413
|
// If we don't have a URL (tested using clicking on link etc) get the URL from the browser
|
|
403
414
|
let url =
|
|
@@ -454,6 +465,7 @@ export class Measure {
|
|
|
454
465
|
) {
|
|
455
466
|
res.alias = this.options.urlMetaData[url];
|
|
456
467
|
}
|
|
468
|
+
|
|
457
469
|
this.result[this.numberOfMeasuredPages] = merge(
|
|
458
470
|
this.result[this.numberOfMeasuredPages],
|
|
459
471
|
res
|
|
@@ -463,7 +475,7 @@ export class Measure {
|
|
|
463
475
|
await this.tcpDump.stop();
|
|
464
476
|
}
|
|
465
477
|
|
|
466
|
-
return
|
|
478
|
+
return this.collect(url);
|
|
467
479
|
}
|
|
468
480
|
|
|
469
481
|
/**
|
package/lib/core/engine/index.js
CHANGED
|
@@ -24,16 +24,6 @@ function generateURL(port, testUrl, options) {
|
|
|
24
24
|
query.ba = options.basicAuth + '@' + testUrl;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
if (options.cookie) {
|
|
28
|
-
const cookies = toArray(options.cookie);
|
|
29
|
-
query.cookie = [];
|
|
30
|
-
for (const cookie of cookies) {
|
|
31
|
-
const name = cookie.slice(0, Math.max(0, cookie.indexOf('=')));
|
|
32
|
-
const value = cookie.slice(Math.max(0, cookie.indexOf('=') + 1));
|
|
33
|
-
query.cookie.push(name + '@' + value + '@' + testUrl);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
27
|
return format({
|
|
38
28
|
protocol: 'http',
|
|
39
29
|
hostname: '127.0.0.1',
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import { Bidi } from '../core/engine/command/bidi.js';
|
|
1
2
|
import intel from 'intel';
|
|
3
|
+
import { toArray } from '../support/util.js';
|
|
2
4
|
const log = intel.getLogger('browsertime.firefox.bidi');
|
|
3
5
|
|
|
4
6
|
export class FirefoxBidi {
|
|
5
|
-
constructor(bidi, browsingContextId, options) {
|
|
7
|
+
constructor(bidi, browsingContextId, driver, options) {
|
|
6
8
|
this.options = options;
|
|
7
9
|
this.bidi = bidi;
|
|
10
|
+
this.driver = driver;
|
|
8
11
|
this.browsingContextId = browsingContextId;
|
|
9
12
|
}
|
|
10
13
|
|
|
@@ -17,9 +20,81 @@ export class FirefoxBidi {
|
|
|
17
20
|
};
|
|
18
21
|
|
|
19
22
|
try {
|
|
20
|
-
await this.bidi.send(params);
|
|
23
|
+
const result = await this.bidi.send(params);
|
|
24
|
+
if (result.type != 'success') {
|
|
25
|
+
log.error(result);
|
|
26
|
+
}
|
|
21
27
|
} catch (error) {
|
|
22
28
|
log.error('Could not inject JavaScript:' + error);
|
|
23
29
|
}
|
|
24
30
|
}
|
|
31
|
+
|
|
32
|
+
async setBasicAuth(basicAuth) {
|
|
33
|
+
const parts = basicAuth.split('@');
|
|
34
|
+
const bidi = new Bidi(this.driver, this.options.browser);
|
|
35
|
+
|
|
36
|
+
const command = {
|
|
37
|
+
method: 'network.addIntercept',
|
|
38
|
+
params: {
|
|
39
|
+
phases: ['authRequired']
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
await bidi.send(command);
|
|
43
|
+
|
|
44
|
+
await bidi.subscribe('network.authRequired');
|
|
45
|
+
|
|
46
|
+
await bidi.onMessage(async function (event) {
|
|
47
|
+
const parsedEvent = JSON.parse(Buffer.from(event.toString()));
|
|
48
|
+
if (parsedEvent.method === 'network.authRequired') {
|
|
49
|
+
const continueWithAuth = {
|
|
50
|
+
method: 'network.continueWithAuth',
|
|
51
|
+
params: {
|
|
52
|
+
request: parsedEvent.params.request.request,
|
|
53
|
+
action: 'provideCredentials',
|
|
54
|
+
credentials: {
|
|
55
|
+
type: 'password',
|
|
56
|
+
username: parts[0],
|
|
57
|
+
password: parts[1]
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const result = await bidi.send(continueWithAuth);
|
|
62
|
+
if (result.type != 'success') {
|
|
63
|
+
log.error(result);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
async setCookie(url, cookie) {
|
|
70
|
+
const cookies = toArray(cookie);
|
|
71
|
+
for (let cookieParts of cookies) {
|
|
72
|
+
const parts = new Array(
|
|
73
|
+
cookieParts.slice(0, cookieParts.indexOf('=')),
|
|
74
|
+
cookieParts.slice(cookieParts.indexOf('=') + 1, cookieParts.length)
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
const params = {
|
|
78
|
+
method: 'storage.setCookie',
|
|
79
|
+
params: {
|
|
80
|
+
cookie: {
|
|
81
|
+
name: parts[0],
|
|
82
|
+
value: {
|
|
83
|
+
type: 'string',
|
|
84
|
+
value: parts[1]
|
|
85
|
+
},
|
|
86
|
+
domain: new URL(url).hostname
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
try {
|
|
91
|
+
const result = await this.bidi.send(params);
|
|
92
|
+
if (result.type != 'success') {
|
|
93
|
+
log.error(result);
|
|
94
|
+
}
|
|
95
|
+
} catch (error) {
|
|
96
|
+
log.error('Could not set cookie:' + error);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
25
100
|
}
|
|
@@ -10,6 +10,7 @@ import { isAndroidConfigured, Android } from '../../android/index.js';
|
|
|
10
10
|
import { adjustVisualProgressTimestamps } from '../../support/util.js';
|
|
11
11
|
import { findFiles } from '../../support/fileUtil.js';
|
|
12
12
|
import { GeckoProfiler } from '../geckoProfiler.js';
|
|
13
|
+
import { FirefoxBidi } from '../firefoxBidi.js';
|
|
13
14
|
import { MemoryReport } from '../memoryReport.js';
|
|
14
15
|
import { PerfStats } from '../perfStats.js';
|
|
15
16
|
import { NetworkManager } from '../networkManager.js';
|
|
@@ -64,6 +65,13 @@ export class Firefox {
|
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
this.bidi = await runner.getDriver().getBidi();
|
|
68
|
+
|
|
69
|
+
this.browsertimeBidi = new FirefoxBidi(
|
|
70
|
+
await runner.getDriver().getBidi(),
|
|
71
|
+
this.windowId,
|
|
72
|
+
runner.getDriver(),
|
|
73
|
+
this.options
|
|
74
|
+
);
|
|
67
75
|
}
|
|
68
76
|
|
|
69
77
|
/**
|
|
@@ -82,7 +90,11 @@ export class Firefox {
|
|
|
82
90
|
*/
|
|
83
91
|
async beforeStartIteration(runner) {
|
|
84
92
|
if (this.options.injectJs) {
|
|
85
|
-
await this.
|
|
93
|
+
await this.browsertimeBidi.injectJavaScript(this.options.injectJs);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (this.options.basicAuth) {
|
|
97
|
+
await this.browsertimeBidi.setBasicAuth(this.options.basicAuth);
|
|
86
98
|
}
|
|
87
99
|
|
|
88
100
|
if (
|
|
@@ -103,7 +115,7 @@ export class Firefox {
|
|
|
103
115
|
/**
|
|
104
116
|
* Before each URL/test runs.
|
|
105
117
|
*/
|
|
106
|
-
async beforeEachURL(runner) {
|
|
118
|
+
async beforeEachURL(runner, url) {
|
|
107
119
|
await runner.runPrivilegedScript(`
|
|
108
120
|
new Promise(async function(resolve) {
|
|
109
121
|
await Services.fog.testFlushAllChildren(); // force any data that wasn't recorded yet to be immediately put in the buffers
|
|
@@ -133,6 +145,12 @@ export class Firefox {
|
|
|
133
145
|
await this.geckoProfiler.start();
|
|
134
146
|
}
|
|
135
147
|
|
|
148
|
+
if (this.options.cookie && url) {
|
|
149
|
+
await this.browsertimeBidi.setCookie(url, this.options.cookie);
|
|
150
|
+
} else if (this.options.cookie) {
|
|
151
|
+
log.info('Could not set cookie because the URL is unknown');
|
|
152
|
+
}
|
|
153
|
+
|
|
136
154
|
if (this.firefoxConfig.perfStats) {
|
|
137
155
|
this.perfStats = new PerfStats(runner, this.firefoxConfig);
|
|
138
156
|
return this.perfStats.start();
|
|
@@ -53,6 +53,12 @@ export class DesktopRecorder {
|
|
|
53
53
|
async stop(destination) {
|
|
54
54
|
log.debug('Stop screen recording');
|
|
55
55
|
await _stop(this.recording);
|
|
56
|
+
|
|
57
|
+
// This was a test with and error and probably not a navigation
|
|
58
|
+
// The user script use stopAsError
|
|
59
|
+
if (!destination) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
56
62
|
// FIXME update to rename/move file
|
|
57
63
|
// The destination file could exixt of we use --resultDir
|
|
58
64
|
// so make sure we remove it first
|
package/lib/video/video.js
CHANGED
|
@@ -58,14 +58,18 @@ export class Video {
|
|
|
58
58
|
*/
|
|
59
59
|
async stop(url) {
|
|
60
60
|
this.isRecording = false;
|
|
61
|
-
|
|
62
|
-
this.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
61
|
+
if (url === undefined) {
|
|
62
|
+
return this.recorder.stop(this.videoPath);
|
|
63
|
+
} else {
|
|
64
|
+
this.videoPath = join(
|
|
65
|
+
this.storageManager.directory,
|
|
66
|
+
pathToFolder(url, this.options),
|
|
67
|
+
'video',
|
|
68
|
+
this.index + '.mp4'
|
|
69
|
+
);
|
|
70
|
+
await this.setupDirs(this.index, url);
|
|
71
|
+
return this.recorder.stop(this.videoPath);
|
|
72
|
+
}
|
|
69
73
|
}
|
|
70
74
|
|
|
71
75
|
async cleanup() {
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "browsertime",
|
|
3
3
|
"description": "Get performance metrics from your web page using Browsertime.",
|
|
4
|
-
"version": "21.
|
|
4
|
+
"version": "21.6.0",
|
|
5
5
|
"bin": "./bin/browsertime.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"types": "./types/scripting.d.ts",
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@cypress/xvfb": "1.2.4",
|
|
10
10
|
"@devicefarmer/adbkit": "3.2.6",
|
|
11
|
-
"@sitespeed.io/chromedriver": "
|
|
12
|
-
"@sitespeed.io/edgedriver": "
|
|
11
|
+
"@sitespeed.io/chromedriver": "123.0.6312-58",
|
|
12
|
+
"@sitespeed.io/edgedriver": "122.0.2365-92",
|
|
13
13
|
"@sitespeed.io/geckodriver": "0.34.0",
|
|
14
14
|
"@sitespeed.io/throttle": "5.0.0",
|
|
15
15
|
"@sitespeed.io/tracium": "0.3.3",
|
|
@@ -34,21 +34,21 @@
|
|
|
34
34
|
"yargs": "17.7.2"
|
|
35
35
|
},
|
|
36
36
|
"optionalDependencies": {
|
|
37
|
-
"jimp": "0.22.
|
|
37
|
+
"jimp": "0.22.12"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@types/selenium-webdriver": "4.1.
|
|
41
|
-
"ava": "6.1.
|
|
40
|
+
"@types/selenium-webdriver": "4.1.22",
|
|
41
|
+
"ava": "6.1.2",
|
|
42
42
|
"clean-jsdoc-theme": "4.2.17",
|
|
43
|
-
"eslint": "8.
|
|
43
|
+
"eslint": "8.57.0",
|
|
44
44
|
"eslint-config-prettier": "9.1.0",
|
|
45
45
|
"eslint-plugin-prettier": "5.1.3",
|
|
46
|
-
"eslint-plugin-unicorn": "
|
|
46
|
+
"eslint-plugin-unicorn": "51.0.1",
|
|
47
47
|
"jsdoc": "4.0.2",
|
|
48
|
-
"prettier": "3.2.
|
|
48
|
+
"prettier": "3.2.5",
|
|
49
49
|
"serve": "14.2.1",
|
|
50
50
|
"serve-handler": "6.1.5",
|
|
51
|
-
"typescript": "5.
|
|
51
|
+
"typescript": "5.4.2"
|
|
52
52
|
},
|
|
53
53
|
"engines": {
|
|
54
54
|
"node": ">=18.0.0"
|
|
@@ -161,11 +161,10 @@ export class Measure {
|
|
|
161
161
|
*
|
|
162
162
|
* @async
|
|
163
163
|
* @param {string} errorMessage - The message about the error. This will end up on the HTML report for sitespeed.io so give it a good message so you know what's gone wrong.
|
|
164
|
-
* @param {string} optionalURL - The URL of the page that you wanted to test. If you don't know the URL (you clicked on a link etc) skip it.
|
|
165
164
|
* @returns {Promise} A promise that resolves when the stop process has completed.
|
|
166
165
|
* @since 21.2.0
|
|
167
166
|
*/
|
|
168
|
-
stopAsError(errorMessage: string
|
|
167
|
+
stopAsError(errorMessage: string): Promise<any>;
|
|
169
168
|
/**
|
|
170
169
|
* Stops the measurement process, collects metrics, and handles any post-measurement tasks.
|
|
171
170
|
* It finalizes the URL being tested, manages any URL-specific metadata, stops any ongoing video recordings,
|
|
@@ -176,7 +175,7 @@ export class Measure {
|
|
|
176
175
|
* @throws {Error} Throws an error if there are issues in stopping the measurement or collecting data.
|
|
177
176
|
* @returns {Promise} A promise that resolves with the collected metrics data.
|
|
178
177
|
*/
|
|
179
|
-
stop(testedStartUrl: string
|
|
178
|
+
stop(testedStartUrl: string): Promise<any>;
|
|
180
179
|
/**
|
|
181
180
|
* Adds a custom metric to the current measurement result.
|
|
182
181
|
* This method should be called after a measurement has started and before it has stopped.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../../../../lib/core/engine/command/measure.js"],"names":[],"mappings":"AA6BA;;;;;;GAMG;AACH;IACE,sRA4GC;IA5FC;;OAEG;IACH,gBAAsB;IACtB;;OAEG;IACH,0BAA0C;IAC1C;;OAEG;IACH,cAAkB;IAClB;;OAEG;IACH,eAAoB;IACpB;;OAEG;IACH,uBAAoC;IACpC;;OAEG;IACH,gBAAsB;IACtB;;OAEG;IACH,0BAA0C;IAC1C;;OAEG;IACH,uBAAoC;IACpC;;OAEG;IACH,oBAAyD;IACzD;;OAEG;IACH,wBAAsC;IACtC;;OAEG;IACH,eAAoB;IACpB;;OAEG;IACH,0BAA0C;IAC1C;;OAEG;IACH,+BAAoD;IACpD;;OAEG;IACH,uBAAoC;IACpC;;OAEG;IACH,gBAAsB;IACtB;;OAEG;IACH,8BAA8B;IAC9B;;OAEG;IACH,6BAA6B;IAC7B;;OAEG;IACH,uBAA2B;IAC3B;;OAEG;IACH,mBAAoB;IACpB;;OAEG;IACH,gBAA6D;IAC7D;;OAEG;IACH,2BAAsE;IACtE;;OAEG;IACH,uBAA8D;IAC9D;;OAEG;IACH,2BAAqE;IAGvE;;;OAGG;IACH,oBAsBC;IArBC,aAAuE;IAuBzE;;;OAGG;IACH,mBAKC;IAED;;;OAGG;IACH,
|
|
1
|
+
{"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../../../../lib/core/engine/command/measure.js"],"names":[],"mappings":"AA6BA;;;;;;GAMG;AACH;IACE,sRA4GC;IA5FC;;OAEG;IACH,gBAAsB;IACtB;;OAEG;IACH,0BAA0C;IAC1C;;OAEG;IACH,cAAkB;IAClB;;OAEG;IACH,eAAoB;IACpB;;OAEG;IACH,uBAAoC;IACpC;;OAEG;IACH,gBAAsB;IACtB;;OAEG;IACH,0BAA0C;IAC1C;;OAEG;IACH,uBAAoC;IACpC;;OAEG;IACH,oBAAyD;IACzD;;OAEG;IACH,wBAAsC;IACtC;;OAEG;IACH,eAAoB;IACpB;;OAEG;IACH,0BAA0C;IAC1C;;OAEG;IACH,+BAAoD;IACpD;;OAEG;IACH,uBAAoC;IACpC;;OAEG;IACH,gBAAsB;IACtB;;OAEG;IACH,8BAA8B;IAC9B;;OAEG;IACH,6BAA6B;IAC7B;;OAEG;IACH,uBAA2B;IAC3B;;OAEG;IACH,mBAAoB;IACpB;;OAEG;IACH,gBAA6D;IAC7D;;OAEG;IACH,2BAAsE;IACtE;;OAEG;IACH,uBAA8D;IAC9D;;OAEG;IACH,2BAAqE;IAGvE;;;OAGG;IACH,oBAsBC;IArBC,aAAuE;IAuBzE;;;OAGG;IACH,mBAKC;IAED;;;OAGG;IACH,eAyBC;IAED;;;OAGG;IACH,iBAQC;IAED;;;;;;;;;;;;OAYG;IACH,kBAuBC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,kBALW,MAAM,kBACN,MAAM,GAEJ,QAAQ,IAAI,CAAC,CAwFzB;IAED;;;;;;;;OAQG;IACH,0BAJW,MAAM,gBAiBhB;IACD;;;;;;;;;OASG;IACH,qBAJW,MAAM,gBAwEhB;IAED;;;;;;;OAOG;IACH,UAJW,MAAM,oBAYhB;IAED;;;;;;;OAOG;IACH,6BAOC;IAED;;;OAGG;IACH,gBA4KC;CACF;sBA/qBqB,yBAAyB"}
|
|
@@ -16,12 +16,12 @@ export class DesktopRecorder {
|
|
|
16
16
|
options: any;
|
|
17
17
|
start(file: any): Promise<{
|
|
18
18
|
filePath: any;
|
|
19
|
-
ffmpegProcess:
|
|
19
|
+
ffmpegProcess: import("execa").ExecaChildProcess<string>;
|
|
20
20
|
}>;
|
|
21
21
|
filePath: any;
|
|
22
22
|
recording: Promise<{
|
|
23
23
|
filePath: any;
|
|
24
|
-
ffmpegProcess:
|
|
24
|
+
ffmpegProcess: import("execa").ExecaChildProcess<string>;
|
|
25
25
|
}>;
|
|
26
26
|
stop(destination: any): Promise<void>;
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desktopRecorder.d.ts","sourceRoot":"","sources":["../../../../lib/video/screenRecording/desktop/desktopRecorder.js"],"names":[],"mappings":"AAkBA;IACE,0BAYC;IAXC,aAA8D;IAC9D,eAAkE;IAClE,UAA+C;IAC/C,SAAgD;IAChD,aAA4D;IAC5D,aAA4D;IAC5D,cAAoC;IACpC,aAAkD;IAClD,eAAmB;IACnB;;;MAA4B;IAC5B,aAAsB;IAGxB;;;OAiBC;IAhBC,cAAoB;IAEpB;;;OAWE;IAKJ,
|
|
1
|
+
{"version":3,"file":"desktopRecorder.d.ts","sourceRoot":"","sources":["../../../../lib/video/screenRecording/desktop/desktopRecorder.js"],"names":[],"mappings":"AAkBA;IACE,0BAYC;IAXC,aAA8D;IAC9D,eAAkE;IAClE,UAA+C;IAC/C,SAAgD;IAChD,aAA4D;IAC5D,aAA4D;IAC5D,cAAoC;IACpC,aAAkD;IAClD,eAAmB;IACnB;;;MAA4B;IAC5B,aAAsB;IAGxB;;;OAiBC;IAhBC,cAAoB;IAEpB;;;OAWE;IAKJ,sCAoCC;CACF"}
|
|
@@ -11,7 +11,7 @@ export function start({ display, origin, size, filePath, offset, framerate, crf,
|
|
|
11
11
|
taskset: any;
|
|
12
12
|
}): Promise<{
|
|
13
13
|
filePath: any;
|
|
14
|
-
ffmpegProcess:
|
|
14
|
+
ffmpegProcess: import("execa").ExecaChildProcess<string>;
|
|
15
15
|
}>;
|
|
16
16
|
export function stop(recording: any): Promise<any>;
|
|
17
17
|
//# sourceMappingURL=ffmpegRecorder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../lib/video/video.js"],"names":[],"mappings":"AAQA;;;GAGG;AACH;IACE,6DAMC;IALC,aAAsB;IACtB,oBAAoC;IACpC,YAAsC;IACtC,iXAA0D;IAC1D,qBAAwB;IAG1B,+CAeC;IAbC,WAAkB;IAElB,cAEC;IAMD,kBAEC;IAGH;;;OAGG;IACH,0EAUC;IATC,gBAA4B;IAE5B,uBAA0C;IAS5C;;;OAGG;IACH,
|
|
1
|
+
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../lib/video/video.js"],"names":[],"mappings":"AAQA;;;GAGG;AACH;IACE,6DAMC;IALC,aAAsB;IACtB,oBAAoC;IACpC,YAAsC;IACtC,iXAA0D;IAC1D,qBAAwB;IAG1B,+CAeC;IAbC,WAAkB;IAElB,cAEC;IAMD,kBAEC;IAGH;;;OAGG;IACH,0EAUC;IATC,gBAA4B;IAE5B,uBAA0C;IAS5C;;;OAGG;IACH,6BAcC;IATG,kBAKC;IAML,yBAUC;IAED;;;OAGG;IACH;;;OA0BC;IAED,6BAEC;IAED,2BAEC;CACF"}
|