Skip to content

Conversation

@mboetger
Copy link
Contributor

@mboetger mboetger commented Dec 9, 2025

SettingsChannel has a static data structure that stores system configurations. This is fine if there is one engine. If there are two FlutterViews and two engines - this static configuration is shared between the two different engines. Because of the way the queue deletes old entries this will result in one engine missing it's configuration.

Fixes: #179559

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
  • I signed the [CLA].
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is [test-exempt].
  • I followed the [breaking change policy] and added [Data Driven Fixes] where supported.
  • All existing and new tests are passing.

@mboetger mboetger requested a review from a team as a code owner December 9, 2025 19:41
@github-actions github-actions bot added platform-android Android applications specifically engine flutter/engine related. See also e: labels. team-android Owned by Android platform team labels Dec 9, 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 refactors SettingsChannel by changing its ConfigurationQueue from a static member to an instance member. This change is propagated through FlutterEngine and FlutterJNI to ensure each engine uses its own SettingsChannel instance, preventing configuration conflicts in multi-engine scenarios. SettingsChannel.MessageBuilder is also changed to a non-static inner class to access the instance-level queue.

@flutter flutter deleted a comment from flutter-dashboard bot Dec 9, 2025
@mboetger mboetger added the autosubmit Merge PR when tree becomes green via auto submit App label Dec 9, 2025
@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Dec 10, 2025
@auto-submit
Copy link
Contributor

auto-submit bot commented Dec 10, 2025

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

@mboetger mboetger added the autosubmit Merge PR when tree becomes green via auto submit App label Dec 10, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Dec 10, 2025
Merged via the queue into flutter:master with commit 90ebc1d Dec 10, 2025
180 of 181 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Dec 10, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Dec 10, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Dec 10, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Dec 10, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Dec 10, 2025
reidbaker pushed a commit to AbdeMohlbi/flutter that referenced this pull request Dec 10, 2025
SettingsChannel has a static data structure that stores system
configurations. This is fine if there is one engine. If there are two
FlutterViews and two engines - this static configuration is shared
between the two different engines. Because of the way the queue deletes
old entries this will result in one engine missing it's configuration.

Fixes: flutter#179559

## 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.
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Dec 10, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Dec 10, 2025
…10601)

Manual roll Flutter from 6a1f5b7f85a4 to e25d71b086d6 (30 revisions)

Manual roll requested by [email protected]

flutter/flutter@6a1f5b7...e25d71b

2025-12-10 [email protected] Ensure that the engine converts std::filesystem::path objects to UTF-8 strings on Windows (flutter/flutter#179528)
2025-12-10 [email protected] Fix the issue with pinned headers in nested SliverMainAxisGroup. (flutter/flutter#179132)
2025-12-10 [email protected] added onUserInteractionIfError for form (flutter/flutter#175515)
2025-12-10 [email protected] Fixed RenderFlex overflow in RouteObserver Example (flutter/flutter#170980)
2025-12-10 [email protected] Roll Dart SDK from 17749965ec57 to 077062c5e515 (3 revisions) (flutter/flutter#179691)
2025-12-10 [email protected] Manually roll characters (flutter/flutter#179447)
2025-12-10 [email protected] Roll Packages from 338ecd3 to 74a5a53 (4 revisions) (flutter/flutter#179693)
2025-12-10 [email protected] Marks Mac_ios draw_arcs_all_stroke_styles_perf_ios__timeline_summary to be unflaky (flutter/flutter#179669)
2025-12-10 [email protected] Check for a null cached image in SingleFrameCodec::getNextFrame (flutter/flutter#179483)
2025-12-10 [email protected] Roll Fuchsia Linux SDK from _pSztGZvEA3-Ry-GW... to u5vxWTRT0HlxOP5_r... (flutter/flutter#179652)
2025-12-10 [email protected] Implement flutter/accessibility channel (flutter/flutter#179484)
2025-12-10 [email protected] Roll Skia from 82fff05cc621 to e61cc6d073fd (4 revisions) (flutter/flutter#179646)
2025-12-10 [email protected] Make sure that a CupertinoDialogAction doesn't crash in 0x0 environment (flutter/flutter#178956)
2025-12-10 [email protected] Make SettingsChannel configuration queue not static (flutter/flutter#179636)
2025-12-10 [email protected] Make sure that a CupertinoListSection doesn't crash in 0x0 environment (flutter/flutter#179068)
2025-12-10 [email protected] Make sure that a CupertinoFormSection doesn't crash in 0x0 environment (flutter/flutter#179001)
2025-12-10 [email protected] Make sure that a CupertinoMagnifier doesn't crash in 0x0 environment (flutter/flutter#179206)
2025-12-10 [email protected] Make sure that a Tooltip doesn't crash in 0x0 environment (flutter/flutter#178461)
2025-12-10 [email protected] Make sure that a CupertinoSegmentedControl doesn't crash in 0x0 envir… (flutter/flutter#179544)
2025-12-10 [email protected] Make sure that a CupertinoSlider doesn't crash in 0x0 environment (flutter/flutter#179566)
2025-12-10 [email protected] Make sure that a CupertinoPageScaffold doesn't crash in 0x0 environment (flutter/flutter#179245)
2025-12-09 [email protected] Roll Skia from f9e32c28c5c5 to 82fff05cc621 (2 revisions) (flutter/flutter#179641)
2025-12-09 [email protected] Roll Dart SDK from 019cb923bf62 to 17749965ec57 (5 revisions) (flutter/flutter#179640)
2025-12-09 [email protected] Enhance documentation for `LocalHistoryEntry` class (flutter/flutter#179223)
2025-12-09 [email protected] WebParagrah: ellipsis (flutter/flutter#178748)
2025-12-09 [email protected] Update the doc on Google Testing to reflect the current state (flutter/flutter#177187)
2025-12-09 [email protected] [wimp] Initial Impeller on Web implementation. (flutter/flutter#175442)
2025-12-09 [email protected] Relax assertion for adding semantics locale (flutter/flutter#178140)
2025-12-09 [email protected] Fix Scrollbar drag behavior (flutter/flutter#179199)
2025-12-09 [email protected] Roll Skia from 502ee6f2a0d7 to f9e32c28c5c5 (6 revisions) (flutter/flutter#179632)

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

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

engine flutter/engine related. See also e: labels. platform-android Android applications specifically team-android Owned by Android platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Hot restart with multiple FlutterEngines and non-default text scale triggers layout errors

3 participants