Skip to content

Add calls to await flutterDriver.waitUntilFirstFrameRasterized() for all android_engine_test screenshot tests - #182961

Merged
auto-submit[bot] merged 1 commit into
flutter:masterfrom
gmackall:wait_for_first_frame
Feb 26, 2026
Merged

auto-submit[bot] merged 1 commit into
flutter:masterfrom
gmackall:wait_for_first_frame

Conversation

@gmackall

@gmackall gmackall commented Feb 26, 2026 •

Copy link
Copy Markdown
Member

Speculative fix for flakes where we see a full black screen image in the golden tests from time to time (for example). I don't have solid proof, but I've only ever seen those cases happen in this set of tests, which all are missing a call to flutterDriver.waitUntilFirstFrameRasterized().

Even if the change doesn't fix the problem, it abstractly makes more sense to me to wait for the first frame to be rasterized before we go off trying to screenshot anything anyways, so I would not regret this change even if it does nothing.

@gmackall
gmackall marked this pull request as ready for review February 26, 2026 20:22

@gemini-code-assist gemini-code-assist Bot 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 modifies six integration test files by adding await flutterDriver.waitUntilFirstFrameRasterized(); within the setUpAll block of each test. This change ensures that the Flutter application's first frame has been rendered before the tests proceed, which is particularly important for screenshot testing or other UI-dependent operations. There were no review comments provided for these changes.

