From b4f4b9ee24b4199284eb87399a6990829b9944b8 Mon Sep 17 00:00:00 2001 From: Michael Goderbauer Date: Tue, 21 Mar 2023 17:17:50 -0700 Subject: [PATCH] [web_benchmarks] Migrate to PlatformDispatcher API --- packages/web_benchmarks/CHANGELOG.md | 4 ++++ packages/web_benchmarks/lib/src/recorder.dart | 13 +++++++------ packages/web_benchmarks/pubspec.yaml | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/packages/web_benchmarks/CHANGELOG.md b/packages/web_benchmarks/CHANGELOG.md index efd1d9d8b71..dff0d5a66fc 100644 --- a/packages/web_benchmarks/CHANGELOG.md +++ b/packages/web_benchmarks/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.0+3 + +* Migrates from SingletonFlutterWindow to PlatformDispatcher API. + ## 0.1.0+2 * Updates code to fix strict-cast violations. diff --git a/packages/web_benchmarks/lib/src/recorder.dart b/packages/web_benchmarks/lib/src/recorder.dart index 383a147f657..52dc6b8c567 100644 --- a/packages/web_benchmarks/lib/src/recorder.dart +++ b/packages/web_benchmarks/lib/src/recorder.dart @@ -238,7 +238,7 @@ abstract class SceneBuilderRecorder extends Recorder { final Completer profileCompleter = Completer(); _profile = Profile(name: name); - window.onBeginFrame = (_) { + PlatformDispatcher.instance.onBeginFrame = (_) { try { startMeasureFrame(profile); onBeginFrame(); @@ -247,7 +247,7 @@ abstract class SceneBuilderRecorder extends Recorder { rethrow; } }; - window.onDrawFrame = () { + PlatformDispatcher.instance.onDrawFrame = () { try { _profile.record('drawFrameDuration', () { final SceneBuilder sceneBuilder = SceneBuilder(); @@ -255,14 +255,15 @@ abstract class SceneBuilderRecorder extends Recorder { _profile.record('sceneBuildDuration', () { final Scene scene = sceneBuilder.build(); _profile.record('windowRenderDuration', () { - window.render(scene); + // TODO(goderbauer): Migrate to PlatformDispatcher.implicitView once v3.9.0 is the oldest supported Flutter version. + window.render(scene); // ignore: deprecated_member_use }, reported: false); }, reported: false); }, reported: true); endMeasureFrame(); if (shouldContinue()) { - window.scheduleFrame(); + PlatformDispatcher.instance.scheduleFrame(); } else { profileCompleter.complete(_profile); } @@ -271,7 +272,7 @@ abstract class SceneBuilderRecorder extends Recorder { rethrow; } }; - window.scheduleFrame(); + PlatformDispatcher.instance.scheduleFrame(); return profileCompleter.future; } } @@ -391,7 +392,7 @@ abstract class WidgetRecorder extends Recorder implements FrameRecorder { reported: true); if (shouldContinue()) { - window.scheduleFrame(); + PlatformDispatcher.instance.scheduleFrame(); } else { for (final VoidCallback fn in _didStopCallbacks) { fn(); diff --git a/packages/web_benchmarks/pubspec.yaml b/packages/web_benchmarks/pubspec.yaml index acb4d9bf34f..92520b62835 100644 --- a/packages/web_benchmarks/pubspec.yaml +++ b/packages/web_benchmarks/pubspec.yaml @@ -2,7 +2,7 @@ name: web_benchmarks description: A benchmark harness for performance-testing Flutter apps in Chrome. repository: https://github.com/flutter/packages/tree/main/packages/web_benchmarks issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+web_benchmarks%22 -version: 0.1.0+2 +version: 0.1.0+3 environment: sdk: '>=2.17.0 <3.0.0'