Skip to content

Make sure that a RefreshProgressIndicator doesn't crash in 0x0 enviro… - #177556

Merged
auto-submit[bot] merged 3 commits into
flutter:masterfrom
ahmedsameha1:handle#6537-RefreshProgressIndicator
Nov 3, 2025
Merged

Make sure that a RefreshProgressIndicator doesn't crash in 0x0 enviro…#177556
auto-submit[bot] merged 3 commits into
flutter:masterfrom
ahmedsameha1:handle#6537-RefreshProgressIndicator

Conversation

@ahmedsameha1

Copy link
Copy Markdown
Contributor

This is my attempt to handle #6537 for the RefreshProgressIndicator widget.

@github-actionsgithub-actionsBot added framework flutter/packages/flutter repository. See also f: labels. p: material_ui material_ui package in flutter/packages labels Oct 26, 2025

@gemini-code-assistgemini-code-assistBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds a regression test for an issue where RefreshProgressIndicator crashes in a zero-sized environment. The added test correctly reproduces one of the crash scenarios. I've suggested adding another test case to cover a related crash scenario with a non-square zero area, which would make the test coverage for this issue more complete.

Comment on lines +1973 to +1980
testWidgets('RefreshProgressIndicator does not crash at zero area', (WidgetTester tester) async {
await tester.pumpWidget(
const MaterialApp(
home: Center(child: SizedBox.shrink(child: RefreshProgressIndicator())),
),
);
expect(tester.getSize(find.byType(RefreshProgressIndicator)), Size.zero);
});

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This is a great test for the zero-area crash scenario. The linked issue also mentions a crash when the RefreshProgressIndicator is in a non-square environment (e.g., zero width but non-zero height) due to an assertion size.width == size.height in _RefreshProgressIndicatorPainter.paintArrowhead. It would be beneficial to add another test case to cover that scenario as well, ensuring a more comprehensive fix.

For example, you could add a test like this:

testWidgets('RefreshProgressIndicator does not crash in non-square area', (WidgetTester tester) async {
await tester.pumpWidget(
constMaterialApp(
home:Center(child:SizedBox(width:0, height:50, child:RefreshProgressIndicator())),
),
);
expect(tester.getSize(find.byType(RefreshProgressIndicator)), constSize(0, 50));
});

@dkwingsmtdkwingsmt left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@dkwingsmtdkwingsmt added the autosubmit Merge PR when tree becomes green via auto submit App label Nov 2, 2025
@auto-submit

Copy link
Copy Markdown
Contributor

autosubmit label was removed for flutter/flutter/177556, because The base commit of the PR is older than 7 days and can not be merged. Please merge the latest changes from the main into this branch and resubmit the PR.

@auto-submitauto-submitBot removed the autosubmit Merge PR when tree becomes green via auto submit App label Nov 2, 2025
@dkwingsmtdkwingsmt added the autosubmit Merge PR when tree becomes green via auto submit App label Nov 2, 2025
@auto-submitauto-submitBot removed the autosubmit Merge PR when tree becomes green via auto submit App label Nov 2, 2025
@auto-submit

Copy link
Copy Markdown
Contributor

autosubmit label was removed for flutter/flutter/177556, because - The status or check suite Linux web_canvaskit_tests_2 has failed. Please fix the issues identified (or deflake) before re-applying this label.

