diff --git a/packages/flutter/lib/src/services/restoration.dart b/packages/flutter/lib/src/services/restoration.dart index 0e638d84b477..d3046a0e252c 100644 --- a/packages/flutter/lib/src/services/restoration.dart +++ b/packages/flutter/lib/src/services/restoration.dart @@ -154,6 +154,9 @@ class RestorationManager extends ChangeNotifier { /// Construct the restoration manager and set up the communications channels /// with the engine to get restoration messages (by calling [initChannels]). RestorationManager() { + if (kFlutterMemoryAllocationsEnabled) { + maybeDispatchObjectCreation(); + } initChannels(); } diff --git a/packages/flutter/test/services/restoration_test.dart b/packages/flutter/test/services/restoration_test.dart index 8bfc04d121ab..7e872c5e215d 100644 --- a/packages/flutter/test/services/restoration_test.dart +++ b/packages/flutter/test/services/restoration_test.dart @@ -8,10 +8,15 @@ import 'package:flutter/scheduler.dart'; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart'; import 'restoration.dart'; void main() { + testWidgetsWithLeakTracking('$RestorationManager dispatches memory events', (WidgetTester tester) async { + expect(() => RestorationManager().dispose(), dispatchesMemoryEvents(RestorationManager)); + }); + group('RestorationManager', () { testWidgets('root bucket retrieval', (WidgetTester tester) async { final List callsToEngine = [];