86423 Commits

Author SHA1 Message Date
Rajesh Malviya
d939d6b00a
Fix Image.network not using cache when headers are specified (#176831)
Fix a bug introduced by 97aae2ad3 (#171916), where `hashCode` is giving
different results for values which `==` says are equal. Which broke
caching for uses of `Image.network` widget when `headers` map was
passed.

## 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].
- [ ] 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
2025-10-20 02:05:21 +00:00
engine-flutter-autoroll
0eaaf19086
Roll Dart SDK from a66f334fee2a to 2cd2106f2cef (4 revisions) (#177190)
https://dart.googlesource.com/sdk.git/+log/a66f334fee2a..2cd2106f2cef

2025-10-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.11.0-34.0.dev
2025-10-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.11.0-33.0.dev
2025-10-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.11.0-32.0.dev
2025-10-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.11.0-31.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter
Please CC codefu@google.com,dart-vm-team@google.com on the revert to
ensure that a human
is aware of the problem.

To file a bug in Flutter:
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
2025-10-19 23:57:28 +00:00
engine-flutter-autoroll
6b080db2da
Roll Skia from 2d424175a481 to 89abc5393317 (1 revision) (#177235)
https://skia.googlesource.com/skia.git/+log/2d424175a481..89abc5393317

2025-10-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 441bfe958de2 to 4d8d3691f23d (1 revision)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC codefu@google.com,jmbetancourt@google.com,kjlubick@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
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
2025-10-19 23:25:35 +00:00
Ahmed Mohamed Sameh
038f22d3bf
Make sure that a ListTile doesn't crash in 0x0 environment (#176176)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the ListTile widget.
2025-10-19 20:44:22 +00:00
Ahmed Mohamed Sameh
db6475b9bb
Make sure that a DropdownButton doesn't crash in 0x0 environment (#174880)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the DropdownButton
widget.

---------

Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
2025-10-19 20:30:36 +00:00
engine-flutter-autoroll
9374aad993
Roll Skia from 899155871d29 to 2d424175a481 (1 revision) (#177229)
https://skia.googlesource.com/skia.git/+log/899155871d29..2d424175a481

2025-10-19 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll
ANGLE from 012c4998642a to 59d4b703e44f (15 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC codefu@google.com,jmbetancourt@google.com,kjlubick@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
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
2025-10-19 17:06:37 +00:00
engine-flutter-autoroll
9d5905257b
Roll Skia from b864c56efb66 to 899155871d29 (1 revision) (#177227)
https://skia.googlesource.com/skia.git/+log/b864c56efb66..899155871d29

2025-10-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SKP
CIPD package from 535 to 536

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC codefu@google.com,jmbetancourt@google.com,kjlubick@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
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
2025-10-19 14:15:33 +00:00
engine-flutter-autoroll
d3aa0671c2
Roll Fuchsia Linux SDK from M8WT2GMY46e_0fFho... to tKrvmvTOQITL81oOC... (#177223)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter
Please CC codefu@google.com,zra@google.com on the revert to ensure that
a human
is aware of the problem.

To file a bug in Flutter:
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
2025-10-19 08:27:29 +00:00
engine-flutter-autoroll
646e0c7dc0
Roll Skia from 0992b560454f to b864c56efb66 (1 revision) (#177222)
https://skia.googlesource.com/skia.git/+log/0992b560454f..b864c56efb66

2025-10-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 1aa265990b48 to 441bfe958de2 (2 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC codefu@google.com,jmbetancourt@google.com,kjlubick@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
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
2025-10-19 07:05:26 +00:00
Matt Boetger
8b7310e07f
Fix HEIF decoding (#176860)
Fixing two HEIF decoding issues on Android:

API 36: ImageDecoder has a known issue decoding HEIF images with certain
gain maps. Image won't load. The workaround is to use BitmapFactory
instead.

Pre-36: HEIF Flipping did not work.  Image is upside.

|  |Before | After |
|---|---|---|
| Api 36 | <img width="320" height="714"
alt="Screenshot_20251010_151132"
src="https://github.com/user-attachments/assets/c1f48e0e-def8-4d8e-9847-c2ca9dac16e4"
/> | <img width="320" height="714" alt="Screenshot_20251010_150551"
src="https://github.com/user-attachments/assets/f0df1d19-3a5d-4751-b529-1e062a0af48c"
/> |
| Pre Api 36 | <img width="320" height="714"
alt="Screenshot_20251010_150752"
src="https://github.com/user-attachments/assets/9291d76b-d383-49d5-b9d7-add8bbf33e59"
/> | <img width="320" height="714" alt="Screenshot_20251010_150703"
src="https://github.com/user-attachments/assets/814454dc-d97a-4baf-9a8c-d9b5fe6ac51e"
/> |

Fixes: #176407

## 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.

---------

Co-authored-by: Gray Mackall <mackall@google.com>
2025-10-18 22:01:25 +00:00
engine-flutter-autoroll
8f728ad442
Roll Skia from 74df18176924 to 0992b560454f (1 revision) (#177217)
https://skia.googlesource.com/skia.git/+log/74df18176924..0992b560454f

2025-10-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 85181c2b91b2 to 1aa265990b48 (4 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC codefu@google.com,kjlubick@google.com,thomsmit@google.com on
the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
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
2025-10-18 17:05:35 +00:00
engine-flutter-autoroll
891d7d5392
Roll Skia from b4981b621a54 to 74df18176924 (1 revision) (#177204)
https://skia.googlesource.com/skia.git/+log/b4981b621a54..74df18176924

2025-10-18
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC codefu@google.com,kjlubick@google.com,thomsmit@google.com on
the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
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
2025-10-18 08:20:40 +00:00
engine-flutter-autoroll
3320dff0cd
Roll Fuchsia Linux SDK from ZHuhfPyyV-LcKDLRh... to M8WT2GMY46e_0fFho... (#177200)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter
Please CC codefu@google.com,zra@google.com on the revert to ensure that
a human
is aware of the problem.

To file a bug in Flutter:
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
2025-10-18 04:36:25 +00:00
davidhicks980
01613032be
[material/dropdown_menu.dart] Refactor _RenderDropdownMenuBody.computeDryLayout (#176503)
_RenderDropdownMenuBody.computeDryLayout accesses this.constraints, but
it should only access the constraints parameter passed into
computeDryLayout. This PR removes this.constraints access.

<img width="621" height="73" alt="image"
src="https://github.com/user-attachments/assets/495573e3-3b91-4091-8a7c-76594c98e22f"
/>

Also, I removed a line in which the child's offset is being set in
computeDryLayout. This appears to be an error:
<img width="402" height="56" alt="image"
src="https://github.com/user-attachments/assets/0045761d-c958-451b-a6ec-cbdf0fe7bd09"
/>

Finally, I'm curious whether there is a reason why only the first child
is being used to set the height?

Resolves https://github.com/flutter/flutter/pull/176494

Blocking https://github.com/flutter/flutter/pull/176494

## 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
2025-10-18 04:22:08 +00:00
engine-flutter-autoroll
204de75f0b
Roll Skia from 579c72d673dd to b4981b621a54 (2 revisions) (#177199)
https://skia.googlesource.com/skia.git/+log/579c72d673dd..b4981b621a54

2025-10-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 5f4499eff7b1 to 85181c2b91b2 (9 revisions)
2025-10-17
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC codefu@google.com,kjlubick@google.com,thomsmit@google.com on
the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
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
2025-10-18 02:29:36 +00:00
engine-flutter-autoroll
22f3f4cc03
Roll Skia from 89a8bc508a7c to 579c72d673dd (15 revisions) (#177194)
https://skia.googlesource.com/skia.git/+log/89a8bc508a7c..579c72d673dd

2025-10-17 thomsmit@google.com Revert "Update CanvasKit to have
immutable Path objects"
2025-10-17 thomsmit@google.com Revert "Make SkPath immutable on GN
build"
2025-10-17
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-10-17 bungeman@google.com Fix DMSrcSink choice of PNG encoder
2025-10-17 bungeman@google.com SG slides to fScene->revalidate when
needed
2025-10-17 kjlubick@google.com Make SkPath immutable on GN build
2025-10-17 robertphillips@google.com [graphite] Conditionalize call to
prepareForReturnToCache
2025-10-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from d7da3806ac80 to 5f4499eff7b1 (4 revisions)
2025-10-17
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-10-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from 3add1bfa10cd to 012c4998642a (21 revisions)
2025-10-17
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-10-17
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-10-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia
Infra from 97b75fbdfdf0 to 9602f241b417 (7 revisions)
2025-10-16 mike@reedtribe.org Use pathdata to transform in drawPath
2025-10-16 kjlubick@google.com Update CanvasKit to have immutable Path
objects

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC codefu@google.com,kjlubick@google.com,thomsmit@google.com on
the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
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
2025-10-17 23:50:08 +00:00
Paul Berry
3535a0f255
[test_fixes] Enable deprecated_member_use_from_same_package. (#177183)
I will shortly be landing a change to the dart analyzer that removes the
`deprecated_member_use_from_same_package` hint (see
https://dart-review.googlesource.com/c/sdk/+/455541). This hint has been
deprecated for a long time in favor of the lint of the same name, with
the rationale being that most users probably don't want to see a warning
if they refer to their own deprecated APIs; they only want to see a
warning if they refer to other packages' deprecated APIs.

The tests in `packages/flutter/test_fixes` are an exception, though.
They exist inside the `flutter` package, and their purpose is to verify
that `dart fix` will properly apply fixes based on deprecated APIs in
the `flutter` package. So when the hint is removed, the tests will need
the `deprecated_member_use_from_same_package` lint enabled in order to
keep functioning.

Users of flutter will not need to enable this lint in order for receive
fixes for deprecations in the `flutter` package, because their code is
not inside the `flutter` package. So there should be no user-visible
impact.

<!--
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
-->

## 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].
- [ ] 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].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [ ] 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
2025-10-17 23:38:20 +00:00
Hannah Jin
68cddc9bf5
[a11y] fix table semantics cache for cells (#177073)
will fix https://github.com/flutter/flutter/issues/170575 
The issue is caused by: 

when caching the cell wrapper semantics nodes in table, it's using cell
index to cache them in a map. But the cell index class was not set to
immutable and override the `==`, so the cache logic was wrong, they were
always creating new semantics nodes for cell wrapper.

fixing this by fixing the index class to an immutable value type with
proper == and hashCode




## 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.

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
2025-10-17 22:26:28 +00:00
Mouad Debbar
f94a942186
[web] Self-cleaning service worker (#176834)
Introduce a self-cleaning service worker to replace the old one.

Previous attempts (https://github.com/flutter/flutter/pull/170918,
https://github.com/flutter/flutter/pull/173609) had (accidentally?)
disabled the loading of the service worker in `flutter.js`. This PR
preserves the logic for loading the service worker, and it prints a
deprecation warning.

Towards https://github.com/flutter/flutter/issues/156910
Closes https://github.com/flutter/flutter/issues/106225
2025-10-17 21:18:29 +00:00
engine-flutter-autoroll
0c55239b75
Manual roll Skia from 2d9df7c70b6f to 89a8bc508a7c (24 revisions) (#177182)
Manual roll requested by jsimmons@google.com

https://skia.googlesource.com/skia.git/+log/2d9df7c70b6f..89a8bc508a7c

2025-10-16 kjlubick@google.com Speculative fix for flaky dawn builds
2025-10-16
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-10-16 bungeman@google.com Use SkCanvas::baseRecorder for
SkImage::isValid
2025-10-16 lukasza@chromium.org [rust png] Add
`SkDynamicMemoryWStream::detachAsVector` method.
2025-10-16 mike@reedtribe.org Refactor makeTransform() so it can be a
factory as well
2025-10-16
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-10-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from a3749d19263e to d7da3806ac80 (3 revisions)
2025-10-16 jsimmons@google.com In
TextLine::getGlyphPositionAtCoordinate, return the last position in the
text if iterateThroughVisualRuns reaches the ellipsis run
2025-10-16 kjlubick@google.com Tidy up SkResolveConvexity
2025-10-16 lukasza@chromium.org [rust png] Support for using
`SkPngRustEncoder` from `SkXPSDevice.cpp`.
2025-10-16 robertphillips@google.com Further restrict the jobs that run
the PersistentPipelineStorageTest
2025-10-16 kjlubick@google.com Have GN shell out to CMake to build Dawn
2025-10-16 bungeman@google.com Treat kGraphiteVulkan_BackendType as
Vulkan
2025-10-16 nicolettep@google.com Disable failing OpenGLES SkSL test on
Pixel10
2025-10-16 michaelludwig@google.com [graphite] Add MappedAllocationInfo
using declaration
2025-10-16 mike@reedtribe.org Change PathRaw to store convexity enum,
not just bool
2025-10-16 kjlubick@google.com Add explicit keyword to many public
single argument constructors
2025-10-16 robertphillips@google.com Miscellaneous code cleanup
2025-10-16
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-10-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from 2027314b341f to 3add1bfa10cd (16 revisions)
2025-10-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn
from 32017614bc6b to 6c7ec7c76611 (23 revisions)
2025-10-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia
Infra from fb1930c766c4 to 97b75fbdfdf0 (6 revisions)
2025-10-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
SwiftShader from e608e2130d25 to 3d536c0fc62b (1 revision)
2025-10-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from c4b9a2688979 to a3749d19263e (3 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC
codefu@google.com,jsimmons@google.com,kjlubick@google.com,thomsmit@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
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
2025-10-17 20:49:16 +00:00
Matthew Kosarek
4f334abe30
Fixing WindowManagerTest::DialogCanNeverBeFullscreen possibly hanging (#177179)
fixes https://github.com/flutter/flutter/issues/177172

I believe the issue is that the struct was not fully initialized (which
is usually not a problem, but can sometimes get garbage values and start
hanging). The solution is probably to initialize the struct. Let's see
if it fixes CI :)

## 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.
2025-10-17 20:33:23 +00:00
Hannah Jin
c2326207bc
[VPAT][A11y][a11y-app] Add a text label to slider. (#177130)
Fix #173008 

Added a visible text label and remove the redundant semantics label.




## 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.

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
2025-10-17 20:06:23 +00:00
engine-flutter-autoroll
38c3741905
Manual roll Dart SDK from a4485e5ef821 to a66f334fee2a (5 revisions) (#177142)
Manual roll requested by jsimmons@google.com

https://dart.googlesource.com/sdk.git/+log/a4485e5ef821..a66f334fee2a

2025-10-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.11.0-30.0.dev
2025-10-16 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.11.0-29.0.dev
2025-10-16 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.11.0-28.0.dev
2025-10-16 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.11.0-27.0.dev
2025-10-15 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.11.0-26.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter
Please CC codefu@google.com,dart-vm-team@google.com,jsimmons@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter:
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

---------

Co-authored-by: Jason Simmons <jsimmons@google.com>
2025-10-17 20:05:13 +00:00
Hannah Jin
16ae36ce20
[web][a11y] Fix the semantics tree reconstruction logic when a subtree is reparented to another node. (#177069)
issue fix: https://github.com/flutter/flutter/issues/175180 
The bug was like this:
1.  a tree like 1--2--3--4
2. remove node 2 and reattach node 3 to 1, the tree is now 1--3--4, it's
correct on the framework side.
3. on the web side, the tree reconstruction logic is wrong and the tree
become 1---3, the node 4 is removed wrongly.


When a node is detached from the tree, but its children node is attached
to a new parent, we need to stop searching the subtree and stop removing
the reparented subtree!
So we need a DFS function that can skip subtree but wont stop the whole
searching.

## 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.

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
2025-10-17 20:04:57 +00:00
Renzo Olivares
6fc3313409
SelectableRegion should use flutter rendered menu on the web for Android and iOS (#177122)
This change updates the default context menu when using
`SelectionArea`/`SelectableRegion` on Android or iOS web.

Previously: the native browser menu would be used.
After this change: the flutter rendered context menu is used.

Fixes https://github.com/flutter/flutter/issues/151468

- [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.

---------

Co-authored-by: Renzo Olivares <roliv@google.com>
2025-10-17 19:07:42 +00:00
Kazbek Sultanov
0ed3ad930d
Refactor: Convert Title widget to StatefulWidget (#176010)
Fix: #176008

The Title widget was previously a `StatelessWidget`. This change
converts it to a `StatefulWidget` to allow it to update the application
switcher description when its `title` or `color` properties change.

- The `_updateChrome` method is introduced to encapsulate the call to
`SystemChrome.setApplicationSwitcherDescription`.
- `initState` now calls `_updateChrome` to set the initial description.
- `didUpdateWidget` checks if `title` or `color` have changed and calls
`_updateChrome` accordingly.
- The `build` method now simply returns `widget.child`.
- Property access in `debugFillProperties` is updated to use
`widget.propertyName`.

<!--
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
-->

*Replace this paragraph with a description of what this PR is changing
or adding, and why. Consider including before/after screenshots.*

*List which issues are fixed by this PR. You must list at least one
issue. An issue is not required if the PR fixes something trivial like a
typo.*

*If you had to change anything in the [flutter/tests] repo, include a
link to the migration guide as per the [breaking change policy].*

## 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

---------

Co-authored-by: Kazbek Sultanov <167094819+kazbek-sultanov-t@users.noreply.github.com>
2025-10-17 19:04:32 +00:00
jesswrd
9f76287ff5
Bump AGP, KGP, Gradle Templates (#176858)
Bumped template versions:

AGP 8.9.1 -> 8.11.0
KGP 2.1.0 -> 2.2.0
Gradle 8.12 -> 8.13

Ran `flutter analyze suggestions` to check for versioning compatability.
Ran `flutter build apk` on a new flutter app to ensure successful build.

## 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.
- [ ] 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
2025-10-17 19:00:26 +00:00
engine-flutter-autoroll
e5c22aa57f
Roll Packages from 835dccb08f2e to 3747006e9eb6 (3 revisions) (#177170)
835dccb08f...3747006e9e

2025-10-16 engine-flutter-autoroll@skia.org Manual roll Flutter from
7cd821c21093 to a873a27309b0 (22 revisions) (flutter/packages#10244)
2025-10-16 stuartmorgan@google.com [local_auth] Adopt structured errors,
and remove `useErrorDialogs` (flutter/packages#9981)
2025-10-16 stuartmorgan@google.com [video_player] Move most Android
event logic to Dart (flutter/packages#10128)

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-flutter-autoroll
Please CC flutter-ecosystem@google.com on the revert to ensure that a
human
is aware of the problem.

To file a bug in Flutter:
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
2025-10-17 17:04:10 +00:00
John "codefu" McDole
cbec6e9846
Mark windows_unopt test as flakey (#177173) 2025-10-17 15:57:53 +00:00
Renzo Olivares
2f110cc7e5
Tapping outside of SelectableRegion should dismiss the selection (#176843)
This PR updates selectable region so it dismisses the selection when a
tap happens outside of it. This is done through the use of `TapRegion`
and it's `onTapOutside` callback.


https://github.com/user-attachments/assets/d5678c85-9d04-4c9c-af16-9a09a001c228

## 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.

---------

Co-authored-by: Renzo Olivares <roliv@google.com>
2025-10-17 02:07:39 +00:00
engine-flutter-autoroll
5187246256
Roll Fuchsia Linux SDK from _dd0Jv50H0oUI2Ad8... to ZHuhfPyyV-LcKDLRh... (#177137)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter
Please CC codefu@google.com,zra@google.com on the revert to ensure that
a human
is aware of the problem.

To file a bug in Flutter:
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
2025-10-17 01:45:11 +00:00
Jason Simmons
a14c7fe6af
Manual roll Dart to a4485e5ef821 (3.11.0-25.0.dev) (#177132)
Includes migration from dart/runtime/bin:dart_io_api to
common_embedder_dart_io
2025-10-17 01:37:10 +00:00
Ahmed Mohamed Sameh
180c5b6b4c
Make sure that a MenuAcceleratorLabel doesn't crash in 0x0 environment (#176646)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the
MenuAcceleratorLabel widget.

Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
2025-10-17 01:35:29 +00:00
Ahmed Mohamed Sameh
fd2b1bc720
Make sure that a NavigationRail doesn't crash in 0x0 environment (#177022)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the NavigationRail
widget.
2025-10-16 22:07:52 +00:00
Ahmed Mohamed Sameh
4f7d2652c5
Make sure that a SubmenuButton doesn't crash in 0x0 environment (#176535)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the SubmenuButton
widget.
2025-10-16 21:58:00 +00:00
André
66913c2155
Fix typo in ButtonBar documentation (#177078)
Changed "replace" to "replaced"

_[ButtonBar] has been **replaced** by a more efficient widget,
[OverflowBar]._

## 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 `///`).
- [ ] 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.
2025-10-16 21:55:37 +00:00
Ahmed Mohamed Sameh
71d49b12c4
Make sure that an InkResponse doesn't crash in 0x0 environment (#175426)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the InkResponse
widget.
2025-10-16 21:55:36 +00:00
jesswrd
a9866bc1f8
[Gradle 9] Resolve Gradle 9 Deprecations in flutter/flutter part 1 (#176865)
Resolving Gradle 9 deprecations in integration tests and tooling.
Basically any Android project that is not in the engine.

I had to bump AGP to 8.11.0 (and subsequently bump gradle and KGP)
because lower versions include features that are deprecated in Gradle 9.

Partially Addresses https://github.com/flutter/flutter/issues/173321
Partially Addresses https://github.com/flutter/flutter/issues/173318

## 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.
- [ ] 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
2025-10-16 20:16:20 +00:00
Reid Baker
eb325fcea0
Revert "Resolve resolve native Flutter dependencies in Android Studio (#167332)" (#177053)
This reverts commit 0c0406a6158eb07d28a70350a22801ee8f6870c9.
Fixes https://github.com/flutter/flutter/issues/177037

I am leaving the method for checking if the build was launched from
android studio.

## 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.
- [ ] 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].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
2025-10-16 20:07:10 +00:00
engine-flutter-autoroll
97670941a3
Manual roll Dart SDK from 2d8e0359a767 to 25b6094026e4 (5 revisions) (#177109)
Manual roll requested by jsimmons@google.com

https://dart.googlesource.com/sdk.git/+log/2d8e0359a767..25b6094026e4

2025-10-14 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.11.0-22.0.dev
2025-10-14 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.11.0-21.0.dev
2025-10-14 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.11.0-20.0.dev
2025-10-13 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.11.0-19.0.dev
2025-10-13 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.11.0-18.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter
Please CC codefu@google.com,dart-vm-team@google.com,jsimmons@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter:
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
2025-10-16 20:05:07 +00:00
Maxence Barroy
8e164a596d
Add textfield prop to SearchAnchor (#174497)
This PR adds support for configuring smartQuotesType and smartDashesType
in SearchAnchor. These values are passed down to the inner TextField,
allowing developers to control smart quotes and smart dashes behavior
consistently when using SearchAnchor

fixes: #174509 

## 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.
2025-10-16 20:03:56 +00:00
KiCheol Kim
4119c700ac
Fix crash when NSAttributedString is passed to insertText on macOS (#176329)
## Description

This PR fixes a crash in the macOS text input plugin that occurs when
`NSAttributedString` is passed to the `insertText:replacementRange:`
method instead of `NSString`.

### Root Cause

The `insertText:replacementRange:` method of `NSTextInputClient`
protocol can receive either `NSString` or `NSAttributedString`. The
previous implementation directly called `UTF8String` on the input
parameter without type checking. Since `NSAttributedString` doesn't
respond to the `UTF8String` selector, this caused a crash with the
error:

-[NSConcreteMutableAttributedString UTF8String]: unrecognized selector
sent to instance

### Changes Made
- Added type checking to determine if the input is `NSAttributedString`
- Extract the underlying `NSString` using `[string string]` before
calling `UTF8String`
- This follows the same pattern already implemented in the
`setMarkedText:selectedRange:replacementRange:` method in the same file

### Crash Stack Trace

Thread 0 Crashed: 0 CoreFoundation __exceptionPreprocess 1
libobjc.A.dylib objc_exception_throw 2 CoreFoundation
-[NSObject(NSObject) doesNotRecognizeSelector:] 3 FlutterMacOS
-[FlutterTextInputPlugin insertText:replacementRange:]
(FlutterTextInputPlugin.mm:784) 4 AppKit
-[NSTextInputContext(NSInputContext_WithCompletion)
insertText:replacementRange:completionHandler:]

## 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

---------

Co-authored-by: Kim Ki Cheol <kim.kicheol@sk.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-10-16 20:00:54 +00:00
Justin McCandless
918767afa0
Correct basque time format (#177031)
Fixes https://github.com/flutter/flutter/issues/176677
2025-10-16 19:59:09 +00:00
gaaclarke
a873a27309
[tool] makes listing a shader also as an asset a build failure (#176866)
fixes https://github.com/flutter/flutter/issues/126829

Turns listing an asset as a `shader` and an `asset` a build error.

## 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
2025-10-16 17:04:30 +00:00
engine-flutter-autoroll
a27b7cda85
Roll Packages from d062181ac465 to 835dccb08f2e (7 revisions) (#177100)
d062181ac4...835dccb08f

2025-10-16 stuartmorgan@google.com [local_auth] Adopt structured errors
and remove useErrorDialogs - platform implementations
(flutter/packages#10147)
2025-10-16 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump org.mockito.kotlin:mockito-kotlin from 6.0.0 to 6.1.0
in /packages/interactive_media_ads/android (flutter/packages#10221)
2025-10-15 engine-flutter-autoroll@skia.org Manual roll Flutter from
e11e2c11288b to 7cd821c21093 (73 revisions) (flutter/packages#10229)
2025-10-15 to.sasovsky@gmail.com [go_router] feat: access GoRouter.of
from redirect methods (flutter/packages#9706)
2025-10-14 1063596+reidbaker@users.noreply.github.com [Many] Migrate non
examples (and pigeon test) to java 17 (flutter/packages#10201)
2025-10-13 49699333+dependabot[bot]@users.noreply.github.com
[dependabot]: Bump com.google.ads.interactivemedia.v3:interactivemedia
from 3.36.0 to 3.37.0 in /packages/interactive_media_ads/android
(flutter/packages#10113)
2025-10-13 10687576+bparrishMines@users.noreply.github.com [pigeon]
Fixes support for Kotlin/Java classes that override equals and hashCode
for ProxyApis (flutter/packages#10039)

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-flutter-autoroll
Please CC flutter-ecosystem@google.com on the revert to ensure that a
human
is aware of the problem.

To file a bug in Flutter:
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
2025-10-16 16:01:09 +00:00
Jason Simmons
bdc27ac952
Handle the new location of Perfetto in create_updated_flutter_deps.py (#177099)
Dart recently moved Perfetto to dart/third_party/perfetto/src (see
https://dart.googlesource.com/sdk/+/07c9599ead52a2eea7164552e9525e3860a3aed5)

This PR extends create_updated_flutter_deps to handle dependencies
placed in an "src" subdirectory within the directory named for the
package.

It also adds a mapping for packages hosted at android.googlesource.com.
(Perfetto no longer needs to be fetched from Flutter's mirror
repository)
2025-10-16 16:24:00 +00:00
Matthew Kosarek
fe409cfca4
Implement dialog windows for the win32 platform (#176309)
## What's new?
- Implemented `DialogWindowControllerWin32` for win32 dialogs 🚀
- Refactored and updated the Win32 embedder to support dialogs
- Updated the `multiple_windows` example to demonstrate both modal and
modeless dialogs
- Added integration tests for the dialog windows
- Added tests for dialogs in the embedder

## How to test?
1. Run the `multiple_windows` example application with a local engine
built from this pull request
2. Click the `Modeless Dialog` creation button on the main window
3. Open a regular window and click the `Modal Dialog` creation button
4. Note the behavior of modal and modeless dialogs

## 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.
2025-10-16 15:32:29 +00:00
Renzo Olivares
666634bffb
SelectableRegion should not show flutter rendered context menu when web context menu is enabled (#176855)
This change fixes an issue where the flutter rendered menu would show up
when ending a drag on a selection handle, even when the web context menu
was enabled. This led to issues where both context menus would show up
leading to a unfavorable experience.

Fixes #175114

## 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.

---------

Co-authored-by: Renzo Olivares <roliv@google.com>
2025-10-16 14:18:21 +00:00
Jason Simmons
17ba56aefc
Manual roll Skia to 2d9df7c70b6f (#177074) 2025-10-16 13:10:38 +00:00
Alex Talebi
908eab56e0
feat: add OptionsViewOpenDirection.mostSpace to RawAutocomplete (#172997)
This PR changes the default value of
`RawAutocomplete.optionsViewOpenDirection` from
`OptionsViewOpenDirection.down` to `OptionsViewOpenDirection.mostSpace`.

When `optionsViewOpenDirection` is set to `mostSpace`, the options view
will open in the direction with the most available space. This behavior
is determined by comparing the space above and below the text field.

The commit also updates the logic for calculating `optionsViewMaxHeight`
and `originY` to handle the new `mostSpace` option, and ensures that the
`switch` statement for `alignment` correctly handles this new case.



https://github.com/user-attachments/assets/8e00318a-bd07-402b-b516-543740cd5c26



fixes #101620 


## 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

---------

Signed-off-by: Alex Tz <31685655+SalehTZ@users.noreply.github.com>
Co-authored-by: Victor Sanni <victorsanniay@gmail.com>
2025-10-16 00:18:40 +00:00