@dkwingsmtdkwingsmt added the autosubmit Merge PR when tree becomes green via auto submit App label Nov 3, 2025
@auto-submit
auto-submitBot added this pull request to the merge queueNov 3, 2025
Merged via the queue into flutter:master with commit 50d03edNov 3, 2025
77 checks passed
@flutter-dashboardflutter-dashboardBot removed the autosubmit Merge PR when tree becomes green via auto submit App label Nov 3, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 4, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 4, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 4, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 4, 2025
auto-submitBot pushed a commit to flutter/packages that referenced this pull request Nov 4, 2025
Roll Flutter from 027f2e4 to e5d5c01 (73 revisions)
flutter/flutter@027f2e4...e5d5c01
2025-11-04 mdebbar@google.com [web] Upgrade Chrome to 141 (for engine tests) (flutter/flutter#177743)
2025-11-04 116356835+AbdeMohlbi@users.noreply.github.com Replace deprecated withOpacity in `chip_animation_style.0.dart‎` example (flutter/flutter#177834)
2025-11-04 engine-flutter-autoroll@skia.org Roll Skia from 03612114a36d to c89b6118266b (1 revision) (flutter/flutter#177991)
2025-11-04 mdebbar@google.com [web] Delete unused futurize util (flutter/flutter#177861)
2025-11-04 engine-flutter-autoroll@skia.org Roll Skia from 1a179581af75 to 03612114a36d (1 revision) (flutter/flutter#177984)
2025-11-04 engine-flutter-autoroll@skia.org Roll Skia from 150f844e83fb to 1a179581af75 (3 revisions) (flutter/flutter#177979)
2025-11-04 engine-flutter-autoroll@skia.org Roll Dart SDK from 6f1bd8d05b1d to 156bf665dba4 (2 revisions) (flutter/flutter#177976)
2025-11-04 engine-flutter-autoroll@skia.org Roll Skia from 3990fc40acdf to 150f844e83fb (1 revision) (flutter/flutter#177964)
2025-11-04 engine-flutter-autoroll@skia.org Roll Skia from 85adfd3b8e75 to 3990fc40acdf (1 revision) (flutter/flutter#177962)
2025-11-04 34871572+gmackall@users.noreply.github.com Fix `isHeif` crash (flutter/flutter#177944)
2025-11-04 engine-flutter-autoroll@skia.org Roll Dart SDK from ac065fcd782e to 6f1bd8d05b1d (1 revision) (flutter/flutter#177955)
2025-11-04 engine-flutter-autoroll@skia.org Roll Skia from 001516d132f0 to 85adfd3b8e75 (4 revisions) (flutter/flutter#177958)
2025-11-04 bkonyi@google.com [ Widget Preview ] Add analytic event that's reported when the previewer is opened (flutter/flutter#177949)
2025-11-04 fluttergithubbot@gmail.com Marks Linux_pixel_7pro dynamic_path_stroke_tessellation_perf__timeline_summary to be unflaky (flutter/flutter#171144)
2025-11-03 engine-flutter-autoroll@skia.org Roll Skia from da9b8fb01101 to 001516d132f0 (6 revisions) (flutter/flutter#177951)
2025-11-03 97480502+b-luk@users.noreply.github.com Add FAQ entry about our attempts to remove Skia image codecs. (flutter/flutter#177947)
2025-11-03 jhy03261997@gmail.com Add blockAccessibilityFocus flag (flutter/flutter#175551)
2025-11-03 ahmedsameha1@gmail.com Make sure that a SnackBarAction doesn't crash in 0x0 environment (flutter/flutter#177899)
2025-11-03 ahmedsameha1@gmail.com Make sure that a SelectionArea doesn't crash in 0x0 environment (flutter/flutter#177876)
2025-11-03 34871572+gmackall@users.noreply.github.com Speculative fix for android_verified_input_test (flutter/flutter#177937)
2025-11-03 kjlubick@users.noreply.github.com [skia] Explicitly disable XPS backend (flutter/flutter#177050)
2025-11-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 2d3aa1d5cb9f to ac065fcd782e (2 revisions) (flutter/flutter#177927)
2025-11-03 737941+loic-sharma@users.noreply.github.com Improve Impeller's docs in the top-level docs folder (flutter/flutter#177848)
2025-11-03 ahmedsameha1@gmail.com Make sure that GridTile doesn't crash in 0x0 environment (flutter/flutter#175321)
2025-11-03 ahmedsameha1@gmail.com Make sure that a Slider doesn't crash in 0x0 environment (flutter/flutter#177882)
2025-11-03 planetmarshall@users.noreply.github.com fix(impeller): fix params to glDiscardFrameBufferEXT (flutter/flutter#175589)
2025-11-03 engine-flutter-autoroll@skia.org Roll Skia from 56a10bf56ee0 to da9b8fb01101 (5 revisions) (flutter/flutter#177928)
2025-11-03 47866232+chunhtai@users.noreply.github.com wires up set application locale to web engine (flutter/flutter#177284)
2025-11-03 jesswon@google.com [Android 16] Update `linux_android_emu_unstable` to use avd rev 7 (flutter/flutter#177854)
2025-11-03 ahmedsameha1@gmail.com Make sure that a CheckedPopupMenuItem doesn't crash in 0x0 environment (flutter/flutter#177545)
2025-11-03 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from Ynp3qiXocK8WLTjlb... to vxK5obzfr1X9P2kSh... (flutter/flutter#177917)
2025-11-03 130006795+Spivak-adam@users.noreply.github.com Update pubspec.yaml.tmpl build version tracker on line 5 (flutter/flutter#173600)
2025-11-03 jason-simmons@users.noreply.github.com [Impeller] Fix the source rectangle used when rendering an AtlasContents with the strict mode for nine-patch images (flutter/flutter#177860)
2025-11-03 git@reb0.org docs: Default Splash / Loading screen for web app in index.html (flutter/flutter#177084)
2025-11-03 engine-flutter-autoroll@skia.org Roll Skia from 25e1e4e96980 to 56a10bf56ee0 (6 revisions) (flutter/flutter#177910)
2025-11-03 ahmedsameha1@gmail.com Make sure that a PopupMenuItem doesn't crash in 0x0 environment (flutter/flutter#177533)
2025-11-03 ahmedsameha1@gmail.com Make sure that a RefreshProgressIndicator doesn't crash in 0x0 enviro… (flutter/flutter#177556)
2025-11-03 ahmedsameha1@gmail.com Make sure that a PopupMenuButton doesn't crash in 0x0 environment (flutter/flutter#177493)
2025-11-03 ahmedsameha1@gmail.com Make sure that a CircularProgressIndicator doesn't crash in 0x0 envir… (flutter/flutter#177555)
2025-11-02 ahmedsameha1@gmail.com Make sure that a Radio doesn't crash in 0x0 environment (flutter/flutter#177580)
2025-11-02 ahmedsameha1@gmail.com Make sure that a RadioListTile doesn't crash in 0x0 environment (flutter/flutter#177576)
2025-11-02 ahmedsameha1@gmail.com Make sure that an ExpandIcon doesn't crash in 0x0 envrionment (flutter/flutter#175042)
2025-11-02 ahmedsameha1@gmail.com Make sure that a RangeSlider doesn't crash in 0x0 environment (flutter/flutter#177642)
2025-11-02 ahmedsameha1@gmail.com Make sure that a GridTileBar doesn't crash in 0x0 environment (flutter/flutter#177546)
2025-11-02 ahmedsameha1@gmail.com Make sure that a LinearProgressIndicator doesn't crash in 0x0 environ… (flutter/flutter#177553)
2025-11-02 ahmedsameha1@gmail.com Make sure that a PopupMenuDivider doesn't crash in 0x0 environment (flutter/flutter#177445)
...
reidbaker pushed a commit to AbdeMohlbi/flutter that referenced this pull request Dec 10, 2025
flutter#177556)
This is my attempt to handle
flutter#6537 for the
RefreshProgressIndicator widget.
Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 11, 2026
creatorpiyush pushed a commit to creatorpiyush/packages that referenced this pull request Jun 10, 2026
Roll Flutter from 027f2e4 to e5d5c01 (73 revisions)
flutter/flutter@027f2e4...e5d5c01
2025-11-04 mdebbar@google.com [web] Upgrade Chrome to 141 (for engine tests) (flutter/flutter#177743)
2025-11-04 116356835+AbdeMohlbi@users.noreply.github.com Replace deprecated withOpacity in `chip_animation_style.0.dart‎` example (flutter/flutter#177834)
2025-11-04 engine-flutter-autoroll@skia.org Roll Skia from 03612114a36d to c89b6118266b (1 revision) (flutter/flutter#177991)
2025-11-04 mdebbar@google.com [web] Delete unused futurize util (flutter/flutter#177861)
2025-11-04 engine-flutter-autoroll@skia.org Roll Skia from 1a179581af75 to 03612114a36d (1 revision) (flutter/flutter#177984)
2025-11-04 engine-flutter-autoroll@skia.org Roll Skia from 150f844e83fb to 1a179581af75 (3 revisions) (flutter/flutter#177979)
2025-11-04 engine-flutter-autoroll@skia.org Roll Dart SDK from 6f1bd8d05b1d to 156bf665dba4 (2 revisions) (flutter/flutter#177976)
2025-11-04 engine-flutter-autoroll@skia.org Roll Skia from 3990fc40acdf to 150f844e83fb (1 revision) (flutter/flutter#177964)
2025-11-04 engine-flutter-autoroll@skia.org Roll Skia from 85adfd3b8e75 to 3990fc40acdf (1 revision) (flutter/flutter#177962)
2025-11-04 34871572+gmackall@users.noreply.github.com Fix `isHeif` crash (flutter/flutter#177944)
2025-11-04 engine-flutter-autoroll@skia.org Roll Dart SDK from ac065fcd782e to 6f1bd8d05b1d (1 revision) (flutter/flutter#177955)
2025-11-04 engine-flutter-autoroll@skia.org Roll Skia from 001516d132f0 to 85adfd3b8e75 (4 revisions) (flutter/flutter#177958)
2025-11-04 bkonyi@google.com [ Widget Preview ] Add analytic event that's reported when the previewer is opened (flutter/flutter#177949)
2025-11-04 fluttergithubbot@gmail.com Marks Linux_pixel_7pro dynamic_path_stroke_tessellation_perf__timeline_summary to be unflaky (flutter/flutter#171144)
2025-11-03 engine-flutter-autoroll@skia.org Roll Skia from da9b8fb01101 to 001516d132f0 (6 revisions) (flutter/flutter#177951)
2025-11-03 97480502+b-luk@users.noreply.github.com Add FAQ entry about our attempts to remove Skia image codecs. (flutter/flutter#177947)
2025-11-03 jhy03261997@gmail.com Add blockAccessibilityFocus flag (flutter/flutter#175551)
2025-11-03 ahmedsameha1@gmail.com Make sure that a SnackBarAction doesn't crash in 0x0 environment (flutter/flutter#177899)
2025-11-03 ahmedsameha1@gmail.com Make sure that a SelectionArea doesn't crash in 0x0 environment (flutter/flutter#177876)
2025-11-03 34871572+gmackall@users.noreply.github.com Speculative fix for android_verified_input_test (flutter/flutter#177937)
2025-11-03 kjlubick@users.noreply.github.com [skia] Explicitly disable XPS backend (flutter/flutter#177050)
2025-11-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 2d3aa1d5cb9f to ac065fcd782e (2 revisions) (flutter/flutter#177927)
2025-11-03 737941+loic-sharma@users.noreply.github.com Improve Impeller's docs in the top-level docs folder (flutter/flutter#177848)
2025-11-03 ahmedsameha1@gmail.com Make sure that GridTile doesn't crash in 0x0 environment (flutter/flutter#175321)
2025-11-03 ahmedsameha1@gmail.com Make sure that a Slider doesn't crash in 0x0 environment (flutter/flutter#177882)
2025-11-03 planetmarshall@users.noreply.github.com fix(impeller): fix params to glDiscardFrameBufferEXT (flutter/flutter#175589)
2025-11-03 engine-flutter-autoroll@skia.org Roll Skia from 56a10bf56ee0 to da9b8fb01101 (5 revisions) (flutter/flutter#177928)
2025-11-03 47866232+chunhtai@users.noreply.github.com wires up set application locale to web engine (flutter/flutter#177284)
2025-11-03 jesswon@google.com [Android 16] Update `linux_android_emu_unstable` to use avd rev 7 (flutter/flutter#177854)
2025-11-03 ahmedsameha1@gmail.com Make sure that a CheckedPopupMenuItem doesn't crash in 0x0 environment (flutter/flutter#177545)
2025-11-03 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from Ynp3qiXocK8WLTjlb... to vxK5obzfr1X9P2kSh... (flutter/flutter#177917)
2025-11-03 130006795+Spivak-adam@users.noreply.github.com Update pubspec.yaml.tmpl build version tracker on line 5 (flutter/flutter#173600)
2025-11-03 jason-simmons@users.noreply.github.com [Impeller] Fix the source rectangle used when rendering an AtlasContents with the strict mode for nine-patch images (flutter/flutter#177860)
2025-11-03 git@reb0.org docs: Default Splash / Loading screen for web app in index.html (flutter/flutter#177084)
2025-11-03 engine-flutter-autoroll@skia.org Roll Skia from 25e1e4e96980 to 56a10bf56ee0 (6 revisions) (flutter/flutter#177910)
2025-11-03 ahmedsameha1@gmail.com Make sure that a PopupMenuItem doesn't crash in 0x0 environment (flutter/flutter#177533)
2025-11-03 ahmedsameha1@gmail.com Make sure that a RefreshProgressIndicator doesn't crash in 0x0 enviro… (flutter/flutter#177556)
2025-11-03 ahmedsameha1@gmail.com Make sure that a PopupMenuButton doesn't crash in 0x0 environment (flutter/flutter#177493)
2025-11-03 ahmedsameha1@gmail.com Make sure that a CircularProgressIndicator doesn't crash in 0x0 envir… (flutter/flutter#177555)
2025-11-02 ahmedsameha1@gmail.com Make sure that a Radio doesn't crash in 0x0 environment (flutter/flutter#177580)
2025-11-02 ahmedsameha1@gmail.com Make sure that a RadioListTile doesn't crash in 0x0 environment (flutter/flutter#177576)
2025-11-02 ahmedsameha1@gmail.com Make sure that an ExpandIcon doesn't crash in 0x0 envrionment (flutter/flutter#175042)
2025-11-02 ahmedsameha1@gmail.com Make sure that a RangeSlider doesn't crash in 0x0 environment (flutter/flutter#177642)
2025-11-02 ahmedsameha1@gmail.com Make sure that a GridTileBar doesn't crash in 0x0 environment (flutter/flutter#177546)
2025-11-02 ahmedsameha1@gmail.com Make sure that a LinearProgressIndicator doesn't crash in 0x0 environ… (flutter/flutter#177553)
2025-11-02 ahmedsameha1@gmail.com Make sure that a PopupMenuDivider doesn't crash in 0x0 environment (flutter/flutter#177445)
...
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

frameworkflutter/packages/flutter repository. See also f: labels.p: material_uimaterial_ui package in flutter/packages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@ahmedsameha1@dkwingsmt@victorsanni