browsertime 26.3.2 → 27.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +72 -0
- package/README.md +1 -1
- package/browserscripts/timings/softNavigations.js +94 -0
- package/lib/chrome/har.js +36 -5
- package/lib/chrome/settings/chromeAndroidOptions.js +2 -1
- package/lib/chrome/webdriver/chromium.js +40 -1
- package/lib/chrome/webdriver/setupChromiumOptions.js +86 -31
- package/lib/core/engine/collector.js +340 -317
- package/lib/core/engine/command/addText.js +93 -12
- package/lib/core/engine/command/click.js +268 -139
- package/lib/core/engine/command/commandHelper.js +45 -0
- package/lib/core/engine/command/cookie.js +85 -0
- package/lib/core/engine/command/element.js +37 -2
- package/lib/core/engine/command/javaScript.js +14 -24
- package/lib/core/engine/command/measure/screenshots.js +114 -0
- package/lib/core/engine/command/measure/video.js +85 -0
- package/lib/core/engine/command/measure.js +104 -180
- package/lib/core/engine/command/mouse/clickAndHold.js +6 -3
- package/lib/core/engine/command/mouse/contextClick.js +56 -4
- package/lib/core/engine/command/mouse/doubleClick.js +49 -1
- package/lib/core/engine/command/mouse/mouseMove.js +50 -1
- package/lib/core/engine/command/mouse/singleClick.js +165 -129
- package/lib/core/engine/command/navigation.js +6 -6
- package/lib/core/engine/command/select.js +95 -3
- package/lib/core/engine/command/selectorParser.js +58 -0
- package/lib/core/engine/command/set.js +55 -1
- package/lib/core/engine/command/wait.js +41 -2
- package/lib/core/engine/commands.js +550 -42
- package/lib/core/engine/index.js +206 -150
- package/lib/core/engine/iteration.js +277 -137
- package/lib/firefox/networkManager.js +22 -30
- package/lib/firefox/webdriver/builder.js +14 -0
- package/lib/safari/har.js +131 -0
- package/lib/safari/native/ios-capture +0 -0
- package/lib/safari/native/ios-capture.m +340 -0
- package/lib/safari/safariInspectorClient.js +322 -0
- package/lib/safari/webdriver/safari.js +303 -13
- package/lib/safari/webkitToCdpAdapter.js +241 -0
- package/lib/support/cli.js +13 -0
- package/lib/support/engineUtils.js +16 -5
- package/lib/support/getViewPort.js +5 -0
- package/lib/support/har/index.js +41 -3
- package/lib/support/usbPower.js +2 -3
- package/lib/video/postprocessing/finetune/addTextToVideo.js +4 -0
- package/lib/video/postprocessing/finetune/getFont.js +3 -3
- package/lib/video/postprocessing/finetune/getTimingMetrics.js +7 -0
- package/lib/video/postprocessing/finetune/index.js +26 -9
- package/lib/video/screenRecording/ios/iosDeviceRecorder.js +109 -0
- package/lib/video/screenRecording/recorder.js +2 -2
- package/lib/video/screenRecording/setOrangeBackground.js +3 -0
- package/package.json +11 -11
- package/types/core/engine/command/addText.d.ts +35 -6
- package/types/core/engine/command/addText.d.ts.map +1 -1
- package/types/core/engine/command/click.d.ts +87 -16
- package/types/core/engine/command/click.d.ts.map +1 -1
- package/types/core/engine/command/commandHelper.d.ts +16 -0
- package/types/core/engine/command/commandHelper.d.ts.map +1 -0
- package/types/core/engine/command/cookie.d.ts +65 -0
- package/types/core/engine/command/cookie.d.ts.map +1 -0
- package/types/core/engine/command/element.d.ts +19 -1
- package/types/core/engine/command/element.d.ts.map +1 -1
- package/types/core/engine/command/javaScript.d.ts +4 -0
- package/types/core/engine/command/javaScript.d.ts.map +1 -1
- package/types/core/engine/command/measure/screenshots.d.ts +15 -0
- package/types/core/engine/command/measure/screenshots.d.ts.map +1 -0
- package/types/core/engine/command/measure/video.d.ts +26 -0
- package/types/core/engine/command/measure/video.d.ts.map +1 -0
- package/types/core/engine/command/measure.d.ts +59 -33
- package/types/core/engine/command/measure.d.ts.map +1 -1
- package/types/core/engine/command/mouse/clickAndHold.d.ts.map +1 -1
- package/types/core/engine/command/mouse/contextClick.d.ts +28 -4
- package/types/core/engine/command/mouse/contextClick.d.ts.map +1 -1
- package/types/core/engine/command/mouse/doubleClick.d.ts +24 -4
- package/types/core/engine/command/mouse/doubleClick.d.ts.map +1 -1
- package/types/core/engine/command/mouse/mouseMove.d.ts +30 -5
- package/types/core/engine/command/mouse/mouseMove.d.ts.map +1 -1
- package/types/core/engine/command/mouse/singleClick.d.ts +50 -13
- package/types/core/engine/command/mouse/singleClick.d.ts.map +1 -1
- package/types/core/engine/command/navigation.d.ts +3 -3
- package/types/core/engine/command/select.d.ts +45 -8
- package/types/core/engine/command/select.d.ts.map +1 -1
- package/types/core/engine/command/selectorParser.d.ts +20 -0
- package/types/core/engine/command/selectorParser.d.ts.map +1 -0
- package/types/core/engine/command/set.d.ts +34 -7
- package/types/core/engine/command/set.d.ts.map +1 -1
- package/types/core/engine/command/wait.d.ts +29 -6
- package/types/core/engine/command/wait.d.ts.map +1 -1
- package/types/core/engine/commands.d.ts +296 -28
- package/types/core/engine/commands.d.ts.map +1 -1
- package/types/support/engineUtils.d.ts.map +1 -1
- package/types/support/getViewPort.d.ts.map +1 -1
- package/types/support/usbPower.d.ts.map +1 -1
- package/types/video/postprocessing/finetune/addTextToVideo.d.ts.map +1 -1
- package/types/video/postprocessing/finetune/getTimingMetrics.d.ts.map +1 -1
- package/types/video/postprocessing/finetune/index.d.ts.map +1 -1
- package/types/video/screenRecording/ios/iosDeviceRecorder.d.ts +28 -0
- package/types/video/screenRecording/ios/iosDeviceRecorder.d.ts.map +1 -0
- package/types/video/screenRecording/recorder.d.ts +2 -2
- package/types/video/screenRecording/recorder.d.ts.map +1 -1
- package/types/video/screenRecording/setOrangeBackground.d.ts.map +1 -1
- package/types/video/video.d.ts +1 -1
- package/types/video/video.d.ts.map +1 -1
- package/visualmetrics/visualmetrics-portable.py +136 -136
- package/lib/video/screenRecording/ios/convertToMp4.js +0 -22
- package/lib/video/screenRecording/ios/iosRecorder.js +0 -68
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { fileURLToPath } from 'node:url';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { execaCommand as command } from 'execa';
|
|
4
|
-
import { promisify } from 'node:util';
|
|
5
|
-
import { unlink as _unlink } from 'node:fs';
|
|
6
|
-
import { convert } from './convertToMp4.js';
|
|
7
|
-
import { getLogger } from '@sitespeed.io/log';
|
|
8
|
-
const log = getLogger('browsertime.video');
|
|
9
|
-
const unlink = promisify(_unlink);
|
|
10
|
-
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
11
|
-
const moduleRootPath = path.resolve(__dirname, '..', '..', '..', '..');
|
|
12
|
-
const QVH = path.resolve(moduleRootPath, 'vendor', 'mac', 'x86', 'qvh');
|
|
13
|
-
const delay = ms => new Promise(res => setTimeout(res, ms));
|
|
14
|
-
|
|
15
|
-
export class IOSRecorder {
|
|
16
|
-
constructor(options, baseDir) {
|
|
17
|
-
this.options = options;
|
|
18
|
-
this.uuid = options.safari.deviceUDID;
|
|
19
|
-
this.tmpVideo = path.join(baseDir, 'tmp.h264');
|
|
20
|
-
this.tmpSound = path.join(baseDir, 'tmp.wav');
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
static async activate() {
|
|
24
|
-
log.debug('Activate configuration for IOS recorder.');
|
|
25
|
-
return command(
|
|
26
|
-
QVH + ' activate ' + (this.uuid ? '--udid=' + this.uuid + ' ' : ''),
|
|
27
|
-
{ shell: true }
|
|
28
|
-
).stdout.pipe(process.stdout);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
async start() {
|
|
32
|
-
log.info('Start IOS recorder.');
|
|
33
|
-
|
|
34
|
-
this.qvhProcessProcess = command(
|
|
35
|
-
QVH +
|
|
36
|
-
' record ' +
|
|
37
|
-
(this.uuid ? '--udid=' + this.uuid + ' ' : '') +
|
|
38
|
-
this.tmpVideo +
|
|
39
|
-
' ' +
|
|
40
|
-
this.tmpSound,
|
|
41
|
-
{ shell: true }
|
|
42
|
-
);
|
|
43
|
-
/*
|
|
44
|
-
// This is how we would run it using gstreamer
|
|
45
|
-
this.qvhProcessProcess = execa.command(
|
|
46
|
-
QVH +
|
|
47
|
-
(this.uuid ? ' --udid=' + this.uuid + ' ' : '') +
|
|
48
|
-
` gstreamer --pipeline "mp4mux name=mux ! filesink location=${this.tmpVideo} queue name=audio_target ! wavparse ignore-length=true ! audioconvert ! faac ! aacparse ! mux. queue name=video_target ! h264parse ! vtdec ! videoconvert ! x264enc ! mux."`,
|
|
49
|
-
{ shell: true }
|
|
50
|
-
);
|
|
51
|
-
*/
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
async stop(destination) {
|
|
55
|
-
log.info('Stop IOS recorder.');
|
|
56
|
-
|
|
57
|
-
await this.qvhProcessProcess.kill('SIGINT', {
|
|
58
|
-
forceKillAfterTimeout: 5000
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
await delay(6000);
|
|
62
|
-
await convert(this.tmpVideo, destination);
|
|
63
|
-
await unlink(this.tmpVideo);
|
|
64
|
-
await unlink(this.tmpSound);
|
|
65
|
-
// await rename(this.tmpVideo, destination);
|
|
66
|
-
return this.qvhProcessProcess;
|
|
67
|
-
}
|
|
68
|
-
}
|