[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: