Skip to content

Skip removed observers during app exit requests - #190343

Merged
auto-submit[bot] merged 4 commits into
flutter:masterfrom
kyungilcho:fix/app-lifecycle-listener-dispose-race
Aug 24, 2026
Merged

auto-submit[bot] merged 4 commits into
flutter:masterfrom
kyungilcho:fix/app-lifecycle-listener-dispose-race

Conversation

@kyungilcho

Copy link
Copy Markdown
Contributor

WidgetsBinding.handleRequestAppExit iterates over a snapshot of registered observers so callbacks can add or remove observers without causing concurrent modification.

When an earlier asynchronous observer callback causes a later AppLifecycleListener to be disposed, the disposed listener remains in that snapshot and is invoked. In debug mode this reports a use-after-dispose assertion; in release mode it runs the stale callback.

This change checks that each observer is still registered immediately before invoking it. It preserves snapshot iteration for reentrancy safety while skipping observers removed during an earlier asynchronous callback.

The regression test pauses the first exit callback, disposes a second listener while the first callback is pending, resumes dispatch, and verifies that the disposed listener is not called.

Fixes #189472.

Tests

  • ./bin/flutter analyze packages/flutter/lib/src/widgets/binding.dart
  • ./bin/flutter analyze packages/flutter/test/widgets/app_lifecycle_listener_test.dart
  • ./bin/flutter test --reporter compact packages/flutter/test/widgets/app_lifecycle_listener_test.dart packages/flutter/test/widgets/binding_test.dart

Pre-launch Checklist

@github-actions github-actions Bot added the framework flutter/packages/flutter repository. See also f: labels. label Jul 31, 2026

@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 WidgetsBinding.handleRequestAppExit to check if an observer is still present in _observers before invoking its didRequestAppExit method, preventing notifications to observers disposed during the asynchronous execution. A corresponding test is added to verify this behavior. Feedback suggests addressing similar asynchronous iteration patterns in handlePushRoute and handlePopRoute, and using addTearDown in the new test to ensure proper cleanup of the test listener and prevent test pollution.

Comment on lines +898 to +900
if (!_observers.contains(observer)) {
continue;
}

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

While this fix correctly addresses the issue for handleRequestAppExit, please note that handlePushRoute and handlePopRoute in WidgetsBinding also iterate over _observers asynchronously (using await observer.didPushRoute(...) and await observer.didPopRoute()). They likely suffer from the same bug where a disposed/removed observer could be invoked if it is removed during an earlier asynchronous call. Consider addressing those as well, either in this PR or in a follow-up issue/PR.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thanks for pointing this out. handlePopRoute, handlePushRoute, and _handlePushRouteInformation have the same asynchronous iteration shape. Since this PR is scoped to the concrete app-exit failure reported in #189472, I would prefer to address the route handling paths in a follow-up issue/PR with dedicated regression coverage.

Comment on lines +222 to +228
disposedListener = TestAppLifecycleListener(
binding: WidgetsBinding.instance,
onExitRequested: () async {
disposedListenerCalled = true;
return AppExitResponse.exit;
},
);

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

If the test fails before disposedListener.dispose() is called (for example, if await firstRequestStarted.future times out or throws), disposedListener will remain registered on the global WidgetsBinding.instance singleton. This can pollute subsequent tests and cause flaky failures.

Consider registering a tear-down callback using addTearDown immediately after creating disposedListener to ensure it is always disposed.

Suggested change
disposedListener = TestAppLifecycleListener(
binding: WidgetsBinding.instance,
onExitRequested: () async {
disposedListenerCalled = true;
return AppExitResponse.exit;
},
);
disposedListener = TestAppLifecycleListener(
binding: WidgetsBinding.instance,
onExitRequested: () async {
disposedListenerCalled = true;
return AppExitResponse.exit;
},
);
addTearDown(disposedListener.dispose);

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thanks. I updated the test so both listeners are cleaned up if the test exits early. The first listener now uses addTearDown, while the listener disposed during the test is managed by the existing shared tearDown, avoiding a double-dispose.

@Piinks
Piinks requested a review from elliette August 4, 2026 22:24
@elliette elliette added CICD Run CI/CD and removed CICD Run CI/CD labels Aug 5, 2026

@elliette elliette left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thank you, LGTM!

@elliette

Copy link
Copy Markdown
Member

Re-running failed Google testing - will check in once it completes.

@elliette elliette added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 18, 2026
@auto-submit auto-submit Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Aug 18, 2026
@auto-submit

