Repository navigation
Make sure that a NavigationDrawer doesn't crash in 0x0 environment - #176951
Conversation
There was a problem hiding this comment.
Code Review
This pull request adds a regression test to ensure that NavigationDrawer does not crash when rendered in a zero-sized area. The test itself is a good idea, but in its current form, it's not effective because it doesn't include a NavigationDrawerDestination, which is necessary to trigger the code path that was causing the original crash. I've suggested a change to make the test correctly cover the intended scenario.
| await tester.pumpWidget( | ||
| const MaterialApp( | ||
| home: Center( | ||
| child: SizedBox.shrink(child: NavigationDrawer(children: <Widget>[])), |
There was a problem hiding this comment.
This test is intended to prevent a crash in NavigationDrawer when it has zero area. The original crash, as described in issue #6537, occurred within the NavigationIndicator widget. This widget is only built when there's at least one NavigationDrawerDestination in the children list of the NavigationDrawer.
By providing an empty list (children: <Widget>[]), this test doesn't exercise the code path that caused the crash, making it ineffective as a regression test. To make this test correctly cover the scenario, you should add at least one NavigationDrawerDestination to the children list.
| child: SizedBox.shrink(child: NavigationDrawer(children: <Widget>[])), | |
| child: SizedBox.shrink(child: NavigationDrawer(children: const <Widget>[const NavigationDrawerDestination(icon: Icon(Icons.inbox), label: Text('Inbox'))])), |
dkwingsmt
left a comment
There was a problem hiding this comment.
Checklist:
- The test is in the correct file
- The test name goes “does not crash at zero area”
- The target widget is wrapped by
Center(or is fullscreen) - The target widget does not have an overlay, or the overlay is tested
- The target widget is expected to have a size of exactly
Size.zero
Roll Flutter from 2d34167 to 75004a6 (39 revisions) flutter/flutter@2d34167...75004a6 2025-10-22 [email protected] [Impeller] Add the paint color to the key of the text shadow cache (flutter/flutter#177140) 2025-10-22 [email protected] Roll Skia from 96e75ca8e24b to 928b5cf727c1 (2 revisions) (flutter/flutter#177387) 2025-10-22 [email protected] Roll reclient to version 185 (flutter/flutter#177293) 2025-10-22 [email protected] Roll Skia from b157f6b95f95 to 96e75ca8e24b (4 revisions) (flutter/flutter#177366) 2025-10-22 [email protected] Fix InputDatePickerFormField does not inherit local InputDecorationTheme (flutter/flutter#177090) 2025-10-22 [email protected] Roll Skia from 2c6162c977db to b157f6b95f95 (2 revisions) (flutter/flutter#177362) 2025-10-22 [email protected] Roll Skia from cadf8e7e6fca to 2c6162c977db (4 revisions) (flutter/flutter#177359) 2025-10-22 [email protected] Cleanup after -news_toolkit, +google_fonts, and some leftover `team-go_router` (flutter/flutter#176841) 2025-10-21 [email protected] don't break sheet's snap from physics (flutter/flutter#171157) 2025-10-21 [email protected] Roll Dart SDK from 913c2ae1b367 to c23010c4f9e6 (8 revisions) (flutter/flutter#177348) 2025-10-21 [email protected] Fix typo in comment about screen availibility (flutter/flutter#177168) 2025-10-21 [email protected] Fix(AnimatedScrollView): exclude outgoing items in removeAllItems (flutter/flutter#176452) 2025-10-21 [email protected] Enable deprecated_member_use_from_same_package for all packages containing tests of Dart fixes defined within the package (flutter/flutter#177341) 2025-10-21 [email protected] Roll Skia from 19bff385f7e8 to cadf8e7e6fca (3 revisions) (flutter/flutter#177331) 2025-10-21 [email protected] Revert "[Android 16] Update `android_engine_vulkan_tests` to Test Against SDK 36 Emulator" (flutter/flutter#177292) 2025-10-21 [email protected] Fix SliverMainAxisGroup.cacheOrigin (flutter/flutter#175760) 2025-10-21 [email protected] Roll Skia from 75c756e029c9 to 19bff385f7e8 (3 revisions) (flutter/flutter#177316) 2025-10-21 [email protected] Fix typo in overlay.dart documentation comment (flutter/flutter#176612) 2025-10-21 [email protected] [ Tool ] Output DTD URI for Flutter web applications (flutter/flutter#177310) 2025-10-21 [email protected] Roll Skia from 982988b472a4 to 75c756e029c9 (1 revision) (flutter/flutter#177305) 2025-10-21 [email protected] Roll Skia from 42ff13a91c80 to 982988b472a4 (8 revisions) (flutter/flutter#177300) 2025-10-21 [email protected] Fix DateRangePickerDialog does not inherit local InputDecorationTheme (flutter/flutter#177086) 2025-10-21 [email protected] Remove references to dart:_js_annotations (flutter/flutter#176698) 2025-10-20 [email protected] Make `FlutterSceneLifeCycleProvider.sceneLifeCycleDelegate` readonly (flutter/flutter#177240) 2025-10-20 [email protected] Make sure that a CupertinoDesktopTextSelectionToolbar doesn't crash i… (flutter/flutter#173964) 2025-10-20 [email protected] Make sure that a BottomSheet doesn't crash in 0x0 environment (flutter/flutter#172229) 2025-10-20 [email protected] Move the Fuchsia SDK to //third_party/fuchsia-sdk (flutter/flutter#177118) 2025-10-20 [email protected] Roll Skia from 641994569415 to 42ff13a91c80 (8 revisions) (flutter/flutter#177283) 2025-10-20 [email protected] Make sure that a NavigationDrawer doesn't crash in 0x0 environment (flutter/flutter#176951) 2025-10-20 [email protected] Fix ink features painting in TabBar. (flutter/flutter#177155) 2025-10-20 [email protected] Make sure that SimpleDialog and SimpleDialogOption do not crash in 0x0 environment (flutter/flutter#174229) 2025-10-20 [email protected] Fix ink features painting in YearPicker. (flutter/flutter#177014) 2025-10-20 [email protected] Update `image.error_builder.0.dart` to replace the emoji with some text (flutter/flutter#176886) 2025-10-20 [email protected] Roll Skia from ed4294faecde to 641994569415 (4 revisions) (flutter/flutter#177264) 2025-10-20 [email protected] Remove redundant name field form `TargetPlatform` and `XCDeviceEventInterface` enums (flutter/flutter#176890) 2025-10-20 [email protected] Added support to pass in texture type while creating textures. (flutter/flutter#175376) 2025-10-20 [email protected] Roll Packages from 3747006 to d113bbc (6 revisions) (flutter/flutter#177270) 2025-10-20 [email protected] Roll Dart SDK from 2cd2106f2cef to 913c2ae1b367 (2 revisions) (flutter/flutter#177258) 2025-10-20 [email protected] Added link to ClipRect from ImageFilter in the docstring (flutter/flutter#177196) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected],[email protected] on the revert to ensure that a human is aware of the problem. ...
…lutter#176951) This is my attempt to handle flutter#6537 for the NavigationDrawer widget.
Roll Flutter from 2d34167 to 75004a6 (39 revisions) flutter/flutter@2d34167...75004a6 2025-10-22 [email protected] [Impeller] Add the paint color to the key of the text shadow cache (flutter/flutter#177140) 2025-10-22 [email protected] Roll Skia from 96e75ca8e24b to 928b5cf727c1 (2 revisions) (flutter/flutter#177387) 2025-10-22 [email protected] Roll reclient to version 185 (flutter/flutter#177293) 2025-10-22 [email protected] Roll Skia from b157f6b95f95 to 96e75ca8e24b (4 revisions) (flutter/flutter#177366) 2025-10-22 [email protected] Fix InputDatePickerFormField does not inherit local InputDecorationTheme (flutter/flutter#177090) 2025-10-22 [email protected] Roll Skia from 2c6162c977db to b157f6b95f95 (2 revisions) (flutter/flutter#177362) 2025-10-22 [email protected] Roll Skia from cadf8e7e6fca to 2c6162c977db (4 revisions) (flutter/flutter#177359) 2025-10-22 [email protected] Cleanup after -news_toolkit, +google_fonts, and some leftover `team-go_router` (flutter/flutter#176841) 2025-10-21 [email protected] don't break sheet's snap from physics (flutter/flutter#171157) 2025-10-21 [email protected] Roll Dart SDK from 913c2ae1b367 to c23010c4f9e6 (8 revisions) (flutter/flutter#177348) 2025-10-21 [email protected] Fix typo in comment about screen availibility (flutter/flutter#177168) 2025-10-21 [email protected] Fix(AnimatedScrollView): exclude outgoing items in removeAllItems (flutter/flutter#176452) 2025-10-21 [email protected] Enable deprecated_member_use_from_same_package for all packages containing tests of Dart fixes defined within the package (flutter/flutter#177341) 2025-10-21 [email protected] Roll Skia from 19bff385f7e8 to cadf8e7e6fca (3 revisions) (flutter/flutter#177331) 2025-10-21 [email protected] Revert "[Android 16] Update `android_engine_vulkan_tests` to Test Against SDK 36 Emulator" (flutter/flutter#177292) 2025-10-21 [email protected] Fix SliverMainAxisGroup.cacheOrigin (flutter/flutter#175760) 2025-10-21 [email protected] Roll Skia from 75c756e029c9 to 19bff385f7e8 (3 revisions) (flutter/flutter#177316) 2025-10-21 [email protected] Fix typo in overlay.dart documentation comment (flutter/flutter#176612) 2025-10-21 [email protected] [ Tool ] Output DTD URI for Flutter web applications (flutter/flutter#177310) 2025-10-21 [email protected] Roll Skia from 982988b472a4 to 75c756e029c9 (1 revision) (flutter/flutter#177305) 2025-10-21 [email protected] Roll Skia from 42ff13a91c80 to 982988b472a4 (8 revisions) (flutter/flutter#177300) 2025-10-21 [email protected] Fix DateRangePickerDialog does not inherit local InputDecorationTheme (flutter/flutter#177086) 2025-10-21 [email protected] Remove references to dart:_js_annotations (flutter/flutter#176698) 2025-10-20 [email protected] Make `FlutterSceneLifeCycleProvider.sceneLifeCycleDelegate` readonly (flutter/flutter#177240) 2025-10-20 [email protected] Make sure that a CupertinoDesktopTextSelectionToolbar doesn't crash i… (flutter/flutter#173964) 2025-10-20 [email protected] Make sure that a BottomSheet doesn't crash in 0x0 environment (flutter/flutter#172229) 2025-10-20 [email protected] Move the Fuchsia SDK to //third_party/fuchsia-sdk (flutter/flutter#177118) 2025-10-20 [email protected] Roll Skia from 641994569415 to 42ff13a91c80 (8 revisions) (flutter/flutter#177283) 2025-10-20 [email protected] Make sure that a NavigationDrawer doesn't crash in 0x0 environment (flutter/flutter#176951) 2025-10-20 [email protected] Fix ink features painting in TabBar. (flutter/flutter#177155) 2025-10-20 [email protected] Make sure that SimpleDialog and SimpleDialogOption do not crash in 0x0 environment (flutter/flutter#174229) 2025-10-20 [email protected] Fix ink features painting in YearPicker. (flutter/flutter#177014) 2025-10-20 [email protected] Update `image.error_builder.0.dart` to replace the emoji with some text (flutter/flutter#176886) 2025-10-20 [email protected] Roll Skia from ed4294faecde to 641994569415 (4 revisions) (flutter/flutter#177264) 2025-10-20 [email protected] Remove redundant name field form `TargetPlatform` and `XCDeviceEventInterface` enums (flutter/flutter#176890) 2025-10-20 [email protected] Added support to pass in texture type while creating textures. (flutter/flutter#175376) 2025-10-20 [email protected] Roll Packages from 3747006 to d113bbc (6 revisions) (flutter/flutter#177270) 2025-10-20 [email protected] Roll Dart SDK from 2cd2106f2cef to 913c2ae1b367 (2 revisions) (flutter/flutter#177258) 2025-10-20 [email protected] Added link to ClipRect from ImageFilter in the docstring (flutter/flutter#177196) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected],[email protected] on the revert to ensure that a human is aware of the problem. ...
This is my attempt to handle #6537 for the NavigationDrawer widget.