From 78a96b09d64dc2a520e5b269d5cea1b9dde27d3f Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Thu, 20 May 2021 13:29:03 -0700 Subject: [PATCH] [flutter] use engine provided frame number (#82934) --- packages/flutter/lib/src/scheduler/binding.dart | 10 +++------- packages/flutter/test/scheduler/scheduler_test.dart | 3 ++- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/flutter/lib/src/scheduler/binding.dart b/packages/flutter/lib/src/scheduler/binding.dart index bac07618811..0c104f6417c 100644 --- a/packages/flutter/lib/src/scheduler/binding.dart +++ b/packages/flutter/lib/src/scheduler/binding.dart @@ -202,12 +202,8 @@ mixin SchedulerBinding on BindingBase { _instance = this; if (!kReleaseMode) { - int frameNumber = 0; addTimingsCallback((List timings) { - for (final FrameTiming frameTiming in timings) { - frameNumber += 1; - _profileFramePostEvent(frameNumber, frameTiming); - } + timings.forEach(_profileFramePostEvent); }); } } @@ -1103,9 +1099,9 @@ mixin SchedulerBinding on BindingBase { } } - void _profileFramePostEvent(int frameNumber, FrameTiming frameTiming) { + void _profileFramePostEvent(FrameTiming frameTiming) { postEvent('Flutter.Frame', { - 'number': frameNumber, + 'number': frameTiming.frameNumber, 'startTime': frameTiming.timestampInMicroseconds(FramePhase.buildStart), 'elapsed': frameTiming.totalSpan.inMicroseconds, 'build': frameTiming.buildDuration.inMicroseconds, diff --git a/packages/flutter/test/scheduler/scheduler_test.dart b/packages/flutter/test/scheduler/scheduler_test.dart index b064d49b127..a5913cfa98c 100644 --- a/packages/flutter/test/scheduler/scheduler_test.dart +++ b/packages/flutter/test/scheduler/scheduler_test.dart @@ -143,13 +143,14 @@ void main() { buildFinish: 15000, rasterStart: 16000, rasterFinish: 20000, + frameNumber: 1991 )]); final List> events = scheduler.getEventsDispatched('Flutter.Frame'); expect(events, hasLength(1)); final Map event = events.first; - expect(event['number'], isNonNegative); + expect(event['number'], 1991); expect(event['startTime'], 10000); expect(event['elapsed'], 15000); expect(event['build'], 5000);