83773 Commits

Author SHA1 Message Date
Reid Baker
f20bc39cc0
Add kotlin compatability to build file validation (#167143)
Fixes https://github.com/flutter/flutter/issues/161443 

* adds a new gradle task like `javaVersion` named `kgpVersion` that
prints the version of kgp.
* adds gradle_utils.dart method for getting kgp version
* * kgp method is moved to utilities and we attempt to use a plugin
method before reflection.
* adds methods or  evaluating KGP + gradle and KGP + AGP compatibility. 
* * It turns out that we have been using incompatible versions that
happen to work with the subset of kotlin we are using.
* Uses new kgp methods in flutter analyze --suggestions as part of the
existing agp/java/gradle compatibility matrix.
* adds new tests for all new functionality
* Adds comments to sections of the code I found could use them. 
* Modifies flutter gallery to use a compatible version of kotlin and
update its lockfiles.


## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [X] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
2025-04-18 16:32:08 +00:00
engine-flutter-autoroll
d203008741
Roll Skia from 844496884aa0 to 6c4595124690 (2 revisions) (#167400)
https://skia.googlesource.com/skia.git/+log/844496884aa0..6c4595124690

2025-04-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from da64cc98aa1f to b61587033344 (1 revision)
2025-04-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from a6a7de5aecab to 4b9525b2667f (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 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
2025-04-18 12:39:41 +00:00
Bruno Leroux
7cadbeac6a
Fix CarouselView crashes when initlal viewportDimension is 0.0 (#167271)
## Description

This PR fixes CarouselView crashes due to viewportDimension being 0.0.
 
At startup, a warm-up frame can be produced before the Flutter engine
has reported the
initial view metrics. As a result, the first frame can be produced with
a size of zero. In the context of CarouselView this leads to some
problems mainly related to division by zero.

## Related Issue

Fixes https://github.com/flutter/flutter/issues/163436
Fixes https://github.com/flutter/flutter/issues/160679

## Tests

Adds 5 tests.
2025-04-18 12:15:30 +00:00
engine-flutter-autoroll
810024f3c9
Roll Dart SDK from b1eb743f97f5 to ab60afc99bcb (1 revision) (#167396)
https://dart.googlesource.com/sdk.git/+log/b1eb743f97f5..ab60afc99bcb

2025-04-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-31.0.dev

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-04-18 09:41:26 +00:00
Bruno Leroux
8e3e7f4a3e
Add InputDecoration.visualDensity and InputDecorationTheme.visualDensity (#166834)
## Description

This PR introduces `InputDecoration.visualDensity` and
`InputDecorationTheme.visualDensity`.
See
https://github.com/flutter/flutter/issues/166201#issuecomment-2774622584
for motivation.

## Related Issue

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

## Tests

Adds 8 tests (4 for filled decoration, 4 for outlined decoration).
2025-04-18 09:23:38 +00:00
engine-flutter-autoroll
b98efa6a31
Roll Skia from acc910544da7 to 844496884aa0 (1 revision) (#167389)
https://skia.googlesource.com/skia.git/+log/acc910544da7..844496884aa0

2025-04-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
SwiftShader from 2d70dae3d0ca to 0e75e7030ccb (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 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
2025-04-18 07:21:24 +00:00
engine-flutter-autoroll
b29d7bc42a
Roll Skia from a409d685a711 to acc910544da7 (10 revisions) (#167388)
https://skia.googlesource.com/skia.git/+log/a409d685a711..acc910544da7

2025-04-18 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll
Dawn from 33862a3ffc8a to 971cc7345000 (191 revisions)
2025-04-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from f6ce0375d108 to da64cc98aa1f (7 revisions)
2025-04-17 robertphillips@google.com Fix ChromePrecompileTest for Intel
Macs
2025-04-17 borenet@google.com [infra] Add P30 jobs
2025-04-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
skottie-base from 868103199143 to f4a4eee934a3
2025-04-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
shaders-base from 64b9cec3c82d to 11837b5a53d7
2025-04-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
jsfiddle-base from 05716f858285 to 05b60ca904d9
2025-04-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
debugger-app-base from 9e80d6bc5f11 to f59c59370426
2025-04-17 nicolettep@google.com [graphite] Run precompile tests when
making changes to relevant files
2025-04-17 jvanverth@google.com [graphite] Use sk_sp<TextureProxy> for
PathAtlas instead of raw pointer.

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
2025-04-18 05:02:08 +00:00
engine-flutter-autoroll
40f25c9b19
Roll Dart SDK from 2bb85834e77e to b1eb743f97f5 (2 revisions) (#167387)
https://dart.googlesource.com/sdk.git/+log/2bb85834e77e..b1eb743f97f5

2025-04-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-30.0.dev
2025-04-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-29.0.dev

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-04-18 04:32:31 +00:00
engine-flutter-autoroll
1db4930a43
Roll Fuchsia Linux SDK from m8Aln7fTF_8zy1V9N... to MwYckh5OvwwmIYLx0... (#167385)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter
Please CC codefu@google.com,zra@google.com on the revert to ensure that
a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-04-18 02:06:36 +00:00
engine-flutter-autoroll
99c3d03758
Roll Skia from cc2b57434651 to a409d685a711 (3 revisions) (#167347)
https://skia.googlesource.com/skia.git/+log/cc2b57434651..a409d685a711

2025-04-17 michaelludwig@google.com Revert "[graphite] Update DrawWriter
to minimize binds by using pending base offsets."
2025-04-17 jvanverth@google.com [graphite] Use sk_sp<TextureProxy> for
ClipAtlas instead of raw pointer.
2025-04-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 3bc11f8f2d55 to f6ce0375d108 (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 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
2025-04-17 21:43:48 +00:00
Jason Simmons
c53fdbdf24
Reduce app startup latency by initializing the engine on a separate thread (#166918)
If settings.merged_platform_ui_thread is set to kMergeAfterLaunch, then
the engine will be started on the UI thread. After engine setup
completes and the Dart isolate is loaded, the UI task runner will be
merged into the platform thread and all future Dart execution will run
on the platform thread.

This makes it possible for other work to run on the platform thread
while the engine starts.

See https://github.com/flutter/flutter/issues/163064
2025-04-17 21:40:08 +00:00
engine-flutter-autoroll
9f4fe843a7
Roll Dart SDK from 992221a362ec to 2bb85834e77e (7 revisions) (#167361)
https://dart.googlesource.com/sdk.git/+log/992221a362ec..2bb85834e77e

2025-04-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-28.0.dev
2025-04-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-27.0.dev
2025-04-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-26.0.dev
2025-04-16 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-25.0.dev
2025-04-16 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-24.0.dev
2025-04-16 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-23.0.dev
2025-04-16 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-22.0.dev

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-04-17 21:38:52 +00:00
gaaclarke
ffa1891ab8
Added docstring for FilterInput::GetSnapshot (#167226)
fixes https://github.com/flutter/flutter/issues/137970

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-17 21:38:52 +00:00
gaaclarke
df5dfdba61
adds Entity docstrings (#167228)
fixes https://github.com/flutter/flutter/issues/144943

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-17 21:38:52 +00:00
gaaclarke
a23e4ca194
fixed impeller golden content scale (#167308)
fixes https://github.com/flutter/flutter/issues/162036

This fixes the problem my scaling the render texture by the content
scalar. This means locally you'll probably be generating 2048x1536
images. This matches the rendering that is happening in playgrounds. On
CI the content scalar should be one so there is no change there.

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-17 21:37:00 +00:00
gaaclarke
0e4bebffa1
Added docstring for FilterContents::RenderFilter (#167227)
fixes https://github.com/flutter/flutter/issues/137704

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-17 21:35:41 +00:00
Kishan Rathore
434cb54e77
Feat: Add equality to NoDefaultCupertinoThemeData (#166655)
Feat: Add equality to NoDefaultCupertinoThemeData
fixes: #165455 

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
2025-04-17 21:35:40 +00:00
LinXunFeng
946f952534
Fix link to engine docs (#167346) 2025-04-17 21:35:39 +00:00
Matej Knopp
9d3d0dc0ed
[macOS] Enable merged platform and UI thread by default (#166536)
This enables running UI isolate on platform thread by default.

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-17 15:30:40 +00:00
Matej Knopp
afdc861129
[Windows] Enable merged platform and UI thread by default (#163726)
This enables running UI isolate on platform thread by default. 

## Pre-launch Checklist

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

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

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

---------

Co-authored-by: Loïc Sharma <737941+loic-sharma@users.noreply.github.com>
2025-04-17 15:30:29 +00:00
Matan Lurey
3c247110f7
Update CHANGELOG.md (#167225)
Add warning about reading this file in tests and builders.

The backend will be updated in
https://github.com/flutter/cocoon/pull/4521.
2025-04-17 15:19:08 +00:00
Victoria Ashworth
ecabb1a052
Hide error on mDNS registration failure and print warning in flutter attach (#166782)
Publishing an mDNS service stopped working on macOS 15.4 for the iOS
Simulator. `DNSServiceRegister` always returns a callback with error
code `kDNSServiceErr_PolicyDenied`, as if the user had rejected the
permissions popup (except no popup is ever shown). mDNS is used to
discover the Dart VM when running `flutter attach`.

This PR does not display the error message when `DNSServiceRegister`
fails for iOS Simulators. Instead, it prints a warning if `flutter
attach` takes too long with instructions to either use `--debug-url` or
to run `flutter attach` before running the app.

If `DNSServiceRegister` works again in a future macOS update, mDNS will
continue to work the way it did previously.

Workaround for https://github.com/flutter/flutter/issues/166333.

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-17 14:20:23 +00:00
Bruno Leroux
fbed8a7194
Add support for language hints in TextFields (Android only) (#165554)
## Description

This PR adds support for language hints in TextFields.
This is supported only on Android for the moment and the property name,
aka `TextField.hintLocales`, is based on Android's
`EditorInfo.hintLocales` property, see
https://developer.android.com/reference/android/view/inputmethod/EditorInfo#hintLocales.

## Related Issue

Fixes [Support for language hints in
TextFields](https://github.com/flutter/flutter/issues/163698)

## Tests

Adds 4 tests.
Updates several tests.
2025-04-17 10:58:38 +00:00
engine-flutter-autoroll
6a7428da45
Roll Skia from d8f13372549d to cc2b57434651 (1 revision) (#167331)
https://skia.googlesource.com/skia.git/+log/d8f13372549d..cc2b57434651

2025-04-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from ca0457f68880 to a6a7de5aecab (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 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
2025-04-17 09:08:28 +00:00
Bruno Leroux
eee1cffcee
Add DropdownMenu.restorationId (#166684)
## Description

This PR introduces `DropdownMenu.restorationId`.
This value is passed to the inner `TextField.restorationId` which is
required to activate the TextField restoration capability.

## Related Issue

Required for https://github.com/flutter/flutter/pull/163721

## Tests

Adds 1 test.
2025-04-17 06:37:01 +00:00
engine-flutter-autoroll
af2e73343a
Roll Skia from 3d6165b70199 to d8f13372549d (14 revisions) (#167325)
https://skia.googlesource.com/skia.git/+log/3d6165b70199..d8f13372549d

2025-04-16 robertphillips@google.com Revise ChromePrecompileTest
2025-04-16 bungeman@google.com [freetype] Check palette actually found
2025-04-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 729a70498186 to 3bc11f8f2d55 (2 revisions)
2025-04-16 vigneshv@google.com SkCrabbyAvifCodec: Use icc profile from
the decoded image
2025-04-16 thomsmit@google.com [graphite] Update DrawWriter to minimize
binds by using pending base offsets.
2025-04-16 faijur.rahman@imagination.corp-partner.google.com img-ddk:
Fix Driver Version Deduction for Unknown ANGLE Backend
2025-04-16 kjlubick@google.com Enforce IWYU on some graphite types
2025-04-16 coldpalelight@gmail.com Fix issue where drawArc loses endcaps
when stroke width is greater than or equal to oval size
2025-04-16 nicolettep@google.com [graphite] Add test to prove Vulkan
shares renderpasses when expected
2025-04-16 kjlubick@google.com Add thread-safe version of
SkResourceCache
2025-04-16 jvanverth@google.com Reland "[graphite] Add ProxyCache
support to RasterPathAtlas."
2025-04-16 jlavrova@google.com Small fix in Unicode CodeUnits API
2025-04-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from a3f2545f6bb3 to ca0457f68880 (12 revisions)
2025-04-16 jeongik@google.com Support GL texture for BGRA8 format

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
2025-04-17 04:44:05 +00:00
jiancheng
c232c70c66
fix(CircularProgressIndicator.adaptive): strokeWidth default value (#165370)
fix: https://github.com/flutter/flutter/issues/165294

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
2025-04-17 03:56:17 +00:00
Ahmed Elsayed
6b6f49e749
Remove unnecessary builder (#166623)
The `builder` was needed to access `Focus.of(context)` but it's no
longer needed after https://github.com/flutter/flutter/pull/159472

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
2025-04-17 03:16:12 +00:00
Gray Mackall
4884722b21
Add a gradle_errors.dartentry for missing NDK source.properties file (#167320)
Adds an error handler for
https://github.com/flutter/flutter/issues/164085, based on the suggested
workaround.

The only related Android issue I could find is
http://issuetracker.google.com/issues/201557284, which suggests it is
due to an incorrect path for the NDK within the Android directory, which
means that allowing AGP to re-download would fix the issue. Users also
suggest that doing that fixes the issue in this comment
https://github.com/flutter/flutter/issues/164085#issuecomment-2684252849,
so the handler suggests that as the official workaround.

## Pre-launch Checklist

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

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

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

---------

Co-authored-by: Gray Mackall <mackall@google.com>
2025-04-17 03:13:09 +00:00
engine-flutter-autoroll
2391db55b3
Roll Skia from 6627deb65939 to 3d6165b70199 (1 revision) (#167255)
https://skia.googlesource.com/skia.git/+log/6627deb65939..3d6165b70199

2025-04-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 971325a8d446 to 729a70498186 (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 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
2025-04-17 02:04:00 +00:00
engine-flutter-autoroll
83b2f7f57c
Manual roll Dart SDK from 87965ab4864e to 992221a362ec (35 revisions) (#167243)
Manual roll Dart SDK from 87965ab4864e to 992221a362ec (35 revisions)

Manual roll requested by codefu@google.com

https://dart.googlesource.com/sdk.git/+log/87965ab4864e..992221a362ec

2025-04-15 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-21.0.dev
2025-04-15 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-20.0.dev
2025-04-15 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-19.0.dev
2025-04-15 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-18.0.dev
2025-04-15 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-17.0.dev
2025-04-14 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-16.0.dev
2025-04-14 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-15.0.dev
2025-04-12 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-14.0.dev
2025-04-12 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-13.0.dev
2025-04-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-12.0.dev
2025-04-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-11.0.dev
2025-04-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-10.0.dev
2025-04-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-9.0.dev
2025-04-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-8.0.dev
2025-04-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-7.0.dev
2025-04-10 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-6.0.dev
2025-04-10 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-5.0.dev
2025-04-10 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-4.0.dev
2025-04-10 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-3.0.dev
2025-04-09 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-2.0.dev
2025-04-09 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-1.0.dev
2025-04-09 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-0.0.dev
2025-04-08 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-278.0.dev
2025-04-07 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-277.0.dev
2025-04-07 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-276.0.dev
2025-04-07 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-275.0.dev
2025-04-07 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-274.0.dev
2025-04-07 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-273.0.dev
2025-04-06 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-272.0.dev
2025-04-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-271.0.dev
2025-04-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-270.0.dev
2025-04-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-269.0.dev
2025-04-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-268.0.dev
2025-04-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-267.0.dev
2025-04-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-266.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

...

Co-authored-by: Siva <a-siva@users.noreply.github.com>
2025-04-17 00:31:14 +00:00
engine-flutter-autoroll
b747aeeb1f
Roll Fuchsia Linux SDK from 7bWzHwIPBTyU6R9nO... to m8Aln7fTF_8zy1V9N... (#167312)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter
Please CC codefu@google.com,zra@google.com on the revert to ensure that
a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-04-16 23:57:14 +00:00
Victoria Ashworth
e841350bfc
Don't throw on error for mDNS when searching for Dart VML url on core devices (#167135)
When we discover the Dart VM for iOS Core Devices (iOS 17+), we use both
the device logs and mDNS simultaneously. Since mDNS is having issues
with macOS 15, don't throw if mDNS errors - this will allow the Dart VM
to have a chance to be found by the device logs instead.

Improving experience for
https://github.com/flutter/flutter/issues/150131.

Also should unblock https://github.com/flutter/flutter/issues/166843.

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-16 22:46:13 +00:00
Kishan Rathore
37fa9ae6f1
Fix: Localization for non zero time in 24 hours format (#164885)
Fix: Localization for non zero time in 24 hours format
fixes: #164860 

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
2025-04-16 22:34:52 +00:00
gaaclarke
3f0ff18e76
Updated docstrings for TextureContents (#167221)
fixes https://github.com/flutter/flutter/issues/139527

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-16 21:55:43 +00:00
gaaclarke
90b37bf053
Broke cyclical dependency with dlpath and typographer. (#167293)
fixes https://github.com/flutter/flutter/issues/166593

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-16 20:12:32 +00:00
Gray Mackall
8745940120
Set an additional CMake arg in forceNdkDownload to make the task name align with the BuildType (#167240)
Aligns the generated task names with what they would be expected to be,
i.e. `configureCMakeDebug` now depends on `compileFlutterBuildDebug`
(before it was profile).

Does this by:
1. Instead of configuring this in a `defaultConfig`, configure per build
type.
2. Move the invocation of this code to after where we create the
`profile` build type.

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


## Pre-launch Checklist

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

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

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

---------

Co-authored-by: Gray Mackall <mackall@google.com>
2025-04-16 20:09:19 +00:00
Huy
2c516f26f9
Fix Carousel crashes when using PageStorageKey (#166817)
- Fix https://github.com/flutter/flutter/issues/166067

- PageStorage is usually used to save and restore offset of scrollable
widget when the widget is recreated in practice. From the crash stack
trace in bug report, it happens when [oldViewportDimensions gets a null
value](3fa9b38705/packages/flutter/lib/src/material/carousel.dart (L1472-L1485)).
Tracing it down, it’s due to [hasViewportDimension is
false](3fa9b38705/packages/flutter/lib/src/widgets/scroll_position.dart (L275)).
There might be a very brief moment when the scroll metrics are being
reconstructed, and the viewport dimensions are not yet ready, which
triggers the crash. If a PageStorageKey is not specified, the scroll
position would be newly created fresh each time, avoiding this
restoration process and the associated null state.

- The fix is simply to not force casting `oldViewportDimensions!`,
instead, it falls back to `viewportDimension` which is non-null for
safety.

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-16 19:53:17 +00:00
Jason Simmons
c866944682
Revert "Removed superfluous copy in license checker (#167146)" (#167246)
This reverts commit b4dc23333c286bd6fb9b1aaeea63a933a2d62733.

The license script provides a RegExp wrapper that tracks the cost of the
script's regexes. Dart's RegExp.allMatches returns an Iterable whose
iterators lazily execute the regex. Calling toList will execute the
regex on the entire input within allMatches, allowing measurement of the
regex's cost. Returning the Iterable will instead shift the execution
cost to the caller.

Also, in local measurements I'm seeing significantly better performance
from finding all of the matches immediately with toList versus having
the caller use the lazy iterator.
2025-04-16 19:13:46 +00:00
Daco Harkes
de299444bc
[native assets] Roll dependencies (#167287)
Roll for https://github.com/dart-lang/native/issues/2187.
2025-04-16 19:10:40 +00:00
Flutter GitHub Bot
619d985931
Marks Linux_pixel_7pro static_path_stroke_tessellation_perf__timeline_summary to be unflaky (#167259)
<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
"name": "Linux_pixel_7pro
static_path_stroke_tessellation_perf__timeline_summary"
}
-->
The test has been passing for [50 consecutive
runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Linux_pixel_7pro%20static_path_stroke_tessellation_perf__timeline_summary%22).
This test can be marked as unflaky.
2025-04-16 19:10:39 +00:00
Kishan Rathore
ddc95409bd
Feat: Add carousel view theme (#164769)
Feat: Add carousel view theme
fixes: #159679 

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
2025-04-16 19:10:38 +00:00
Flutter GitHub Bot
909aeccfe4
Marks Mac_ios dynamic_path_stroke_tessellation_perf_ios__timeline_summary to be unflaky (#167261)
<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
"name": "Mac_ios
dynamic_path_stroke_tessellation_perf_ios__timeline_summary"
}
-->
The test has been passing for [50 consecutive
runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Mac_ios%20dynamic_path_stroke_tessellation_perf_ios__timeline_summary%22).
This test can be marked as unflaky.
2025-04-16 19:09:23 +00:00
Jason Simmons
7493583def
When using --local-web-sdk, use a locally built Dart SDK if one is available (#166732)
If flutter_tools is run with both a local Web SDK and a local engine,
then use the Dart SDK from the local engine instead of the prebuilt Dart
SDK.

This enables testing of a local Wasm build with a locally patched Dart
SDK by setting --local-web-sdk to the Wasm engine output and
--local-engine/--local-engine-host to a local engine built with
--no-prebuilt-dart-sdk.
2025-04-16 19:09:23 +00:00
gaaclarke
290701f5ed
Added emulator version to doctor (#167236)
fixes https://github.com/flutter/flutter/issues/146297

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-16 19:05:48 +00:00
Flutter GitHub Bot
ad17f03122
Marks Mac_ios static_path_stroke_tessellation_perf_ios__timeline_summary to be unflaky (#167260)
<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
"name": "Mac_ios
static_path_stroke_tessellation_perf_ios__timeline_summary"
}
-->
The test has been passing for [50 consecutive
runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Mac_ios%20static_path_stroke_tessellation_perf_ios__timeline_summary%22).
This test can be marked as unflaky.
2025-04-16 19:04:32 +00:00
Tong Mu
aef4718b39
[Web] Remove webOnlyUniformRadii from RRect (#167237)
This variable was added in https://github.com/flutter/engine/pull/15970
(for the HTML renderer I guess?) and is apparently no long used
anywhere.

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-16 06:57:20 +00:00
engine-flutter-autoroll
055b23d47b
Roll Skia from 76cb5d4fba27 to 6627deb65939 (10 revisions) (#167249)
https://skia.googlesource.com/skia.git/+log/76cb5d4fba27..6627deb65939

2025-04-15 nicolettep@google.com [graphite] Read dst as input attachment
in Vulkan
2025-04-15 skia-autoroll@skia-public.iam.gserviceaccount.com Roll skcms
from 8faeb7707de8 to df82c365f7be (1 revision)
2025-04-15 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 72ecfe9950d2 to 971325a8d446 (1 revision)
2025-04-15 kjlubick@google.com Rename existing SkRecorder ->
SkRecordCanvas
2025-04-15 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from 1c0bcb06e36f to a3f2545f6bb3 (12 revisions)
2025-04-15 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
SwiftShader from 2b323370501c to 2d70dae3d0ca (2 revisions)
2025-04-15 nscobie@google.com Ensure SkTraceEvent.h is kept as the
canonical header for tracing
2025-04-15 nscobie@google.com Revert "IWYU for SkTraceEventCommon.h"
2025-04-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from a24af46b3d3b to 72ecfe9950d2 (10 revisions)
2025-04-14 bungeman@google.com IWYU for SkTraceEventCommon.h

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
2025-04-16 05:27:25 +00:00
MarkZ
10a1d1520e
Adding macrobenchmarks for DDC (#166617)
We're adding macrobenchmark support to DDC (AMD modules and our new
hot-reload-capable module system) to be aware of any current/future
performance regressions. I'm not terribly aware of the metrics
collection pipeline; please let me know if we need to do any more work
to see these tests run/report numbers to the proper dashboards.
2025-04-16 03:29:36 +00:00
Taha Tesser
a8a61a1c06
Add button icon support for animation duration (#162667)
Fixes [Default foreground color animation duration doesn't apply on icon
of `Button` widgets](https://github.com/flutter/flutter/issues/162301)
Fixes [Implement similar widget to``AnimatedDefaultTextStyle`` but for
child ``Icon``](https://github.com/flutter/flutter/issues/137251)

### Description

This PR adds``AnimatedTheme` to `ButtonStyleButton` which is extended by
buttons. It animates the button icon when changing icon color and size,
similar to button text.

### Code Sample

<details>
<summary>expand to view the code sample</summary> 

```dart
import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          spacing: 20,
          children: <Widget>[
            ElevatedButton.icon(
              icon: const Icon(Icons.favorite_rounded, size: 50),
              label: const Text('Button', style: TextStyle(fontSize: 36)),
              onPressed: () {},
              style: const ButtonStyle(
                iconColor: WidgetStateProperty<Color>.fromMap(
                  <WidgetStatesConstraint, Color>{
                    WidgetState.pressed: Color(0XFFFF0000),
                    WidgetState.any: Color(0XFF000000),
                  },
                ),
                foregroundColor: WidgetStateProperty<Color>.fromMap(
                  <WidgetStatesConstraint, Color>{
                    WidgetState.pressed: Color(0XFFFF0000),
                    WidgetState.any: Color(0XFF000000),
                  },
                ),
              ),
            ),
            ElevatedButton.icon(
              icon: const Icon(Icons.favorite_rounded, size: 50),
              label: const Text('Button', style: TextStyle(fontSize: 36)),
              onPressed: () {},
              style: const ButtonStyle(
                animationDuration: Duration(seconds: 2),
                iconColor: WidgetStateProperty<Color>.fromMap(
                  <WidgetStatesConstraint, Color>{
                    WidgetState.pressed: Color(0XFFFF0000),
                    WidgetState.any: Color(0XFF000000),
                  },
                ),
                foregroundColor: WidgetStateProperty<Color>.fromMap(
                  <WidgetStatesConstraint, Color>{
                    WidgetState.pressed: Color(0XFFFF0000),
                    WidgetState.any: Color(0XFF000000),
                  },
                ),
              ),
            )
          ],
        ),
      ),
    );
  }
}

```

</details>

### Before


https://github.com/user-attachments/assets/86fcab94-1147-4c49-b362-12f804a5d540

### After


https://github.com/user-attachments/assets/12a49de8-06d6-46c5-976f-5ce182d60423

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

<!-- 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: Qun Cheng <36861262+QuncCccccc@users.noreply.github.com>
2025-04-15 23:52:25 +00:00