auto-submit Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

autosubmit label was removed for flutter/flutter/190343, 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 commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

autosubmit label was removed for flutter/flutter/190343, because This PR has not met approval requirements for merging. The PR author is not a member of flutter-hackers and needs 1 more review(s) in order to merge this PR.

  • Merge guidelines: A PR needs at least one approved review if the author is already part of flutter-hackers or two member reviews if the author is not a member of flutter-hackers before re-applying the autosubmit label. Reviewers: If you left a comment approving, please use the "approve" review action instead.

@loic-sharma loic-sharma left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for the contribution!

@loic-sharma loic-sharma added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 18, 2026
@auto-submit auto-submit Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Aug 18, 2026
@auto-submit

auto-submit Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

autosubmit label was removed for flutter/flutter/190343, 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.

@elliette elliette added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 18, 2026
@auto-submit auto-submit Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Aug 19, 2026
@auto-submit

auto-submit Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

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

@loic-sharma loic-sharma added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 20, 2026
@auto-submit auto-submit Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Aug 20, 2026
@auto-submit

auto-submit Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

auto label is removed for flutter/flutter/190343, Failed to enqueue flutter/flutter/190343 with HTTP 400: Pull request Required status check "Merge Queue Guard" is expected..

@flutter-dashboard flutter-dashboard Bot removed the CICD Run CI/CD label Aug 20, 2026
@loic-sharma loic-sharma added the CICD Run CI/CD label Aug 20, 2026
@elliette elliette added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 24, 2026
@auto-submit
auto-submit Bot added this pull request to the merge queue Aug 24, 2026
Merged via the queue into flutter:master with commit 0cb3b7e Aug 24, 2026
30 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Aug 24, 2026
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Aug 26, 2026
Roll Flutter from 9a8278982588 to 15d8908addf6 (37 revisions)

flutter/flutter@9a82789...15d8908

