Unverified Commit dd6dd7ae authored by Jia Hao's avatar Jia Hao Committed by GitHub

Fix tracing of startup events (#59982)

When `retainPriorEvents` is passed as true, the current behavior still limits timeline events to the timestamp after `traceEvents` is called. This can cause startup events to be missing.

This fixes it by passing null to `stopTracingAndDownloadTimeline` for the start and end time.

Related: #58430
parent 55abbb6b
......@@ -464,9 +464,19 @@ class VMServiceFlutterDriver extends FlutterDriver {
List<TimelineStream> streams = const <TimelineStream>[TimelineStream.all],
bool retainPriorEvents = false,
}) async {
if (!retainPriorEvents) {
await clearTimeline();
if (retainPriorEvents) {
await startTracing(streams: streams);
await action();
if (!(await _isPrecompiledMode())) {
_log(_kDebugWarning);
}
return stopTracingAndDownloadTimeline();
}
await clearTimeline();
final Map<String, Object> startTimestamp = await _getVMTimelineMicros();
await startTracing(streams: streams);
await action();
......
......@@ -574,10 +574,8 @@ void main() {
}, retainPriorEvents: true);
expect(log, const <String>[
'getVMTimelineMicros',
'startTracing',
'action',
'getVMTimelineMicros',
'stopTracing',
'download',
]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment