start method
Only one trace can be active at a time per browser.
Parameters:
Implementation
// - `screenshots`: captures screenshots in the trace.
// - `categories`: specify custom categories to use instead of default.
Future<void> start({bool? screenshots, List<String>? categories}) async {
if (_recording) {
throw Exception(
'Cannot start recording trace while already recording trace.');
}
screenshots ??= false;
const defaultCategories = [
'-*',
'devtools.timeline',
'v8.execute',
'disabled-by-default-devtools.timeline',
'disabled-by-default-devtools.timeline.frame',
'toplevel',
'blink.console',
'blink.user_timing',
'latencyInfo',
'disabled-by-default-devtools.timeline.stack',
'disabled-by-default-v8.cpu_profiler',
'disabled-by-default-v8.cpu_profiler.hires'
];
categories ??= defaultCategories.toList();
if (screenshots) {
categories.add('disabled-by-default-devtools.screenshot');
}
_recording = true;
await _devTools.tracing.start(
transferMode: 'ReturnAsStream',
//TODO(xha): use the new api
// ignore: deprecated_member_use_from_same_package
categories: categories.join(','));
}