Skip to content

Commit 3dea9f0

Browse files
authored
Revert "Clean up the bindings APIs (flutter#86438)" (flutter#86484)
This reverts commit d056500.
1 parent acbd280 commit 3dea9f0

File tree

249 files changed

+1271
-1637
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

249 files changed

+1271
-1637
lines changed

dev/benchmarks/complex_layout/test_memory/scroll_perf.dart

+3-3
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Future<void> main() async {
3232
child: ComplexLayoutApp(),
3333
),
3434
));
35-
await SchedulerBinding.instance.endOfFrame;
35+
await SchedulerBinding.instance?.endOfFrame;
3636

3737
/// Wait 50ms to allow the raster thread to actually put up the frame. (The
3838
/// endOfFrame future ends when we send the data to the engine, before
@@ -50,9 +50,9 @@ Future<void> main() async {
5050
child: ComplexLayoutApp(),
5151
),
5252
));
53-
await SchedulerBinding.instance.endOfFrame;
53+
await SchedulerBinding.instance?.endOfFrame;
5454

55-
final WidgetController controller = LiveWidgetController(WidgetsBinding.instance);
55+
final WidgetController controller = LiveWidgetController(WidgetsBinding.instance!);
5656

5757
// Scroll down
5858
for (int iteration = 0; iteration < maxIterations; iteration += 1) {

dev/benchmarks/macrobenchmarks/lib/src/filtered_child_animation.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class _FilteredChildAnimationPageState extends State<FilteredChildAnimationPage>
4141
_filterType = widget.initialFilterType;
4242
_complexChild = widget.initialComplexChild;
4343
_useRepaintBoundary = widget.initialUseRepaintBoundary;
44-
WidgetsBinding.instance.addPostFrameCallback((_) {
44+
WidgetsBinding.instance!.addPostFrameCallback((_) {
4545
final RenderBox childBox = _childKey.currentContext!.findRenderObject()! as RenderBox;
4646
_childCenter = childBox.paintBounds.center;
4747
});

dev/benchmarks/macrobenchmarks/lib/src/large_images.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class LargeImagesPage extends StatelessWidget {
1111

1212
@override
1313
Widget build(BuildContext context) {
14-
final ImageCache imageCache = PaintingBinding.instance.imageCache;
14+
final ImageCache imageCache = PaintingBinding.instance!.imageCache!;
1515
imageCache.maximumSize = 30;
1616
imageCache.maximumSizeBytes = 50 << 20;
1717
return GridView.builder(

dev/benchmarks/macrobenchmarks/lib/src/web/bench_mouse_region_grid_hover.dart

+3-3
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class BenchMouseRegionGridHover extends WidgetRecorder {
6666
void frameDidDraw() {
6767
if (!started) {
6868
started = true;
69-
SchedulerBinding.instance.addPostFrameCallback((Duration timeStamp) async {
69+
SchedulerBinding.instance!.addPostFrameCallback((Duration timeStamp) async {
7070
_tester.start();
7171
registerDidStop(_tester.stop);
7272
});
@@ -124,7 +124,7 @@ class _UntilNextFrame {
124124
static Future<void> wait() {
125125
if (_UntilNextFrame._completer == null) {
126126
_UntilNextFrame._completer = Completer<void>();
127-
SchedulerBinding.instance.addPostFrameCallback((_) {
127+
SchedulerBinding.instance!.addPostFrameCallback((_) {
128128
_UntilNextFrame._completer!.complete(null);
129129
_UntilNextFrame._completer = null;
130130
});
@@ -145,7 +145,7 @@ class _Tester {
145145
TestGesture get gesture {
146146
return _gesture ??= TestGesture(
147147
dispatcher: (PointerEvent event) async {
148-
RendererBinding.instance.handlePointerEvent(event);
148+
RendererBinding.instance!.handlePointerEvent(event);
149149
},
150150
kind: PointerDeviceKind.mouse,
151151
);

dev/benchmarks/macrobenchmarks/lib/src/web/bench_mouse_region_grid_scroll.dart

+3-3
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class BenchMouseRegionGridScroll extends WidgetRecorder {
4141
void frameDidDraw() {
4242
if (!started) {
4343
started = true;
44-
SchedulerBinding.instance.addPostFrameCallback((Duration timeStamp) async {
44+
SchedulerBinding.instance!.addPostFrameCallback((Duration timeStamp) async {
4545
_tester.start();
4646
registerDidStop(_tester.stop);
4747
});
@@ -96,7 +96,7 @@ class _UntilNextFrame {
9696
static Future<void> wait() {
9797
if (_UntilNextFrame._completer == null) {
9898
_UntilNextFrame._completer = Completer<void>();
99-
SchedulerBinding.instance.addPostFrameCallback((_) {
99+
SchedulerBinding.instance!.addPostFrameCallback((_) {
100100
_UntilNextFrame._completer!.complete(null);
101101
_UntilNextFrame._completer = null;
102102
});
@@ -117,7 +117,7 @@ class _Tester {
117117
TestGesture get gesture {
118118
return _gesture ??= TestGesture(
119119
dispatcher: (PointerEvent event) async {
120-
RendererBinding.instance.handlePointerEvent(event);
120+
RendererBinding.instance!.handlePointerEvent(event);
121121
},
122122
kind: PointerDeviceKind.mouse,
123123
);

dev/benchmarks/macrobenchmarks/lib/src/web/bench_mouse_region_mixed_grid_hover.dart

+3-3
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ class BenchMouseRegionMixedGridHover extends WidgetRecorder {
8585
void frameDidDraw() {
8686
if (!started) {
8787
started = true;
88-
SchedulerBinding.instance.addPostFrameCallback((Duration timeStamp) async {
88+
SchedulerBinding.instance!.addPostFrameCallback((Duration timeStamp) async {
8989
_tester.start();
9090
registerDidStop(_tester.stop);
9191
});
@@ -146,7 +146,7 @@ class _UntilNextFrame {
146146
static Future<void> wait() {
147147
if (_UntilNextFrame._completer == null) {
148148
_UntilNextFrame._completer = Completer<void>();
149-
SchedulerBinding.instance.addPostFrameCallback((_) {
149+
SchedulerBinding.instance!.addPostFrameCallback((_) {
150150
_UntilNextFrame._completer!.complete(null);
151151
_UntilNextFrame._completer = null;
152152
});
@@ -167,7 +167,7 @@ class _Tester {
167167
TestGesture get gesture {
168168
return _gesture ??= TestGesture(
169169
dispatcher: (PointerEvent event) async {
170-
RendererBinding.instance.handlePointerEvent(event);
170+
RendererBinding.instance!.handlePointerEvent(event);
171171
},
172172
kind: PointerDeviceKind.mouse,
173173
);

dev/benchmarks/macrobenchmarks/lib/src/web/recorder.dart

+4-24
Original file line numberDiff line numberDiff line change
@@ -935,7 +935,7 @@ double _computeAverage(String label, Iterable<double> values) {
935935
///
936936
/// See also:
937937
///
938-
/// * <https://en.wikipedia.org/wiki/Standard_deviation>
938+
/// * https://en.wikipedia.org/wiki/Standard_deviation
939939
double _computeStandardDeviationForPopulation(String label, Iterable<double> population) {
940940
if (population.isEmpty) {
941941
throw StateError('$label: attempted to compute the standard deviation of empty population.');
@@ -987,32 +987,12 @@ class _RecordingWidgetsBinding extends BindingBase
987987
SemanticsBinding,
988988
RendererBinding,
989989
WidgetsBinding {
990-
991-
@override
992-
void initInstances() {
993-
super.initInstances();
994-
_instance = this;
995-
}
996-
997-
/// The singleton instance of this object.
998-
///
999-
/// Provides access to the features exposed by this class. The binding must
1000-
/// be initialized before using this getter; this is typically done by calling
1001-
/// [_RecordingWidgetsBinding.ensureInitialized].
1002-
static _RecordingWidgetsBinding get instance => BindingBase.checkInstance(_instance);
1003-
static _RecordingWidgetsBinding? _instance;
1004-
1005-
/// Returns an instance of the [_RecordingWidgetsBinding], creating and
1006-
/// initializing it if necessary.
1007-
///
1008-
/// See also:
1009-
///
1010-
/// * [WidgetsFlutterBinding.ensureInitialized], the equivalent in the widgets framework.
990+
/// Makes an instance of [_RecordingWidgetsBinding] the current binding.
1011991
static _RecordingWidgetsBinding ensureInitialized() {
1012-
if (_instance == null) {
992+
if (WidgetsBinding.instance == null) {
1013993
_RecordingWidgetsBinding();
1014994
}
1015-
return instance;
995+
return WidgetsBinding.instance! as _RecordingWidgetsBinding;
1016996
}
1017997

1018998
FrameRecorder? _recorder;

dev/benchmarks/macrobenchmarks/test/frame_policy.dart

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import 'package:integration_test/integration_test.dart';
1010
import 'package:macrobenchmarks/src/simple_scroll.dart';
1111

1212
void main() {
13-
final IntegrationTestWidgetsFlutterBinding binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized();
13+
final IntegrationTestWidgetsFlutterBinding binding =
14+
IntegrationTestWidgetsFlutterBinding.ensureInitialized() as IntegrationTestWidgetsFlutterBinding;
1415
testWidgets(
1516
'Frame Counter and Input Delay for benchmarkLive',
1617
(WidgetTester tester) async {

dev/benchmarks/macrobenchmarks/test_memory/heavy_gridview.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import 'package:macrobenchmarks/main.dart';
1010

1111
Future<void> endOfAnimation() async {
1212
do {
13-
await SchedulerBinding.instance.endOfFrame;
14-
} while (SchedulerBinding.instance.hasScheduledFrame);
13+
await SchedulerBinding.instance!.endOfFrame;
14+
} while (SchedulerBinding.instance!.hasScheduledFrame);
1515
}
1616

1717
Future<void> main() async {

dev/benchmarks/macrobenchmarks/test_memory/large_images.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import 'package:macrobenchmarks/main.dart';
1010

1111
Future<void> endOfAnimation() async {
1212
do {
13-
await SchedulerBinding.instance.endOfFrame;
14-
} while (SchedulerBinding.instance.hasScheduledFrame);
13+
await SchedulerBinding.instance!.endOfFrame;
14+
} while (SchedulerBinding.instance!.hasScheduledFrame);
1515
}
1616

1717
Future<void> main() async {

dev/benchmarks/microbenchmarks/lib/foundation/all_elements_bench.dart

+5-5
Original file line numberDiff line numberDiff line change
@@ -44,24 +44,24 @@ Future<void> main() async {
4444

4545
// Wait for frame rendering to stabilize.
4646
for (int i = 0; i < 5; i++) {
47-
await SchedulerBinding.instance.endOfFrame;
47+
await SchedulerBinding.instance?.endOfFrame;
4848
}
4949

5050
final Stopwatch watch = Stopwatch();
5151

52-
print('flutter_test allElements benchmark... (${WidgetsBinding.instance.renderViewElement})');
52+
print('flutter_test allElements benchmark... (${WidgetsBinding.instance?.renderViewElement})');
5353
// Make sure we get enough elements to process for consistent benchmark runs
54-
int elementCount = collectAllElementsFrom(WidgetsBinding.instance.renderViewElement!, skipOffstage: false).length;
54+
int elementCount = collectAllElementsFrom(WidgetsBinding.instance!.renderViewElement!, skipOffstage: false).length;
5555
while (elementCount < 2458) {
5656
await Future<void>.delayed(Duration.zero);
57-
elementCount = collectAllElementsFrom(WidgetsBinding.instance.renderViewElement!, skipOffstage: false).length;
57+
elementCount = collectAllElementsFrom(WidgetsBinding.instance!.renderViewElement!, skipOffstage: false).length;
5858
}
5959
print('element count: $elementCount');
6060

6161
watch.start();
6262
for (int i = 0; i < _kNumIters; i += 1) {
6363
final List<Element> allElements = collectAllElementsFrom(
64-
WidgetsBinding.instance.renderViewElement!,
64+
WidgetsBinding.instance!.renderViewElement!,
6565
skipOffstage: false,
6666
).toList();
6767
allElements.clear();

dev/benchmarks/microbenchmarks/lib/stocks/animation_bench.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ Future<void> main() async {
6868

6969
// Time how long each frame takes
7070
cpuWatch.reset();
71-
while (SchedulerBinding.instance.hasScheduledFrame) {
71+
while (SchedulerBinding.instance!.hasScheduledFrame) {
7272
await tester.pump();
7373
totalSubsequentFramesIterationCount += 1;
7474
}

dev/benchmarks/microbenchmarks/lib/stocks/layout_bench.dart

+4-4
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,18 @@ Future<void> main() async {
3333

3434
final TestViewConfiguration big = TestViewConfiguration(
3535
size: const Size(360.0, 640.0),
36-
window: RendererBinding.instance.window,
36+
window: RendererBinding.instance?.window,
3737
);
3838
final TestViewConfiguration small = TestViewConfiguration(
3939
size: const Size(355.0, 635.0),
40-
window: RendererBinding.instance.window,
40+
window: RendererBinding.instance?.window,
4141
);
42-
final RenderView renderView = WidgetsBinding.instance.renderView;
42+
final RenderView? renderView = WidgetsBinding.instance?.renderView;
4343
binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.benchmark;
4444

4545
watch.start();
4646
while (watch.elapsed < kBenchmarkTime) {
47-
renderView.configuration = iterations.isEven ? big : small;
47+
renderView?.configuration = iterations.isEven ? big : small;
4848
await tester.pumpBenchmark(Duration(milliseconds: iterations * 16));
4949
iterations += 1;
5050
}

dev/integration_tests/abstract_method_smoke_test/lib/main.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class _HomePage extends State<HomePage> {
4242

4343
// Trigger the second route.
4444
// https://github.com/flutter/flutter/issues/40126
45-
WidgetsBinding.instance.addPostFrameCallback((_) async {
45+
WidgetsBinding.instance?.addPostFrameCallback((_) async {
4646
Navigator.of(context).push(
4747
MaterialPageRoute<void>(builder: (_) => const SecondPage()));
4848
});

dev/integration_tests/flutter_gallery/test/calculator/smoke_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import 'package:flutter_gallery/demo/calculator_demo.dart';
77
import 'package:flutter_test/flutter_test.dart';
88

99
void main() {
10-
final TestWidgetsFlutterBinding binding = TestWidgetsFlutterBinding.ensureInitialized();
10+
final TestWidgetsFlutterBinding binding = TestWidgetsFlutterBinding.ensureInitialized() as TestWidgetsFlutterBinding;
1111
if (binding is LiveTestWidgetsFlutterBinding)
1212
binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.fullyLive;
1313

dev/integration_tests/flutter_gallery/test/drawer_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import 'package:flutter_gallery/gallery/app.dart';
88
import 'package:flutter_test/flutter_test.dart';
99

1010
void main() {
11-
final TestWidgetsFlutterBinding binding = TestWidgetsFlutterBinding.ensureInitialized();
11+
final TestWidgetsFlutterBinding binding = TestWidgetsFlutterBinding.ensureInitialized() as TestWidgetsFlutterBinding;
1212
if (binding is LiveTestWidgetsFlutterBinding)
1313
binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.fullyLive;
1414

dev/integration_tests/flutter_gallery/test/example_code_display_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import 'package:flutter_gallery/gallery/app.dart';
77
import 'package:flutter_test/flutter_test.dart';
88

99
void main() {
10-
final TestWidgetsFlutterBinding binding = TestWidgetsFlutterBinding.ensureInitialized();
10+
final TestWidgetsFlutterBinding binding = TestWidgetsFlutterBinding.ensureInitialized() as TestWidgetsFlutterBinding;
1111
if (binding is LiveTestWidgetsFlutterBinding)
1212
binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.fullyLive;
1313

dev/integration_tests/flutter_gallery/test/live_smoketest.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Future<void> main() async {
5858

5959
print('Starting app...');
6060
runApp(const GalleryApp(testMode: true));
61-
final _LiveWidgetController controller = _LiveWidgetController(WidgetsBinding.instance);
61+
final _LiveWidgetController controller = _LiveWidgetController(WidgetsBinding.instance!);
6262
for (final GalleryDemoCategory category in kAllGalleryDemoCategories) {
6363
print('Tapping "${category.name}" section...');
6464
await controller.tap(find.text(category.name));
@@ -111,7 +111,7 @@ class _LiveWidgetController extends LiveWidgetController {
111111
Future<void> _waitUntilFrame(bool Function() condition, [Completer<void>? completer]) {
112112
completer ??= Completer<void>();
113113
if (!condition()) {
114-
SchedulerBinding.instance.addPostFrameCallback((Duration timestamp) {
114+
SchedulerBinding.instance!.addPostFrameCallback((Duration timestamp) {
115115
_waitUntilFrame(condition, completer);
116116
});
117117
} else {

dev/integration_tests/flutter_gallery/test/pesto_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import 'package:flutter_gallery/gallery/app.dart';
77
import 'package:flutter_test/flutter_test.dart';
88

99
void main() {
10-
final TestWidgetsFlutterBinding binding = TestWidgetsFlutterBinding.ensureInitialized();
10+
final TestWidgetsFlutterBinding binding = TestWidgetsFlutterBinding.ensureInitialized() as TestWidgetsFlutterBinding;
1111
if (binding is LiveTestWidgetsFlutterBinding)
1212
binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.fullyLive;
1313

dev/integration_tests/flutter_gallery/test/simple_smoke_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import 'package:flutter_gallery/gallery/app.dart' show GalleryApp;
77
import 'package:flutter_test/flutter_test.dart';
88

99
void main() {
10-
final TestWidgetsFlutterBinding binding = TestWidgetsFlutterBinding.ensureInitialized();
10+
final TestWidgetsFlutterBinding binding = TestWidgetsFlutterBinding.ensureInitialized() as TestWidgetsFlutterBinding;
1111
if (binding is LiveTestWidgetsFlutterBinding)
1212
binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.fullyLive;
1313

dev/integration_tests/flutter_gallery/test/smoke_test.dart

+5-5
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@ Future<void> smokeDemo(WidgetTester tester, GalleryDemo demo) async {
7777

7878
// Verify that the dumps are pretty.
7979
final String routeName = demo.routeName;
80-
verifyToStringOutput('debugDumpApp', routeName, WidgetsBinding.instance.renderViewElement!.toStringDeep());
81-
verifyToStringOutput('debugDumpRenderTree', routeName, RendererBinding.instance.renderView.toStringDeep());
82-
verifyToStringOutput('debugDumpLayerTree', routeName, RendererBinding.instance.renderView.debugLayer?.toStringDeep() ?? '');
80+
verifyToStringOutput('debugDumpApp', routeName, WidgetsBinding.instance!.renderViewElement!.toStringDeep());
81+
verifyToStringOutput('debugDumpRenderTree', routeName, RendererBinding.instance?.renderView.toStringDeep() ?? '');
82+
verifyToStringOutput('debugDumpLayerTree', routeName, RendererBinding.instance?.renderView.debugLayer?.toStringDeep() ?? '');
8383

8484
// Scroll the demo around a bit more.
8585
await tester.flingFrom(const Offset(400.0, 300.0), const Offset(0.0, 400.0), 1000.0);
@@ -179,8 +179,8 @@ void main() {
179179
testWidgets('Flutter Gallery app smoke test', smokeGallery);
180180

181181
testWidgets('Flutter Gallery app smoke test with semantics', (WidgetTester tester) async {
182-
RendererBinding.instance.setSemanticsEnabled(true);
182+
RendererBinding.instance!.setSemanticsEnabled(true);
183183
await smokeGallery(tester);
184-
RendererBinding.instance.setSemanticsEnabled(false);
184+
RendererBinding.instance!.setSemanticsEnabled(false);
185185
});
186186
}

dev/integration_tests/flutter_gallery/test/update_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Future<String> mockUpdateUrlFetcher() {
1111
}
1212

1313
void main() {
14-
final TestWidgetsFlutterBinding binding = TestWidgetsFlutterBinding.ensureInitialized();
14+
final TestWidgetsFlutterBinding binding = TestWidgetsFlutterBinding.ensureInitialized() as TestWidgetsFlutterBinding;
1515
if (binding is LiveTestWidgetsFlutterBinding)
1616
binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.fullyLive;
1717

dev/integration_tests/flutter_gallery/test_driver/transitions_perf.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ class _MessageHandler {
3030
case 'demoNames':
3131
return const JsonEncoder.withIndent(' ').convert(_allDemos);
3232
case 'profileDemos':
33-
controller ??= LiveWidgetController(WidgetsBinding.instance);
33+
controller ??= LiveWidgetController(WidgetsBinding.instance!);
3434
await runDemos(kProfiledDemos, controller!);
3535
_unTestedDemos.removeAll(kProfiledDemos);
3636
return const JsonEncoder.withIndent(' ').convert(kProfiledDemos);
3737
case 'restDemos':
38-
controller ??= LiveWidgetController(WidgetsBinding.instance);
38+
controller ??= LiveWidgetController(WidgetsBinding.instance!);
3939
final List<String> restDemos = _unTestedDemos.toList();
4040
await runDemos(restDemos, controller!);
4141
return const JsonEncoder.withIndent(' ').convert(restDemos);

dev/integration_tests/flutter_gallery/test_driver/transitions_perf_e2e.dart

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ List<String> _allDemos = kAllGalleryDemos.map(
2222

2323
void main([List<String> args = const <String>[]]) {
2424
final bool withSemantics = args.contains('--with_semantics');
25-
final IntegrationTestWidgetsFlutterBinding binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized();
25+
final IntegrationTestWidgetsFlutterBinding binding =
26+
IntegrationTestWidgetsFlutterBinding.ensureInitialized() as IntegrationTestWidgetsFlutterBinding;
2627
binding.framePolicy = LiveTestWidgetsFlutterBindingFramePolicy.fullyLive;
2728
group('flutter gallery transitions on e2e', () {
2829
testWidgets('find.bySemanticsLabel', (WidgetTester tester) async {

0 commit comments

Comments
 (0)