87985 Commits

Author SHA1 Message Date
engine-flutter-autoroll
0322fe58ea
Roll Skia from b9f40c193e7a to c198e5fa9cd9 (6 revisions) (#181692)
https://skia.googlesource.com/skia.git/+log/b9f40c193e7a..c198e5fa9cd9

2026-01-30
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2026-01-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from a715d2c2482a to 52ea045250c2 (5 revisions)
2026-01-29
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2026-01-29 michaelludwig@google.com [graphite]
SkSurfaces::WrapBackendTexture doesn't require SkColorType
2026-01-29 michaelludwig@google.com [graphite] Reduce inline allocation
size of DrawList
2026-01-29
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 bwils@google.com,codefu@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-30 03:44:04 +00:00
flutter-pub-roller-bot
9b6f15e67d
Roll pub packages (#181690)
This PR was generated by `flutter update-packages --force-upgrade`.
2026-01-30 00:37:27 +00:00
Jason Simmons
87b599c63e
Extend the Windows tool_integration_tests_2_9 shard timeout to 1 hour (#181678)
This shard has been timing out often (see
https://github.com/flutter/flutter/issues/180413)

Some new tests were added to the shard that may have made it exceed the
timeout (see
a5b3c4bd69)
2026-01-30 00:20:22 +00:00
Gray Mackall
ba5ba0d923
Add android_sdk dependency to android_engine_opengles_tests (#181681)
It does android builds, and therefore it gets android deps. In
particular, see this timeout

https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8691309993367404513/+/u/run_test.dart_for_android_engine_opengles_tests_shard_and_subshard_None/stdout
where:
```
Checking the license for package NDK (Side by side) 27.0.12077973 in /b/s/w/ir/cache/android/sdk/licenses
License for package NDK (Side by side) 27.0.12077973 accepted.
Preparing "Install NDK (Side by side) 27.0.12077973 v.27.0.12077973".
"Install NDK (Side by side) 27.0.12077973 v.27.0.12077973" ready.
Installing NDK (Side by side) 27.0.12077973 in /b/s/w/ir/cache/android/sdk/ndk/27.0.12077973
"Install NDK (Side by side) 27.0.12077973 v.27.0.12077973" complete.
"Install NDK (Side by side) 27.0.12077973 v.27.0.12077973" finished.
```

Co-authored-by: Gray Mackall <mackall@google.com>
2026-01-29 23:01:17 +00:00
engine-flutter-autoroll
667feba25b
Roll Dart SDK from a0685c8e946b to 920b7e24583e (3 revisions) (#181680)
https://dart.googlesource.com/sdk.git/+log/a0685c8e946b..920b7e24583e

2026-01-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-88.0.dev
2026-01-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-87.0.dev
2026-01-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-86.0.dev

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

To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-29 22:29:55 +00:00
engine-flutter-autoroll
57e7dd325b
Roll Skia from 128b5213711e to b9f40c193e7a (14 revisions) (#181675)
https://skia.googlesource.com/skia.git/+log/128b5213711e..b9f40c193e7a

2026-01-29 michaelludwig@google.com [graphite] Consolidate colortype
info functions into Caps
2026-01-29 jmbetancourt@google.com reland: introduce new SkLogPriority
and logging macros to skia
2026-01-29 kjlubick@google.com Fix padding in DashOp
2026-01-29 kjlubick@google.com Update fiddle examples to explicitly use
SkSerialProcs
2026-01-29 kjlubick@google.com Avoid accidental conversions to double
2026-01-29 kjlubick@google.com Fix implicit integer->enum cast in mtl
backend
2026-01-29 kjlubick@google.com Expose a VMA implementation for Android
2026-01-29 kjlubick@google.com Add
ToolUtils::RegisterAvailableTypefaceFactories
2026-01-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 8f5821b0a35e to a715d2c2482a (4 revisions)
2026-01-29
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2026-01-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from 2d0c30fb2b6a to cd22b6ab03c3 (7 revisions)
2026-01-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia
Infra from 8556bb0e87c8 to 87026abda3e1 (4 revisions)
2026-01-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
SwiftShader from 374652a342e0 to 3b5edab3497f (1 revision)
2026-01-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn
from e427e28a231f to e4582e1b1355 (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 bwils@google.com,codefu@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-29 22:28:10 +00:00
Jason Simmons
7a8ecd11fa
[Impeller] Ensure that HostBuffers/DeviceBuffers allocated by RendererTest tests are valid for the lifetime of the RenderPass (#181635)
RenderPass holds a list of BufferViews that may hold raw pointers to
DeviceBuffers. HostBuffers and the underlying DeviceBuffers must not be
deleted until the RenderPass is no longer using them.

See https://github.com/flutter/flutter/issues/181287
2026-01-29 21:08:06 +00:00
Jason Simmons
b6f71056ea
[Impeller] Fix off-by-one indices in the SimilarPointPair/SimilarPointTrio functions used by ShadowPathGeometryTest (#181623) 2026-01-29 21:08:06 +00:00
Anish Tiwari
1b5b0d787c
180162 fix radio list tile and switch list tile accept widget states controller (#180367)
fixes #180162  
RadioListTile, CheckboxListTile, and SwitchListTile accepts a
WidgetStatesController for their backing ListTile

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
Co-authored-by: Qun Cheng <36861262+QuncCccccc@users.noreply.github.com>
2026-01-29 20:35:57 +00:00
Mohellebi Abdessalem
6fd5a4183c
Remove unused test file (#181671)
## 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-29 20:25:21 +00:00
Jason Simmons
72507e2c45
Roll libpng to version 1.6.54 (#181625)
Fixes https://github.com/flutter/flutter/issues/181545
Fixes https://github.com/flutter/flutter/issues/181669
2026-01-29 19:41:10 +00:00
Gray Mackall
8c680b9c77
Remove nonstandard ndkpath for hybrid_android_views integration test (#181666)
This is not true any more, since
https://github.com/flutter/flutter/pull/179920

This was only triggered on ci because that environment var isn't set
elsewhere.

Co-authored-by: Gray Mackall <mackall@google.com>
2026-01-29 17:54:27 +00:00
Kishan Rathore
130808cb68
Add TestWidgetsApp utility and refactor widget tests to use WidgetsApp (#180456)
This PR introduces a TestWidgetsApp utility class that provides a
minimal WidgetsApp wrapper for widget tests, replacing direct usage of
Directionality widgets.

part of: #177415 

## Changes
- test_widgets_app.dart - A reusable TestWidgetsApp widget that wraps
WidgetsApp with a builder pattern, providing Directionality, MediaQuery,
and other app-level widgets that WidgetsApp provides.
- gesture_detector_test.dart - Replaced 9 Directionality usages
- mouse_region_test.dart - Replaced 13 Directionality usages
- opacity_test.dart - Replaced 2 Directionality usages
- slivers_evil_test.dart - Replaced 3 Directionality usages and removed
redundant MediaQuery wrappers

## Note
- This PR updates golden test baselines for opacity_test.dart.

## 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.
- [ ] All existing and new tests are passing.
2026-01-29 17:29:01 +00:00
Renzo Olivares
478367652c
Add TestTextField and migrate tests (#180494)
This PR introduces the convenience widget `TestTextField` in the
framework widget tests. This new widget should be used in place of
convenient `TextField` or `CupertinoTextField` usages in the widgets
library tests.

part of: #177415

## Pre-launch Checklist

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

---------

Co-authored-by: Renzo Olivares <roliv@google.com>
2026-01-29 17:21:52 +00:00
Jackson Gardner
be880b7d54
Merge changelog for 3.38.9 (#181668) 2026-01-29 17:20:11 +00:00
Daco Harkes
bff9bbc1df
[flutter_tools] Deprecate plugin_ffi template (#181588)
Add deprecation marker to `flutter create --template=plugin_ffi`.

The new way of bundling native code is `flutter create
--template=package_ffi`. (Or if the Flutter Plugin API or Android Play
components need to be bundled: `flutter create --template=plugin)`

Issue:

* https://github.com/flutter/flutter/issues/131209
2026-01-29 16:21:04 +00:00
Navaron Bracke
3e6c207166
Deprecate onReorder callback (#178242)
This pull request deprecates the old `onReorder` callback of
`ReorderableList` / `SliverReorderableList` / `ReorderableListView`, in
favor of a new callback, `onReorderItem`, that does the index correction
as mentioned in the docs at
https://api.flutter.dev/flutter/widgets/ReorderCallback.html

I added tests to ensure that the old callback is preferred when both are
provided and tests that assert that the new callback does the index
correction correctly. I also noticed that some tests used empty
callbacks for `onReorder`, those have been updated to use wildcards in a
consistent manner.

I did not opt into making a design doc, since the change itself is very
small, that will also be apparent in the migration guide that I am going
to write.

Fixes https://github.com/flutter/flutter/issues/127901
Fixes https://github.com/flutter/flutter/issues/169878

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

TODO: add a migration guide on the website

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

---------

Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
Co-authored-by: Victor Sanni <victorsanniay@gmail.com>
2026-01-29 16:19:26 +00:00
zhongliugo
fc6d13a1b2
[web] Use defensive null check in text editing placeElement (#180795)
Fixes #178619

Uses defensive null check (?.) instead of null assertion (!) when
calling focusWithoutScroll() on focusedFormElement in
GloballyPositionedTextEditingStrategy.placeElement().

This prevents a crash that can occur due to a race condition where
hasAutofillGroup returns true but focusedFormElement is null by the time
it's accessed.
2026-01-29 16:15:43 +00:00
engine-flutter-autoroll
f363764d92
Roll Packages from 1cb2148ade16 to cd4fd61fc5b6 (4 revisions) (#181663)
1cb2148ade...cd4fd61fc5

2026-01-28 magder@google.com [quick_actions_ios] Migrate XCTest to Swift
Testing (flutter/packages#10767)
2026-01-28 43054281+camsim99@users.noreply.github.com
[camera_android_camerax] Improve documentation on `cameraId` parameter
(flutter/packages#10844)
2026-01-28 43054281+camsim99@users.noreply.github.com
[camera_android_camerax] Improve error messages when image capture fails
(flutter/packages#10846)
2026-01-28 j.calvin.ren@gmail.com [image_picker] Transparent pressing on
iOS 26 (#173453) (flutter/packages#10533)

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-29 16:15:42 +00:00
engine-flutter-autoroll
e507769e76
Roll Skia from 89df65f8324c to 128b5213711e (2 revisions) (#181651)
https://skia.googlesource.com/skia.git/+log/89df65f8324c..128b5213711e

2026-01-29
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2026-01-29 rop@google.com Set Update Mechanism to Manual

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 bwils@google.com,codefu@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-29 16:15:42 +00:00
Daco Harkes
386826cc61
[hooks] Don't run build hooks for code assets in flutter run (#181542)
Since https://github.com/flutter/flutter/pull/174685, the code assets
are wrongly invoked on in the `flutter run` process (in addition to
rightly in the `flutter assemble` process). This should not be the case:
We don't know the target architectures we want to build for, neither do
we know which native compiler is set by the native build system that is
invoking us
(https://github.com/flutter/flutter/pull/181004#pullrequestreview-3664863551).

This PR changes the way the hooks are invoked:

* From `flutter run` only run for data assets. (Unblocks
https://github.com/flutter/flutter/pull/181004)
* All other remaining calls, run for both. There might be locations
where data assets could be disabled, but they are needed from the
`DartBuild` target at least in some cases.

The architecture becomes as follows:

* `FlutterNativeAssetsBuildRunner` this is basically the wrapper around
the `NativeAssetsBuildRunner` and there should be only one in a
`flutter_tools` instance, unchanged.
* `FlutterHookRunner` seems to be an interface to be able to supply
fakes, unchanged.
* `runFlutterSpecificHooks` get bool arguments whether they should build
code assets and data assets.
* The callers of these APIs know what asset types are needed in that
context. The invocations added in
https://github.com/flutter/flutter/pull/174685 should be data assets
only.
* Simplification: `FlutterHookRunnerNative.runHooks` does no longer use
`globals.buildSystem.build`. Instead, it directly calls
`runFlutterSpecificHooks`.
* This completely avoids writing to the flutter build directory, which
was the cause of https://github.com/flutter/flutter/issues/178529.
* The `ProtocolExtension`s (which determine which asset types are built)
are taken from `AssetBuildTarget`s, and take into account what asset
types to build, unchanged.

Tests:

* Code assets covered by existing integration tests such as
packages/flutter_tools/test/integration.shard/isolated/native_assets_test.dart
* Data assets covered by existing integration tests such as
packages/flutter_tools/test/integration.shard/isolated/dart_data_asset_test.dart
* This PR completely deletes
packages/flutter_tools/test/general.shard/build_system/targets/hook_runner_native_test.dart.
It was a unit test that testsed the specific workaround, not the effect
of the workaround.
* I've manually tested the steps in
https://github.com/flutter/flutter/issues/178529#issuecomment-3542651915,
the issue does not come back.
  
> the underlying issue did involve conflict between state written by the
original run of the build system versus state written by the secondary
run executed for the data assets. If the secondary run can be avoided,
then that seems cleaner.

Yep, removed.
2026-01-29 16:15:42 +00:00
engine-flutter-autoroll
6bbf9f277d
Roll Dart SDK from f10dcbfca98f to a0685c8e946b (5 revisions) (#181653)
https://dart.googlesource.com/sdk.git/+log/f10dcbfca98f..a0685c8e946b

2026-01-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-85.0.dev
2026-01-29 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-84.0.dev
2026-01-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-83.0.dev
2026-01-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-82.0.dev
2026-01-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-81.0.dev

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

To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-29 16:15:30 +00:00
walley892
d2d872c95e
Fixes getUniformX for Vulkan (#181286)
Does what it says on the tin!

This PR adds struct member information to the runtime flatbuffer format.
This allows dart code to introspect structs at runtime.

Also modifies the runtime_stage tests to verify formats for all
supported uniform types.

Bubbles up struct member information to dart, and uses that information
to grab struct members in `getUniformX` related functions. This is
necessary on Vulkan because all uniforms are packaged into a single
struct. Also re-enables tests

## 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.
2026-01-29 16:14:15 +00:00
engine-flutter-autoroll
2d970ed1e9
Roll Fuchsia Linux SDK from adhoq9ouVRh0xzkm3... to isy1ARvK-3bsvtfc-... (#181641)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter
Please CC codefu@google.com,zra@google.com on the revert to ensure that
a human
is aware of the problem.

To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-29 16:14:12 +00:00
Dmytro Turskyi
056c01581b
Add isDark, isLight, and isSystem getters to ThemeMode (#181475)
Adds boolean convenience getters (`isDark`, `isLight`, `isSystem`) to
`ThemeMode`.

This change improves readability and ergonomics when branching on
`ThemeMode` values by
providing named, self-documenting getters instead of repeated equality
checks
(e.g. `themeMode == ThemeMode.dark`). The addition is non-breaking and
does not
change any existing behavior.

Example:

Before:
if (themeMode == ThemeMode.dark) {
  ...
}

After:
if (themeMode.isDark) {
  ...
}

No tests were added as this change introduces simple enum getters with
no logic
beyond value comparison and does not alter runtime behavior.
2026-01-29 16:14:09 +00:00
auto-submit[bot]
da72d5936d
Reverts "[ Tool / Engine ] Cleanup x86 references (#181152)" (#181643)
<!-- start_original_pr_link -->
Reverts: flutter/flutter#181152
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: chingjun
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: broke internal tests.
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: bkonyi
<!-- end_original_pr_author -->

<!-- start_reviewers -->
Reviewed By: {mboetger, gaaclarke}
<!-- end_reviewers -->

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

Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2026-01-29 03:07:48 +00:00
engine-flutter-autoroll
2183e36e02
Roll Skia from 174db42b7300 to 89df65f8324c (2 revisions) (#181636)
https://skia.googlesource.com/skia.git/+log/174db42b7300..89df65f8324c

2026-01-28
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2026-01-28
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 bwils@google.com,codefu@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-29 01:13:18 +00:00
davidhicks980
e1e029d26d
[material/menu_anchor.dart] Add animations to MenuAnchor. (#176494)
* Adds MD3 animations to MenuAnchor. 
* Adds a "hoverOpenDelay" parameter on `SubmenuButton`
* Moves the layout algorithm from SingleChildLayoutDelegate to a custom
render object. <s>This was done because I needed to access the dry
layout of the menu panel for the best effect. I'll demonstrate
below.</s> Turns out using dry layout significantly limits what children
you can use with a widget. As a result, I'm calculating the final height
using the inverse height factor.

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

I don't have access to the internal Google documentation, so I did my
best to deduce the spec from
https://github.com/material-components/material-web/blob/main/menu/internal/menu.ts.

This change is currently opt-in via an `animated` parameter on
`MenuAnchor` and `SubmenuButton`. As a result, this is not a breaking
change. Because the PR is already quite large, I chose to not add
animation customization to this PR. I also didn't change any theming
files or `DropdownMenu`.

The only other API addition is a `hoverOpenDelay` parameter on
`SubmenuButton`. This parameter delays the start of a submenu opening by
the specified duration. It is independent of the `animated` parameter.

When `animated == false`, the menu runs its forward and reverse
animations with a duration of 0. I originally disposed of all animation
assets when `animated` was false, but found that the code/testing
complexity to be unwieldy.

<s>Blocked by https://github.com/flutter/flutter/pull/176503</s>

## Examples

* Basic example adapted from material-web


https://github.com/user-attachments/assets/e6d02fab-e11c-4dce-ab82-2fb39c1111e0

* Example showing scrollbar 


https://github.com/user-attachments/assets/847054ba-7218-4e73-9835-019bfa7b5521

* MenuBar usage


https://github.com/user-attachments/assets/8231b1cd-c40c-4f18-af87-1b77b43ecb7b

Thanks to @QuncCccccc and @dkwingsmt for [their work on this
issue.](https://github.com/flutter/flutter/pull/143416) Sorry for
throwing a wrench into the original PR by introducing `RawMenuAnchor`...

## 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-29 00:56:42 +00:00
engine-flutter-autoroll
c6c9a1f12c
Roll Skia from 8e09f8a82251 to 174db42b7300 (6 revisions) (#181627)
https://skia.googlesource.com/skia.git/+log/8e09f8a82251..174db42b7300

2026-01-28 bungeman@google.com SkTypeface::serialize to return bool
2026-01-28 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from a021d3e26e2d to 8f5821b0a35e (4 revisions)
2026-01-28 kjlubick@google.com Fix D3D build after Uniform type change
2026-01-28 kjlubick@google.com Fix duplicate compilation of
SkShaderUtils.cpp
2026-01-28 kjlubick@google.com Fix packing warning
2026-01-28 bungeman@google.com Fix documentation for getSegment

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 bwils@google.com,codefu@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-28 23:03:34 +00:00
LongCatIsLooong
f4c83de1bf
Send statusBarTouch events via dedicated messages (#179643)
Instead of using fake touch events. 

Before this patch `FlutterViewController` sends two fake touch events
(down and up), at `(0, 0)` to the framework to signal that the status
bar is tapped on iOS. The scaffold widget and the cupertino page
scaffold widget set up gesture detectors to listen for these fake taps,
and scroll the "primary" scrollable container to the top in response.

This messaging mechanism is sometimes ambiguous, as the framework may
interpret that as a pair of regular pointer tap events (for instance in
#177992 the modal barrier claims the tap gesture and as a result the
modal barrier is dismissed by the fake touch events). This PR changes
that to communicate the status bar tap event via a new system channel,
and dispatch the events via `WidgetsBindingObserver`s in the framework.

See also
https://github.com/flutter/flutter/issues/177992#issuecomment-3499913265

Fixes #177992, fixes #175606

It appears that UIKit also has access to the coordinates of the touch
events to determine which scrollable view(s?) to dispatch the scroll to
top event to.
```objc
  * frame #0: 0x00000001032f6520 UIPlayground.debug.dylib`MyScrollViewController.scrollViewShouldScrollToTop(scrollView=0x0000000106014800) at UIScrollView.swift:13:3
    frame #2: 0x00000001867c9300 UIKitCore`-[UIScrollView _scrollToTopIfPossible:] + 316
    frame #3: 0x00000001867c9604 UIKitCore`-[UIScrollView _scrollToTopFromTouchAtScreenLocation:resultHandler:] + 40
    frame #4: 0x0000000186299bbc UIKitCore`__71-[UIWindow _scrollToTopViewsUnderScreenPointIfNecessary:resultHandler:]_block_invoke.358 + 168
    frame #5: 0x000000018629981c UIKitCore`-[UIWindow _scrollToTopViewsUnderScreenPointIfNecessary:resultHandler:] + 1212
    frame #6: 0x000000018581ed8c UIKitCore`-[UIStatusBarManager _handleScrollToTopAtXPosition:] + 192
    frame #7: 0x000000018581eb60 UIKitCore`-[UIStatusBarManager handleTapAction:] + 60
```
Unfortunately that information is not available to user application. The
iOS accessibility bridge currently does create dummy UIScrollViews for
each scrollable in the accessibility tree so may be we can take
advantage of that in the future.

## 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-28 21:35:18 +00:00
August
047c0bd568
test: Improve DropdownMenuFormField tests (#181369)
Resolves
https://github.com/flutter/flutter/pull/181367#discussion_r2719670803

The test was still valid as `DropdownMenuFormField` includes
`DropdownMenu` and therefore could select the desired MenuItemButton.

## 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-28 21:04:17 +00:00
walley892
e435edfbcd
Account for vec3 padding in Metal (#181563)
Re-landing of https://github.com/flutter/flutter/pull/181340
incorporating https://github.com/flutter/flutter/pull/181550.

Vec3 uniforms on the metal backend are vec4-aligned. This PR accounts
for that padding.

---------

Co-authored-by: gaaclarke <30870216+gaaclarke@users.noreply.github.com>
2026-01-28 20:50:23 +00:00
Ben Konyi
b6fa57dd2e
[ Tool / Engine ] Cleanup x86 references (#181152)
Fixes https://github.com/flutter/flutter/issues/170142
2026-01-28 20:05:26 +00:00
yim
f1a74f4e8f
Fix the issue on macOS where, after a hot restart with multiple windows, unresponsive windows are left behind. (#180287)
There is currently an issue with multiple windows on macOS: after a hot
restart, new windows are created, but the original windows are not
closed. You can reproduce this by running examples/multiple_windows and
then performing a hot restart.

## 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-28 20:04:17 +00:00
engine-flutter-autoroll
6d4aea2a1d
Roll Skia from 675444e94bc9 to 8e09f8a82251 (7 revisions) (#181606)
https://skia.googlesource.com/skia.git/+log/675444e94bc9..8e09f8a82251

2026-01-28 borenet@google.com [infra] Pixel10 devices have been updated
2026-01-28 bungeman@google.com Fix bounds check for SkIntToFDot6
2026-01-28 michaelludwig@google.com Revert "[graphite] Merge
CommandBuffer::trackResource and ::trackCommandBufferResource"
2026-01-28 kjlubick@google.com Remove unused #defines
2026-01-28 kjlubick@google.com Disable legacy VMA behavior for Graphite
2026-01-28 kjlubick@google.com Disable legacy VMA behavior for Ganesh
2026-01-28 ccameron@chromium.org skhdr::AdaptiveGlobalToneMap: Add
validation and tests

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 bwils@google.com,codefu@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-28 20:03:12 +00:00
engine-flutter-autoroll
fef3518fb1
Roll Packages from e37af1148f45 to 1cb2148ade16 (5 revisions) (#181608)
e37af1148f...1cb2148ade

2026-01-27 engine-flutter-autoroll@skia.org Roll Flutter from
716564969037 to dfd92b773219 (22 revisions) (flutter/packages#10914)
2026-01-27 magder@google.com [shared_preferences_foundation] Migrate
XCTest to Swift Testing (flutter/packages#10766)
2026-01-27 magder@google.com [pigeon] Migrate XCTest to Swift Testing
(flutter/packages#10905)
2026-01-27 engine-flutter-autoroll@skia.org Roll Flutter (stable) from
8b872868494e to bd7a4a6b5576 (6 revisions) (flutter/packages#10913)
2026-01-27 47866232+chunhtai@users.noreply.github.com [ci] Add post
release label to sync_release_pr workflow (flutter/packages#10864)

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-28 18:44:25 +00:00
John "codefu" McDole
588d429c65
fix: swap app and engine version in vk::ApplicationInfo (#181432)
The driver on PIxel 10 requires Flutter to set the `engine` version to
something higher than 1.0. We had previous set the application version
without effect. With this change, I see we can get a valid vulkan
context.

- ran some testing against reported errors (saw none)
- compiled and ran wonderous with validation layers (runs)
- still researching 

towards: #179812


> On a pixel 10, the Vulkan engine version must be bumped up past 1.0
and any other additional checks gating Vulkan removed. It must be
confirmed that Impeller is able to create a Vulkan context.

Pixel 10 gets a Vulkan context with just the engine version bump.

> The usual sample applications must render accurately.

wonderous and failing code passes and renders correctly

> The reduced test cases in the internal doc must be tested.

it does.

> If testing is successful, the engine version update may be committed.
This is necessary for enabling Vulkan on Pixel 10 but not sufficient to
ensure stability of newer Vulkan enabled Impeller applications on Pixel
10 devices that have not yet been updated.

This PR does that.

> Impeller must detect the driver version and self-reject Vulkan on
device older than the current Pixel 10 GPU driver version. The IHV
reports that a safe conservative driver version is >= 25.1 and any
verification must happen on versions past this. Impeller should still
base its checks on the driver version that we verify correctness on.
What we have today works well and it is not advised to introduce
instability for the sake of enabling Vulkan on this device.

Done - driver_version appears to be a build number, so monotonically
increasing.
2026-01-28 18:34:17 +00:00
gaaclarke
0c2d316b15
Adds impeller backend to skia gold client (#181503)
141886358e
made dart tests run against metal as well as vulkan. At the time there
was no reported error. I suspect the vulkan and metal results are
clobbering each other though since the backend was not part of the
dimensions.

test exempt: is test

## 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-28 17:04:33 +00:00
Mouad Debbar
f9d489f9ea
Remove chrome_and_driver dependency where it's not needed (#178174)
Similar to https://github.com/flutter/flutter/pull/178078
2026-01-28 16:43:39 +00:00
John "codefu" McDole
2260544e14
chore: Windows_mokey basic_material_app_win__compile !bringup (#180985)
This test has been green in staging for the last 200 runs at least

Co-authored-by: Ben Konyi <bkonyi@google.com>
2026-01-28 16:40:17 +00:00
Mohellebi Abdessalem
0bd69d2084
Fix generating both settings.gradle and settings.gradle.kts for plugins (#181592)
Fixes #181565
Fixes #142685
this was a side effect from #173993

## 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-28 16:09:28 +00:00
engine-flutter-autoroll
439321be30
Roll Skia from 6614f89de521 to 675444e94bc9 (3 revisions) (#181587)
https://skia.googlesource.com/skia.git/+log/6614f89de521..675444e94bc9

2026-01-28
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2026-01-28 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 60d944528fcf to a021d3e26e2d (10 revisions)
2026-01-28 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from 7d18711a101b to 2d0c30fb2b6a (10 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 bwils@google.com,codefu@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-28 10:19:44 +00:00
Huy
8268427c5e
Fix todayBorder todayBorder color is incorrectly overridden by todayForegroundColor in CalendarDatePicker (#178792)
- Fix https://github.com/flutter/flutter/issues/177911
- In this PR:
- Avoid auto-overriding border side color with `dayForegroundColor` when
users specify an explicit border color
    - Improve `todayBorder` documentation to clarify cases can happen.
- Add an opacity check: this is because if we don't respect/specify an
explicit border color, we still need to keep enabled/disabled states
(state-aware) that `dayForegroundColor` always does:


de3f804590/packages/flutter/lib/src/material/date_picker_theme.dart (L1174)

So we need a fallback compatibility here:

```dart
final bool hasCustomBorderColor =
        datePickerTheme.todayBorder != null && datePickerTheme.todayBorder?.color.opacity != 0.0;
    final BorderSide todayBorderSide = hasCustomBorderColor
        ? datePickerTheme.todayBorder!
        : (datePickerTheme.todayBorder ?? defaults.todayBorder!).copyWith(
            color: dayForegroundColor,
          );
```

- Added 3 tests in `calendar_date_picker_test.dart‎`.
- Update test data in `date_picker_theme_test.dart`: Updated todayBorder
from `BorderSide(width: 3)` to `BorderSide(width: 3, color:
Color(0x00000000))` to maintain backward compatible behavior in tests:
after changing color to transparent, it should fall back to
`todayForegroundColor`. This is because the test's real purpose was to
verify theme properties work, and it was expecting foreground color
(which is the bug reported).

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

| Before | After |
| --------------- | --------------- |
<img width="400"
src="https://github.com/user-attachments/assets/59c70071-d278-46f8-a566-40589cf01f9a">
| <img width="400"
src="https://github.com/user-attachments/assets/a4309fb0-7360-4c11-a9c1-dd1f1ebf9190">
</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>
Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
2026-01-28 08:27:34 +00:00
engine-flutter-autoroll
d7afdcb63b
Roll Skia from 8f1695a4b328 to 6614f89de521 (2 revisions) (#181583)
https://skia.googlesource.com/skia.git/+log/8f1695a4b328..6614f89de521

2026-01-28 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia
Infra from d396079330da to 8556bb0e87c8 (8 revisions)
2026-01-28 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn
from 2a05902cae1a to e427e28a231f (10 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 bwils@google.com,codefu@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-28 07:55:33 +00:00
Kishan Rathore
e4925ec393
feat: add RoundedSuperellipseInputBorder (#177220)
# Whats new

* Add RoundedSuperellipseInputBorder

fixes: #176987 

## 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-28 06:53:58 +00:00
engine-flutter-autoroll
4783b5a8f1
Roll Dart SDK from 38e351498549 to f10dcbfca98f (2 revisions) (#181582)
https://dart.googlesource.com/sdk.git/+log/38e351498549..f10dcbfca98f

2026-01-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-80.0.dev
2026-01-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-79.0.dev

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

To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-28 06:46:26 +00:00
engine-flutter-autoroll
ff625c80d8
Roll Skia from f424d58e37a3 to 8f1695a4b328 (6 revisions) (#181577)
https://skia.googlesource.com/skia.git/+log/f424d58e37a3..8f1695a4b328

2026-01-28
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2026-01-27 kjlubick@google.com Replace SK_FONT_FILE_PREFIX with
constexpr
2026-01-27 bungeman@google.com Remove SK_SUPPORT_MUTABLE_PATHEFFECT
2026-01-27 ccameron@chromium.org Remove skhdr::Agtm interface
2026-01-27 michaelludwig@google.com [graphite] Re-arrange unassigned,
B2F stencil bits to be drawn later
2026-01-27 michaelludwig@google.com [graphite] Fix InnerFillTest to
account for dst read flushes

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 bwils@google.com,codefu@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-28 03:40:28 +00:00
Mohellebi Abdessalem
2a753c2d9c
Remove unused code paths in PlatformViewsController.java (#181393)
while creating #181330 
it was discovered that the `enforceMinimumAndroidApiVersion` was used to
ensure that we are in a specific API level and throw an error if not ,
since the min API level is 24 now , that code can be removed
## 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-28 03:24:28 +00:00
Kishan Rathore
3b449c84d3
feat: add onEnd to AnimatedCrossFade (#181455)
feat: add onEnd to AnimatedCrossFade
fixes: #180682 

## 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-28 02:26:24 +00:00
Harry Terkelsen
1205220797
Don't pass bounds to saveLayer call when painting ImageFilter (#181353)
This causes the filter to apply incorrectly with certain TileModes in
Skwasm.

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

## 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-28 01:04:31 +00:00