@gmackall gmackall changed the title Add calls to await flutterDriver.waitUntilFirstFrameRasterized() for all android_engine_test screenshot tests Add calls to await flutterDriver.waitUntilFirstFrameRasterized() for all android_engine_test screenshot tests Feb 26, 2026
@gmackall
gmackall requested a review from a team February 26, 2026 20:28
@gmackall gmackall added the autosubmit Merge PR when tree becomes green via auto submit App label Feb 26, 2026
@auto-submit
auto-submit Bot added this pull request to the merge queue Feb 26, 2026
Merged via the queue into flutter:master with commit aa17303 Feb 26, 2026
153 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Feb 26, 2026
ahmedsameha1 pushed a commit to ahmedsameha1/flutter that referenced this pull request Feb 27, 2026
…r all `android_engine_test` screenshot tests (flutter#182961)

Speculative fix for flakes where we see a full black screen image in the
golden tests from time to time ([for
example](https://flutter-gold.skia.org/detail?grouping=name%3Dandroid_engine_test.vulkan.platform_view_tap_color_change_initial%26source_type%3Dflutter&digest=5ba6df7acef516f7dab78587cf30ce20)).
I don't have solid proof, but I've only ever seen those cases happen in
this set of tests, which all are missing a call to
`flutterDriver.waitUntilFirstFrameRasterized()`.

Even if the change doesn't fix the problem, it abstractly makes more
sense to me to wait for the first frame to be rasterized before we go
off trying to screenshot anything anyways, so I would not regret this
change even if it does nothing.

Co-authored-by: Gray Mackall <[email protected]>
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 27, 2026
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 27, 2026
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Feb 27, 2026
Roll Flutter from b31548feb941 to 1141b2bdce66 (56 revisions)

flutter/flutter@b31548f...1141b2b

2026-02-27 [email protected] flutter#182361 Fix delegate copy on plugins init (flutter/flutter#182362)
2026-02-27 [email protected] Roll Dart SDK from 8b036b3e63cb to 1cdb7dfd913e (1 revision) (flutter/flutter#183004)
2026-02-27 [email protected] Manual roll Dart SDK to 3.12.0-192.0.dev (flutter/flutter#182883)
2026-02-27 [email protected] Roll Skia from e2062707b0c0 to ed220c490eea (1 revision) (flutter/flutter#182992)
2026-02-27 [email protected] Roll Skia from e5aa1ab5c59c to e2062707b0c0 (3 revisions) (flutter/flutter#182989)
2026-02-27 [email protected] Linux build hooks: Read compiler config from CMakeCache.txt (flutter/flutter#181004)
2026-02-27 [email protected] Roll ICU from a86a32e67b8d to 7971660ba630 (3 revisions) (flutter/flutter#182986)
2026-02-27 [email protected] Roll Skia from 49c2de95384e to e5aa1ab5c59c (2 revisions) (flutter/flutter#182980)
2026-02-27 [email protected] [Impeller] Remove shared rendering data from TextFrame (flutter/flutter#182886)
2026-02-27 [email protected] Add fl_view_new_sized_to_content() (flutter/flutter#182924)
2026-02-27 [email protected] [Shortcuts] Improve focus node debug labels (flutter/flutter#181834)
2026-02-27 [email protected] Add a cli flag for toggling HCPP use, and enable it (flutter/flutter#182516)
2026-02-27 [email protected] `SizedBox.square()` (flutter/flutter#182731)
2026-02-27 [email protected] [web] Fix stack corruption in Skwasm and harden withStackScope API (flutter/flutter#182912)
2026-02-26 [email protected] Roll zlib to 7eda07b1e067 (flutter/flutter#182692)
2026-02-26 [email protected] [ CI ] Don't crash analysis when ktlint isn't on PATH (flutter/flutter#181854)
2026-02-26 [email protected] Add calls to await `flutterDriver.waitUntilFirstFrameRasterized()` for all `android_engine_test` screenshot tests (flutter/flutter#182961)
2026-02-26 [email protected] Roll Skia from f44d7db68805 to 49c2de95384e (30 revisions) (flutter/flutter#182957)
2026-02-26 [email protected] Support sending window constraints in metrics events (flutter/flutter#182921)
2026-02-26 [email protected] Reland: remove material in context_menu_controller_test, icon_test, list_wheel_scroll_view_test, media_query_test, platform_menu_bar_test (flutter/flutter#182891)
2026-02-26 [email protected] Remove some instances of useMaterial3: true (flutter/flutter#182944)
2026-02-26 [email protected] [Impeller] Use bilinear filtering for non-uniform scaled text (flutter/flutter#182224)
2026-02-26 [email protected] Add a ResidentCompilerFactory to create ResidentCompiler instances. (flutter/flutter#182930)
2026-02-26 [email protected] Add a getter in run.dart to access use-application-binary flag. (flutter/flutter#182931)
2026-02-26 [email protected] [web] Roll Firefox to 148 (flutter/flutter#182859)
2026-02-26 [email protected] Roll Packages from acd9adb to e1d0169 (8 revisions) (flutter/flutter#182946)
2026-02-26 [email protected] Roll Fuchsia Linux SDK from XI0Ax7fbtYE4XKYAQ... to G1GwOdVt5bM7GjMSY... (flutter/flutter#182942)
2026-02-26 [email protected] Add test for WindowPositioner.toString (flutter/flutter#182906)
2026-02-26 [email protected] Remove unused function prototype (flutter/flutter#182915)
2026-02-26 [email protected] Resolve inconsistency with SchedulerBinding.scheduleTask usage recomm… (flutter/flutter#182531)
2026-02-26 [email protected] Fix false positives for hit test misses in flutter_test (flutter/flutter#180856)
2026-02-26 [email protected] Replace an instance of flutter/engine with flutter/flutter (flutter/flutter#182655)
2026-02-26 [email protected] Use null-aware elements in widgets/routes.dart (flutter/flutter#181242)
2026-02-26 [email protected] Fix typos in method names across multiple files (flutter/flutter#182584)
2026-02-26 [email protected] Fix RawAutocomplete crash when options are hidden (flutter/flutter#182785)
2026-02-26 [email protected] Describe implications of tree-status and Google Testing for PRs (flutter/flutter#182916)
2026-02-26 [email protected] Make sure that a StretchingOverscrollIndicator doesn't crash when it … (flutter/flutter#182499)
2026-02-26 [email protected] framework: Use a super-parameter in several missed cases (flutter/flutter#182580)
2026-02-25 [email protected] `WidgetStatesConstraint` as a mixin (flutter/flutter#181704)
2026-02-25 [email protected] Paint the paragraph as a single image (flutter/flutter#181206)
2026-02-25 [email protected] Remove `ExtendSelectionByPageIntent` (flutter/flutter#182642)
2026-02-25 [email protected] feat: add few required properties to test widgets app (flutter/flutter#182805)
2026-02-25 [email protected] Updates MenuAnchor to respect software keyboard (flutter/flutter#180975)
2026-02-25 [email protected] Roll ImGui to v1.92.6-docking (flutter/flutter#182799)
2026-02-25 [email protected] Roll GoogleTest to e9907112b472 (flutter/flutter#182795)
2026-02-25 [email protected] Make positionInlineChildren assert much clearer (flutter/flutter#182093)
...
xxxOVALxxx pushed a commit to xxxOVALxxx/flutter that referenced this pull request Mar 10, 2026
…r all `android_engine_test` screenshot tests (flutter#182961)

Speculative fix for flakes where we see a full black screen image in the
golden tests from time to time ([for
example](https://flutter-gold.skia.org/detail?grouping=name%3Dandroid_engine_test.vulkan.platform_view_tap_color_change_initial%26source_type%3Dflutter&digest=5ba6df7acef516f7dab78587cf30ce20)).
I don't have solid proof, but I've only ever seen those cases happen in
this set of tests, which all are missing a call to
`flutterDriver.waitUntilFirstFrameRasterized()`.

Even if the change doesn't fix the problem, it abstractly makes more
sense to me to wait for the first frame to be rasterized before we go
off trying to screenshot anything anyways, so I would not regret this
change even if it does nothing.

Co-authored-by: Gray Mackall <[email protected]>
okorohelijah pushed a commit to okorohelijah/packages that referenced this pull request Mar 26, 2026
…r#11137)

Roll Flutter from b31548feb941 to 1141b2bdce66 (56 revisions)

flutter/flutter@b31548f...1141b2b

2026-02-27 [email protected] flutter#182361 Fix delegate copy on plugins init (flutter/flutter#182362)
2026-02-27 [email protected] Roll Dart SDK from 8b036b3e63cb to 1cdb7dfd913e (1 revision) (flutter/flutter#183004)
2026-02-27 [email protected] Manual roll Dart SDK to 3.12.0-192.0.dev (flutter/flutter#182883)
2026-02-27 [email protected] Roll Skia from e2062707b0c0 to ed220c490eea (1 revision) (flutter/flutter#182992)
2026-02-27 [email protected] Roll Skia from e5aa1ab5c59c to e2062707b0c0 (3 revisions) (flutter/flutter#182989)
2026-02-27 [email protected] Linux build hooks: Read compiler config from CMakeCache.txt (flutter/flutter#181004)
2026-02-27 [email protected] Roll ICU from a86a32e67b8d to 7971660ba630 (3 revisions) (flutter/flutter#182986)
2026-02-27 [email protected] Roll Skia from 49c2de95384e to e5aa1ab5c59c (2 revisions) (flutter/flutter#182980)
2026-02-27 [email protected] [Impeller] Remove shared rendering data from TextFrame (flutter/flutter#182886)
2026-02-27 [email protected] Add fl_view_new_sized_to_content() (flutter/flutter#182924)
2026-02-27 [email protected] [Shortcuts] Improve focus node debug labels (flutter/flutter#181834)
2026-02-27 [email protected] Add a cli flag for toggling HCPP use, and enable it (flutter/flutter#182516)
2026-02-27 [email protected] `SizedBox.square()` (flutter/flutter#182731)
2026-02-27 [email protected] [web] Fix stack corruption in Skwasm and harden withStackScope API (flutter/flutter#182912)
2026-02-26 [email protected] Roll zlib to 7eda07b1e067 (flutter/flutter#182692)
2026-02-26 [email protected] [ CI ] Don't crash analysis when ktlint isn't on PATH (flutter/flutter#181854)
2026-02-26 [email protected] Add calls to await `flutterDriver.waitUntilFirstFrameRasterized()` for all `android_engine_test` screenshot tests (flutter/flutter#182961)
2026-02-26 [email protected] Roll Skia from f44d7db68805 to 49c2de95384e (30 revisions) (flutter/flutter#182957)
2026-02-26 [email protected] Support sending window constraints in metrics events (flutter/flutter#182921)
2026-02-26 [email protected] Reland: remove material in context_menu_controller_test, icon_test, list_wheel_scroll_view_test, media_query_test, platform_menu_bar_test (flutter/flutter#182891)
2026-02-26 [email protected] Remove some instances of useMaterial3: true (flutter/flutter#182944)
2026-02-26 [email protected] [Impeller] Use bilinear filtering for non-uniform scaled text (flutter/flutter#182224)
2026-02-26 [email protected] Add a ResidentCompilerFactory to create ResidentCompiler instances. (flutter/flutter#182930)
2026-02-26 [email protected] Add a getter in run.dart to access use-application-binary flag. (flutter/flutter#182931)
2026-02-26 [email protected] [web] Roll Firefox to 148 (flutter/flutter#182859)
2026-02-26 [email protected] Roll Packages from acd9adb to e1d0169 (8 revisions) (flutter/flutter#182946)
2026-02-26 [email protected] Roll Fuchsia Linux SDK from XI0Ax7fbtYE4XKYAQ... to G1GwOdVt5bM7GjMSY... (flutter/flutter#182942)
2026-02-26 [email protected] Add test for WindowPositioner.toString (flutter/flutter#182906)
2026-02-26 [email protected] Remove unused function prototype (flutter/flutter#182915)
2026-02-26 [email protected] Resolve inconsistency with SchedulerBinding.scheduleTask usage recomm… (flutter/flutter#182531)
2026-02-26 [email protected] Fix false positives for hit test misses in flutter_test (flutter/flutter#180856)
2026-02-26 [email protected] Replace an instance of flutter/engine with flutter/flutter (flutter/flutter#182655)
2026-02-26 [email protected] Use null-aware elements in widgets/routes.dart (flutter/flutter#181242)
2026-02-26 [email protected] Fix typos in method names across multiple files (flutter/flutter#182584)
2026-02-26 [email protected] Fix RawAutocomplete crash when options are hidden (flutter/flutter#182785)
2026-02-26 [email protected] Describe implications of tree-status and Google Testing for PRs (flutter/flutter#182916)
2026-02-26 [email protected] Make sure that a StretchingOverscrollIndicator doesn't crash when it … (flutter/flutter#182499)
2026-02-26 [email protected] framework: Use a super-parameter in several missed cases (flutter/flutter#182580)
2026-02-25 [email protected] `WidgetStatesConstraint` as a mixin (flutter/flutter#181704)
2026-02-25 [email protected] Paint the paragraph as a single image (flutter/flutter#181206)
2026-02-25 [email protected] Remove `ExtendSelectionByPageIntent` (flutter/flutter#182642)
2026-02-25 [email protected] feat: add few required properties to test widgets app (flutter/flutter#182805)
2026-02-25 [email protected] Updates MenuAnchor to respect software keyboard (flutter/flutter#180975)
2026-02-25 [email protected] Roll ImGui to v1.92.6-docking (flutter/flutter#182799)
2026-02-25 [email protected] Roll GoogleTest to e9907112b472 (flutter/flutter#182795)
2026-02-25 [email protected] Make positionInlineChildren assert much clearer (flutter/flutter#182093)
...
mboetger pushed a commit to mboetger/flutter that referenced this pull request Mar 26, 2026
…r all `android_engine_test` screenshot tests (flutter#182961)

Speculative fix for flakes where we see a full black screen image in the
golden tests from time to time ([for
example](https://flutter-gold.skia.org/detail?grouping=name%3Dandroid_engine_test.vulkan.platform_view_tap_color_change_initial%26source_type%3Dflutter&digest=5ba6df7acef516f7dab78587cf30ce20)).
I don't have solid proof, but I've only ever seen those cases happen in
this set of tests, which all are missing a call to
`flutterDriver.waitUntilFirstFrameRasterized()`.

Even if the change doesn't fix the problem, it abstractly makes more
sense to me to wait for the first frame to be rasterized before we go
off trying to screenshot anything anyways, so I would not regret this
change even if it does nothing.

Co-authored-by: Gray Mackall <[email protected]>
creatorpiyush pushed a commit to creatorpiyush/packages that referenced this pull request Jun 10, 2026
…r#11137)

Roll Flutter from b31548feb941 to 1141b2bdce66 (56 revisions)

flutter/flutter@b31548f...1141b2b

2026-02-27 [email protected] flutter#182361 Fix delegate copy on plugins init (flutter/flutter#182362)
2026-02-27 [email protected] Roll Dart SDK from 8b036b3e63cb to 1cdb7dfd913e (1 revision) (flutter/flutter#183004)
2026-02-27 [email protected] Manual roll Dart SDK to 3.12.0-192.0.dev (flutter/flutter#182883)
2026-02-27 [email protected] Roll Skia from e2062707b0c0 to ed220c490eea (1 revision) (flutter/flutter#182992)
2026-02-27 [email protected] Roll Skia from e5aa1ab5c59c to e2062707b0c0 (3 revisions) (flutter/flutter#182989)
2026-02-27 [email protected] Linux build hooks: Read compiler config from CMakeCache.txt (flutter/flutter#181004)
2026-02-27 [email protected] Roll ICU from a86a32e67b8d to 7971660ba630 (3 revisions) (flutter/flutter#182986)
2026-02-27 [email protected] Roll Skia from 49c2de95384e to e5aa1ab5c59c (2 revisions) (flutter/flutter#182980)
2026-02-27 [email protected] [Impeller] Remove shared rendering data from TextFrame (flutter/flutter#182886)
2026-02-27 [email protected] Add fl_view_new_sized_to_content() (flutter/flutter#182924)
2026-02-27 [email protected] [Shortcuts] Improve focus node debug labels (flutter/flutter#181834)
2026-02-27 [email protected] Add a cli flag for toggling HCPP use, and enable it (flutter/flutter#182516)
2026-02-27 [email protected] `SizedBox.square()` (flutter/flutter#182731)
2026-02-27 [email protected] [web] Fix stack corruption in Skwasm and harden withStackScope API (flutter/flutter#182912)
2026-02-26 [email protected] Roll zlib to 7eda07b1e067 (flutter/flutter#182692)
2026-02-26 [email protected] [ CI ] Don't crash analysis when ktlint isn't on PATH (flutter/flutter#181854)
2026-02-26 [email protected] Add calls to await `flutterDriver.waitUntilFirstFrameRasterized()` for all `android_engine_test` screenshot tests (flutter/flutter#182961)
2026-02-26 [email protected] Roll Skia from f44d7db68805 to 49c2de95384e (30 revisions) (flutter/flutter#182957)
2026-02-26 [email protected] Support sending window constraints in metrics events (flutter/flutter#182921)
2026-02-26 [email protected] Reland: remove material in context_menu_controller_test, icon_test, list_wheel_scroll_view_test, media_query_test, platform_menu_bar_test (flutter/flutter#182891)
2026-02-26 [email protected] Remove some instances of useMaterial3: true (flutter/flutter#182944)
2026-02-26 [email protected] [Impeller] Use bilinear filtering for non-uniform scaled text (flutter/flutter#182224)
2026-02-26 [email protected] Add a ResidentCompilerFactory to create ResidentCompiler instances. (flutter/flutter#182930)
2026-02-26 [email protected] Add a getter in run.dart to access use-application-binary flag. (flutter/flutter#182931)
2026-02-26 [email protected] [web] Roll Firefox to 148 (flutter/flutter#182859)
2026-02-26 [email protected] Roll Packages from acd9adb to e1d0169 (8 revisions) (flutter/flutter#182946)
2026-02-26 [email protected] Roll Fuchsia Linux SDK from XI0Ax7fbtYE4XKYAQ... to G1GwOdVt5bM7GjMSY... (flutter/flutter#182942)
2026-02-26 [email protected] Add test for WindowPositioner.toString (flutter/flutter#182906)
2026-02-26 [email protected] Remove unused function prototype (flutter/flutter#182915)
2026-02-26 [email protected] Resolve inconsistency with SchedulerBinding.scheduleTask usage recomm… (flutter/flutter#182531)
2026-02-26 [email protected] Fix false positives for hit test misses in flutter_test (flutter/flutter#180856)
2026-02-26 [email protected] Replace an instance of flutter/engine with flutter/flutter (flutter/flutter#182655)
2026-02-26 [email protected] Use null-aware elements in widgets/routes.dart (flutter/flutter#181242)
2026-02-26 [email protected] Fix typos in method names across multiple files (flutter/flutter#182584)
2026-02-26 [email protected] Fix RawAutocomplete crash when options are hidden (flutter/flutter#182785)
2026-02-26 [email protected] Describe implications of tree-status and Google Testing for PRs (flutter/flutter#182916)
2026-02-26 [email protected] Make sure that a StretchingOverscrollIndicator doesn't crash when it … (flutter/flutter#182499)
2026-02-26 [email protected] framework: Use a super-parameter in several missed cases (flutter/flutter#182580)
2026-02-25 [email protected] `WidgetStatesConstraint` as a mixin (flutter/flutter#181704)
2026-02-25 [email protected] Paint the paragraph as a single image (flutter/flutter#181206)
2026-02-25 [email protected] Remove `ExtendSelectionByPageIntent` (flutter/flutter#182642)
2026-02-25 [email protected] feat: add few required properties to test widgets app (flutter/flutter#182805)
2026-02-25 [email protected] Updates MenuAnchor to respect software keyboard (flutter/flutter#180975)
2026-02-25 [email protected] Roll ImGui to v1.92.6-docking (flutter/flutter#182799)
2026-02-25 [email protected] Roll GoogleTest to e9907112b472 (flutter/flutter#182795)
2026-02-25 [email protected] Make positionInlineChildren assert much clearer (flutter/flutter#182093)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants