87776 Commits

Author SHA1 Message Date
engine-flutter-autoroll
cf0d4f437f
Roll Fuchsia Linux SDK from bt8PcNuBv54eIli85... to PQtJ5GO3W9Vy-z5aW... (#181116)
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 jimgraham@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-17 23:33:27 +00:00
engine-flutter-autoroll
ab03407b54
Roll Dart SDK from c144fdb6b823 to 1aa700abeec1 (1 revision) (#181115)
https://dart.googlesource.com/sdk.git/+log/c144fdb6b823..1aa700abeec1

2026-01-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-41.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 dart-vm-team@google.com,jimgraham@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-17 22:59:16 +00:00
engine-flutter-autoroll
0c9d4b98a7
Roll Skia from bfc33138601a to ad7f4edcaffc (1 revision) (#181107)
https://skia.googlesource.com/skia.git/+log/bfc33138601a..ad7f4edcaffc

2026-01-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 951ad4a28513 to 228788215eb9 (1 revision)

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

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-17 19:06:24 +00:00
engine-flutter-autoroll
2bb464851d
Roll Dart SDK from 65346915b25d to c144fdb6b823 (1 revision) (#181106)
https://dart.googlesource.com/sdk.git/+log/65346915b25d..c144fdb6b823

2026-01-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-40.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 dart-vm-team@google.com,jimgraham@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-17 17:55:17 +00:00
engine-flutter-autoroll
7bc5493d88
Roll Dart SDK from 0755243b0000 to 65346915b25d (4 revisions) (#181102)
https://dart.googlesource.com/sdk.git/+log/0755243b0000..65346915b25d

2026-01-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-39.0.dev
2026-01-16 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-38.0.dev
2026-01-16 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-37.0.dev
2026-01-16 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-36.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 dart-vm-team@google.com,jimgraham@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-17 09:13:29 +00:00
engine-flutter-autoroll
387ef0bc05
Roll Skia from 0d60c01b23a6 to bfc33138601a (4 revisions) (#181100)
https://skia.googlesource.com/skia.git/+log/0d60c01b23a6..bfc33138601a

2026-01-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 3d192133a53d to 951ad4a28513 (12 revisions)
2026-01-17
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2026-01-16
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2026-01-16 michaelludwig@google.com Revert "[wgsl] Apply array polyfills
in synthetic sksl tests correctly"

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 jimgraham@google.com,kjlubick@google.com,thomsmit@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-17 08:28:17 +00:00
Ikramul Hasan
80d48a721f
fix: clip ink highlights in NavigationDrawer when footer is present (#181050)
Fixes: #180233 

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


## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
2026-01-17 01:55:21 +00:00
Navaron Bracke
e561a9fb82
Remove divider from widgets tests (#180999)
This PR removes `Divider` usages from
`test/widgets/scroll_view_test.dart` and
`test/widgets/list_view_test.dart`.
Usages of `Divider()` still exist under `examples/api` and in code
samples under `lib/widgets`, though.

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

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

## Pre-launch Checklist

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

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2026-01-17 01:46:22 +00:00
Mairramer
610a1c0cae
Fix vertical SegmentedButton not filling available width under bounded constraints (#180701)
Fixes an issue where vertical segments used intrinsic width instead of
expanding to fill the parent's bounded width, resulting in narrow tap
targets.

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

## Pre-launch Checklist

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

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2026-01-17 00:56:49 +00:00
Navaron Bracke
74f162d189
clean up usages of resetXyz for TestFlutterView (#180840)
While reviewing https://github.com/flutter/flutter/pull/180728 we
noticed that usage of `TestFlutterView.resetXyz()` was quite liberal and
some places benefit from using `TestFlutterView.reset()`, to avoid
repetition.

This PR cleans that up.

## Pre-launch Checklist

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

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2026-01-17 00:53:56 +00:00
Harry Terkelsen
c652e45cd1
Fix style_manager_test for Firefox (#181084)
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/180940

## Pre-launch Checklist

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

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2026-01-17 00:52:09 +00:00
engine-flutter-autoroll
42bd3c095d
Roll Skia from 47d1d2f5bda8 to 0d60c01b23a6 (6 revisions) (#181085)
https://skia.googlesource.com/skia.git/+log/47d1d2f5bda8..0d60c01b23a6

2026-01-16 michaelludwig@google.com [wgsl] Apply array polyfills in
synthetic sksl tests correctly
2026-01-16 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll
Dawn from 8cdfb5f7b2c9 to b6ad04f90bdb (7 revisions)
2026-01-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 3249f65a4e16 to 3d192133a53d (1 revision)
2026-01-16
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2026-01-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from a37809556c39 to 8f8fc461bbc2 (10 revisions)
2026-01-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia
Infra from e39f04dac8f1 to 7b586743f3a3 (12 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 jimgraham@google.com,kjlubick@google.com,thomsmit@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-17 00:48:41 +00:00
walley892
3b49eb4429
Add support for fetching array uniforms by name (#180647)
Adds support for fetching objects representing array Uniforms of type
float, vec2, vec3, and vec4. Happy new year!

Before this change, setting an array of uniforms was verbose.
```glsl
uniform vec3[2] uColors;
```

```dart
shader.setFloat(0, 1.0);
shader.setFloat(1, 0.0);
shader.setFloat(2, 1.0);
shader.setFloat(3, 0.0);
shader.setFloat(4, 1.0);
shader.setFloat(5, 0.0);
```

After this change, we have:

```glsl
uniform vec3[2] uColors;
```

```dart
final colors = shader.getUniformVec3Array("uColors");
colors[0].set(1.0, 0.0, 1.0);
colors[1].set(0.0, 1.0, 0.0);
```

- Adds a class UniformArray to represent uniform arrays in Dart.
- Adds a bunch of methods that construct these arrays for various
datatypes
- Adds tests
- Also removes some of the awkwardness in the _getUniformFloatIndex
function by replacing that function entirely

## 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-17 00:47:54 +00:00
bungeman
38a22ff523
Remove use of SkDeserialProcs::fTypefaceProc (#181047)
SkDeserialProcs::fTypefaceProc took a void* and size_t, but the
expectation was that the void* was a SkStream** and the size_t was
always sizeof(SkStream*). Users should now use the less confusing
replacement SkDeserialProcs::fTypefaceStreamProc which takes an
SkStream&.
2026-01-17 00:47:54 +00:00
bungeman
e9693c66e1
Migrate gradient creation to the new SkShaders API (#180766)
Update calls from the deprecated SkGradientShader::MakeLinear and
SkGradientShader::MakeRadial to the new SkShaders::LinearGradient and
SkShaders::RadialGradient functions. This implies updating the gradient
color specifications from SkColor to SkColor4f. The macro
SK_SUPPORT_LEGACY_UNSPANNED_GRADIENTS is removed.
2026-01-17 00:47:53 +00:00
auto-submit[bot]
af121ba5f3
Reverts "Fix capitalization of the path to FlutterWindowControllerTest.mm in the macOS platform build script (#181045)" (#181091)
<!-- start_original_pr_link -->
Reverts: flutter/flutter#181045
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: jason-simmons
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: `FlutterWindowControllerTest.mm` has clang-tidy
warnings.

The clang_tidy script did not previously process this file because the
capitalization of the file's path in `compile_commands.json` (derived
from `BUILD.gn`) did not match the path in the source tree.
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: jason-simmons
<!-- end_original_pr_author -->

<!-- start_reviewers -->
Reviewed By: {jtmcdole, jmagman}
<!-- end_reviewers -->

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

Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2026-01-16 22:51:27 +00:00
David Bebawy
99e01e108a
fix(windows): use wcsnlen for defensive programming (CWE-126) (#180419)
## Description

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

## Changes

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

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

## Test Coverage

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

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

## Files Updated

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

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

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

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

## Rationale

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

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

## Related Issues

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

## Pre-launch Checklist

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

[Contributor Guide]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[breaking change policy]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#breaking-changes
2026-01-16 18:21:15 +00:00
engine-flutter-autoroll
d804b4ac59
Roll Packages from ce3afa467840 to c1b1183ec1ed (4 revisions) (#181077)
ce3afa4678...c1b1183ec1

2026-01-16 engine-flutter-autoroll@skia.org Manual roll Flutter from
b45a73b1dc3e to 48c247582e45 (3 revisions) (flutter/packages#10814)
2026-01-16 engine-flutter-autoroll@skia.org Manual roll Flutter from
b45a73b1dc3e to 5a2067baa3d1 (4 revisions) (flutter/packages#10810)
2026-01-15 pedromassango.developer@gmail.com [url_launcher] fix: tab
traversal on web (flutter/packages#10020)
2026-01-15 stuartmorgan@google.com [google_maps_flutter] Migrate Android
heatmaps to Pigeon (flutter/packages#10758)

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-16 18:17:02 +00:00
Jason Simmons
3ca6ba1797
Fix capitalization of the path to FlutterWindowControllerTest.mm in the macOS platform build script (#181045)
Fixes https://github.com/flutter/flutter/issues/180963
2026-01-16 18:15:52 +00:00
engine-flutter-autoroll
2f91a5e60e
Roll Skia from 5b0b17eed6b6 to 47d1d2f5bda8 (1 revision) (#181068)
https://skia.googlesource.com/skia.git/+log/5b0b17eed6b6..47d1d2f5bda8

2026-01-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn
from bcc3fe09d16d to 8cdfb5f7b2c9 (4 revisions)

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

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-16 18:15:51 +00:00
engine-flutter-autoroll
69ae4d26a8
Roll Fuchsia Linux SDK from GnNlLjoD7vXMhQ0NL... to bt8PcNuBv54eIli85... (#181064)
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 jimgraham@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-16 18:14:53 +00:00
engine-flutter-autoroll
2057a543d6
Roll Dart SDK from 27326ef2fe32 to 0755243b0000 (3 revisions) (#181070)
https://dart.googlesource.com/sdk.git/+log/27326ef2fe32..0755243b0000

2026-01-16 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-35.0.dev
2026-01-16 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-34.0.dev
2026-01-15 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-33.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 dart-vm-team@google.com,jimgraham@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-16 18:13:31 +00:00
Jaime Wren
78d0d4bfb1
Add table detailing AI rule file character limits for various tools (#179817)
Co-authored-by: John Ryan <ryjohn@google.com>
2026-01-16 17:37:10 +00:00
Jason Simmons
6159a34a6f
Manual roll of pub packages including an update to meta version 1.18.0 (#181078)
See
https://github.com/flutter/flutter/issues/180503#issuecomment-3759624477
2026-01-16 17:12:33 +00:00
engine-flutter-autoroll
66b42dd105
Roll Skia from 946441608e3e to 5b0b17eed6b6 (2 revisions) (#181063)
https://skia.googlesource.com/skia.git/+log/946441608e3e..5b0b17eed6b6

2026-01-16
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2026-01-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from e6886b744874 to 3249f65a4e16 (8 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 jimgraham@google.com,kjlubick@google.com,thomsmit@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-16 03:10:14 +00:00
Gray Mackall
215ff2e7fe
Fix hcpp flicker when scrolling off/on screen (#181009)
Don't apply the transaction immediately, but let it be applied with
flutter frame timing.

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

See videos:

<table width="100%">
  <thead>
    <tr>
      <th align="center">With Change</th>
      <th align="center">Without Change</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td align="center" width="50%">
<video
src="https://github.com/user-attachments/assets/0370a7bc-88b5-49f0-8702-ac844309a50d"
controls="controls" style="max-width: 100%;"></video>
      </td>
      <td align="center" width="50%">
<video
src="https://github.com/user-attachments/assets/5f18cdbe-4218-4c7d-b582-5d175aa964b6"
controls="controls" style="max-width: 100%;"></video>
      </td>
    </tr>
    <tr>
      <td align="center">
<video
src="https://github.com/user-attachments/assets/21ef1c37-47cc-4d04-ae49-d8acb9145aa8"
controls="controls" style="max-width: 100%;"></video>
      </td>
      <td align="center">
<video
src="https://github.com/user-attachments/assets/091c9ff5-0e25-4696-a006-73823fc0fd8d"
controls="controls" style="max-width: 100%;"></video>
      </td>
    </tr>
  </tbody>
</table>



## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [ ] 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-16 02:30:12 +00:00
flutter-pub-roller-bot
f89275a408
Roll pub packages (#181054)
This PR was generated by `flutter update-packages --force-upgrade`.
2026-01-16 02:28:01 +00:00
Harry Terkelsen
5cefaad4a5
Fix bug in multisurfacerenderer where canvases do not have "position: absolute" (#181053)
When using MultiSurfaceRasterizer, the on-screen canvases did not have
`position: absolute`, causing layout issues when platform views with
overlaid content was rendered.

Fixes internal bug b/475770800

## 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-16 02:26:12 +00:00
auto-submit[bot]
5648089dbd
Reverts "Fix style manager test by actually focusing the tested element. (#181012)" (#181060)
<!-- start_original_pr_link -->
Reverts: flutter/flutter#181012
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: harryterkelsen
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: test is still failing in CI
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: harryterkelsen
<!-- end_original_pr_author -->

<!-- start_reviewers -->
Reviewed By: {mdebbar, ditman}
<!-- end_reviewers -->

<!-- start_revert_body -->
This change reverts the following previous change:
The test was incorrect before since it assumed
`getComputedStyle(element, 'focus')` gets the style for element when it
is focused. Instead, it just gets the default style since the `'focus'`
parameter doesn't specify a real pseudo-element or pseudo-class. This
fixes the test by manually focusing the element and then getting the
computed style. This returns the computed style of the element when it
is focused.

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

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

<!-- end_revert_body -->

Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2026-01-16 00:51:47 +00:00
engine-flutter-autoroll
4f83806667
Roll Skia from 99ca06841616 to 946441608e3e (3 revisions) (#181042)
https://skia.googlesource.com/skia.git/+log/99ca06841616..946441608e3e

2026-01-15 kjlubick@google.com Update SkCodec::ResultToString to include
OOM
2026-01-15 kjlubick@google.com Add explicit freetype deserializing in
CanvasKit and Debugger
2026-01-15 nicolettep@google.com Remove usage of std::move usage for
std::string_views

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 jimgraham@google.com,kjlubick@google.com,thomsmit@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-15 21:38:18 +00:00
Harry Terkelsen
abe64db7ba
Fix style manager test by actually focusing the tested element. (#181012)
The test was incorrect before since it assumed
`getComputedStyle(element, 'focus')` gets the style for element when it
is focused. Instead, it just gets the default style since the `'focus'`
parameter doesn't specify a real pseudo-element or pseudo-class. This
fixes the test by manually focusing the element and then getting the
computed style. This returns the computed style of the element when it
is focused.

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

## 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-15 20:22:03 +00:00
engine-flutter-autoroll
c9a5d71226
Roll Dart SDK from 311a435e153e to 27326ef2fe32 (2 revisions) (#181037)
https://dart.googlesource.com/sdk.git/+log/311a435e153e..27326ef2fe32

2026-01-15 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-32.0.dev
2026-01-15 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-31.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter
Please CC dart-vm-team@google.com,jimgraham@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-15 19:45:32 +00:00
engine-flutter-autoroll
226484bf12
Roll Skia from 9f26f4fd4e45 to 99ca06841616 (8 revisions) (#181038)
https://skia.googlesource.com/skia.git/+log/9f26f4fd4e45..99ca06841616

2026-01-15 ccameron@chromium.org SkColorSpacePrimaries: Add operator==
2026-01-15 jrprice@google.com [dawn] Disable SPIR-V validation
2026-01-15 bungeman@google.com Introduce
SkDeserialProcs::fTypefaceStreamProc
2026-01-15 thomsmit@google.com Reland "[graphite] Separate input
generation from PaintParamsKeyTest"
2026-01-15 michaelludwig@google.com [wgsl] Add outerProduct polyfill and
other intrinsic renames
2026-01-15 ccameron@google.com Revert "skhdr: Add operator== for several
structures"
2026-01-15 ccameron@chromium.org skhdr: Add operator== for several
structures
2026-01-15 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll
Dawn from 3b5d7d8ee091 to bcc3fe09d16d (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 jimgraham@google.com,kjlubick@google.com,thomsmit@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-15 18:56:31 +00:00
Jason Simmons
7d755d1093
Remove setup_hooks.dart and move _setupHooks back into natives.dart (#181008)
_setupHooks had been extracted into a separate file as part of Impeller
Scene, which was later removed from the engine.

setup_hooks.dart was not distributed with Flutter releases, and the
reference to a nonexistent file in the dart:ui library caused issues for
tools like source_gen
2026-01-15 15:59:18 +00:00
engine-flutter-autoroll
f4d405c4ff
Roll Packages from 98b0325fc86e to ce3afa467840 (5 revisions) (#181035)
98b0325fc8...ce3afa4678

2026-01-15 engine-flutter-autoroll@skia.org Manual roll Flutter from
793b0b89e82e to b45a73b1dc3e (8 revisions) (flutter/packages#10799)
2026-01-15 stuartmorgan@google.com [path_provider] Re-release FFI
foundation version (flutter/packages#10722)
2026-01-15 stuartmorgan@google.com [google_sign_in] Convert iOS tests to
Swift (flutter/packages#10787)
2026-01-14 stuartmorgan@google.com [video_player] Update for UIScene
compatibility (flutter/packages#10676)
2026-01-14 magder@google.com [pointer_interceptor_ios] Migrate XCTest to
Swift Testing (flutter/packages#10762)

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-15 15:51:33 +00:00
engine-flutter-autoroll
e5734555c2
Roll Skia from 00821fe32457 to 9f26f4fd4e45 (1 revision) (#181032)
https://skia.googlesource.com/skia.git/+log/00821fe32457..9f26f4fd4e45

2026-01-15 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from e5aebf166a3d to e6886b744874 (5 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 jimgraham@google.com,kjlubick@google.com,thomsmit@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-15 15:17:07 +00:00
engine-flutter-autoroll
3af33a0771
Roll Dart SDK from 2ef8f57989c2 to 311a435e153e (1 revision) (#181030)
https://dart.googlesource.com/sdk.git/+log/2ef8f57989c2..311a435e153e

2026-01-15 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-30.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 dart-vm-team@google.com,jimgraham@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-15 13:15:23 +00:00
engine-flutter-autoroll
a237ff5109
Roll Skia from ae362651999f to 00821fe32457 (1 revision) (#181029)
https://skia.googlesource.com/skia.git/+log/ae362651999f..00821fe32457

2026-01-15
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 jimgraham@google.com,kjlubick@google.com,thomsmit@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-15 12:13:34 +00:00
engine-flutter-autoroll
590666c456
Roll Skia from 8e6ada219161 to ae362651999f (4 revisions) (#181026)
https://skia.googlesource.com/skia.git/+log/8e6ada219161..ae362651999f

2026-01-15 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from 2d8ac01dc65b to a37809556c39 (12 revisions)
2026-01-15 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn
from 31f8724375b3 to 3b5d7d8ee091 (9 revisions)
2026-01-15 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
SwiftShader from 76b5d96a9287 to 9c9be8427470 (1 revision)
2026-01-15 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia
Infra from 59aa56349f0e to e39f04dac8f1 (9 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 jimgraham@google.com,kjlubick@google.com,thomsmit@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-15 09:23:27 +00:00
Onnimanni Hannonen
df73099467
Implement superellipse support for CupertinoFocusHalo (#180724)
This PR closes #180719

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

## Pre-launch Checklist

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2026-01-15 07:30:33 +00:00
engine-flutter-autoroll
a78e8069c4
Roll Skia from 45a16cc7044e to 8e6ada219161 (2 revisions) (#181022)
https://skia.googlesource.com/skia.git/+log/45a16cc7044e..8e6ada219161

2026-01-15
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2026-01-15
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 jimgraham@google.com,kjlubick@google.com,thomsmit@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-15 07:00:27 +00:00
engine-flutter-autoroll
831c95aced
Roll Dart SDK from 8fe983db0c99 to 2ef8f57989c2 (6 revisions) (#181018)
https://dart.googlesource.com/sdk.git/+log/8fe983db0c99..2ef8f57989c2

2026-01-15 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-29.0.dev
2026-01-14 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-28.0.dev
2026-01-14 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-27.0.dev
2026-01-14 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-26.0.dev
2026-01-14 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-25.0.dev
2026-01-14 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-24.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 dart-vm-team@google.com,jimgraham@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-15 04:36:55 +00:00
engine-flutter-autoroll
9fbfe28685
Roll Skia from 95ad05a1e20f to 45a16cc7044e (1 revision) (#181017)
https://skia.googlesource.com/skia.git/+log/95ad05a1e20f..45a16cc7044e

2026-01-15
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 jimgraham@google.com,kjlubick@google.com,thomsmit@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-15 03:22:06 +00:00
Qun Cheng
518addc0dd
Update localizations from translation console (#180997)
Some new strings were added to the **widgets** layer(like "Search
results found", "no results found" and etc.) but never got translated
for a long time. Since the issue in g3 has been fixed and the
translation in g3 has finished, this PR is to back-integrate the
translation to framework.

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

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
2026-01-15 02:55:21 +00:00
Jason Simmons
db012f2a9d
Manual roll of Dart SDK from ebaf52c13799 to 8fe983db0c99 (6 revisions) (#180978)
This version of the Dart SDK includes some new analyzer checks for
@override annotations. (see
https://dart.googlesource.com/sdk.git/+/19b06b560f4ad8a5356034fe4d01b9b05008bbc8)

The roll disables these checks when analyzing code snippets within
Dartdoc documentation.

https://dart.googlesource.com/sdk.git/+log/ebaf52c13799..8fe983db0c99

2026-01-13 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.12.0-23.0.dev 2026-01-13
dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version
3.12.0-22.0.dev 2026-01-13
dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version
3.12.0-21.0.dev 2026-01-13
dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version
3.12.0-20.0.dev 2026-01-13
dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version
3.12.0-19.0.dev 2026-01-13
dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version
3.12.0-18.0.dev
2026-01-15 02:09:42 +00:00
engine-flutter-autoroll
f472223f31
Roll Skia from 213247579bbe to 95ad05a1e20f (2 revisions) (#181010)
https://skia.googlesource.com/skia.git/+log/213247579bbe..95ad05a1e20f

2026-01-14 egdaniel@google.com Add skia tools util to set deserial procs
for SKP decoding.
2026-01-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 9283eb54dc67 to e5aebf166a3d (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 jimgraham@google.com,kjlubick@google.com,thomsmit@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-15 01:18:51 +00:00
Jon Mountjoy
bc0ef2c81e
Add RouteSettings to showCupertinoSheet (#178643)
This PR adds missing RouteSettings to `showCupertinoSheet`

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

## Pre-launch Checklist

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

Co-authored-by: Tong Mu <dkwingsmt@users.noreply.github.com>
2026-01-15 00:40:08 +00:00
flutter-pub-roller-bot
9927ddcaaf
Roll pub packages (#181006)
This PR was generated by `flutter update-packages --force-upgrade`.
2026-01-14 22:56:39 +00:00
engine-flutter-autoroll
6d64dba445
Roll Skia from 2c1a8b9c89fa to 213247579bbe (4 revisions) (#181002)
https://skia.googlesource.com/skia.git/+log/2c1a8b9c89fa..213247579bbe

2026-01-14 thomsmit@google.com [vello] remove vello tryjobs and tasks
2026-01-14 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll
Dawn from d4a5cc826c44 to 31f8724375b3 (8 revisions)
2026-01-14 ccameron@chromium.org skhdr::Metadata: Add
makeToneMapColorFilter helper
2026-01-14 egdaniel@google.com Update gitignore rules for viewer assets.

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 jimgraham@google.com,kjlubick@google.com,thomsmit@google.com
on the revert to ensure that a human
is aware of the problem.

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry
To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2026-01-14 22:48:49 +00:00
Harry Terkelsen
0eab137bcd
Skip flaky test on Firefox (#180941)
Skips flaky test on Firefox until
https://github.com/flutter/flutter/issues/180940 is fixed.

## Pre-launch Checklist

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

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md

---------

Co-authored-by: Mouad Debbar <mouad.debbar@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-01-14 21:59:51 +00:00