[Android] Avoid plugin auto-registration during FlutterFragmentActivity recreate timing window#182963
Conversation
There was a problem hiding this comment.
Code Review
This pull request addresses a timing issue in FlutterFragmentActivity during activity recreation, which could lead to incorrect plugin auto-registration. The fix involves modifying configureFlutterEngine to explicitly check for an existing FlutterFragment from the FragmentManager if the activity's flutterFragment field is not yet populated. This prevents GeneratedPluginRegister.registerGeneratedPlugins from being called unnecessarily. The change is accompanied by two new unit tests: one to specifically validate the new logic in configureFlutterEngine, and another integration test using ActivityScenario to verify the fix during activity recreation with a cached engine.
mboetger
left a comment
There was a problem hiding this comment.
LGTM, thanks for the PR
|
Thanks @mboetger, BTW, is there anything I need to do to get this PR merged? |
|
autosubmit label was removed for flutter/flutter/182963, 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. |
|
autosubmit label was removed for flutter/flutter/182963, 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.
|
|
autosubmit label was removed for flutter/flutter/182963, 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. |
…ty recreate timing window
37eb3aa to
5aecc45
Compare
|
autosubmit label was removed for flutter/flutter/182963, because - The status or check suite Linux linux_unopt has failed. Please fix the issues identified (or deflake) before re-applying this label. |
…mentActivity recreate timing window (flutter/flutter#182963)
…mentActivity recreate timing window (flutter/flutter#182963)
…mentActivity recreate timing window (flutter/flutter#182963)
…mentActivity recreate timing window (flutter/flutter#182963)
…mentActivity recreate timing window (flutter/flutter#182963)
…mentActivity recreate timing window (flutter/flutter#182963)
Roll Flutter from 2ec61af30672 to 195ae7b3a122 (36 revisions) flutter/flutter@2ec61af...195ae7b 2026-03-10 mdebbar@google.com [web] Updates to the README (flutter/flutter#176292) 2026-03-10 jason-simmons@users.noreply.github.com [Impeller] Do not log VK_ERROR_SURFACE_LOST_KHR errors returned by vkAcquireNextImageKHR (flutter/flutter#183338) 2026-03-10 jason-simmons@users.noreply.github.com DlDeferredImageGPUImpeller::ImageWrapper texture thread safety improvements (flutter/flutter#183429) 2026-03-10 34465683+rkishan516@users.noreply.github.com refactor: remove material imports from system_context_menu_test, table_test (flutter/flutter#183368) 2026-03-10 34465683+rkishan516@users.noreply.github.com refactor: remove material from baseline_test, slivers_test (flutter/flutter#183367) 2026-03-10 30870216+gaaclarke@users.noreply.github.com Migrated circle sdf to euclidean 2d derivative (flutter/flutter#183184) 2026-03-10 engine-flutter-autoroll@skia.org Roll Packages from c717018 to ee460d6 (2 revisions) (flutter/flutter#183451) 2026-03-10 engine-flutter-autoroll@skia.org Roll Skia from 68f24903b592 to 4b35832cc7ea (1 revision) (flutter/flutter#183449) 2026-03-10 engine-flutter-autoroll@skia.org Roll Skia from 8eda160375ea to 68f24903b592 (1 revision) (flutter/flutter#183444) 2026-03-10 engine-flutter-autoroll@skia.org Roll Skia from e7b957806202 to 8eda160375ea (2 revisions) (flutter/flutter#183440) 2026-03-10 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from ox-II3wPpa818y78_... to 8C_qfgWgoNhkV0_Mn... (flutter/flutter#183437) 2026-03-10 engine-flutter-autoroll@skia.org Roll Skia from 887df915a95e to e7b957806202 (1 revision) (flutter/flutter#183434) 2026-03-10 brackenavaron@gmail.com Remove material from scrollable_test.dart (flutter/flutter#181429) 2026-03-09 737941+loic-sharma@users.noreply.github.com Update 'a: text input' globs (flutter/flutter#183405) 2026-03-09 engine-flutter-autoroll@skia.org Roll Skia from 3aa442e0624a to 887df915a95e (7 revisions) (flutter/flutter#183423) 2026-03-09 47866232+chunhtai@users.noreply.github.com Adds geometry dirty nodes (flutter/flutter#180375) 2026-03-09 engine-flutter-autoroll@skia.org Roll Dart SDK from 5b1aa4f8db14 to ebef6c849489 (1 revision) (flutter/flutter#183417) 2026-03-09 Veselblu@yandex.ru Add Alexander Dmitriev to AUTHORS (flutter/flutter#183357) 2026-03-09 katelovett@google.com Update org triage (flutter/flutter#183254) 2026-03-09 8847263+littleGnAl@users.noreply.github.com [Android] Avoid plugin auto-registration during FlutterFragmentActivity recreate timing window (flutter/flutter#182963) 2026-03-09 chingjun@google.com Standardize skia includes. (flutter/flutter#183404) 2026-03-09 116356835+AbdeMohlbi@users.noreply.github.com Add a note to `arcTo` docs about the 2PI drawing angle issue (flutter/flutter#183293) 2026-03-09 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#183411) 2026-03-09 bkonyi@google.com [ Tool ] Fix --print-dtd not working for web targets (flutter/flutter#183171) 2026-03-09 victorsanniay@gmail.com Add await or ignore lint to flutter_driver unawaited callsites (flutter/flutter#183334) 2026-03-09 30870216+gaaclarke@users.noreply.github.com Cleanup MockVulkan when the vulkan instance is destroyed (flutter/flutter#183324) 2026-03-09 52160996+FMorschel@users.noreply.github.com Updates tests commit (flutter/flutter#183301) 2026-03-09 22373191+Hari-07@users.noreply.github.com Implements `ClipRSuperellipse` on backdrop filter on platform view (flutter/flutter#182643) 2026-03-09 engine-flutter-autoroll@skia.org Roll Skia from ea4fd0e1472a to 3aa442e0624a (1 revision) (flutter/flutter#183397) 2026-03-09 engine-flutter-autoroll@skia.org Roll Dart SDK from 050b2f646425 to 5b1aa4f8db14 (1 revision) (flutter/flutter#183393) 2026-03-09 engine-flutter-autoroll@skia.org Roll Packages from fe3de64 to c717018 (10 revisions) (flutter/flutter#183396) 2026-03-09 engine-flutter-autoroll@skia.org Roll Skia from a83dca75c531 to ea4fd0e1472a (1 revision) (flutter/flutter#183389) 2026-03-09 engine-flutter-autoroll@skia.org Roll Skia from 254e44141861 to a83dca75c531 (7 revisions) (flutter/flutter#183388) 2026-03-09 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from giLoee6arX5CRHuRh... to ox-II3wPpa818y78_... (flutter/flutter#183386) 2026-03-09 engine-flutter-autoroll@skia.org Roll Dart SDK from 1604910613c7 to 050b2f646425 (1 revision) (flutter/flutter#183383) 2026-03-08 engine-flutter-autoroll@skia.org Roll Skia from af994ae4d990 to 254e44141861 (2 revisions) (flutter/flutter#183377) 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 stuartmorgan@google.com 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 To report a problem with the AutoRoller itself, please file a bug: ...
…ty recreate timing window (flutter#182963) <!-- Thanks for filing a pull request! Reviewers are typically assigned within a week of filing a request. To learn more about code review, see our documentation on Tree Hygiene: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md --> This PR fixes an Android embedding timing issue in `FlutterFragmentActivity` during Activity recreation. When an Activity is being recreated, `FragmentManager` can restore/attach an existing `FlutterFragment` before `ensureFlutterFragmentCreated()` refreshes the `flutterFragment` field. In that window, `configureFlutterEngine()` may run with `flutterFragment == null`, miss the injected-engine guard, and incorrectly call `GeneratedPluginRegister.registerGeneratedPlugins(...)`. That can lead to unintended plugin lifecycle behavior in real apps. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
…r#11222) Roll Flutter from 2ec61af30672 to 195ae7b3a122 (36 revisions) flutter/flutter@2ec61af...195ae7b 2026-03-10 mdebbar@google.com [web] Updates to the README (flutter/flutter#176292) 2026-03-10 jason-simmons@users.noreply.github.com [Impeller] Do not log VK_ERROR_SURFACE_LOST_KHR errors returned by vkAcquireNextImageKHR (flutter/flutter#183338) 2026-03-10 jason-simmons@users.noreply.github.com DlDeferredImageGPUImpeller::ImageWrapper texture thread safety improvements (flutter/flutter#183429) 2026-03-10 34465683+rkishan516@users.noreply.github.com refactor: remove material imports from system_context_menu_test, table_test (flutter/flutter#183368) 2026-03-10 34465683+rkishan516@users.noreply.github.com refactor: remove material from baseline_test, slivers_test (flutter/flutter#183367) 2026-03-10 30870216+gaaclarke@users.noreply.github.com Migrated circle sdf to euclidean 2d derivative (flutter/flutter#183184) 2026-03-10 engine-flutter-autoroll@skia.org Roll Packages from c717018 to ee460d6 (2 revisions) (flutter/flutter#183451) 2026-03-10 engine-flutter-autoroll@skia.org Roll Skia from 68f24903b592 to 4b35832cc7ea (1 revision) (flutter/flutter#183449) 2026-03-10 engine-flutter-autoroll@skia.org Roll Skia from 8eda160375ea to 68f24903b592 (1 revision) (flutter/flutter#183444) 2026-03-10 engine-flutter-autoroll@skia.org Roll Skia from e7b957806202 to 8eda160375ea (2 revisions) (flutter/flutter#183440) 2026-03-10 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from ox-II3wPpa818y78_... to 8C_qfgWgoNhkV0_Mn... (flutter/flutter#183437) 2026-03-10 engine-flutter-autoroll@skia.org Roll Skia from 887df915a95e to e7b957806202 (1 revision) (flutter/flutter#183434) 2026-03-10 brackenavaron@gmail.com Remove material from scrollable_test.dart (flutter/flutter#181429) 2026-03-09 737941+loic-sharma@users.noreply.github.com Update 'a: text input' globs (flutter/flutter#183405) 2026-03-09 engine-flutter-autoroll@skia.org Roll Skia from 3aa442e0624a to 887df915a95e (7 revisions) (flutter/flutter#183423) 2026-03-09 47866232+chunhtai@users.noreply.github.com Adds geometry dirty nodes (flutter/flutter#180375) 2026-03-09 engine-flutter-autoroll@skia.org Roll Dart SDK from 5b1aa4f8db14 to ebef6c849489 (1 revision) (flutter/flutter#183417) 2026-03-09 Veselblu@yandex.ru Add Alexander Dmitriev to AUTHORS (flutter/flutter#183357) 2026-03-09 katelovett@google.com Update org triage (flutter/flutter#183254) 2026-03-09 8847263+littleGnAl@users.noreply.github.com [Android] Avoid plugin auto-registration during FlutterFragmentActivity recreate timing window (flutter/flutter#182963) 2026-03-09 chingjun@google.com Standardize skia includes. (flutter/flutter#183404) 2026-03-09 116356835+AbdeMohlbi@users.noreply.github.com Add a note to `arcTo` docs about the 2PI drawing angle issue (flutter/flutter#183293) 2026-03-09 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#183411) 2026-03-09 bkonyi@google.com [ Tool ] Fix --print-dtd not working for web targets (flutter/flutter#183171) 2026-03-09 victorsanniay@gmail.com Add await or ignore lint to flutter_driver unawaited callsites (flutter/flutter#183334) 2026-03-09 30870216+gaaclarke@users.noreply.github.com Cleanup MockVulkan when the vulkan instance is destroyed (flutter/flutter#183324) 2026-03-09 52160996+FMorschel@users.noreply.github.com Updates tests commit (flutter/flutter#183301) 2026-03-09 22373191+Hari-07@users.noreply.github.com Implements `ClipRSuperellipse` on backdrop filter on platform view (flutter/flutter#182643) 2026-03-09 engine-flutter-autoroll@skia.org Roll Skia from ea4fd0e1472a to 3aa442e0624a (1 revision) (flutter/flutter#183397) 2026-03-09 engine-flutter-autoroll@skia.org Roll Dart SDK from 050b2f646425 to 5b1aa4f8db14 (1 revision) (flutter/flutter#183393) 2026-03-09 engine-flutter-autoroll@skia.org Roll Packages from fe3de64 to c717018 (10 revisions) (flutter/flutter#183396) 2026-03-09 engine-flutter-autoroll@skia.org Roll Skia from a83dca75c531 to ea4fd0e1472a (1 revision) (flutter/flutter#183389) 2026-03-09 engine-flutter-autoroll@skia.org Roll Skia from 254e44141861 to a83dca75c531 (7 revisions) (flutter/flutter#183388) 2026-03-09 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from giLoee6arX5CRHuRh... to ox-II3wPpa818y78_... (flutter/flutter#183386) 2026-03-09 engine-flutter-autoroll@skia.org Roll Dart SDK from 1604910613c7 to 050b2f646425 (1 revision) (flutter/flutter#183383) 2026-03-08 engine-flutter-autoroll@skia.org Roll Skia from af994ae4d990 to 254e44141861 (2 revisions) (flutter/flutter#183377) 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 stuartmorgan@google.com 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 To report a problem with the AutoRoller itself, please file a bug: ...
…ty recreate timing window (flutter#182963) <!-- Thanks for filing a pull request! Reviewers are typically assigned within a week of filing a request. To learn more about code review, see our documentation on Tree Hygiene: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md --> This PR fixes an Android embedding timing issue in `FlutterFragmentActivity` during Activity recreation. When an Activity is being recreated, `FragmentManager` can restore/attach an existing `FlutterFragment` before `ensureFlutterFragmentCreated()` refreshes the `flutterFragment` field. In that window, `configureFlutterEngine()` may run with `flutterFragment == null`, miss the injected-engine guard, and incorrectly call `GeneratedPluginRegister.registerGeneratedPlugins(...)`. That can lead to unintended plugin lifecycle behavior in real apps. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
…ty recreate timing window (flutter#182963) <!-- Thanks for filing a pull request! Reviewers are typically assigned within a week of filing a request. To learn more about code review, see our documentation on Tree Hygiene: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md --> This PR fixes an Android embedding timing issue in `FlutterFragmentActivity` during Activity recreation. When an Activity is being recreated, `FragmentManager` can restore/attach an existing `FlutterFragment` before `ensureFlutterFragmentCreated()` refreshes the `flutterFragment` field. In that window, `configureFlutterEngine()` may run with `flutterFragment == null`, miss the injected-engine guard, and incorrectly call `GeneratedPluginRegister.registerGeneratedPlugins(...)`. That can lead to unintended plugin lifecycle behavior in real apps. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
…r#11222) Roll Flutter from 2ec61af30672 to 195ae7b3a122 (36 revisions) flutter/flutter@2ec61af...195ae7b 2026-03-10 mdebbar@google.com [web] Updates to the README (flutter/flutter#176292) 2026-03-10 jason-simmons@users.noreply.github.com [Impeller] Do not log VK_ERROR_SURFACE_LOST_KHR errors returned by vkAcquireNextImageKHR (flutter/flutter#183338) 2026-03-10 jason-simmons@users.noreply.github.com DlDeferredImageGPUImpeller::ImageWrapper texture thread safety improvements (flutter/flutter#183429) 2026-03-10 34465683+rkishan516@users.noreply.github.com refactor: remove material imports from system_context_menu_test, table_test (flutter/flutter#183368) 2026-03-10 34465683+rkishan516@users.noreply.github.com refactor: remove material from baseline_test, slivers_test (flutter/flutter#183367) 2026-03-10 30870216+gaaclarke@users.noreply.github.com Migrated circle sdf to euclidean 2d derivative (flutter/flutter#183184) 2026-03-10 engine-flutter-autoroll@skia.org Roll Packages from c717018 to ee460d6 (2 revisions) (flutter/flutter#183451) 2026-03-10 engine-flutter-autoroll@skia.org Roll Skia from 68f24903b592 to 4b35832cc7ea (1 revision) (flutter/flutter#183449) 2026-03-10 engine-flutter-autoroll@skia.org Roll Skia from 8eda160375ea to 68f24903b592 (1 revision) (flutter/flutter#183444) 2026-03-10 engine-flutter-autoroll@skia.org Roll Skia from e7b957806202 to 8eda160375ea (2 revisions) (flutter/flutter#183440) 2026-03-10 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from ox-II3wPpa818y78_... to 8C_qfgWgoNhkV0_Mn... (flutter/flutter#183437) 2026-03-10 engine-flutter-autoroll@skia.org Roll Skia from 887df915a95e to e7b957806202 (1 revision) (flutter/flutter#183434) 2026-03-10 brackenavaron@gmail.com Remove material from scrollable_test.dart (flutter/flutter#181429) 2026-03-09 737941+loic-sharma@users.noreply.github.com Update 'a: text input' globs (flutter/flutter#183405) 2026-03-09 engine-flutter-autoroll@skia.org Roll Skia from 3aa442e0624a to 887df915a95e (7 revisions) (flutter/flutter#183423) 2026-03-09 47866232+chunhtai@users.noreply.github.com Adds geometry dirty nodes (flutter/flutter#180375) 2026-03-09 engine-flutter-autoroll@skia.org Roll Dart SDK from 5b1aa4f8db14 to ebef6c849489 (1 revision) (flutter/flutter#183417) 2026-03-09 Veselblu@yandex.ru Add Alexander Dmitriev to AUTHORS (flutter/flutter#183357) 2026-03-09 katelovett@google.com Update org triage (flutter/flutter#183254) 2026-03-09 8847263+littleGnAl@users.noreply.github.com [Android] Avoid plugin auto-registration during FlutterFragmentActivity recreate timing window (flutter/flutter#182963) 2026-03-09 chingjun@google.com Standardize skia includes. (flutter/flutter#183404) 2026-03-09 116356835+AbdeMohlbi@users.noreply.github.com Add a note to `arcTo` docs about the 2PI drawing angle issue (flutter/flutter#183293) 2026-03-09 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#183411) 2026-03-09 bkonyi@google.com [ Tool ] Fix --print-dtd not working for web targets (flutter/flutter#183171) 2026-03-09 victorsanniay@gmail.com Add await or ignore lint to flutter_driver unawaited callsites (flutter/flutter#183334) 2026-03-09 30870216+gaaclarke@users.noreply.github.com Cleanup MockVulkan when the vulkan instance is destroyed (flutter/flutter#183324) 2026-03-09 52160996+FMorschel@users.noreply.github.com Updates tests commit (flutter/flutter#183301) 2026-03-09 22373191+Hari-07@users.noreply.github.com Implements `ClipRSuperellipse` on backdrop filter on platform view (flutter/flutter#182643) 2026-03-09 engine-flutter-autoroll@skia.org Roll Skia from ea4fd0e1472a to 3aa442e0624a (1 revision) (flutter/flutter#183397) 2026-03-09 engine-flutter-autoroll@skia.org Roll Dart SDK from 050b2f646425 to 5b1aa4f8db14 (1 revision) (flutter/flutter#183393) 2026-03-09 engine-flutter-autoroll@skia.org Roll Packages from fe3de64 to c717018 (10 revisions) (flutter/flutter#183396) 2026-03-09 engine-flutter-autoroll@skia.org Roll Skia from a83dca75c531 to ea4fd0e1472a (1 revision) (flutter/flutter#183389) 2026-03-09 engine-flutter-autoroll@skia.org Roll Skia from 254e44141861 to a83dca75c531 (7 revisions) (flutter/flutter#183388) 2026-03-09 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from giLoee6arX5CRHuRh... to ox-II3wPpa818y78_... (flutter/flutter#183386) 2026-03-09 engine-flutter-autoroll@skia.org Roll Dart SDK from 1604910613c7 to 050b2f646425 (1 revision) (flutter/flutter#183383) 2026-03-08 engine-flutter-autoroll@skia.org Roll Skia from af994ae4d990 to 254e44141861 (2 revisions) (flutter/flutter#183377) 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 stuartmorgan@google.com 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 To report a problem with the AutoRoller itself, please file a bug: ...
This PR fixes an Android embedding timing issue in
FlutterFragmentActivityduring Activity recreation.When an Activity is being recreated,
FragmentManagercan restore/attach an existingFlutterFragmentbeforeensureFlutterFragmentCreated()refreshes theflutterFragmentfield.In that window,
configureFlutterEngine()may run withflutterFragment == null, miss the injected-engine guard, and incorrectly callGeneratedPluginRegister.registerGeneratedPlugins(...).That can lead to unintended plugin lifecycle behavior in real apps.
Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.
Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the
gemini-code-assistbot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.