87653 Commits

Author SHA1 Message Date
Camille Simon
44a626f4f0
Update engine.version for 3.41 stable release (#182118)
Update `engine.version` to Dart version + DEPS update: 3452d735bd

Tests will fail until https://ci.chromium.org/ui/p/dart-internal/builders/flutter/Linux%20flutter_release_builder/1198 completes.

**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.
3.41.0
2026-02-10 18:16:12 +00:00
Camille Simon
ee6345bba6
Add CHANGELOG for 3.41 stable release (#182104)
As the title says :)

**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.
2026-02-10 00:13:40 +00:00
Camille Simon
3452d735bd
Bump Dart version + update DEPS for 3.41 stable release (#182098)
Bump dart revision to 1a420a3f9a and update DEPS. 

**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.
2026-02-09 22:03:17 +00:00
Justin McCandless
af179acb13
Update engine.version for the beta hotfix (#182035)
Following up from updating DEPS in https://github.com/flutter/flutter/pull/181976.
3.41.0-0.3.pre
2026-02-06 23:55:20 +00:00
Justin McCandless
492bf6df86
Update DEPS for 3.41.0-0.3 beta hotfix release (#181976)
There were 2 cherry picks include:

 * https://github.com/flutter/flutter/pull/181732
 * https://github.com/flutter/flutter/pull/181670 (containing latest engine change 0aafd14efaa95e7adb8bd23bf442bf19b2a669b4)
2026-02-06 20:48:36 +00:00
flutteractionsbot
0aafd14efa
[CP-beta]Send statusBarTouch events via dedicated messages (#181670)
This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.

### Issue Link:
What is the link to the issue this cherry-pick is addressing?

https://github.com/flutter/flutter/issues/177992
https://github.com/flutter/flutter/issues/175606

### Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)?
Does it impact development (ex. flutter doctor crashes when Android Studio is installed),
or the shipping of production apps (the app crashes on launch).
This information is for domain experts and release engineers to understand the consequences of saying yes or no to the cherry pick.

The issues listed above impact app users. For instance #177992 prevents the user from interacting with hamburger menus on iPadOS 26.1+ for context, this probably has always been an issue but on iPadOS 26.1 the height of the status bar became taller so it gets in the way of the hamburger menu.

### Changelog Description:
Explain this cherry pick:
* In one line that is accessible to most Flutter developers.
* That describes the state prior to the fix.
* That includes which platforms are impacted.
See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples.

[flutter/177992] on iPadOS 26.1, tapping on the status bar dismisses the current modal route. 

### Workaround:
Is there a workaround for this issue?

Yes. There is a relatively reliable workaround described here: https://github.com/flutter/flutter/issues/175606#issuecomment-3576240885

### Risk:
What is the risk level of this cherry-pick?

  - [-] Low

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

  - [-] Yes

### Validation Steps:
What are the steps to validate that this fix works?

Following the repro steps in #177992. I've tried the fix myself on master following the steps outlined in the issue and couldn't reproduce the issue.
2026-02-03 18:57:25 +00:00
flutteractionsbot
55bea55aa2
[CP-beta]Ensure content-sizing resize is run on UI thread (#181732)
This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.

Cherry-pick of https://github.com/flutter/flutter/pull/181686

### Issue Link:
What is the link to the issue this cherry-pick is addressing?

https://github.com/flutter/flutter/issues/181573

### Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)?
Crash

Does it impact development (ex. flutter doctor crashes when Android Studio is installed),
or the shipping of production apps (the app crashes on launch).
App crashes

This information is for domain experts and release engineers to understand the consequences of saying yes or no to the cherry pick.

Apps running this code will crash: https://buganizer.corp.google.com/issues/478788744

### Changelog Description:
Explain this cherry pick:
* Makes sure the JNI method is called on Android's UI thread.
* The JNI method would be called by the raster's thread and cause a crash.
* That includes which platforms are impacted.
See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples.
Android Apps

< Replace with changelog description here >
[flutter/181573] When resize JNI method is called on Android, apps will crash.

### Workaround:
Is there a workaround for this issue?

No.

### Risk:
What is the risk level of this cherry-pick?

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

### Validation Steps:
What are the steps to validate that this fix works?

Run the sample app https://github.com/flutter/samples/pull/2787 and check it does not crash.
2026-02-03 01:17:25 +00:00
Jackson Gardner
a7c4c6bf74
Bump engine.version for 3.41.0-0.2.pre (#181615) 3.41.0-0.2.pre 2026-01-28 19:28:23 +00:00
Victoria Ashworth
37f698a5b5
Generate Flutter framework swift package (#181578)
This PR creates a FlutterFramework swift package with no real content. This is a placeholder so that plugins may add a dependency on the FlutterFramework in their Package.swift before https://github.com/flutter/flutter/pull/178931 lands in stable. See go/swiftpm-flutter-release.

Impacted Users: Flutter iOS with SwiftPM feature flag enabled

Impact Description: Allows plugins to add a dependency on the FlutterFramework in their Package.swift.

Workaround: See Problem 2 alternatives in [go/swiftpm-flutter-release](http://goto.google.com/swiftpm-flutter-release)

Risk: This PR by itself is low risk. It just generates a couple files in an ephemeral directory. It only is actually used if a plugin adds a dependency on it in it's Package.swift. If a plugin does this, it's still low risk since it's basically just an empty Swift package. It's also behind a feature flag (`flutter config --enable-swift-package-manager`), which can be disabled.

Test Coverage: Yes

Validation Steps: 
 - `flutter config --enable-swift-package-manager`
 - `flutter create my_plugin && cd my_plugin/example`
 - Add `FlutterFramework` to Package.swift (see [example](https://github.com/flutter/flutter/blob/master/packages/integration_test/ios/integration_test/Package.swift#L15-L21))
 - `flutter build ios`

**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.
2026-01-28 17:40:34 +00:00
flutteractionsbot
15d137647e
[CP-beta]Roll libpng to version 1.6.53 (#181543)
This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.

### Issue Link:
What is the link to the issue this cherry-pick is addressing?

https://github.com/flutter/flutter/issues/180191

### Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)?
Does it impact development (ex. flutter doctor crashes when Android Studio is installed),
or the shipping of production apps (the app crashes on launch).
This information is for domain experts and release engineers to understand the consequences of saying yes or no to the cherry pick.

Updates a library that had multiple CVE's to a version that has those issues patched. 
https://ubuntu.com/security/CVE-2025-64505
https://ubuntu.com/security/CVE-2025-64506
https://ubuntu.com/security/CVE-2025-64720
https://ubuntu.com/security/CVE-2025-65018

FWIW I have not seen a working exploit against a flutter app. 

### Changelog Description:
Explain this cherry pick:
* In one line that is accessible to most Flutter developers.
* That describes the state prior to the fix.
* That includes which platforms are impacted.
See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples.

< Replace with changelog description here >
[flutter/180191] Update libpng to 1.6.53 to mitigate multiple CVE's published November/December 2025. 

### Workaround:
Is there a workaround for this issue?

No work around. 

### Risk:
What is the risk level of this cherry-pick?

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

  - [ x ] Yes

### Validation Steps:
What are the steps to validate that this fix works?

Run the standard test suite on CI including golden image tests.
2026-01-27 21:51:32 +00:00
flutteractionsbot
c433b3f7c0
[CP-beta]Fixes Typo in codebase (#181354)
This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.

### Issue Link:
https://github.com/flutter/flutter/issues/181153

### Impact Description:
This PR is to fix a typo in a newly added API (AccessiblityFocusBlockType->AccessibilityFocusBlockType)
The typo was inroduced in this PR  https://github.com/flutter/flutter/pull/175551 which was merged on Nov 3, 2025 and is in 3.39-3.41

What is the impact 
The impact is to fix a small typo by hotfix, so we dont need to deprecate the API and add a new API. 
The risk is small because the API was recently added in Nov, 2025 and it's an API to control accessibility focus. I don't think it's widely used by external developers yet.
Also the typo is not in the previous stable 3.38, so this only needs to be cp to beta. 

### Changelog Description:
Explain this cherry pick:
* In one line that is accessible to most Flutter developers.
* That describes the state prior to the fix.
* That includes which platforms are impacted.
See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples.

[flutter/181153] fix a typo in a newly added API (AccessiblityFocusBlockType->AccessibilityFocusBlockType)

### Workaround:
Is there a workaround for this issue?

no

### Risk:
What is the risk level of this cherry-pick?

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

### Validation Steps:
What are the steps to validate that this fix works?
N/A
2026-01-27 21:38:05 +00:00
Tong Mu
f3c54a697e
[beta] Cherry pick https://github.com/flutter/flutter/pull/181074 (#181367)
This PR cherrypicks https://github.com/flutter/flutter/pull/181074 into beta, which is mostly a revert of https://github.com/flutter/flutter/pull/176711 (except that some docs are left unreverted and a few new tests are added.) This is needed to address a breakage as described in https://github.com/flutter/flutter/issues/180121.

**Impacted Users:** Apps that use `DropdownMenu` or `DropdownMenuFormField` for a nullable class, such as `DropdownMenu<int?>`.

**Impact Description:** Can not compile.

**Workaround:** Yes, through non-trivial changes. For example, the developer can replace  `DropdownMenu<int?>` with `DropdownMenu<Maybe<int>>`, as long as they import `Maybe` or create their own equivalence. 

**Risk:** Low. This PR is basically a revert.

**Test Coverage:** Yes. The widget has high test coverage.

**Validation Steps:** The PR compiles and tests pass.
2026-01-27 21:26:40 +00:00
Tong Mu
7e227d1066
[beta] Cherry pick https://github.com/flutter/flutter/pull/181269 (#181371)
This PR cherrypicks https://github.com/flutter/flutter/pull/181269 into beta. This is needed to address a breakage.

**Impacted Users:** Apps that directly use `CupertinoSheetTransition `.

**Impact Description:** Can not compile.

**Workaround:** Yes. They need to add `topGap: 0.08` to the constructor.

**Risk:** Low. This PR loosens the API, and reverts the behavior to that before https://github.com/flutter/flutter/pull/171348.

**Test Coverage:** Yes. The widget has high test coverage.

**Validation Steps:** The PR compiles and tests pass. `sheet_test.dart` contains constructors that do not specify `topGap` in the same way as existing apps.
2026-01-27 21:24:31 +00:00
Jim Graham
eca1271bbc
[beta] [Impeller] Fix crash trying to check for duplicate vertices in shadow_path code (#180920) (#181095)
The new general convex path shadow code was checking for duplicate vertices without actually checking if the vectors contained any vertices. Thus, <vector>.back() was being called on empty vectors, which is bad. This led to a crash in G3 as their code is being run with a vector implementation that protects against this, but apparently we do not have such a vector implementation in our local building and testing.

No tests because this covered by existing test cases and a new FML_DCHECK.

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

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

Impacted users: Any user who uses shadows (pretty much every Flutter app) on a platform that has address sanitization built into its `std::vector` implementation, if they use Impeller (always used on iOS and the default on Android)

Impact Description: Every shadow render operation in Impeller backend will access `back()` on an empty `std::vector` which will crash immediately if the vector is using sanitization on that platform.

Workaround: Potentially look into disabling address sanitization? On platforms that still support Skia, it can be used as a workaround, but that is not an option on iOS

Risk: The fix was obvious and non-controversial.

Test Coverage: Existing tests cover this case really well and there is now an FML_DCHECK (engine assert) to check if we trigger the condition under testing.

Validation: The original issue indicates an app that will trigger the sanitization crash, but only in G3. None of the platforms we support directly through flutter perform this sanitization.

**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.
2026-01-27 18:44:05 +00:00
Reid Baker
be9275b822
use git hash not content hash for engine.version (#181494)
`bin/internal/last_engine_commit.sh > bin/internal/engine.version`

Update engine version is not working see: https://github.com/flutter/flutter/issues/181404
3.41.0-0.1.pre
2026-01-26 15:44:57 +00:00
Reid Baker
34b12a392c
bump engine version for 3.41.1 (#181329)
`./bin/internal/content_aware_hash.sh > ./bin/internal/engine.version`
2026-01-22 18:17:05 +00:00
Reid Baker
d8756bc5ef
3.41.1 dart bump to 3.11.0-296.4.beta (#181322)
[3.11.0-296.4.beta](https://github.com/dart-lang/sdk/releases/tag/3.11.0-296.4.beta)

```
gcert
gclient sync
cd engine/src
tools/dart/create_updated_flutter_deps.py
gclient sync
```
2026-01-22 16:11:54 +00:00
Harry Terkelsen
a430f664da
[CP] Fix style_manager_test for Firefox (#181084) (#181204)
Fixes style_manager_test.dart for Firefox by

1. changing the CSS to explicitly set `outline: rgb(0, 0, 0) none 0px`
2. actually focusing the element before checking it's computed style

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

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

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

<!--
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].*

**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.
2026-01-22 13:55:40 +00:00
Ben Konyi
57c022c87b
[CP-beta][ Tool ] Handle DartDevelopmentServiceException when launching web applications (#181162)
This pull request is created by [automatic cherry pick workflow](https://github.com/flutter/flutter/blob/main/docs/releases/Flutter-Cherrypick-Process.md#automatically-creates-a-cherry-pick-request)
Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.

### Issue Link:
What is the link to the issue this cherry-pick is addressing?

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

### Changelog Description:
Explain this cherry pick in one line that is accessible to most Flutter developers. See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples

`flutter run -d chrome` can crash with a `DartDevelopmentServiceException` if the application shuts down during the startup sequence.

### Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)? Does it impact development (ex. flutter doctor crashes when Android Studio is installed), or the shipping production app (the app crashes on launch)

Flaky crashes for users developing Flutter web applications. This is one of the top crashers for 3.38.

### Workaround:
Is there a workaround for this issue?

N/A

### Risk:
What is the risk level of this cherry-pick?

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

### Validation Steps:
What are the steps to validate that this fix works?

Difficult to validate manually as the failure is timing based. Tests have been added to simulate the crash scenario and verify the fix.
2026-01-21 19:16:29 +00:00
Ben Konyi
e4f99016df
[CP-beta][ Tool ] Fix flutter run -d all crash (#180845) (#181163)
### Issue Link:
What is the link to the issue this cherry-pick is addressing?

https://github.com/flutter/flutter/issues/179857

### Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)?
Does it impact development (ex. flutter doctor crashes when Android Studio is installed),
or the shipping of production apps (the app crashes on launch).
This information is for domain experts and release engineers to understand the consequences of saying yes or no to the cherry pick.

`flutter run -d all` causes the tool to crash if multiple devices are available.

### Changelog Description:
Explain this cherry pick:
* In one line that is accessible to most Flutter developers.
* That describes the state prior to the fix.
* That includes which platforms are impacted.
See [best practices](https://github.com/flutter/flutter/blob/main/docs/releases/Hotfix-Documentation-Best-Practices.md) for examples.

`flutter run -d all` causes the tool to crash if multiple devices are available.

### Workaround:
Is there a workaround for this issue?

No.

### Risk:
What is the risk level of this cherry-pick?

### Test Coverage:
Are you confident that your fix is well-tested by automated tests?

### Validation Steps:
What are the steps to validate that this fix works?

Run `flutter run -d all` with multiple non-web devices available and verify the application is deployed to all non-web devices.
2026-01-21 19:16:24 +00:00
walley892
ee37b97405
Bump engine version for flutter 3.41 beta (#180930)
Bump the engine version following the dart bump in https://github.com/flutter/flutter/pull/180916
3.41.0-0.0.pre
2026-01-13 22:32:46 +00:00
walley892
b267090e31
bump dart version (#180916)
Bump.

Updates dart version to 3.11.0-296.3.beta. fb9aa1719c
2026-01-13 20:39:59 +00:00
walley892
a3067fed6b
Update engine version (#180859) 2026-01-13 02:31:01 +00:00
walley892
7cbafe5709
add engine.version and release-candidate-branch.version (#180858) 2026-01-12 18:58:23 +00:00
gaaclarke
5b5bf6c26b
De-interleaves engine dart test output (#180651)
This includes the following changes:
1) Logging output from dart tests is no longer interleaved
1) The backend that is running the test is now printed out
1) `TestingContext` abstraction was added in order to support more
rendering backends in the future

test exempt: it is tests

## 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-08 20:18:59 +00:00
zhongliugo
773923a55d
[web] Fix SemanticsService.announce not working inside dialogs (#179958)
Fixes #179076

**Solution**
When a modal dialog is present, temporarily move the existing aria-live
element inside the modal dialog before making the announcement, then
move it back afterward. A small delay is also added to allow VoiceOver
to finish reading the button's accessible name first.

**Demo**
Before (bug): https://flutter-demo-03-before.web.app
After (fix): https://flutter-demo-03-after.web.app

**Testing**
Enable VoiceOver (Cmd+F5 on macOS)
Open a dialog and click the "Announce" button
Verify the announcement is spoken after the button label

**Next step**
Filing a follow-up issue for: Adding a delay parameter to
SemanticsService.announce() API for developers who need custom delays
for long button labels
2026-01-08 20:18:58 +00:00
engine-flutter-autoroll
f61d1a3d75
Roll Skia from 42233226ac56 to 837be28dd218 (2 revisions) (#180693)
https://skia.googlesource.com/skia.git/+log/42233226ac56..837be28dd218

2026-01-08 bungeman@google.com Roll FreeType from 26adb9ff to b91f75bd
(3 commits)
2026-01-08 robertphillips@google.com [graphite] Update Skia's linear
effect SkSL stub to match Android

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 egdaniel@google.com,jsimmons@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
2026-01-08 19:07:28 +00:00
Ivan Inozemtsev
1201fa288a
Roll Dart SDK to 3.11.0-296.2.beta (#180685)
Just like https://github.com/flutter/flutter/pull/180633, but with a
cherry-picked revert
(4f0e4600ae).
2026-01-08 18:56:24 +00:00
Mohellebi abdessalem
9ddfe82ce4
Improve code quality in AndroidTouchProcessorTest.java (#180583)
<img width="1017" height="89" alt="Screenshot 2026-01-06 at 16 37 39"
src="https://github.com/user-attachments/assets/78d61725-6519-4da2-b931-1e293b36936e"
/>


## 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.
- [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-08 18:49:22 +00:00
Harry Terkelsen
cbd8912a29
Revert "Reverts "[reland] Unify canvas creation and Surface code in S…kwasm and CanvasKit (#179473)" (#180152)" (#180610)
This PR introduces a significant refactoring of the web engine's
rendering layer by unifying the Surface and Rasterizer implementations.
These components have been moved from being renderer-specific to a
generic compositing directory, making the architecture more modular and
easier to maintain. The rasterizers are now renderer-agnostic and are
provided with renderer-specific surface factories via dependency
injection. A new CanvasProvider abstraction has also been introduced to
manage the lifecycle of the underlying canvas elements.

A key outcome of this work is that the Skwasm backend now correctly
handles WebGL context loss events. This was achieved by refactoring
SkwasmSurface to allow the Dart side to manage the OffscreenCanvas
lifecycle. A communication channel between the main thread and the web
worker is now used to gracefully handle context loss and recovery. This
effort also included fixing several related bugs around surface sizing,
resource cleanup, and callback handling in multi-surface scenarios.

To validate these changes, new testing APIs have been added to allow for
the creation of renderer-agnostic surface tests. A new test file,
surface_context_lost_test.dart, has been added to verify the context
loss and recovery behavior across all supported renderers, ensuring the
new architecture is robust and reliable.

## 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-08 18:38:25 +00:00
engine-flutter-autoroll
40644514f9
Roll Skia from a0c407bce408 to 42233226ac56 (4 revisions) (#180688)
https://skia.googlesource.com/skia.git/+log/a0c407bce408..42233226ac56

2026-01-08
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2026-01-08 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 0e21a7658fd0 to c0fe12c8d4ae (2 revisions)
2026-01-08 michaelludwig@google.com [wgsl] Refactor const-eval
workaround into automatic helper
2026-01-08 ccameron@chromium.org skhdr::Agtm: Prepare to make the
metadata set public

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 egdaniel@google.com,jsimmons@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
2026-01-08 16:58:29 +00:00
Ben Konyi
8812db3594
[ Tool ] Fix flake in overall_experience_test.dart (#180655)
The diagnostics string builder responsible for building diagnostics
messages can sometimes wrap lines that are too long. This caused the
expectation for the 'flutter error messages include a DevTools links' to
sometimes be incorrect when run on systems where the absolute file path
of the file referenced in the diagnostic was too long.

This change updates the test expectation to allow for both wrapping and
non-wrapping scenarios to be accepted.

Fixes https://github.com/flutter/flutter/issues/174502
2026-01-08 15:47:53 +00:00
engine-flutter-autoroll
c0b1fe87a0
Roll Packages from 9705815335f9 to 039a02612426 (6 revisions) (#180684)
9705815335...039a026124

2026-01-07 engine-flutter-autoroll@skia.org Manual roll Flutter (stable)
from 66dd93f9a27f to f6ff1529fd6d (2 revisions) (flutter/packages#10746)
2026-01-07 47866232+chunhtai@users.noreply.github.com [ci] release
action uses sub action for installing flutter (flutter/packages#10747)
2026-01-07 athom@google.com Fix html in webview_flutter doc comment
(flutter/packages#10634)
2026-01-07 150208987+jalen-videotape@users.noreply.github.com
[camera_web] Fixed crashing bug on camera_web 0.3.5 for Safari
(flutter/packages#10595)
2026-01-07 engine-flutter-autoroll@skia.org Roll Flutter from
13b2b912c909 to 01d37bc80fd5 (74 revisions) (flutter/packages#10745)
2026-01-07 47866232+chunhtai@users.noreply.github.com [ci] adjust github
action, need to checkout repo before using local action
(flutter/packages#10744)

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
2026-01-08 15:46:26 +00:00
Nour
93cba59cee
flutter_tools: Auto-generate ExportOptions.plist for manual iOS code signing (#177888)
# flutter_tools: Auto-generate ExportOptions.plist for manual iOS code
signing

## Summary

Enhance `flutter build ipa` to automatically generate a complete
ExportOptions.plist for manual code signing configurations, eliminating
the need for users to create and maintain one manually.

**Fixes:** #177853

## Problem

When using manual code signing (`CODE_SIGN_STYLE=Manual`) with `flutter
build ipa` for Release/Profile builds, the archive succeeds but the
export step fails with:

```
error: exportArchive: "Runner.app" requires a provisioning profile with the Push Notifications and Sign in with Apple features.
```

**Root cause:** Flutter generated an incomplete ExportOptions.plist that
only included `method` and `uploadBitcode`. When using manual signing,
`xcodebuild -exportArchive` requires:
- `teamID` (from project's `DEVELOPMENT_TEAM`)
- `signingStyle=manual`
- `provisioningProfiles` (mapping bundle ID to provisioning profile
UUID)

Without these, Xcode cannot resolve the provisioning profile for export,
even if the profile is correctly configured and contains the required
entitlements.

## Solution

Enhanced `_createExportPlist()` in `BuildIOSArchiveCommand` to
automatically generate a complete ExportOptions.plist when:
1. `CODE_SIGN_STYLE=Manual` is detected for the main app target
2. Build mode is Release or Profile (production builds only)
3. A valid provisioning profile can be located and parsed

The generated plist includes:
- `method` (app-store, ad-hoc, enterprise, etc. - respects user's
`--export-method` flag)
- `teamID` (from `DEVELOPMENT_TEAM` build setting)
- `signingStyle=manual`
- `provisioningProfiles` mapping main app bundle ID to provisioning
profile UUID

**Fallback behavior:**
- If profile lookup fails: silently fall back to simple plist (no
regression)
- For Automatic signing: unchanged behavior
- For Debug builds: unchanged behavior (not App Store export)
- For multi-target apps (extensions): falls back to simple plist today
(see TODO below)

## Changes

### Core Implementation
- Added `ProfileData` class to encapsulate provisioning profile info
(UUID and name)
- Refactored profile handling into reusable static methods for
testability
- Enhanced `_createExportPlist()` with manual signing detection and
profile lookup
- Added `_findProvisioningProfileUuid()` to locate provisioning profiles
by specifier
- Added `_parseProvisioningProfileInfo()` to decode provisioning profile
data once
- Added comprehensive trace logging for debugging

### Testing
- Created `build_ipa_export_plist_test.dart` with 7 unit tests covering:
  - Manual signing with profile found → enhanced plist generated ✓
  - Automatic signing → simple plist (unchanged behavior) ✓
  - Debug builds → simple plist (unchanged behavior) ✓
  - Different export methods → respected in generated plist ✓
  - Profile lookup failures → fallback to simple plist ✓
  - Null codeSignStyle → handled gracefully ✓
- All existing flutter_tools tests continue to pass

## Documentation

Added extensive inline comments explaining:
- Enhancement conditions and fallback behavior
- Provisioning profile search strategy and error handling
- Performance and security considerations
- Future enhancements (multi-target support)

## Safety & Scope

### What This Fixes
-  Manual signing export failures for apps with Push Notifications /
Sign in with Apple
-  Auto-generates correct plist for **any** entitlements covered by
provisioning profile
-  Unblocks users from manual `--export-options-plist` workaround
-  Improves iOS build UX for enterprise teams doing manual signing

### What This Does NOT Change
-  Automatic signing behavior (unchanged)
-  Debug builds (unchanged)
-  CLI interface (no new flags)
-  Ad-hoc / enterprise distributions (unchanged if not using manual
signing)

### Known Limitations (Future Enhancements)
- Currently only supports single-target apps (main app bundle ID only)
- TODO: Multi-target apps with extensions (notification service,
widgets, watch, etc.) - each extension target bundle ID may need
separate entry in provisioningProfiles dict
- TODO: Support for multiple provisioning profiles if app uses multiple
signing identities

---

## Pre-merge Checklist

- [x] I have signed the CLA
- [x] I read the Contributor Guide and Tree Hygiene docs
- [x] I linked the issue this fixes (#177853) and explained the failure
scenario
- [x] I added documentation and trace logs so developers understand what
changed
- [x] I added comprehensive unit tests for the new behavior
- [x] All existing and new tests pass locally (`flutter test
packages/flutter_tools`)
- [x] Code passes linting (`dart analyze`)

## Safety Notes

- [x] This code only runs for manual code signing in `flutter build ipa`
for Release/Profile builds
- [x] Debug builds and automatic signing behavior are completely
unchanged
- [x] If no provisioning profile UUID is found, we silently fall back to
the old exportOptions.plist logic instead of failing
- [x] Added trace-level logging explaining success/fallback scenarios
for debugging
- [x] No breaking changes - existing workarounds continue to work
- [x] Minimal blast radius - only affects manual signing export path

## Verification

Users can verify the fix by:
1. Creating an iOS app with `CODE_SIGN_STYLE=Manual`, `DEVELOPMENT_TEAM`
set, and Push Notifications entitlements
2. Running `flutter build ipa --release --verbose`
3. Confirming the trace log shows "Generated ExportOptions.plist with
teamID, signingStyle=manual, and provisioningProfiles"
4. Verifying the IPA is successfully created without needing
`--export-options-plist`

---

## Related Issues
- #106612 - Support `flutter build ipa` with manual signing and
provisioning profiles
- #113977 - Flutter build IPA with --export-options-plist not working

---------

Co-authored-by: Elijah Okoroh <okorohelijah@google.com>
2026-01-08 12:09:39 +00:00
engine-flutter-autoroll
1c25299057
Roll Skia from 58837e160874 to a0c407bce408 (2 revisions) (#180679)
https://skia.googlesource.com/skia.git/+log/58837e160874..a0c407bce408

2026-01-08
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2026-01-08
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 egdaniel@google.com,jsimmons@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
2026-01-08 11:53:35 +00:00
engine-flutter-autoroll
025911f0f5
Roll Skia from 1e3266fdba86 to 58837e160874 (1 revision) (#180677)
https://skia.googlesource.com/skia.git/+log/1e3266fdba86..58837e160874

2026-01-08
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 egdaniel@google.com,jsimmons@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
2026-01-08 09:52:40 +00:00
engine-flutter-autoroll
e75aa3c2a6
Roll Skia from 3c47ea10638f to 1e3266fdba86 (4 revisions) (#180675)
https://skia.googlesource.com/skia.git/+log/3c47ea10638f..1e3266fdba86

2026-01-08 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from 206604c37588 to b406401e4208 (9 revisions)
2026-01-08 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
SwiftShader from e391edb818fe to e5b3afce6d92 (2 revisions)
2026-01-08 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia
Infra from bf503bd8388f to 902045eb126a (13 revisions)
2026-01-08 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn
from d448edf18bd3 to 0f561487ff7a (18 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 egdaniel@google.com,jsimmons@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
2026-01-08 07:49:43 +00:00
engine-flutter-autoroll
cd1c5deb9b
Roll Fuchsia Linux SDK from dTvN_JVSCfGFRasvH... to rxeg-6UB678HKJ4UQ... (#180673)
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 jsimmons@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
2026-01-08 06:45:26 +00:00
engine-flutter-autoroll
52ed108dc6
Roll Skia from e9a0f1162ac9 to 3c47ea10638f (1 revision) (#180672)
https://skia.googlesource.com/skia.git/+log/e9a0f1162ac9..3c47ea10638f

2026-01-08 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 102e3b63b7c5 to 0e21a7658fd0 (7 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 egdaniel@google.com,jsimmons@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
2026-01-08 05:45:31 +00:00
Mitchell Goodwin
c2b3ae1bfe
Do not dispose CupertinoSheetTransition animation on update and throw ticker error (#180609)
<!--
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
-->

Fixes #179337 by moving the disposal of an animation controller outside
of the didUpdate method flow. It was unnecessary to rebuild this
controller on update, and was originally put there to follow the pattern
of the other animations. However, unlike the other animations, this one
is not chained to animations from outside of the transition's place in
the tree, and was throwing exceptions from the ticker mixin in some
cases.

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

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-08 02:43:27 +00:00
engine-flutter-autoroll
6809f02deb
Roll Skia from 81806a7eb4a3 to e9a0f1162ac9 (5 revisions) (#180668)
https://skia.googlesource.com/skia.git/+log/81806a7eb4a3..e9a0f1162ac9

2026-01-07 kjlubick@google.com Add squarehair_diffs gm
2026-01-07 bungeman@google.com [pdf] Value owning
AttributeList::appendTextString
2026-01-07 robertphillips@google.com [graphite] Alter
vulkan_ycbcr_image_shader
2026-01-07 kjlubick@google.com Fix dangling non-const SkData
2026-01-07 nicolettep@google.com Remove nonexistent package xcb from
install_dependencies.sh

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 egdaniel@google.com,jsimmons@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
2026-01-08 01:24:43 +00:00
John "codefu" McDole
41a1df2a1b
fix: missing MSVC 2022 (#180661)
codefu wins the shamecube award for bad python.

Tested on windows 11 enterprise + vc 2022:

```shell
Searching for installed Visual Studio versions: 2019, 2017, 2022, 2026, 16.0, 15.0, 17.0, 18
vs_path = "C:\\Program Files/Microsoft Visual Studio/2022/Community"
sdk_path = "C:\\Program Files (x86)\\Windows Kits\\10"
vs_version = "2022"
wdk_dir = ""
runtime_dirs = "C:\\Windows\\System32;C:\\Windows\\SysWOW64;Arm64Unused"
```

fixes #180660
2026-01-08 00:15:02 +00:00
Mitchell Goodwin
1a86af3ff0
Add drag handle to CupertinoSheet (#179962)
Fixes #179358.

Adds the option to add a native styled drag handle to the top of a
Cupertino sheet through the `showDragHandle` property. By default this
is false, the same way it is for the native SwiftUI sheet.

Styling for the handle is based off of native versions of the handle,
and Apple's Figma files.

From this PR:
<img width="412" height="293" alt="Screenshot 2025-12-16 at 12 53 06 PM"
src="https://github.com/user-attachments/assets/b8f48179-775c-4f90-8930-0ca526e62d33"
/>

From the iOS Maps app (this sheet has a slight transparency)
<img width="401" height="132" alt="Screenshot 2025-12-16 at 12 53 15 PM"
src="https://github.com/user-attachments/assets/640b0736-0fe2-4713-81c9-b89c1c1ac41d"
/>

From the Figma files:
<img width="636" height="371" alt="Screenshot 2025-12-16 at 12 53 36 PM"
src="https://github.com/user-attachments/assets/a6fb7853-84f9-4728-85eb-ffdd6e1167cd"
/>

## 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
2026-01-07 23:43:58 +00:00
auto-submit[bot]
23fdf0ab8f
Reverts "Roll Dart SDK to 3.11.0-296.1.beta (#180633)" (#180659)
<!-- start_original_pr_link -->
Reverts: flutter/flutter#180633
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: chingjun
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: Broke internal build.
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: iinozemtsev
<!-- end_original_pr_author -->

<!-- start_reviewers -->
Reviewed By: {reidbaker, zanderso, camsim99}
<!-- end_reviewers -->

<!-- start_revert_body -->
This change reverts the following previous change:
Changes:

https://dart.googlesource.com/sdk/+log/d2e3ce1772709939577d6736b2a3975cde67bf69..3676a3aa002cf8b01a3a7859ff7b3ad7af8ef960.

This PR also includes https://github.com/flutter/flutter/pull/180624
just to make the CI happy.

<!-- end_revert_body -->

Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2026-01-07 22:16:47 +00:00
Gray Mackall
72db6159d7
Also host build-tools 33.0.1, platform-34, and platform-35 in our android_sdk bundle (#180653)
See
https://github.com/flutter/flutter/issues/172956#issuecomment-3717942182,
but basically we use these in ci, and if we put them in the bundle we
eliminate more downloading, which has caused flakes.

38 instead of 37 because I ran the script once without java on my path,
which meant before I could ctrl+c we registered an empty
https://chrome-infra-packages.appspot.com/p/flutter/android/sdk/all/mac-amd64/+/xLObmfS7IH8ElsjrUJNC8YjtTB5R8oYuYv8765UuwzsC,
so that would have conflicted and been a headache to remove the tag
from.

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

<!-- 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: Gray Mackall <mackall@google.com>
2026-01-07 22:04:33 +00:00
Victor Sanni
6679464ef2
Raw tooltip with smaller API surface that exposes tooltip widget (#177678)
The raw widget used to make a
[Tooltip](https://api.flutter.dev/flutter/material/Tooltip-class.html).

Design doc: flutter.dev/go/codeshare-tooltip

## Constructor
```dart
class RawTooltip extends StatefulWidget {
  const RawTooltip({
    super.key,
    required this.semanticsTooltip,
    required this.tooltipBuilder,
    this.enableTapToDismiss = true,
    this.triggerMode = TooltipTriggerMode.longPress,
    this.enableFeedback = true,
    this.onTriggered,
    this.hoverDelay = Duration.zero,
    this.touchDelay = const Duration(milliseconds: 1500),
    this.dismissDelay = const Duration(milliseconds: 100),
    this.animationStyle = _kDefaultAnimationStyle,
    this.positionDelegate,
    required this.child,
  });
```

## Properties
```dart
  final String semanticsTooltip;
  final TooltipComponentBuilder tooltipBuilder;
  final Duration hoverDelay;
  final Duration touchDelay;
  final Duration dismissDelay;
  final bool enableTapToDismiss;
  final TooltipTriggerMode triggerMode;
  final bool enableFeedback;
  final TooltipTriggeredCallback? onTriggered;
  final AnimationStyle animationStyle;
  final TooltipPositionDelegate? positionDelegate;
  final Widget child;
```

Part of [☂️ Reinforcement: Add more basic components to the core
framework](https://github.com/flutter/flutter/issues/97496)
Part of [☂️ Reinforcement: Refactor widgets from design into the core
before decoupling](https://github.com/flutter/flutter/issues/53059)
Fixes [Custom Overlay for Tooltip Widget
](https://github.com/flutter/flutter/issues/45034)

---------

Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
Co-authored-by: chunhtai <47866232+chunhtai@users.noreply.github.com>
2026-01-07 21:58:42 +00:00
Nhan Nguyen
78f49c6529
Fix Drawer.child docstring to say ListView instead of SliverList (#180326)
## Description

The docstring says "Typically a [SliverList]" but the class example uses
`ListView`.

`SliverList` is used inside `CustomScrollView`, not as a direct child of
`Drawer`.

## Related Issue

Fixes #100268
2026-01-07 21:00:38 +00:00
engine-flutter-autoroll
33d65423ae
Roll Skia from c5359a4d720e to 81806a7eb4a3 (1 revision) (#180637)
https://skia.googlesource.com/skia.git/+log/c5359a4d720e..81806a7eb4a3

2026-01-07 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll
Dawn from 36528b0f7ab8 to d448edf18bd3 (6 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 egdaniel@google.com,jsimmons@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
2026-01-07 20:23:26 +00:00
Emmanuel
5d46d0f0f7
New isSemantics and deprecate containsSemantics (#180538)
Fix #180534

## 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-07 20:05:09 +00:00
Mohellebi abdessalem
36fe54273b
Prevent calling setStatusBarColor on API_35 and update related documentation (#180062)
see :
https://github.com/flutter/flutter/issues/165327#issuecomment-3264734393
towards #165327 (see
https://discord.com/channels/608014603317936148/846507907876257822/1451187625116569660)

## 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 `///`).
- [ ] 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: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Camille Simon <43054281+camsim99@users.noreply.github.com>
2026-01-07 19:13:58 +00:00