[web_benchmarks] Fix _RecordingWidgetsBinding to conform to latest API (#700)
diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version
index c129118..d38074f 100644
--- a/.ci/flutter_master.version
+++ b/.ci/flutter_master.version
@@ -1 +1 @@
-185bc093e04bd855bb6aabdfab26d4620e2f3f8f
+f483b7d808315411fc6ccba66cab8807cee2d371
diff --git a/packages/web_benchmarks/CHANGELOG.md b/packages/web_benchmarks/CHANGELOG.md
index e243d25..2cb2915 100644
--- a/packages/web_benchmarks/CHANGELOG.md
+++ b/packages/web_benchmarks/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.0.6
+
+* Update implementation of `_RecordingWidgetsBinding` to match the [new Binding API](https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/foundation/binding.dart#L96-L128)
+
## 0.0.5
* Updated dependencies to allow broader versions for upstream packages.
diff --git a/packages/web_benchmarks/lib/src/recorder.dart b/packages/web_benchmarks/lib/src/recorder.dart
index 4147c7c..95d9032 100644
--- a/packages/web_benchmarks/lib/src/recorder.dart
+++ b/packages/web_benchmarks/lib/src/recorder.dart
@@ -2,8 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+// @dart = 2.7
+
import 'dart:async';
import 'dart:html' as html;
+import 'dart:js';
import 'dart:js_util' as js_util;
import 'dart:math' as math;
import 'dart:ui';
@@ -1031,12 +1034,21 @@
SemanticsBinding,
RendererBinding,
WidgetsBinding {
+ @override
+ void initInstances() {
+ super.initInstances();
+ _instance = this;
+ }
+
+ static _RecordingWidgetsBinding get instance => _instance;
+ static _RecordingWidgetsBinding _instance;
+
/// Makes an instance of [_RecordingWidgetsBinding] the current binding.
static _RecordingWidgetsBinding ensureInitialized() {
- if (WidgetsBinding.instance == null) {
+ if (_RecordingWidgetsBinding.instance == null) {
_RecordingWidgetsBinding();
}
- return WidgetsBinding.instance;
+ return _RecordingWidgetsBinding.instance;
}
FrameRecorder _recorder;
@@ -1216,7 +1228,7 @@
if (_engineBenchmarkListeners.isEmpty) {
// The first listener is being registered. Register the global listener.
js_util.setProperty(html.window, '_flutter_internal_on_benchmark',
- _dispatchEngineBenchmarkValue);
+ allowInterop(_dispatchEngineBenchmarkValue));
}
_engineBenchmarkListeners[name] = listener;
diff --git a/packages/web_benchmarks/pubspec.yaml b/packages/web_benchmarks/pubspec.yaml
index a62c802..b83cbf7 100644
--- a/packages/web_benchmarks/pubspec.yaml
+++ b/packages/web_benchmarks/pubspec.yaml
@@ -2,11 +2,11 @@
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.0.5
+version: 0.0.6
environment:
sdk: ">=2.7.0 <3.0.0"
- flutter: ">=1.17.0"
+ flutter: ">=2.10.0"
# Using +2 upper limit on some packages to allow null-safe versions
dependencies: