diff --git a/lib/cli/cli.js b/lib/cli/cli.js index 174fa81c0..c09511802 100644 --- a/lib/cli/cli.js +++ b/lib/cli/cli.js @@ -436,6 +436,40 @@ module.exports.parseCommandLine = function parseCommandLine() { type: 'boolean', group: 'Firefox' }) + .option('browsertime.firefox.geckoProfiler', { + alias: 'firefox.geckoProfiler', + describe: 'Collect a profile using the internal gecko profiler', + default: false, + type: 'boolean', + group: 'Firefox' + }) + .option('browsertime.firefox.geckoProfilerParams.features', { + alias: 'firefox.geckoProfilerParams.features', + describe: 'Enabled features during gecko profiling', + default: 'js,stackwalk,leaf', + type: 'string', + group: 'Firefox' + }) + .option('browsertime.firefox.geckoProfilerParams.threads', { + alias: 'firefox.geckoProfilerParams.threads', + describe: 'Threads to profile.', + default: 'GeckoMain,Compositor,Renderer', + type: 'string', + group: 'Firefox' + }) + .option('browsertime.firefox.geckoProfilerParams.interval', { + alias: 'firefox.geckoProfilerParams.interval', + describe: `Sampling interval in ms. Defaults to 1 on desktop, and 4 on android.`, + type: 'number', + group: 'Firefox' + }) + .option('browsertime.firefox.geckoProfilerParams.bufferSize', { + alias: 'firefox.geckoProfilerParams.bufferSize', + describe: 'Buffer size in elements. Default is ~90MB.', + default: 1000000, + type: 'number', + group: 'Firefox' + }) .option('browsertime.firefox.windowRecorder', { alias: 'firefox.windowRecorder', describe: @@ -446,6 +480,44 @@ module.exports.parseCommandLine = function parseCommandLine() { type: 'boolean', group: 'Firefox' }) + .option('browsertime.firefox.disableSafeBrowsing', { + alias: 'firefox.disableSafeBrowsing', + describe: 'Disable safebrowsing.', + default: true, + type: 'boolean', + group: 'Firefox' + }) + .option('browsertime.firefox.android.package', { + alias: 'firefox.android.package', + describe: + 'Run Firefox or a GeckoView-consuming App on your Android device. Set to org.mozilla.geckoview_example for default Firefox version. You need to have adb installed to make this work.', + group: 'Firefox' + }) + .option('browsertime.firefox.android.activity', { + alias: 'firefox.android.activity', + describe: 'Name of the Activity hosting the GeckoView.', + group: 'Firefox' + }) + .option('browsertime.firefox.android.deviceSerial', { + alias: 'firefox.android.deviceSerial', + describe: + 'Choose which device to use. If you do not set it, first device will be used.', + group: 'Firefox' + }) + .option('browsertime.firefox.android.intentArgument', { + alias: 'firefox.android.intentArgument', + describe: + 'Configure how the Android intent is launched. Passed through to `adb shell am start ...`; ' + + 'follow the format at https://developer.android.com/studio/command-line/adb#IntentSpec. ' + + 'To add multiple arguments, repeat --firefox.android.intentArgument once per argument.', + group: 'Firefox' + }) + .option('browsertime.firefox.profileTemplate', { + alias: 'firefox.profileTemplate', + describe: + 'Profile template directory that will be cloned and used as the base of each profile each instance of Firefox is launched against. Use this to pre-populate databases with certificates, tracking protection lists, etc.', + group: 'Firefox' + }) .option('browsertime.firefox.collectMozLog', { alias: 'firefox.collectMozLog', type: 'boolean', @@ -467,9 +539,20 @@ module.exports.parseCommandLine = function parseCommandLine() { group: 'Chrome' }) .option('browsertime.chrome.android.package', { - alias: 'chu rome.android.package', + alias: 'chrome.android.package', describe: - 'Run Chrome on your Android device. Set to com.android.chrome for default Chrome version. You need to run adb start-server before you start.', + 'Run Chrome on your Android device. Set to com.android.chrome for default Chrome version. You need to have adb installed to run on Android.', + group: 'Chrome' + }) + .option('browsertime.chrome.android.activity', { + alias: 'chrome.android.activity', + describe: 'Name of the Activity hosting the WebView.', + group: 'Chrome' + }) + .option('browsertime.chrome.android.process', { + alias: 'chrome.android.process', + describe: + 'Process name of the Activity hosting the WebView. If not given, the process name is assumed to be the same as chrome.android.package.', group: 'Chrome' }) .option('browsertime.android', {