Skip to content

Conversation

@ahmedsameha1
Copy link
Contributor

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

@github-actions github-actions bot added framework flutter/packages/flutter repository. See also f: labels. f: material design flutter/packages/flutter/material repository. labels Oct 26, 2025
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

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
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(
    const MaterialApp(
      home: Center(child: SizedBox(width: 0, height: 50, child: RefreshProgressIndicator())),
    ),
  );
  expect(tester.getSize(find.byType(RefreshProgressIndicator)), const Size(0, 50));
});

@victorsanni victorsanni requested a review from dkwingsmt October 27, 2025 17:34
Copy link
Contributor

@dkwingsmt dkwingsmt left a comment

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

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

auto-submit bot commented Nov 2, 2025

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-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Nov 2, 2025
@dkwingsmt dkwingsmt added the autosubmit Merge PR when tree becomes green via auto submit App label Nov 2, 2025
@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Nov 2, 2025
@auto-submit
Copy link
Contributor

auto-submit bot commented Nov 2, 2025

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.

@dkwingsmt dkwingsmt added the autosubmit Merge PR when tree becomes green via auto submit App label Nov 3, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Nov 3, 2025
Merged via the queue into flutter:master with commit 50d03ed Nov 3, 2025
77 checks passed
@flutter-dashboard flutter-dashboard bot 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-submit bot pushed a commit to flutter/packages that referenced this pull request Nov 4, 2025
Roll Flutter from 027f2e410241 to e5d5c01850f2 (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 free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

f: material design flutter/packages/flutter/material repository. framework flutter/packages/flutter repository. See also f: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants