26349 Commits

Author SHA1 Message Date
Emmanuel
d20a814fcb
Add RenderSliver.getMaxPaintRect (#180074)
This PR extracts the `getMaxPaintRect` logic into a shared method in
`RenderSliver`. This helper is required for upcoming changes in #179003
and #179802 to avoid code duplication.

Cc @Piinks 

## 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.
2026-01-21 00:42:23 +00:00
Ahmed Mohamed Sameh
7401f6a7b0
Make sure that a Form doesn't crash in 0x0 environment (#180792)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the Form widget.

Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
2026-01-20 23:27:29 +00:00
Ahmed Mohamed Sameh
93ef5e43be
Make sure that an AnimatedSwitcher doesn't crash in 0x0 environment (#180190)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the AnimatedSwitcher
widget.

---------

Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
Co-authored-by: Victor Sanni <victorsanniay@gmail.com>
2026-01-20 23:08:22 +00:00
Mairramer
c6fad7ac6d
Add leadingIndex to CarouselController and onItemChanged to CarouselView (#180667)
Adds a `leadingIndex` property to CarouselController and an
`onItemChanged` callback to CarouselView.
Closes #169207

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

<!-- 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
2026-01-20 21:19:17 +00:00
Tong Mu
5d93b2e71b
Improve the algorithm for rounded superellipse paths to work better at very large ratio (#180453)
This PR uses a new algorithm that approximates the superellipse curve
with two conic curves, instead of one cubic curves. This algorithm works
much better at very large ratio. Fixes
https://github.com/flutter/flutter/issues/179875 .

A new playground is added in this PR to show enlarged corner of a
rounded superellipse at very large ratio and compares its path version
and filled version.

<details>
<summary>
For comparison: The best result possible with one cubic curve
</summary>

As the following video shows, the flat segment of the superellipse curve
is the hardest to approximate, since most of its curvature happens near
the right end. The best that a single cubic curve can do is close to a
straight line.


https://github.com/user-attachments/assets/2ed1666d-f96c-4465-9d5c-1f8f4a660bba

Although the largest deviation is only ~1e-6, the "feeling" from the
lack of curvature is sensible as shown in the following screenshot.

<img width="476" height="543" alt="image"
src="https://github.com/user-attachments/assets/6e6b96ed-80b3-487c-b621-3cddd4537ec0"
/>

</details>

**Result after this PR:**


https://github.com/user-attachments/assets/d0012e62-f61f-4d69-95a5-27646c0bb750

The following screenshot shows the reproduction app as commented in
https://github.com/flutter/flutter/issues/179875#issuecomment-3672426282
after the PR:

<img width="476" height="543" alt="image"
src="https://github.com/user-attachments/assets/d93b83be-a9fc-4b25-aca2-0e2c3f9a7e56"
/>

For comparison, the following screenshot shows the same shape drawn as
filled:

<img width="476" height="543" alt="image"
src="https://github.com/user-attachments/assets/bf94a20a-278b-42a2-9162-5aa4a61915af"
/>

**Before the PR:**
<img width="1024" height="796" alt="image"
src="https://github.com/user-attachments/assets/053cc229-01f1-4181-97a6-48b96bf16fcf"
/>

Also, a new golden test:
<img width="2400" height="1800" alt="image"
src="https://github.com/user-attachments/assets/6e741066-89a3-4282-bdc2-fa02b1eea14d"
/>


## 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
2026-01-20 18:36:24 +00:00
aaazlkm
1d70a351c9
Enhance Hero widget with customizable animation curves (#180100)
<!--
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
-->

Follow-up to #159393 (closed due to inactivity).
Implements the same feature with changes based on the previous review
feedback.

Related issue: https://github.com/flutter/flutter/issues/26150

## Screenshot

Using elasticOut because the difference was hard to see with
fastOutSlowIn.
<table>
  <tr>
    <th>curve=elasticOut, reverseCurve=null</th>
    <th>curve=elasticOut, reverseCurve=linear</th>
  </tr>
  <tr>
    <td>
<video
src="https://github.com/user-attachments/assets/c8c39fb0-e677-471e-ac2a-2a062277ae48"
             controls muted loop width="320"></video>
    </td>
    <td>
<video
src="https://github.com/user-attachments/assets/1f39d0a8-ed80-4404-b766-38844cca3909"
             controls muted loop width="320"></video>
    </td>
  </tr>
</table>

## 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].
- [ ] 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
2026-01-20 16:50:50 +00:00
Sigurd Meldgaard
3c06bb535e
Allowlist for dependencies of sdk packages (#180740)
This test will highlight any accidentally introduced external
dependency.

A similar check already exist for flutter/packages:


952418ded4/script/tool/lib/src/pubspec_check_command.dart (L588-L608)

This change is intended to reduce the risk of
https://flutter.dev/go/unpin-flutter-sdk-dependencies, but is useful on
its own even if we never implement unpinning.

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-20 08:49:59 +00:00
Huy
552708f399
Fix test cross-imports for ListTile (#180572)
- A part of https://github.com/flutter/flutter/issues/177415
- In this PR:
- Build a minimal TestListTile widget in `list_tile_test_utils.dart`.
It's basically a Container with necessary properties like min height,
padding, onTap callback with `HitTestBehavior.opaque` to illustrate
InkWell used in ListTile.
- Replace material ListTile widget with TestListTile for all appearances
in `packages/flutter/test/widgets`

## 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: huycozy <huy@nevercode.io>
2026-01-20 03:16:22 +00:00
Ben Konyi
b74475af9d
[ Widget Preview ] Fix crash when @Preview annotations appeared outside of lib/ (#180768)
The widget preview scaffold requires that previews are defined within
importable libraries. Since Dart does not support absolute paths for
imports or relative imports outside of the project, it's not possible
for the widget previewer to display previews defined outside of `lib/`.

This change updates the preview detector to ignore libraries that don't
have a package name (e.g., libraries under `test/`) and updates
`packageName` properties to not allow for null to make it clear that
package names are required for previews.

Fixes https://github.com/flutter/flutter/issues/178651
2026-01-19 17:57:10 +00:00
Navaron Bracke
906ffa3a2c
remove unused divider (#180990)
This PR removes a single Divider from one test, since it was not adding
anything noteworthy to the test.

Part of https://github.com/flutter/flutter/issues/177415
Part of https://github.com/flutter/flutter/issues/180501

## 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
2026-01-18 10:30:09 +00:00
Navaron Bracke
3d4e28e34e
Remove MaterialButtons and Divider from draggable_scrollable_sheet_test.dart (#180996)
This PR removes the MaterialButtons and Divider from
test/widgets/draggable_scrollable_sheet_test.dart
I also replaced some usages of WidgetsApp that did not use
`WidgetsApp(home: home)` with MaterialApp.
These usages can be replaced once
https://github.com/flutter/flutter/pull/180456 provides
`TestWidgetsApp`.

Part of https://github.com/flutter/flutter/issues/177415
Part of https://github.com/flutter/flutter/issues/180501

## 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
2026-01-18 10:28:35 +00:00
Ikramul Hasan
80d48a721f
fix: clip ink highlights in NavigationDrawer when footer is present (#181050)
Fixes: #180233 

| Before | After |
|--------|-------|
| <img width="498" height="459" alt="image"
src="https://github.com/user-attachments/assets/9b301178-0f3f-4dfb-89d7-30e9bdc7442a"
/> | <img width="640" height="607" alt="image"
src="https://github.com/user-attachments/assets/13a15f70-32df-42fd-ab14-56629de0a004"
/> |


## 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 `///`).
- [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.
2026-01-17 01:55:21 +00:00
Navaron Bracke
e561a9fb82
Remove divider from widgets tests (#180999)
This PR removes `Divider` usages from
`test/widgets/scroll_view_test.dart` and
`test/widgets/list_view_test.dart`.
Usages of `Divider()` still exist under `examples/api` and in code
samples under `lib/widgets`, though.

Part of https://github.com/flutter/flutter/issues/177415
Part of https://github.com/flutter/flutter/issues/180501

*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
2026-01-17 01:46:22 +00:00
Mairramer
610a1c0cae
Fix vertical SegmentedButton not filling available width under bounded constraints (#180701)
Fixes an issue where vertical segments used intrinsic width instead of
expanding to fill the parent's bounded width, resulting in narrow tap
targets.

Fixes [#178901](https://github.com/flutter/flutter/issues/178901)

## 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 `///`).
- [x] 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.
- [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
2026-01-17 00:56:49 +00:00
Navaron Bracke
74f162d189
clean up usages of resetXyz for TestFlutterView (#180840)
While reviewing https://github.com/flutter/flutter/pull/180728 we
noticed that usage of `TestFlutterView.resetXyz()` was quite liberal and
some places benefit from using `TestFlutterView.reset()`, to avoid
repetition.

This PR cleans that up.

## 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.
- [ ] 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
2026-01-17 00:53:56 +00:00
David Bebawy
99e01e108a
fix(windows): use wcsnlen for defensive programming (CWE-126) (#180419)
## Description

This PR replaces `wcslen` with `wcsnlen` in the Windows runner template
and all example/dev/integration test files to address CWE-126 (Buffer
Over-read) flagged by static analysis tools (Semgrep/GitLab SAST).

## Changes

The `Utf8FromUtf16` function now uses `wcsnlen` with the
`UNICODE_STRING_MAX_CHARS` constant (32767) as the maximum length,
providing defensive programming against potential buffer over-reads.

**Key improvements:**
1. Calculate `input_length` **first** using `wcsnlen(utf16_string,
UNICODE_STRING_MAX_CHARS)`
2. Use that bounded length for **both** `WideCharToMultiByte` calls
(eliminates the `-1` unbounded read)
3. Remove the `-1` adjustment since explicit length excludes null
terminator
4. Use `static_cast` instead of C-style casts per Google C++ Style Guide

## Test Coverage

Added comprehensive edge case tests for `Utf8FromUtf16` in
`windows_startup_test`:
- **nullptr input**: Verifies function returns empty string
- **Empty string input**: Verifies function returns empty string  
- **Invalid UTF-16 (unpaired surrogate)**: Verifies function handles
malformed input gracefully

These tests address reviewer feedback from @loic-sharma requesting
coverage for corner cases.

## Files Updated

**Template (source of truth):**
- `packages/flutter_tools/templates/app/windows.tmpl/runner/utils.cpp`

**Integration tests (4 files):**
- `dev/integration_tests/flutter_gallery/windows/runner/utils.cpp`
- `dev/integration_tests/ui/windows/runner/utils.cpp`
- `dev/integration_tests/windowing_test/windows/runner/utils.cpp`
- `dev/integration_tests/windows_startup_test/windows/runner/utils.cpp`

**Examples and dev apps (10 files):**
- `examples/hello_world/windows/runner/utils.cpp`
- `examples/layers/windows/runner/utils.cpp`
- `examples/platform_view/windows/runner/utils.cpp`
- `examples/flutter_view/windows/runner/utils.cpp`
- `examples/platform_channel/windows/runner/utils.cpp`
- `examples/api/windows/runner/utils.cpp`
- `examples/multiple_windows/windows/runner/utils.cpp`
- `dev/manual_tests/windows/runner/utils.cpp`
- `dev/benchmarks/complex_layout/windows/runner/utils.cpp`
- `dev/a11y_assessments/windows/runner/utils.cpp`

**Test files (4 files):**
-
`dev/integration_tests/windows_startup_test/windows/runner/flutter_window.cpp`
- `dev/integration_tests/windows_startup_test/lib/main.dart`
- `dev/integration_tests/windows_startup_test/lib/windows.dart`
-
`dev/integration_tests/windows_startup_test/test_driver/main_test.dart`

## Rationale

While the Windows API guarantees null-termination for strings returned
by `CommandLineToArgvW`, using `wcsnlen` with an explicit bound is a
defensive programming best practice that:
- Satisfies static analysis tools
- Provides an extra safety layer
- Follows the principle of defense in depth

The limit of 32767 (`UNICODE_STRING_MAX_CHARS`) is the maximum length of
a `UNICODE_STRING` structure and is far beyond any realistic
command-line argument length.

## Related Issues

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

## 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 labeled this PR with
`severe: API break` if it contains a breaking change.
- [x] All existing and new tests are passing.

[Contributor Guide]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[breaking change policy]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#breaking-changes
2026-01-16 18:21:15 +00:00
Jason Simmons
6159a34a6f
Manual roll of pub packages including an update to meta version 1.18.0 (#181078)
See
https://github.com/flutter/flutter/issues/180503#issuecomment-3759624477
2026-01-16 17:12:33 +00:00
flutter-pub-roller-bot
f89275a408
Roll pub packages (#181054)
This PR was generated by `flutter update-packages --force-upgrade`.
2026-01-16 02:28:01 +00:00
Onnimanni Hannonen
df73099467
Implement superellipse support for CupertinoFocusHalo (#180724)
This PR closes #180719

Related to
[this](https://github.com/flutter/flutter/pull/179224#discussion_r2669696069)
and
[this](https://github.com/flutter/flutter/pull/179225#discussion_r2637744198).

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

<!-- 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
2026-01-15 07:30:33 +00:00
Qun Cheng
518addc0dd
Update localizations from translation console (#180997)
Some new strings were added to the **widgets** layer(like "Search
results found", "no results found" and etc.) but never got translated
for a long time. Since the issue in g3 has been fixed and the
translation in g3 has finished, this PR is to back-integrate the
translation to framework.

This PR doesn't run the date_localization script. Will update it in a
separate PR.

## 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.
2026-01-15 02:55:21 +00:00
Jon Mountjoy
bc0ef2c81e
Add RouteSettings to showCupertinoSheet (#178643)
This PR adds missing RouteSettings to `showCupertinoSheet`

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

## 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: Tong Mu <dkwingsmt@users.noreply.github.com>
2026-01-15 00:40:08 +00:00
Ben Konyi
8af18377be
[ Tool ] Ensure flutter.version.json is regenerated on upgrade (#180857)
The tool performs various checks to determine whether or not to
regenerate version information as part of a `flutter upgrade` instead of
just regenerating `flutter.version.json` as part of each `flutter
upgrade`. This has lead to some situations where the actual framework
version doesn't match that reported by the `flutter.version.json`.

This change updates `flutter upgrade` to always regenerate
`flutter.version.json` after checking out the new version of the
framework to ensure that it contains the latest version information.

Fixes https://github.com/flutter/flutter/issues/178926
2026-01-14 20:11:00 +00:00
flutter-pub-roller-bot
d6af20551e
Roll pub packages (#180977)
This PR was generated by `flutter update-packages --force-upgrade`.
2026-01-14 18:05:45 +00:00
Kostia Sokolovskyi
5e417dc812
Fix RangeSlider dragged cursor handling. (#179988)
Fixes #179987

### Description
- Fixes dragged cursor handling in `RangeSlider`
- Replaces `MaterialState` occurrences with `WidgetState`
- Updates tests to ensure that all cases are covered

| Before | After |
| - | - |
| <video
src="https://github.com/user-attachments/assets/756b01e0-e52b-4280-af5e-ef02a6081855"
/> | <video
src="https://github.com/user-attachments/assets/5bd37714-740d-4056-ac7d-b57773a89e62"
/> |

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

<!-- 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
2026-01-14 14:58:57 +00:00
flutter-pub-roller-bot
4a42c23a85
Roll pub packages (#180928)
This PR was generated by `flutter update-packages --force-upgrade`.
2026-01-13 22:13:08 +00:00
Victoria Ashworth
d316469e1d
Add Flutter as a Swift Package dependency (#178931)
The main purpose of this PR is to add the Flutter framework as a Swift
Package dependency. As such, Xcode will now handle the copying,
thinning, and codesigning of the framework and therefore the Flutter
Xcode Run Scripts shouldn't.

This will allow plugins to declare a dependency on the Flutter framework
package and eliminate the need for the Pre-Action "prepare" script.

This PR does not technically make the Flutter framework a local package
override, that will be added in a follow up PR:
https://github.com/flutter/flutter/pull/179512

This change includes:
* Generation of the FlutterFramework swift package (this will generate a
Package.swift and symlink to the Flutter framework in the artifact
cache)
<img width="400" height="271" alt="Screenshot 2025-12-04 at 4 54 43 PM"
src="https://github.com/user-attachments/assets/6cfde6da-3698-4b76-b3b1-725f91fbf58d"
/>
* Adding the FlutterFramework as a dependency to the
FlutterGeneratedPluginSwiftPackage (which the the Swift package the
Xcode project has a dependency on)
<img width="400" height="195" alt="Screenshot 2025-12-04 at 4 55 13 PM"
src="https://github.com/user-attachments/assets/30fa402a-6a11-4df0-b2cd-a4a82197e50a"
/>

### Change to Flutter Run Scripts
Flutter currently has 3 Xcode Run Scripts:
* prepare (happens in a scheme pre-action)
* [PREVIOUS] Via `flutter assemble` - copies the Flutter framework from
engine build cache to `BUILT_PRODUCTS_DIR`
* [NEW] Same as previous except skips codesigning. This is still
included to accommodate plugins that don't have a dependency declared on
the Flutter framework.
* build (happens in first Run Script in the Xcode build phases that
happens before compiling)
* [PREVIOUS] Via `flutter assemble` - copies, thins, and codesigns
Flutter framework into `BUILT_PRODUCTS_DIR`
  * [NEW] Is skipped, Xcode now does this
* embed_and_thin (happens in second Run Script in the Xcode build phases
after compiling, linking, and embedding)
* [PREVIOUS] Copies Flutter framework from `BUILT_PRODUCTS_DIR` to
`TARGET_BUILD_DIR`
  * [NEW] 
* Validates Flutter framework in `BUILT_PRODUCTS_DIR` &
`TARGET_BUILD_DIR` (which would have been put there by Xcode via
SwiftPM) matches the Flutter framework in the engine cache.
    * If it matches, do not copy. Xcode now does this.
    * If it doesn't:
* Call `flutter assemble` to copy the correct Flutter framework into
`BUILT_PRODUCTS_DIR`
      * Then copy from `BUILT_PRODUCTS_DIR` to `TARGET_BUILD_DIR`.

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

## 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
2026-01-13 17:58:58 +00:00
Ahmed Mohamed Sameh
48c247582e
Make sure that a FocusScope doesn't crash in 0x0 environment (#180715)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the FocusScope
widget.
2026-01-13 17:45:17 +00:00
Ben Konyi
d47b499157
[ Tool ] Handle DartDevelopmentServiceException when launching web applications (#180905)
DWDS can throw `DartDvelopmentServiceException` if DDS fails to connect
to DWDS due to the target application shutting down immediately after
launch.

This change adds logic to catch this exception and exit gracefully.

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

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-13 17:41:57 +00:00
flutter-pub-roller-bot
b45a73b1dc
Roll pub packages (#180900)
This PR was generated by `flutter update-packages --force-upgrade`.
2026-01-13 16:16:56 +00:00
Ahmed Mohamed Sameh
7e176f8c3f
Make sure that an ErrorWidget doesn't crash in 0x0 environment (#180830)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the ErrorWidget
widget.
2026-01-13 16:12:57 +00:00
Ahmed Mohamed Sameh
beb57ada90
Make sure that a Banner doesn't crash in 0x0 environment (#180254)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the Banner widget.

Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
2026-01-13 16:11:26 +00:00
Huy
fa41ee32cb
Add TabBar API example for scroll notification integration (#180728)
- A part of: https://github.com/flutter/flutter/issues/123965
- Description: This PR adds an example that came from
https://github.com/flutter/flutter/issues/123965#issuecomment-3722456594
as a workaround. I bring it into an API example so that users can find
it easier.
The example showcases how to apply custom behavior based on the scroll
in TabBar. It utilizes scroll notifications (ScrollMetricsNotification
and ScrollNotification) within NotificationListener callback to monitor
the scroll offset, allowing for interface customization based on the
obtained offset.

<details open>
<summary>Demo</summary>


https://github.com/user-attachments/assets/75999f31-e468-4bba-9c14-bf4f3c8fcd9a

</details>

## 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: huycozy <huy@nevercode.io>
2026-01-13 16:07:02 +00:00
Ahmed Mohamed Sameh
793b0b89e8
Make sure that a FormField doesn't crash at 0x0 environment (#180810)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the FormField widget.
2026-01-13 16:05:42 +00:00
Ahmed Mohamed Sameh
44fc0a77e8
Make sure that a DisplayFeatureSubScreen doesn't crash in 0x0 environ… (#180357)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the
DisplayFeatureSubScreen widget.

Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
2026-01-13 16:04:07 +00:00
Michael Goderbauer
96fc83154d
Manually roll test dependencies (#180886)
Manually updating test dependencies because the pub autoroller seems
busted, https://github.com/flutter/flutter/issues/180503.

This one required manually updating the pubspec files because `flutter
update-packages --force-upgrade` also seemed unable to deal with the
fact that multiple dependencies across packages had to be updated in
sync. There's probably also something broken with the `flutter
update-packages` command. This is something that used to work.
2026-01-13 14:11:10 +00:00
Augusto César Perin
404221c326
Fix RawAutocomplete unmounted crash during async optionsBuilder (#180824)
Adds a mounted check after the async optionsBuilder call to prevent
accessing state on an unmounted widget.

Fixes #170403

## 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
2026-01-12 19:32:46 +00:00
GowsikRaja
cccf0f1977
Add API sample and docs for Expansible widget (#180273)
This PR adds an API example demonstrating how to use the Expansible
widget,
including programmatic control via ExpansibleController.

Changes included:
- Added a Material API example for Expansible
- Added a widget test for the API example
- Added documentation comments linking to the example

This addresses the request for improved Expansible documentation and
usage
examples.

Fixes #178698
2026-01-12 17:54:38 +00:00
Ben Konyi
4e92c27d57
[ Tool ] Fix flutter run -d all crash (#180845)
661b8edef229499c0a919f4fd6ceebf935529243 introduced changes related to
build hooks that made assumptions about the value of the detected target
platform, effectively restricting `flutter run` to targeting single
devices.

This change fixes the regression which prevented developers from
deploying their application to multiple devices with `flutter run -d
all`.

Fixes https://github.com/flutter/flutter/issues/179857
2026-01-12 17:35:40 +00:00
chunhtai
d81cd3e6f6
Migrate doc and code to use sendAnnounce (#180776)
<!--
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
-->

as title

## 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
2026-01-12 17:32:54 +00:00
Ahmed Mohamed Sameh
4b5de7dbfc
Make sure that a FlutterLogo doesn't crash in 0x0 environment (#180617)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the FlutterLogo
widget.
2026-01-12 04:32:33 +00:00
Ahmed Mohamed Sameh
eb95ba422b
Make sure that a CupertinoTabScaffold doesn't crash in 0x0 environment (#179824)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the
CupertinoTabScaffold widget.

---------

Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
Co-authored-by: Victor Sanni <victorsanniay@gmail.com>
2026-01-10 03:07:23 +00:00
Ahmed Mohamed Sameh
5566fdd30c
Make sure that a Container doesn't crash in 0x0 environment (#180350)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the Container widget.

Co-authored-by: Victor Sanni <victorsanniay@gmail.com>
2026-01-10 01:05:19 +00:00
Ahmed Mohamed Sameh
4b3f1d599f
Make sure that an Expansible doesn't crash in 0x0 environment (#180478)
This is my attempt to handle
https://github.com/flutter/flutter/issues/6537 for the Expansible
widget.

Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
Co-authored-by: Victor Sanni <victorsanniay@gmail.com>
2026-01-10 01:05:19 +00:00
Tong Mu
cfb3f18e1d
Merge widget_tester_leaks_free_test.dart into widget_tester_test.dart (#180600)
When https://github.com/flutter/flutter/pull/176519 was authored, there
were no CI shards that run `flutter_test` with leak tests, and therefore
the test had to be placed in a separate file. Now that
https://github.com/flutter/flutter/pull/176992 has added misc leak
tracking, the test case can be placed in the same file as other tests
for `WidgetTester`.

## 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
2026-01-09 23:59:44 +00:00
John "codefu" McDole
1ccfb37b0f
fix: there are no riscv fuchsia artifacts (#180779)
In #178711, `packages/flutter_tools/lib/src/flutter_cache.dart` was
updated to add 'riscv' downloading in the `FlutterRunnerDebugSymbols`.
This class is not well named and is responsible for downloading "the
debug symbols for flutter runner for Fuchsia development."

We do not produce fuchsia riscv.

Fixes #180775
2026-01-09 23:47:35 +00:00
Hannah Jin
5d37c99f13
[A11y ] Add clearSemanticsin table (#180665)
According to comments in `rendering/object.dart`, If new
[SemanticsNode]s are instantiated in [assembleSemanticsNode] they must
be disposed in [clearSemantics].


fix: https://github.com/flutter/flutter/issues/180666 

## 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
2026-01-09 19:40:31 +00:00
Valentin Haudiquet
a3c12e636d
[ Tool ] Add support for linux riscv64 architecture (#178711)
This adds support for buildind desktop linux applications for riscv64 on
the flutter tool, as well as basic riscv64 support for the tool.

This is a first move towards fixing #99963. Along with
https://github.com/flutter/flutter/pull/178712 that allows building an
engine for `riscv64`, this PR allows me to build and run the flutter
'hello world' app on RISC-V hardware:

<img width="1920" height="1080" alt="Screenshot from 2025-11-18
08-58-03"
src="https://github.com/user-attachments/assets/5e90bc7f-49a7-41a8-82b7-5a5d3247938a"
/>

This allows someone who built a flutter engine and exposed it on a
webserver to run commands like:
```
export FLUTTER_STORAGE_BASE_URL=http://your-server-url
flutter
flutter doctor
cd example/hello_world && flutter build linux
```

This means that even if Google does not want to support Flutter on
RISC-V officially (hosting the artifacts), community-managed servers
could host the RISC-V flutter engines/artifacts. It also means that
internally, companies using Flutter on RISC-V would just have to build
their engine and setup such a server, and it allows them to use the
upstream Flutter tool.

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

---------

Co-authored-by: John "codefu" McDole <codefu@google.com>
2026-01-09 19:29:20 +00:00
auto-submit[bot]
0cfc04170d
Reverts "Unpin google_mobile_ads (#180573)" (#180761)
<!-- start_original_pr_link -->
Reverts: flutter/flutter#180573
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: jtmcdole
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: broke in post submit. Requires running the
lockfile generation script

<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: goderbauer
<!-- end_original_pr_author -->

<!-- start_reviewers -->
Reviewed By: {vashworth}
<!-- end_reviewers -->

<!-- start_revert_body -->
This change reverts the following previous change:
Fixes https://github.com/flutter/flutter/issues/156912.

Fly-by clean-up: With the recent bump to Xcode I believe pinning
`google_mobile_ads` is no longer necessary.

I verified locally with `flutter build ios --verbose` that the
`dev/benchmarks/platform_views_layout` build successfully.

<details>
<summary>Build Log</summary>

```
$ flutter build ios 
Resolving dependencies in `/Users/goderbauer/dev/flutter`... 
Downloading packages... 
  _fe_analyzer_shared 89.0.0 (92.0.0 available)
  adaptive_breakpoints 0.1.7 (discontinued)
  analyzer 8.2.0 (9.0.0 available)
  archive 3.6.1 (4.0.7 available)
  device_info 2.0.3 (discontinued replaced by device_info_plus)
  ffigen 18.1.0 (20.1.1 available)
  gcloud 0.8.19 (0.9.0 available)
  googleapis 12.0.0 (15.0.0 available)
  googleapis_auth 1.6.0 (2.0.0 available)
  isolate 2.1.1 (discontinued)
  js 0.7.2 (discontinued)
  metrics_center 1.0.13 (1.0.14 available)
  pedantic 1.11.1 (discontinued replaced by lints)
  petitparser 6.1.0 (7.0.1 available)
  shelf_web_socket 2.0.1 (3.0.0 available)
  xml 6.5.0 (6.6.1 available)
Got dependencies in `/Users/goderbauer/dev/flutter`!
5 packages are discontinued.
11 packages have newer versions incompatible with dependency constraints.
Try `flutter pub outdated` for more information.
Building com.yourcompany.platformViewsLayout for device (ios-release)...
To ensure your app continues to launch on upcoming iOS versions, UIScene lifecycle support will soon be required. Please see https://flutter.dev/to/uiscene-migration for the migration guide.


Warning: Missing build name (CFBundleShortVersionString).
Warning: Missing build number (CFBundleVersion).
Action Required: You must set a build name and number in the pubspec.yaml file version field before submitting to the App Store.
Found saved certificate choice "Apple Development: Michael Goderbauer (WY4DWBNV57)". To clear, use "flutter config --clear-ios-signing-settings".
Developer identity "Apple Development: Michael Goderbauer (WY4DWBNV57)" selected for iOS code signing
Running pod install...                                           1,233ms
Running Xcode build...                                                  
Xcode build done.                                           32.5s
✓ Built build/ios/iphoneos/Runner.app (20.9MB)
```

</details>
<!-- end_revert_body -->

Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2026-01-09 18:27:47 +00:00
Kishimoto
61b241292e
Fix typo in dropdown_menu.dart (#180172)
## Description
Fix typo in dropdown_menu.dart ( fixes
https://github.com/flutter/flutter/issues/180171 )

## 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.
2026-01-09 16:47:07 +00:00
Michael Goderbauer
c1e1dc260f
Unpin google_mobile_ads (#180573)
Fixes https://github.com/flutter/flutter/issues/156912.

Fly-by clean-up: With the recent bump to Xcode I believe pinning
`google_mobile_ads` is no longer necessary.

I verified locally with `flutter build ios --verbose` that the
`dev/benchmarks/platform_views_layout` build successfully.

<details>
<summary>Build Log</summary>

```
$ flutter build ios 
Resolving dependencies in `/Users/goderbauer/dev/flutter`... 
Downloading packages... 
  _fe_analyzer_shared 89.0.0 (92.0.0 available)
  adaptive_breakpoints 0.1.7 (discontinued)
  analyzer 8.2.0 (9.0.0 available)
  archive 3.6.1 (4.0.7 available)
  device_info 2.0.3 (discontinued replaced by device_info_plus)
  ffigen 18.1.0 (20.1.1 available)
  gcloud 0.8.19 (0.9.0 available)
  googleapis 12.0.0 (15.0.0 available)
  googleapis_auth 1.6.0 (2.0.0 available)
  isolate 2.1.1 (discontinued)
  js 0.7.2 (discontinued)
  metrics_center 1.0.13 (1.0.14 available)
  pedantic 1.11.1 (discontinued replaced by lints)
  petitparser 6.1.0 (7.0.1 available)
  shelf_web_socket 2.0.1 (3.0.0 available)
  xml 6.5.0 (6.6.1 available)
Got dependencies in `/Users/goderbauer/dev/flutter`!
5 packages are discontinued.
11 packages have newer versions incompatible with dependency constraints.
Try `flutter pub outdated` for more information.
Building com.yourcompany.platformViewsLayout for device (ios-release)...
To ensure your app continues to launch on upcoming iOS versions, UIScene lifecycle support will soon be required. Please see https://flutter.dev/to/uiscene-migration for the migration guide.


Warning: Missing build name (CFBundleShortVersionString).
Warning: Missing build number (CFBundleVersion).
Action Required: You must set a build name and number in the pubspec.yaml file version field before submitting to the App Store.
Found saved certificate choice "Apple Development: Michael Goderbauer (WY4DWBNV57)". To clear, use "flutter config --clear-ios-signing-settings".
Developer identity "Apple Development: Michael Goderbauer (WY4DWBNV57)" selected for iOS code signing
Running pod install...                                           1,233ms
Running Xcode build...                                                  
Xcode build done.                                           32.5s
✓ Built build/ios/iphoneos/Runner.app (20.9MB)
```

</details>
2026-01-09 15:59:08 +00:00