2026-08-25 [email protected] Roll Packages from df2ba94 to 740f093 (17 revisions) (flutter/flutter#191734)
2026-08-25 [email protected] [record_use] Remove const_finder (flutter/flutter#191702)
2026-08-25 [email protected] Warn when SwiftPM is disabled (flutter/flutter#188695)
2026-08-25 [email protected] Roll Skia from b1a31575c373 to 480540178356 (1 revision) (flutter/flutter#191723)
2026-08-25 [email protected] Roll pub packages (flutter/flutter#191726)
2026-08-25 [email protected] Roll Skia from bfa276ed9ac5 to b1a31575c373 (1 revision) (flutter/flutter#191717)
2026-08-25 [email protected] Roll Dart SDK from 0818e6dc28cc to 8996935d3d0a (2 revisions) (flutter/flutter#191706)
2026-08-25 [email protected] Roll Skia from 31799e707cd4 to bfa276ed9ac5 (1 revision) (flutter/flutter#191701)
2026-08-25 [email protected] iOS: Add null check for touch rate correction task runner (flutter/flutter#191641)
2026-08-25 [email protected] iOS: Add test for engineAllowHeadlessExecution (flutter/flutter#191635)
2026-08-25 [email protected] Roll Skia from cfae2af1bfeb to 31799e707cd4 (4 revisions) (flutter/flutter#191649)
2026-08-25 [email protected] Roll Dart SDK from 2b75c83ddd77 to 0818e6dc28cc (1 revision) (flutter/flutter#191643)
2026-08-25 [email protected] Roll Skia from 4a2fddefd3d8 to cfae2af1bfeb (1 revision) (flutter/flutter#191642)
2026-08-25 [email protected] Roll Skia from 256c15026b91 to 4a2fddefd3d8 (6 revisions) (flutter/flutter#191633)
2026-08-25 [email protected] Remove octant_offset_c uniform from ubersdf, reorder/document ubersdf uniforms (flutter/flutter#191597)
2026-08-25 [email protected] Roll Fuchsia Linux SDK from 8Xu4ujBJniC0nQGx3... to MstTWE1RDOT-RnrtH... (flutter/flutter#191621)
2026-08-25 [email protected] Roll Dart SDK from 78bbc37b6ff6 to 2b75c83ddd77 (3 revisions) (flutter/flutter#191614)
2026-08-24 [email protected] [flutter_tools] Fix $git typo in shared.bat to restore cache invalidation on Windows (flutter/flutter#191217)
2026-08-24 [email protected] Skip removed observers during app exit requests (flutter/flutter#190343)
2026-08-24 [email protected] [engine] Support UTF-8 paths in Windows filesystem and path APIs (flutter/flutter#191360)
2026-08-24 [email protected] Migrate ios driver tests batch 3 to simulators (flutter/flutter#191333)
2026-08-24 [email protected] Migrate texture example to material_ui (flutter/flutter#190673)
2026-08-24 [email protected] Remove outdated test todo about `dither` property of `Paint` (flutter/flutter#190936)
2026-08-24 [email protected] Add agent rule to prevent using material and cupertino in widget tests (flutter/flutter#191588)
2026-08-24 [email protected] [flutter_tools] Prevent crash when stdout is broken and print fails (flutter/flutter#191356)
2026-08-24 [email protected] Add FlViewRendererSubsurface (flutter/flutter#191389)
2026-08-24 [email protected] [Android] Inject `route` into manifest when specified on the command line in release mode (flutter/flutter#191328)
2026-08-24 [email protected] [AGP 9.1.0 Migration #3] Add buildModeFor overloads and wire Flutter dependencies through the new DSL (flutter/flutter#191218)
2026-08-24 [email protected] Roll Skia from 698c60bf58f1 to 256c15026b91 (1 revision) (flutter/flutter#191586)
2026-08-24 [email protected] On iOS 27+ devices, manually process lldb stops (flutter/flutter#191434)
2026-08-24 [email protected] [flutter_tools] Handle missing Xcode gracefully in getInfo and buildMacOS (flutter/flutter#191180)
2026-08-24 [email protected] [flutter_tools] Handle null version gracefully in CachedArtifact and MaterialFonts (flutter/flutter#191494)
2026-08-24 [email protected] [flutter_tools] Do not treat 'daemon' argument as daemon command in logger initialization (flutter/flutter#191442)
2026-08-24 [email protected] [flutter_tools] Resolve workspace root when running widget preview from member package (flutter/flutter#190952)
2026-08-24 [email protected] [native_assets] Roll native packages (flutter/flutter#191253)
2026-08-24 [email protected] [flutter_tools] Add --force flag to flutter channel (flutter/flutter#191579)
2026-08-24 [email protected] Roll Skia from 57968d087d18 to 698c60bf58f1 (1 revision) (flutter/flutter#191577)

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.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

...
danielleon-cmd pushed a commit to victogomez-cs/packages-fork that referenced this pull request Aug 27, 2026
…r#12619)

Roll Flutter from 9a8278982588 to 15d8908addf6 (37 revisions)

flutter/flutter@9a82789...15d8908

2026-08-25 [email protected] Roll Packages from df2ba94 to 740f093 (17 revisions) (flutter/flutter#191734)
2026-08-25 [email protected] [record_use] Remove const_finder (flutter/flutter#191702)
2026-08-25 [email protected] Warn when SwiftPM is disabled (flutter/flutter#188695)
2026-08-25 [email protected] Roll Skia from b1a31575c373 to 480540178356 (1 revision) (flutter/flutter#191723)
2026-08-25 [email protected] Roll pub packages (flutter/flutter#191726)
2026-08-25 [email protected] Roll Skia from bfa276ed9ac5 to b1a31575c373 (1 revision) (flutter/flutter#191717)
2026-08-25 [email protected] Roll Dart SDK from 0818e6dc28cc to 8996935d3d0a (2 revisions) (flutter/flutter#191706)
2026-08-25 [email protected] Roll Skia from 31799e707cd4 to bfa276ed9ac5 (1 revision) (flutter/flutter#191701)
2026-08-25 [email protected] iOS: Add null check for touch rate correction task runner (flutter/flutter#191641)
2026-08-25 [email protected] iOS: Add test for engineAllowHeadlessExecution (flutter/flutter#191635)
2026-08-25 [email protected] Roll Skia from cfae2af1bfeb to 31799e707cd4 (4 revisions) (flutter/flutter#191649)
2026-08-25 [email protected] Roll Dart SDK from 2b75c83ddd77 to 0818e6dc28cc (1 revision) (flutter/flutter#191643)
2026-08-25 [email protected] Roll Skia from 4a2fddefd3d8 to cfae2af1bfeb (1 revision) (flutter/flutter#191642)
2026-08-25 [email protected] Roll Skia from 256c15026b91 to 4a2fddefd3d8 (6 revisions) (flutter/flutter#191633)
2026-08-25 [email protected] Remove octant_offset_c uniform from ubersdf, reorder/document ubersdf uniforms (flutter/flutter#191597)
2026-08-25 [email protected] Roll Fuchsia Linux SDK from 8Xu4ujBJniC0nQGx3... to MstTWE1RDOT-RnrtH... (flutter/flutter#191621)
2026-08-25 [email protected] Roll Dart SDK from 78bbc37b6ff6 to 2b75c83ddd77 (3 revisions) (flutter/flutter#191614)
2026-08-24 [email protected] [flutter_tools] Fix $git typo in shared.bat to restore cache invalidation on Windows (flutter/flutter#191217)
2026-08-24 [email protected] Skip removed observers during app exit requests (flutter/flutter#190343)
2026-08-24 [email protected] [engine] Support UTF-8 paths in Windows filesystem and path APIs (flutter/flutter#191360)
2026-08-24 [email protected] Migrate ios driver tests batch 3 to simulators (flutter/flutter#191333)
2026-08-24 [email protected] Migrate texture example to material_ui (flutter/flutter#190673)
2026-08-24 [email protected] Remove outdated test todo about `dither` property of `Paint` (flutter/flutter#190936)
2026-08-24 [email protected] Add agent rule to prevent using material and cupertino in widget tests (flutter/flutter#191588)
2026-08-24 [email protected] [flutter_tools] Prevent crash when stdout is broken and print fails (flutter/flutter#191356)
2026-08-24 [email protected] Add FlViewRendererSubsurface (flutter/flutter#191389)
2026-08-24 [email protected] [Android] Inject `route` into manifest when specified on the command line in release mode (flutter/flutter#191328)
2026-08-24 [email protected] [AGP 9.1.0 Migration #3] Add buildModeFor overloads and wire Flutter dependencies through the new DSL (flutter/flutter#191218)
2026-08-24 [email protected] Roll Skia from 698c60bf58f1 to 256c15026b91 (1 revision) (flutter/flutter#191586)
2026-08-24 [email protected] On iOS 27+ devices, manually process lldb stops (flutter/flutter#191434)
2026-08-24 [email protected] [flutter_tools] Handle missing Xcode gracefully in getInfo and buildMacOS (flutter/flutter#191180)
2026-08-24 [email protected] [flutter_tools] Handle null version gracefully in CachedArtifact and MaterialFonts (flutter/flutter#191494)
2026-08-24 [email protected] [flutter_tools] Do not treat 'daemon' argument as daemon command in logger initialization (flutter/flutter#191442)
2026-08-24 [email protected] [flutter_tools] Resolve workspace root when running widget preview from member package (flutter/flutter#190952)
2026-08-24 [email protected] [native_assets] Roll native packages (flutter/flutter#191253)
2026-08-24 [email protected] [flutter_tools] Add --force flag to flutter channel (flutter/flutter#191579)
2026-08-24 [email protected] Roll Skia from 57968d087d18 to 698c60bf58f1 (1 revision) (flutter/flutter#191577)

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.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

...
victorsanni pushed a commit to victorsanni/packages that referenced this pull request Sep 9, 2026
…r#12619)

Roll Flutter from 9a8278982588 to 15d8908addf6 (37 revisions)

flutter/flutter@9a82789...15d8908

2026-08-25 [email protected] Roll Packages from df2ba94 to 740f093 (17 revisions) (flutter/flutter#191734)
2026-08-25 [email protected] [record_use] Remove const_finder (flutter/flutter#191702)
2026-08-25 [email protected] Warn when SwiftPM is disabled (flutter/flutter#188695)
2026-08-25 [email protected] Roll Skia from b1a31575c373 to 480540178356 (1 revision) (flutter/flutter#191723)
2026-08-25 [email protected] Roll pub packages (flutter/flutter#191726)
2026-08-25 [email protected] Roll Skia from bfa276ed9ac5 to b1a31575c373 (1 revision) (flutter/flutter#191717)
2026-08-25 [email protected] Roll Dart SDK from 0818e6dc28cc to 8996935d3d0a (2 revisions) (flutter/flutter#191706)
2026-08-25 [email protected] Roll Skia from 31799e707cd4 to bfa276ed9ac5 (1 revision) (flutter/flutter#191701)
2026-08-25 [email protected] iOS: Add null check for touch rate correction task runner (flutter/flutter#191641)
2026-08-25 [email protected] iOS: Add test for engineAllowHeadlessExecution (flutter/flutter#191635)
2026-08-25 [email protected] Roll Skia from cfae2af1bfeb to 31799e707cd4 (4 revisions) (flutter/flutter#191649)
2026-08-25 [email protected] Roll Dart SDK from 2b75c83ddd77 to 0818e6dc28cc (1 revision) (flutter/flutter#191643)
2026-08-25 [email protected] Roll Skia from 4a2fddefd3d8 to cfae2af1bfeb (1 revision) (flutter/flutter#191642)
2026-08-25 [email protected] Roll Skia from 256c15026b91 to 4a2fddefd3d8 (6 revisions) (flutter/flutter#191633)
2026-08-25 [email protected] Remove octant_offset_c uniform from ubersdf, reorder/document ubersdf uniforms (flutter/flutter#191597)
2026-08-25 [email protected] Roll Fuchsia Linux SDK from 8Xu4ujBJniC0nQGx3... to MstTWE1RDOT-RnrtH... (flutter/flutter#191621)
2026-08-25 [email protected] Roll Dart SDK from 78bbc37b6ff6 to 2b75c83ddd77 (3 revisions) (flutter/flutter#191614)
2026-08-24 [email protected] [flutter_tools] Fix $git typo in shared.bat to restore cache invalidation on Windows (flutter/flutter#191217)
2026-08-24 [email protected] Skip removed observers during app exit requests (flutter/flutter#190343)
2026-08-24 [email protected] [engine] Support UTF-8 paths in Windows filesystem and path APIs (flutter/flutter#191360)
2026-08-24 [email protected] Migrate ios driver tests batch 3 to simulators (flutter/flutter#191333)
2026-08-24 [email protected] Migrate texture example to material_ui (flutter/flutter#190673)
2026-08-24 [email protected] Remove outdated test todo about `dither` property of `Paint` (flutter/flutter#190936)
2026-08-24 [email protected] Add agent rule to prevent using material and cupertino in widget tests (flutter/flutter#191588)
2026-08-24 [email protected] [flutter_tools] Prevent crash when stdout is broken and print fails (flutter/flutter#191356)
2026-08-24 [email protected] Add FlViewRendererSubsurface (flutter/flutter#191389)
2026-08-24 [email protected] [Android] Inject `route` into manifest when specified on the command line in release mode (flutter/flutter#191328)
2026-08-24 [email protected] [AGP 9.1.0 Migration flutter#3] Add buildModeFor overloads and wire Flutter dependencies through the new DSL (flutter/flutter#191218)
2026-08-24 [email protected] Roll Skia from 698c60bf58f1 to 256c15026b91 (1 revision) (flutter/flutter#191586)
2026-08-24 [email protected] On iOS 27+ devices, manually process lldb stops (flutter/flutter#191434)
2026-08-24 [email protected] [flutter_tools] Handle missing Xcode gracefully in getInfo and buildMacOS (flutter/flutter#191180)
2026-08-24 [email protected] [flutter_tools] Handle null version gracefully in CachedArtifact and MaterialFonts (flutter/flutter#191494)
2026-08-24 [email protected] [flutter_tools] Do not treat 'daemon' argument as daemon command in logger initialization (flutter/flutter#191442)
2026-08-24 [email protected] [flutter_tools] Resolve workspace root when running widget preview from member package (flutter/flutter#190952)
2026-08-24 [email protected] [native_assets] Roll native packages (flutter/flutter#191253)
2026-08-24 [email protected] [flutter_tools] Add --force flag to flutter channel (flutter/flutter#191579)
2026-08-24 [email protected] Roll Skia from 57968d087d18 to 698c60bf58f1 (1 revision) (flutter/flutter#191577)

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.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

...
victorsanni pushed a commit to victorsanni/packages that referenced this pull request Sep 9, 2026
…r#12619)

Roll Flutter from 9a8278982588 to 15d8908addf6 (37 revisions)

flutter/flutter@9a82789...15d8908

2026-08-25 [email protected] Roll Packages from df2ba94 to 740f093 (17 revisions) (flutter/flutter#191734)
2026-08-25 [email protected] [record_use] Remove const_finder (flutter/flutter#191702)
2026-08-25 [email protected] Warn when SwiftPM is disabled (flutter/flutter#188695)
2026-08-25 [email protected] Roll Skia from b1a31575c373 to 480540178356 (1 revision) (flutter/flutter#191723)
2026-08-25 [email protected] Roll pub packages (flutter/flutter#191726)
2026-08-25 [email protected] Roll Skia from bfa276ed9ac5 to b1a31575c373 (1 revision) (flutter/flutter#191717)
2026-08-25 [email protected] Roll Dart SDK from 0818e6dc28cc to 8996935d3d0a (2 revisions) (flutter/flutter#191706)
2026-08-25 [email protected] Roll Skia from 31799e707cd4 to bfa276ed9ac5 (1 revision) (flutter/flutter#191701)
2026-08-25 [email protected] iOS: Add null check for touch rate correction task runner (flutter/flutter#191641)
2026-08-25 [email protected] iOS: Add test for engineAllowHeadlessExecution (flutter/flutter#191635)
2026-08-25 [email protected] Roll Skia from cfae2af1bfeb to 31799e707cd4 (4 revisions) (flutter/flutter#191649)
2026-08-25 [email protected] Roll Dart SDK from 2b75c83ddd77 to 0818e6dc28cc (1 revision) (flutter/flutter#191643)
2026-08-25 [email protected] Roll Skia from 4a2fddefd3d8 to cfae2af1bfeb (1 revision) (flutter/flutter#191642)
2026-08-25 [email protected] Roll Skia from 256c15026b91 to 4a2fddefd3d8 (6 revisions) (flutter/flutter#191633)
2026-08-25 [email protected] Remove octant_offset_c uniform from ubersdf, reorder/document ubersdf uniforms (flutter/flutter#191597)
2026-08-25 [email protected] Roll Fuchsia Linux SDK from 8Xu4ujBJniC0nQGx3... to MstTWE1RDOT-RnrtH... (flutter/flutter#191621)
2026-08-25 [email protected] Roll Dart SDK from 78bbc37b6ff6 to 2b75c83ddd77 (3 revisions) (flutter/flutter#191614)
2026-08-24 [email protected] [flutter_tools] Fix $git typo in shared.bat to restore cache invalidation on Windows (flutter/flutter#191217)
2026-08-24 [email protected] Skip removed observers during app exit requests (flutter/flutter#190343)
2026-08-24 [email protected] [engine] Support UTF-8 paths in Windows filesystem and path APIs (flutter/flutter#191360)
2026-08-24 [email protected] Migrate ios driver tests batch 3 to simulators (flutter/flutter#191333)
2026-08-24 [email protected] Migrate texture example to material_ui (flutter/flutter#190673)
2026-08-24 [email protected] Remove outdated test todo about `dither` property of `Paint` (flutter/flutter#190936)
2026-08-24 [email protected] Add agent rule to prevent using material and cupertino in widget tests (flutter/flutter#191588)
2026-08-24 [email protected] [flutter_tools] Prevent crash when stdout is broken and print fails (flutter/flutter#191356)
2026-08-24 [email protected] Add FlViewRendererSubsurface (flutter/flutter#191389)
2026-08-24 [email protected] [Android] Inject `route` into manifest when specified on the command line in release mode (flutter/flutter#191328)
2026-08-24 [email protected] [AGP 9.1.0 Migration flutter#3] Add buildModeFor overloads and wire Flutter dependencies through the new DSL (flutter/flutter#191218)
2026-08-24 [email protected] Roll Skia from 698c60bf58f1 to 256c15026b91 (1 revision) (flutter/flutter#191586)
2026-08-24 [email protected] On iOS 27+ devices, manually process lldb stops (flutter/flutter#191434)
2026-08-24 [email protected] [flutter_tools] Handle missing Xcode gracefully in getInfo and buildMacOS (flutter/flutter#191180)
2026-08-24 [email protected] [flutter_tools] Handle null version gracefully in CachedArtifact and MaterialFonts (flutter/flutter#191494)
2026-08-24 [email protected] [flutter_tools] Do not treat 'daemon' argument as daemon command in logger initialization (flutter/flutter#191442)
2026-08-24 [email protected] [flutter_tools] Resolve workspace root when running widget preview from member package (flutter/flutter#190952)
2026-08-24 [email protected] [native_assets] Roll native packages (flutter/flutter#191253)
2026-08-24 [email protected] [flutter_tools] Add --force flag to flutter channel (flutter/flutter#191579)
2026-08-24 [email protected] Roll Skia from 57968d087d18 to 698c60bf58f1 (1 revision) (flutter/flutter#191577)

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.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CICD Run CI/CD framework flutter/packages/flutter repository. See also f: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Disposed AppLifecycleListener's onExitRequested is still called if disposed in another AppLifecycleListener

3 participants