Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync branch #50

Merged
merged 10,000 commits into from
Feb 3, 2025
Merged

Sync branch #50

merged 10,000 commits into from
Feb 3, 2025

Conversation

jtmcdole
Copy link

@jtmcdole jtmcdole commented Feb 3, 2025

No description provided.

matanlurey and others added 30 commits January 13, 2025 23:49
The arm64 Macs should have more memory than the Linux machines that are
available in the devicelab. The analyzer benchmark spawns a Dart
analysis server process that has a peak memory consumption of around
7GB, which may be activating the OOM killer on the Linux bots.

See #161306
| Problem | Before | After |
| --- | --- | --- |
| Width | <img width="797" alt="Screenshot 2024-02-09 at 1 29 09 PM"
src="https://github.com/flutter/flutter/assets/389558/c49fa584-2550-41f6-ab80-6c20d01412b1">
| <img width="794" alt="Screenshot 2024-02-09 at 1 23 59 PM"
src="https://github.com/flutter/flutter/assets/389558/1326f797-9883-4916-9de3-1939e7648d46">
|
| Overflow | ![Screenshot from 2024-06-07
13-39-45](https://github.com/flutter/flutter/assets/389558/8a24c87a-2b5e-4bdc-8347-339d850f5a82)
| ![Screenshot from 2024-06-07
13-38-26](https://github.com/flutter/flutter/assets/389558/735248aa-8969-413b-a6cf-4f9b708f9ea8)
|

Fixes #78746
Fixes #92851
Part of #101620
Fixes #147483
Fixes #153274
Part of Google b/317115348
Fixes optionsViewOpenDirection not working, mentioned in
#143249 (comment).

### Requirements

* [x] By default, the width of the options matches the width of the
field.
 * [x] Options can be aligned to the start or end for LTR/RTL languages.
 * [x] The optionsViewOpenDirection parameter is respected.
* [x] If the options would vertically exceed the top or bottom of the
screen, they reposition themselves to fit on the screen while covering
the field. At least enough to tap an option. This has accessibility
implications, because sometimes an Autocomplete near the edge of a
narrow screen can be unusable.
* [x] If the Autocomplete is in a ScrollView, then the options move
along with the field during scrolling.
* [x] When the field moves or resizes, the options position and size
change to match. Even if the field is animated.
* [ ] The options layout updates on the same frame that the field layout
changes.

It's probably not possible to check all of these boxes so we'll probably
need to compromise.

 #### Tools that I've used to try to achieve this

 * LayoutBuilder to provide the field constraints[^1].
 * Looking up layout information of a widget via GlobalKey.
 * CompositedTransformFollower/Target.
 * CustomSingleChildLayout.

[^1]: Originally this didn't work due to a bug when using LayoutBuilder
with OverlayPortal (#147856).
That has now been fixed.

Co-authored-by: Victor Sanni <[email protected]>
https://dart.googlesource.com/sdk.git/+log/dbe08d993b3fe700ed716fa068742e8fb80b0a0a..f6ed8d7df6bfdf6fb08b38dd93c2ee1eba476b5a


[f6ed8d7](https://dart.googlesource.com/sdk.git/+/f6ed8d7df6bfdf6fb08b38dd93c2ee1eba476b5a)
[Version
3.7.0-323.0.dev](https://dart.googlesource.com/sdk.git/+/f6ed8d7df6bfdf6fb08b38dd93c2ee1eba476b5a)
by Dart CI · 12 hours ago
[dev](https://dart.googlesource.com/sdk.git/+/refs/heads/dev)
[3.7.0-323.0.dev](https://dart.googlesource.com/sdk.git/+/refs/tags/3.7.0-323.0.dev)

[8063ed1](https://dart.googlesource.com/sdk.git/+/8063ed194b781f4c44fe7c714b54f49654470ea4)
[[CFE] Spell checker
improvements](https://dart.googlesource.com/sdk.git/+/8063ed194b781f4c44fe7c714b54f49654470ea4)
by Jens Johansen · 14 hours ago

[86ff64c](https://dart.googlesource.com/sdk.git/+/86ff64c97d40bdcf5b5dfc114c8ed56540aa341e)
[[CFE] Fix weekly but needing
dart2js_platform_unsound.dill](https://dart.googlesource.com/sdk.git/+/86ff64c97d40bdcf5b5dfc114c8ed56540aa341e)
by Jens Johansen · 14 hours ago

[11a4a94](https://dart.googlesource.com/sdk.git/+/11a4a94b950db8d409c7c6eb7c571282c99ac0ce)
[[infra-ish] Fix compile_flutter.sh after flutter engine was merged into
flutter/flutter](https://dart.googlesource.com/sdk.git/+/11a4a94b950db8d409c7c6eb7c571282c99ac0ce)
by Jens Johansen · 15 hours ago

[c075d93](https://dart.googlesource.com/sdk.git/+/c075d939e095307c26986c599f2ecbf6748a0d4e)
[[parser/scanner] Remove ScannerConfig
`enableNonNullable`](https://dart.googlesource.com/sdk.git/+/c075d939e095307c26986c599f2ecbf6748a0d4e)
by Jens Johansen · 16 hours ago

[5dfce91](https://dart.googlesource.com/sdk.git/+/5dfce919cd04bae29ab2c002f1a38a8916ec031f)
[[parser/scanner] Remove ScannerConfig
`enableExtensionMethods`](https://dart.googlesource.com/sdk.git/+/5dfce919cd04bae29ab2c002f1a38a8916ec031f)
by Jens Johansen · 16 hours ago

[1482910](https://dart.googlesource.com/sdk.git/+/1482910747ad63ec1207d30b0d9127419f9b9f08)
[Version
3.7.0-322.0.dev](https://dart.googlesource.com/sdk.git/+/1482910747ad63ec1207d30b0d9127419f9b9f08)
by Dart CI · 28 hours ago
[3.7.0-322.0.dev](https://dart.googlesource.com/sdk.git/+/refs/tags/3.7.0-322.0.dev)

[7d8c34c](https://dart.googlesource.com/sdk.git/+/7d8c34c42532eb2b6fc3dbda221fb5cb2063b95b)
[[analyzer] Refine type of
`InterfaceTypeImpl.element`](https://dart.googlesource.com/sdk.git/+/7d8c34c42532eb2b6fc3dbda221fb5cb2063b95b)
by Paul Berry · 32 hours ago

[2229972](https://dart.googlesource.com/sdk.git/+/2229972ec5d89c1d5abba1f369d7d6e1ba8cc98c)
[Version
3.7.0-321.0.dev](https://dart.googlesource.com/sdk.git/+/2229972ec5d89c1d5abba1f369d7d6e1ba8cc98c)
by Dart CI · 2 days ago
[3.7.0-321.0.dev](https://dart.googlesource.com/sdk.git/+/refs/tags/3.7.0-321.0.dev)

[bdf8c21](https://dart.googlesource.com/sdk.git/+/bdf8c213fe7a53987046dc2fa1d675e3b24ca9d8)
[[analyzer] Use Impl types in
TypeProviderImpl.](https://dart.googlesource.com/sdk.git/+/bdf8c213fe7a53987046dc2fa1d675e3b24ca9d8)
by Paul Berry · 2 days ago

[adcc212](https://dart.googlesource.com/sdk.git/+/adcc21238329cb5fc70b0601b4784f05d2bc314a)
[[analyzer] Changes related to
ExecutableElementImpl._parameters.](https://dart.googlesource.com/sdk.git/+/adcc21238329cb5fc70b0601b4784f05d2bc314a)
by Paul Berry · 2 days ago

[f585c17](https://dart.googlesource.com/sdk.git/+/f585c1743efe450b89d4a69cd53fa427c72e1fdd)
[Version
3.7.0-320.0.dev](https://dart.googlesource.com/sdk.git/+/f585c1743efe450b89d4a69cd53fa427c72e1fdd)
by Dart CI · 3 days ago
[3.7.0-320.0.dev](https://dart.googlesource.com/sdk.git/+/refs/tags/3.7.0-320.0.dev)

[082be8f](https://dart.googlesource.com/sdk.git/+/082be8f4eaf445167d15a95bdde611a9eabde1fa)
[Version
3.7.0-319.0.dev](https://dart.googlesource.com/sdk.git/+/082be8f4eaf445167d15a95bdde611a9eabde1fa)
by Dart CI · 3 days ago
[3.7.0-319.0.dev](https://dart.googlesource.com/sdk.git/+/refs/tags/3.7.0-319.0.dev)

[8bbe6fb](https://dart.googlesource.com/sdk.git/+/8bbe6fbdfe03e31ac6773114140cd9565d88052a)
[Elements. Report analyzer_use_new_elements without any txt file, add
file
ignores.](https://dart.googlesource.com/sdk.git/+/8bbe6fbdfe03e31ac6773114140cd9565d88052a)
by Konstantin Shcheglov · 3 days ago

[dc37a77](https://dart.googlesource.com/sdk.git/+/dc37a77cf7f0f92dca6b6b595aa66a930935131b)
[[ddc] Add rejection for removed const
fields](https://dart.googlesource.com/sdk.git/+/dc37a77cf7f0f92dca6b6b595aa66a930935131b)
by Nicholas Shahan · 3 days ago

[9a47293](https://dart.googlesource.com/sdk.git/+/9a472930e5100baf0efb2d33369b7fd473b92951)
[[_fe_analyzer_shared] Renames to prepare for analyzer
refactoring.](https://dart.googlesource.com/sdk.git/+/9a472930e5100baf0efb2d33369b7fd473b92951)
by Paul Berry · 3 days ago

[357a919](https://dart.googlesource.com/sdk.git/+/357a91908bbf0f71c147ea387339380c26ca8950)
[Version
3.7.0-318.0.dev](https://dart.googlesource.com/sdk.git/+/357a91908bbf0f71c147ea387339380c26ca8950)
by Dart CI · 3 days ago
[3.7.0-318.0.dev](https://dart.googlesource.com/sdk.git/+/refs/tags/3.7.0-318.0.dev)

[11d24d6](https://dart.googlesource.com/sdk.git/+/11d24d6d55a71656be6874218809e7007aeac589)
[Elements. TypeParameterElementImpl2.name3 is
nullable.](https://dart.googlesource.com/sdk.git/+/11d24d6d55a71656be6874218809e7007aeac589)
by Konstantin Shcheglov · 3 days ago

[f91050c](https://dart.googlesource.com/sdk.git/+/f91050ca91a9f07263b1db78706258e88d967054)
[[ddc] Add visitor for hot reload
deltas](https://dart.googlesource.com/sdk.git/+/f91050ca91a9f07263b1db78706258e88d967054)
by Nicholas Shahan · 3 days ago

[ef771d4](https://dart.googlesource.com/sdk.git/+/ef771d49537c79fccb1364ecbeca35f58116f30a)
[[tests] Enum shorthands - Import
prefixes.](https://dart.googlesource.com/sdk.git/+/ef771d49537c79fccb1364ecbeca35f58116f30a)
by Kallen Tu · 3 days ago

[912ffda](https://dart.googlesource.com/sdk.git/+/912ffda5ec8fb44472b76a353ca43f150cd36bbc)
[Version
3.7.0-317.0.dev](https://dart.googlesource.com/sdk.git/+/912ffda5ec8fb44472b76a353ca43f150cd36bbc)
by Dart CI · 3 days ago
[3.7.0-317.0.dev](https://dart.googlesource.com/sdk.git/+/refs/tags/3.7.0-317.0.dev)

[0577ca0](https://dart.googlesource.com/sdk.git/+/0577ca064d9f782bd44918645cf93487e63990a2)
[[Migrate]
error_reporter_test.dart](https://dart.googlesource.com/sdk.git/+/0577ca064d9f782bd44918645cf93487e63990a2)
by Brian Wilkerson · 3 days ago

[04ab58b](https://dart.googlesource.com/sdk.git/+/04ab58b31902c83d4858e7f70000992ac7dbd518)
[Version
3.7.0-316.0.dev](https://dart.googlesource.com/sdk.git/+/04ab58b31902c83d4858e7f70000992ac7dbd518)
by Dart CI · 4 days ago
[3.7.0-316.0.dev](https://dart.googlesource.com/sdk.git/+/refs/tags/3.7.0-316.0.dev)

[5862859](https://dart.googlesource.com/sdk.git/+/5862859ad86dccc4166416d4b98f133a7d28c9e4)
[[co19] Roll co19 to
2424cfed7eedf53a122f8bfdbb6319692f726ec8](https://dart.googlesource.com/sdk.git/+/5862859ad86dccc4166416d4b98f133a7d28c9e4)
by Sergey G. Grekhov · 4 days ago

[d704828](https://dart.googlesource.com/sdk.git/+/d704828c3461ad408c47800588fb802136f66bc7)
[[dart2wasm] Use Uint8List for representing
bytes](https://dart.googlesource.com/sdk.git/+/d704828c3461ad408c47800588fb802136f66bc7)
by Martin Kustermann · 4 days ago

[5d3d965](https://dart.googlesource.com/sdk.git/+/5d3d965cd357eb89c1f979a683147ff64eff70f4)
[[dart2wasm] Use Function.prototype.call.bind(Number.prototype.toString)
for small ints and
doubles](https://dart.googlesource.com/sdk.git/+/5d3d965cd357eb89c1f979a683147ff64eff70f4)
by Martin Kustermann · 4 days ago

[4bcd8c2](https://dart.googlesource.com/sdk.git/+/4bcd8c2b8ce56756dbe7dd762af7f9322a777402)
[[vm/compiler] Prune SSA during construction using
liveness](https://dart.googlesource.com/sdk.git/+/4bcd8c2b8ce56756dbe7dd762af7f9322a777402)
by Vyacheslav Egorov · 4 days ago

[c95568a](https://dart.googlesource.com/sdk.git/+/c95568aede3f26fda36b58b081ec697a74960815)
[[CFE] Fuzzer using
Dart.G](https://dart.googlesource.com/sdk.git/+/c95568aede3f26fda36b58b081ec697a74960815)
by Jens Johansen · 4 days ago

[b022eca](https://dart.googlesource.com/sdk.git/+/b022ecae7070d5e345f55f730799cd229868a85a)
[[CFE] Fix crash in
_computeOnClause](https://dart.googlesource.com/sdk.git/+/b022ecae7070d5e345f55f730799cd229868a85a)
by Jens Johansen · 4 days ago

[feb770f](https://dart.googlesource.com/sdk.git/+/feb770fdf16f87ea920c633e194b65d0db284729)
[Version
3.7.0-315.0.dev](https://dart.googlesource.com/sdk.git/+/feb770fdf16f87ea920c633e194b65d0db284729)
by Dart CI · 4 days ago
[3.7.0-315.0.dev](https://dart.googlesource.com/sdk.git/+/refs/tags/3.7.0-315.0.dev)

[0c103f1](https://dart.googlesource.com/sdk.git/+/0c103f10398d6b0980a24d5a1a2cf8046f81fe21)
[Elements. Use TypeParameterElementImpl in
TypeParameterizedElementMixin.](https://dart.googlesource.com/sdk.git/+/0c103f10398d6b0980a24d5a1a2cf8046f81fe21)
by Konstantin Shcheglov · 4 days ago

[05e5306](https://dart.googlesource.com/sdk.git/+/05e53068f9e0b9056e47d10066cf11bf499afac8)
[Version
3.7.0-314.0.dev](https://dart.googlesource.com/sdk.git/+/05e53068f9e0b9056e47d10066cf11bf499afac8)
by Dart CI · 4 days ago
[3.7.0-314.0.dev](https://dart.googlesource.com/sdk.git/+/refs/tags/3.7.0-314.0.dev)

[92ef752](https://dart.googlesource.com/sdk.git/+/92ef75281059f0f837fa27be9d721c6410243002)
[[dynamic-modules] Add pragma annotating implicitly extendable
types.](https://dart.googlesource.com/sdk.git/+/92ef75281059f0f837fa27be9d721c6410243002)
by Nate Biggs · 4 days ago

[2de8b5e](https://dart.googlesource.com/sdk.git/+/2de8b5efb0f8da71cc8add9a9cbd246817eb8f7e)
[Elements. Migrate
lib/src/utilities/navigation/navigation_dart.dart](https://dart.googlesource.com/sdk.git/+/2de8b5efb0f8da71cc8add9a9cbd246817eb8f7e)
by Konstantin Shcheglov · 4 days ago

[4be4ec7](https://dart.googlesource.com/sdk.git/+/4be4ec7d364984b658d99cc308e00d57d5660df3)
[Elements. Migrate
AnalyzerConverter.](https://dart.googlesource.com/sdk.git/+/4be4ec7d364984b658d99cc308e00d57d5660df3)
by Konstantin Shcheglov · 4 days ago

[5f24674](https://dart.googlesource.com/sdk.git/+/5f24674138b78a744250b518257e3d9940b6c416)
[[element model] migrate
`elements_base`](https://dart.googlesource.com/sdk.git/+/5f24674138b78a744250b518257e3d9940b6c416)
by pq · 4 days ago

[e4ce6e2](https://dart.googlesource.com/sdk.git/+/e4ce6e28d5d4fb886bd32fafc717e178e2685134)
[Drop pkg:js from "Web (Legacy)" docs
section](https://dart.googlesource.com/sdk.git/+/e4ce6e28d5d4fb886bd32fafc717e178e2685134)
by Kevin Moore · 4 days ago

[75882f9](https://dart.googlesource.com/sdk.git/+/75882f9bf73337aaef2fd73bc44a38332e6aa9b7)
[Elements. Migrate
CompletionTarget.](https://dart.googlesource.com/sdk.git/+/75882f9bf73337aaef2fd73bc44a38332e6aa9b7)
by Konstantin Shcheglov · 4 days ago

[26d9167](https://dart.googlesource.com/sdk.git/+/26d91675f92fb9116d3351660978e4d9b7fedb98)
[Elements. Migrate ElementSuggestionBuilder and
related.](https://dart.googlesource.com/sdk.git/+/26d91675f92fb9116d3351660978e4d9b7fedb98)
by Konstantin Shcheglov · 4 days ago

[7d5f0a6](https://dart.googlesource.com/sdk.git/+/7d5f0a650819da939bdfda8797852d5f7d18b6a7)
[DAS: Simplify fields in
AnalysisServer](https://dart.googlesource.com/sdk.git/+/7d5f0a650819da939bdfda8797852d5f7d18b6a7)
by Sam Rawlins · 4 days ago

[7cbec89](https://dart.googlesource.com/sdk.git/+/7cbec8916d37f17b23e0eb03d6aa215989b9043a)
[DAS: Privatize and finalize fields in
AbstractNotificationManager](https://dart.googlesource.com/sdk.git/+/7cbec8916d37f17b23e0eb03d6aa215989b9043a)
by Sam Rawlins · 4 days ago

[d8fd208](https://dart.googlesource.com/sdk.git/+/d8fd208a79f3ce7675693c1089b1a3152b797429)
[Elements. Migrate
test/src/utilities/change_builder/change_builder_dart_test.dart](https://dart.googlesource.com/sdk.git/+/d8fd208a79f3ce7675693c1089b1a3152b797429)
by Konstantin Shcheglov · 4 days ago

[4356eac](https://dart.googlesource.com/sdk.git/+/4356eacd87d9a3a6a51beffc4d73261cee3d819e)
[Elements. Migrate lib/utilities/completion/suggestion_builder.dart and
required.](https://dart.googlesource.com/sdk.git/+/4356eacd87d9a3a6a51beffc4d73261cee3d819e)
by Konstantin Shcheglov · 4 days ago

[81b1313](https://dart.googlesource.com/sdk.git/+/81b13136aa05000b07b553280533a99d1dcbda36)
[analyzer: rename docImports to docLibraryImports in a few
places](https://dart.googlesource.com/sdk.git/+/81b13136aa05000b07b553280533a99d1dcbda36)
by Sam Rawlins · 4 days ago

[83db399](https://dart.googlesource.com/sdk.git/+/83db3996f769f0993d174830c02aee9bd1fbd736)
[[dart2js] Fix DictionaryTypeMask hashCode and ==
consistency.](https://dart.googlesource.com/sdk.git/+/83db3996f769f0993d174830c02aee9bd1fbd736)
by Nate Biggs · 4 days ago

[85727ca](https://dart.googlesource.com/sdk.git/+/85727caf2a163d13aed673ccfd4e4eebb9b6526d)
[[element model] migrate
`least_greatest_closure`](https://dart.googlesource.com/sdk.git/+/85727caf2a163d13aed673ccfd4e4eebb9b6526d)
by pq · 4 days ago

[2766858](https://dart.googlesource.com/sdk.git/+/2766858fba19783eefd682fffedee8e0953bdb6e)
[Elements. Migrate
lib/utilities/change_builder/change_builder_dart.dart](https://dart.googlesource.com/sdk.git/+/2766858fba19783eefd682fffedee8e0953bdb6e)
by Konstantin Shcheglov · 4 days ago

[1790fb7](https://dart.googlesource.com/sdk.git/+/1790fb7908d5079daebdaec31b628fa3c242e955)
[DAS: Fix comment references in
refactoring/](https://dart.googlesource.com/sdk.git/+/1790fb7908d5079daebdaec31b628fa3c242e955)
by Sam Rawlins · 4 days ago

[66624da](https://dart.googlesource.com/sdk.git/+/66624dadb5482697105269e780e51f27def663b6)
[Elements. Update ExecutableElementImpl.parameters to return
List<ParameterElementImpl>.](https://dart.googlesource.com/sdk.git/+/66624dadb5482697105269e780e51f27def663b6)
by Konstantin Shcheglov · 4 days ago

[1eee8ba](https://dart.googlesource.com/sdk.git/+/1eee8bae3ad4f22d0683e3ce548d9c25365fde6e)
[[ DDS ] Allow for vm_service >=14.0.0 <16.0.0 for package:dds and
package:dds_service_extensions](https://dart.googlesource.com/sdk.git/+/1eee8bae3ad4f22d0683e3ce548d9c25365fde6e)
by Ben Konyi · 4 days ago

[9ab2316](https://dart.googlesource.com/sdk.git/+/9ab2316d32ad5fced73c6716b0b0cde9a55c2138)
[refactor dartdev
deps](https://dart.googlesource.com/sdk.git/+/9ab2316d32ad5fced73c6716b0b0cde9a55c2138)
by Devon Carew · 4 days ago

[2b1f956](https://dart.googlesource.com/sdk.git/+/2b1f956207c7ceac3723ff0b088503bffa4fe490)
[[element model] migrate
`driver`](https://dart.googlesource.com/sdk.git/+/2b1f956207c7ceac3723ff0b088503bffa4fe490)
by pq · 4 days ago

[f8f10b8](https://dart.googlesource.com/sdk.git/+/f8f10b84076e8628b893a158cc32585c75dd4176)
[[dart2wasm] Add annotations to member and static
intrinsics.](https://dart.googlesource.com/sdk.git/+/f8f10b84076e8628b893a158cc32585c75dd4176)
by Nate Biggs · 4 days ago

[3202683f](https://dart.googlesource.com/sdk.git/+/3202683fe47541d71721a73e592d1174ad28c317)
[Version
3.7.0-313.0.dev](https://dart.googlesource.com/sdk.git/+/3202683fe47541d71721a73e592d1174ad28c317)
by Dart CI · 4 days ago
[3.7.0-313.0.dev](https://dart.googlesource.com/sdk.git/+/refs/tags/3.7.0-313.0.dev)

[f49c620](https://dart.googlesource.com/sdk.git/+/f49c620ab34d13ead00fa3bb98b651f8db44484e)
[[analyzer][cfe] Share inference-using-bounds
routines](https://dart.googlesource.com/sdk.git/+/f49c620ab34d13ead00fa3bb98b651f8db44484e)
by Chloe Stefantsova · 5 days ago

[a6b99af](https://dart.googlesource.com/sdk.git/+/a6b99afdeaff69f1ca67baf34c90d47fdc355883)
[[cfe] Create fields through
SourcePropertyBuilder](https://dart.googlesource.com/sdk.git/+/a6b99afdeaff69f1ca67baf34c90d47fdc355883)
by Johnni Winther · 5 days ago

[ad562fd](https://dart.googlesource.com/sdk.git/+/ad562fdbbe1a260afbc8aeea8c0bc9dab1f1a2e1)
[[parser] Rename accidentally committed 'allowLazyFoo'
parameter](https://dart.googlesource.com/sdk.git/+/ad562fdbbe1a260afbc8aeea8c0bc9dab1f1a2e1)
by Jens Johansen · 5 days ago

[9b631bf](https://dart.googlesource.com/sdk.git/+/9b631bf33362be3bf359896fb4b1aa58a12ea602)
[[deps] Roll
dart-lang/native](https://dart.googlesource.com/sdk.git/+/9b631bf33362be3bf359896fb4b1aa58a12ea602)
by Liam Appelbe · 5 days ago

[6a1f9ed](https://dart.googlesource.com/sdk.git/+/6a1f9ed029c7d3c949dbadf0973e688ff7366d75)
[[analysis_server] Insert new arguments before last child/children
arguments](https://dart.googlesource.com/sdk.git/+/6a1f9ed029c7d3c949dbadf0973e688ff7366d75)
by Danny Tuppeny · 5 days ago

[e9a6d62](https://dart.googlesource.com/sdk.git/+/e9a6d62fa429d92ab300c16c3e24f05838572bd4)
[[analysis_server] Return EditableArguments in parameter
order](https://dart.googlesource.com/sdk.git/+/e9a6d62fa429d92ab300c16c3e24f05838572bd4)
by Danny Tuppeny · 5 days ago

[5d5d223](https://dart.googlesource.com/sdk.git/+/5d5d223b4ae197a312d6254d97846f3a34ad758e)
[linter: fix strict_top_level_inference
registry](https://dart.googlesource.com/sdk.git/+/5d5d223b4ae197a312d6254d97846f3a34ad758e)
by Sam Rawlins · 5 days ago

[302287e](https://dart.googlesource.com/sdk.git/+/302287eed2ec5b8bddfdd90c3af93175f9e87daa)
[[tests] Enum shorthands - Selector chain tests for cascades, ??,
collections and nested
contexts.](https://dart.googlesource.com/sdk.git/+/302287eed2ec5b8bddfdd90c3af93175f9e87daa)
by Kallen Tu · 5 days ago

[b9de4ae](https://dart.googlesource.com/sdk.git/+/b9de4ae02d47ae8fecf385753c5a114643c48062)
[[CQ] remove trailing whitespace from `unnecessary_underscores_test`
source](https://dart.googlesource.com/sdk.git/+/b9de4ae02d47ae8fecf385753c5a114643c48062)
by pq · 5 days ago

[c1ce43f](https://dart.googlesource.com/sdk.git/+/c1ce43fd8342d854f841edd6dcd4074326dc9fbf)
[[ddc] Remove unsound dart2js
dependency](https://dart.googlesource.com/sdk.git/+/c1ce43fd8342d854f841edd6dcd4074326dc9fbf)
by Nicholas Shahan · 5 days ago

[b69f6c1](https://dart.googlesource.com/sdk.git/+/b69f6c129480ea14ff16075b346ec1680f894308)
[[CQ] add missing `scope_util_test` to all test
suite](https://dart.googlesource.com/sdk.git/+/b69f6c129480ea14ff16075b346ec1680f894308)
by pq · 5 days ago

[edde039](https://dart.googlesource.com/sdk.git/+/edde03955b15c6a38c58fe2637dbc52439cb8686)
[[element model] migrate
`element_visitors_test`](https://dart.googlesource.com/sdk.git/+/edde03955b15c6a38c58fe2637dbc52439cb8686)
by pq · 5 days ago

[31d8adf](https://dart.googlesource.com/sdk.git/+/31d8adf1f3b9375e5a7af9fc81f8d28738d878e7)
[Elements. Migrate
lib/src/utilities/change_builder/change_builder_core.dart](https://dart.googlesource.com/sdk.git/+/31d8adf1f3b9375e5a7af9fc81f8d28738d878e7)
by Konstantin Shcheglov · 5 days ago

[11f53fd](https://dart.googlesource.com/sdk.git/+/11f53fd7d237d17ad940e35f43a2f963b4a5ed8c)
[[analysis_server] Preserve existing quote kinds when updating string
arguments](https://dart.googlesource.com/sdk.git/+/11f53fd7d237d17ad940e35f43a2f963b4a5ed8c)
by Danny Tuppeny · 5 days ago

[fc95268](https://dart.googlesource.com/sdk.git/+/fc95268a36197a2bf9976d7f1a96e2a83753ebe4)
[[ResidentFrontendServer] Cache the compiler options that were last
used](https://dart.googlesource.com/sdk.git/+/fc95268a36197a2bf9976d7f1a96e2a83753ebe4)
by Derek Xu · 5 days ago

[337e07f](https://dart.googlesource.com/sdk.git/+/337e07fab6b415e96d3554bc23a8da69507d7745)
[[VM/Service] Use the resident frontend server for hot reload when it's
available](https://dart.googlesource.com/sdk.git/+/337e07fab6b415e96d3554bc23a8da69507d7745)
by Derek Xu · 5 days ago

[8785c4e](https://dart.googlesource.com/sdk.git/+/8785c4e000167376f57aaed7ce1d016def2b11ff)
[Elements. Migrate
lib/utilities/range_factory.dart](https://dart.googlesource.com/sdk.git/+/8785c4e000167376f57aaed7ce1d016def2b11ff)
by Konstantin Shcheglov · 5 days ago

[8121b02](https://dart.googlesource.com/sdk.git/+/8121b02725d5412394841da173fb39ca27346de2)
[Elements. Migrate
test/support/abstract_context.dart](https://dart.googlesource.com/sdk.git/+/8121b02725d5412394841da173fb39ca27346de2)
by Konstantin Shcheglov · 5 days ago

[f3e68f2](https://dart.googlesource.com/sdk.git/+/f3e68f2d76c63318ad29ebea5a81acb724f4284e)
[[Migrate]
sdk_constraint_verifier.dart](https://dart.googlesource.com/sdk.git/+/f3e68f2d76c63318ad29ebea5a81acb724f4284e)
by Brian Wilkerson · 5 days ago

[491f4f4](https://dart.googlesource.com/sdk.git/+/491f4f48139c08c0be8ee6d346fe7e07922075fb)
[[CQ] Remove dead code from
ElementLocationImpl](https://dart.googlesource.com/sdk.git/+/491f4f48139c08c0be8ee6d346fe7e07922075fb)
by Brian Wilkerson · 5 days ago
…isplay images (#159917)

This PR follows the discussion under
#157755 and adds a flag to
determine when `<img>` elements are used. By default the feature is
turned off.

Instead of just a boolean for on & off, I made it an enum to accept
multiple options. Notably, an `always` option can be useful when the
developer wants a unified experience regardless of the image origin
(such as when displaying an image from arbitrary URLs.)

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

This PR clarifies the InputDecoration.border documentation and fixes two
typos.

## Related Issue

Fixes [[Material] Outline TextFields don't respect
OutlineInputBorder.color](#31169)

## Tests

Documentation only
… Windows (#161375)

Reopened from flutter/engine#56501.

Fixes [#158450](#158450).

As mentioned in
[#158450](#158450), the crash
occurs because a destroyed object may be accessed if the window and view
have already been destroyed by the time `KeyEventCallback` is called.
This issue is not limited to the `Alt+F4` system key; it may also occur
if the window is closed using other key presses, such as pressing
`Enter` after navigating to a dialog's "Close" button.

This PR proposes a fix that checks whether the view ID is still valid
when the callback is invoked. If the view is invalid, the event is
skipped for that view.

A unit test has been added to assert that the `KeyEventCallback` is
invoked when the associated view is valid and not invoked when the view
is destroyed.

## Pre-launch Checklist

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

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

<!-- 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
flutter/packages@3c3bc68...d1fd623

2025-01-13 [email protected] [camera] Add API support query for
image streaming (flutter/packages#8250)
2025-01-13 [email protected] [webview_flutter_android] Add additional
WebSettings methods (flutter/packages#8270)
2025-01-13 [email protected] Roll Flutter from
864d4f5 to 72db8f6 (11 revisions) (flutter/packages#8421)
2025-01-13 [email protected]
[video_player_avfoundation, camera_avfoundation] never overwrite but
only upgrade audio session category (flutter/packages#7143)

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 [email protected] 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
Just continue to remove outdated instructions.
fixes #158567

This draws arcs as oval sectors when the stroke width is large enough.

## 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
Fixes [License page colors cannot be changed when wrapped with `Theme`
widget](#44922)

### 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 MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Sample'),
        ),
        body: Center(
          child: Theme(
            data: ThemeData(colorScheme: ColorScheme.fromSeed(seedColor: Colors.green)),
            child: Column(
              spacing: 20,
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                const AboutListTile(
                  icon: Icon(Icons.info_rounded),
                  applicationIcon: Icon(Icons.info_outline), // Icon for the about dialog
                  applicationName: 'Sample Flutter App', // Name of the app
                  applicationVersion: 'v1.0.0', // Version of the app
                  applicationLegalese: '© 2025 Taha Tesser', // Legal information
                  aboutBoxChildren: <Widget>[
                    Padding(
                      padding: EdgeInsets.only(top: 10),
                      child: Text(
                        'This app is a demonstration of the AboutListTile widget in Flutter.',
                      ),
                    ),
                    Padding(
                      padding: EdgeInsets.only(top: 10),
                      child: Text(
                        'Thank you for using our app!',
                      ),
                    ),
                  ], // Icon for the leading section
                  child: Text('AboutListTile'),
                ),
                Builder(builder: (BuildContext context) {
                  return ElevatedButton(
                      onPressed: () {
                        showAboutDialog(
                          context: context,
                          applicationName: 'Sample Flutter App', // Name of the app
                          applicationVersion: 'v1.0.0', // Version of the app
                          applicationLegalese: '© 2025 Taha Tesser', // Legal information
                          children: <Widget>[
                            const Padding(
                              padding: EdgeInsets.only(top: 10),
                              child: Text(
                                'This app is a demonstration of the AboutListTile widget in Flutter.',
                              ),
                            ),
                            const Padding(
                              padding: EdgeInsets.only(top: 10),
                              child: Text(
                                'Thank you for using our app!',
                              ),
                            ),
                          ],
                        );
                      },
                      child: const Text('showAboutDialog'));
                })
              ],
            ),
          ),
        ),
      ),
    );
  }
}
```

</details>

### Before


https://github.com/user-attachments/assets/a76d19b6-a949-42a1-a349-426ad3058bc6

### After


https://github.com/user-attachments/assets/afb8b519-860e-467f-89bd-6e0a1b7be45c

## 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
Revises #158026 to fix
#160407.

Makes a number of fixes:

- Fixes Groovy logic that attempted to remove dev dependencies from
release builds to use `<buildType>Api` versus `api` and loop to
configure the project dependencies per build type
- Adds back dependency on embedding to plugin projects since this is
needed regardless (the plugin may not be included in a particularly
typed build but it still needs it for where it's included)
- Fixes integration test to throw and error upon failure, check right
APK for the release build it's testing, and configure the flag need for
`.flutter-plugin-dependencies` to mark plugins as dev dependencies as
expected
- Uses @matanlurey's
[patch](#160407 (comment))
to remove dev dependency from the `GeneratedPluginRegistrant` in release
mode

## Pre-launch Checklist

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

<!-- 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
This is the last time we have to do this because in
#161554 I am refactoring the
engine's analysis_options.yaml to just import the one from the root of
the repository. When that lands, lints only have to be enabled in one
place to apply across framework and engine.

Before we can do that we have to do one last sync to make sure the
engine code base is ready. This PR implements that last sync and fixing
all lints that came up.
Fixes for a variety of speculative fixes for AHB swapchain issues.
Details TBD while some tests run...


1. Even If the SurfaceControl API is supported, there is no guarantee
that we can import the AHB as there may be a mismatch in the required
memory properties and what is available. Add a validity check to the
texture pool and bail from the swapchain if any are invalid.

2. Rather than submitting a dummy cmd buffer that does a layout
transition, use the final command buffer signal semaphore.

3. Import the render ready semaphore and use it to block the onscreen
command buffer.
Fixes an error when decoding GIFs to check if they are animated. The
decoder needs to be more resilient in the face of Special Purpose blocks
that are in the stream in places not specified in the GIF89a spec.

Fixes #161376

## 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
…e.swift (#161464)

<!--
Thanks for filing a pull request!
Reviewers are typically assigned within a week of filing a request.
To learn more about code review, see our documentation on Tree Hygiene:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
-->

### Background

Flutter generates a `Package.swift` file that contains the plugins that
should be built using SwiftPM.

Since Flutter does not support Swift Package Manager in add-to-app
scenarios yet, Flutter uses CocoaPods to build plugins if you call
`flutter build ios-framework`. To ensure `pod install` is rerun, the
tool deleted the `Package.swift` file.

Unfortunately, deleting the `Package.swift` file causes the Xcode
project to no longer build if it has SwiftPM integration. This caused
the [`build_ios_framework_module_test` to fail when SwiftPM was turned
on by
default](https://ci.chromium.org/ui/p/flutter/builders/prod/Mac%20build_ios_framework_module_test/21807/overview).

### Fix

Instead of deleting the `Package.swift` file, we instead generate a
`Package.swift` file with no dependencies. This will invalidate the
fingerprint and cause `pod install` to rerun if the app had plugins that
were previously built using SwiftPM.

## 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
This PR allows rounded superellipses to have asymmetrical and uneven
radii, effectively supporting `BorderRadius` instead of mere `double` as
corner radius. Fixes #161207.


https://github.com/user-attachments/assets/6293028c-d14b-4ffb-b93e-d0602f5ca0ee

These features exist in SwiftUI: The `RoundedRectangle` class provides
an initializer with a `cornerSize` parameter, allowing different radii
for the horizontal and vertical directions, while the
`UnevenRoundedRectangle` class allows each corner to have a unique
radius. However, SwiftUI does not allow the corners to be asymmetrical
_and_ uneven at the same time, which is supported by this PR.

Additionally, this change allows rounded superellipses to use the same
API as rounded rectangles. This allows RSEs to be added as a style of
`RRect` (just like in SwiftUI), which will use much fewer changes than
adding it as a new shape (>1500 LOC according to my prototype).

This PR also improves performance by removing an intermediate cache for
flipping. Now the point list is only copied once for the triangle strip
rearrangement.

`RoundingRadii` is moved to a separate file, and the code to scale it
based on bounds now its method.

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

Accomplishes the `AccumulationRect and MatrixClipTracker` task in
#161456

Remove legacy Skia geometry APIs from the DisplayList utils classes
(accumulation rect and matrix/clip state tracker) as well as the small
number of remaining uses of them (mostly from their own unit tests).
Remove older repo references; remove older references to `yaml_edit`,
`yaml`, `watcher`, `term_glyph`, `string_scanner`, `stream_channel`,
`stack_trace`, and `watcher`.

Done as part of dart-lang/sdk#56591.

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

<!-- 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
…om lockfile exclusion yaml (#161622)

The test was intentionally broken by
#160947. That PR removed the CI
configuration to run the test, but the autoroller (which was previously
turned off) runs a gradle command in all android subdirectories, so the
fact that the directory wasn't deleted is blocking turning the
autoroller back on:


https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8725731612391969937/+/u/run_roll-packages_script/stdout

```
[stderr] * What went wrong:
[stderr] A problem occurred evaluating script.
[stderr] > You are applying Flutter's main Gradle plugin imperatively using the apply script method, which is not possible anymore. Migrate to applying Gradle plugins with the declarative plugins block: https://flutter.dev/to/flutter-gradle-plugin-apply
```

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

<!-- 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 <[email protected]>
Now that we have a monorepo we can vastly simplify the engine's
`analysis_options.yaml` file: It can just import the general rule set
(instead of recreating it) and then we can apply the engine-specific
rules on top of it. This also makes it easier to tell where the engine
rule set differs from the general one.

No more `# DIFFERENT FROM FLUTTER/FLUTTER` comments. 🥳 

Depends on #161560, which has to
be submitted first.
Updated usages of statusBar() to systemBar() to fix XiaoMi statusBar
bug.

Fixes #132831 

## 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
<!--
Thanks for filing a pull request!
Reviewers are typically assigned within a week of filing a request.
To learn more about code review, see our documentation on Tree Hygiene:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
-->

Fixes #64801

Example :

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @OverRide
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Centered TextField Example',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: CenteredTextFieldScreen(),
    );
  }
}

class CenteredTextFieldScreen extends StatelessWidget {
  @OverRide
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Centered TextField')),
      body: Center(
        child: Padding(
          padding: const EdgeInsets.all(16.0),
          child: TextField(
            keyboardType: TextInputType.twitter,
            decoration: InputDecoration(
              border: OutlineInputBorder(),
              hintText: 'Enter some text here',
            ),
          ),
        ),
      ),
    );
  }
}
```


https://github.com/user-attachments/assets/5a2a2a4a-6994-44b1-bb0e-395c24012ef8


https://github.com/user-attachments/assets/aefc7bc5-a997-4e0f-a74e-a39a4517c898

## Pre-launch Checklist

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

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

<!-- 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: Jenn Magder <[email protected]>
…ly. (#161534)

The goal here is to have a great standalone `android_engine_test` suite
that [replaces
`scenario_app/android`](#160992).

No test is _functionally_ changed in this PR, but overview of changes:
- Finished renaming the suite `android_engine_tests` instead of
`flutter_driver_android`
- Added instructions and an environment variable for local generation of
golden-files (`UPDATE_GOLDENS=1`)
- Added explanations of the individual tests, where they live, and how
to run them locally
- Added a hybrid-composition (HC, not TLHC, which is already tested)
test
- Renamed "other_smiley" to "surface_texture_smiley" (and renamed the
original to "surface_producer_smiley")
- Removed unnecessary ".android" suffix (we will not run this on
anything but Android)
- Added a `tool/deflake.dart` to run a test suite 10x (or custom) times
locally to try and determine flakiness

After this PR, I'll add flags to let you control variants and name the
screenshots accordingly, i.e.:
- API v34 or v35
- OpenGLES or Vulkan (will require an `AndroidManifest.xml` edit during
the test instrumentation)
jtmcdole and others added 29 commits January 30, 2025 21:44
https://skia.googlesource.com/skia.git/+log/e6daf687b558..a9af2a74c5ab

2025-01-30 [email protected] [skottie] Handle missing SkSLEffect image
inputs gracefully
2025-01-30 [email protected] [skottie] Clamp path offset values
2025-01-30 [email protected] [graphite] Add serialization
helpers for the Android-specific Precompile API
2025-01-30 [email protected] [graphite] Use transfer color type
in Mtl/DawnCaps
2025-01-30 [email protected] Apply ClangTidy suggestions to
ClipAtlasManager

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 [email protected],[email protected],[email protected] 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
Add new web contributors to web triage doc.

Also using this PR to test the `emergency` label.
<!-- start_original_pr_link -->
Reverts: #162468
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: jtmcdole
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: tree broken (see Mac_arm64 module_test_ios)
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: andrewkolos
<!-- end_original_pr_author -->

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

<!-- start_revert_body -->
This change reverts the following previous change:
toward #150575. More simple
deletes.


<details>

<summary> Pre-launch checklist </summary> 


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

</details>

<!-- 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] <[email protected]>
fixes #162348

## 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
No guarantee I'll review iOS tool PRs but I'd like to be on the reviewer
list!
Documents the policy for updating dependency minimum versions in
flutter/packages. This has been the policy for some time, but has never
been formally documented.

## 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.
- [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
This PR was generated by `flutter update-packages --force-upgrade`.
https://skia.googlesource.com/skia.git/+log/a9af2a74c5ab..ec8c632b8c7f

2025-01-30 [email protected] [graphite] Use lock-free linked list
return queue
2025-01-30 [email protected] [Graphite] Add simple cache for reusing
single Texture DescSets in Vk.

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 [email protected],[email protected],[email protected] 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
https://skia.googlesource.com/skia.git/+log/ec8c632b8c7f..e0941791b86e

2025-01-31 [email protected] Roll Dawn
from 4dfae713222c to 6bc6697d10a4 (10 revisions)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC [email protected],[email protected],[email protected] 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
Seems this pseudocode has been overlooked during null safety migration.

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

Relands #162315

Removed animated sheet golden tests as they're not consistent for long
animation tests. Rewritten the tests to be more precise using mock
canvas checks.

--- 

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

### Description 

This PR fixes `Tab` linear and elastic animation blinks/flickers when
skipping multiple tabs. Previous attempt to fix elastic animation didn't
cover linear animation tests and didn't have enough number of tab items
which this PR fixes.

- Fixed Linear and elastic animation blink issue.
- Added tests for linear and elastic animation with various tab sizes
(LTR and RTL)
- Added tests for linear and elastic animation when skipping tabs (LTR
and RTL)

### Code Sample

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

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

void main() {
  // timeDilation = 10;
  runApp(const TabBarDemo());
}

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

  @OverRide
  Widget build(BuildContext context) {
    final List<Widget> tabs = <Widget>[
      const Tab(text: 'Short'),
      const Tab(text: 'A Bit Longer Text'),
      const Tab(text: 'An Extremely Long Tab Label That Overflows'),
      const Tab(text: 'Tiny'),
      const Tab(text: 'Moderate Length'),
      const Tab(text: 'Just Right'),
      const Tab(text: 'Supercalifragilisticexpialidocious'),
      const Tab(text: 'Longer Than Usual'),
    ];

    return MaterialApp(
      home: DefaultTabController(
        length: tabs.length,
        child: Scaffold(
          appBar: AppBar(
            bottom: TabBar(
              tabAlignment: TabAlignment.start,
              isScrollable: true,
              indicatorAnimation: TabIndicatorAnimation.elastic,
              tabs: tabs,
            ),
            title: const Text('Tabs Demo'),
          ),
          body: TabBarView(
            children: <Widget>[
              for (int i = 0; i < tabs.length; i++) const Icon(Icons.directions_car),
            ],
          ),
        ),
      ),
    );
  }
}

```

</details>

### Before


https://github.com/user-attachments/assets/5c271948-5a01-4520-90a3-921c20c79470

### After


https://github.com/user-attachments/assets/6af32d43-3588-488f-ba50-be59323ed692


### Linear animation before (left) and After (right) comparison.

<img width="1048" alt="Screenshot 2025-01-28 at 17 27 50"
src="https://github.com/user-attachments/assets/4ba587a5-24d0-40ce-817c-366d004abc05"
/>




## Pre-launch Checklist

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

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

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

2025-01-31 [email protected] Roll Skia
Infra from 85d97f3cbf76 to 53594a79cc60 (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 [email protected],[email protected],[email protected] 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
https://skia.googlesource.com/skia.git/+log/c1dc5033e7c9..4bdf90faf708

2025-01-31 [email protected] Roll skcms
from 6c5f4734f7da to 1e365691d01a (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 [email protected],[email protected],[email protected] 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
Fix #160270

Fix the NavigationRail examples overflow alignment by replacing it with
the SegmentedButton widget.

### Before
Example 1:
<img
src="https://github.com/user-attachments/assets/b9f54cd2-b2d1-44ee-a159-f1f04ed011e2"
alt="NavigationRail Example 1 - Before" height="450">

Example: 2:
<img
src="https://github.com/user-attachments/assets/be78bee7-f03d-40ff-ae36-679416c9c3d2"
alt="NavigationRail Example 2 - Before" height="450">

### After
Example 1:
<img
src="https://github.com/user-attachments/assets/c6a3f060-dc9a-44d3-9ab3-3eea5f6183d6"
alt="NavigationRail Example 1 - After" height="450">

Example 2:
<img
src="https://github.com/user-attachments/assets/6b35753b-e2ab-4053-8dd7-d983531b2c74"
alt="NavigationRail Example 2 - After" height="450">




## 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: Taha Tesser <[email protected]>
Mac-14 bots are on macOS 14.7 (previously 14.5), which [presumably has
Safari
18](#150023 (comment))
and may fix the errors we were seeing in
#150023.

Let's run them on Mac-14 again and see how they do.

## 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
…cript (#162423)

Recent versions of the Fuchsia SDK added a source file named "ftl.fidl".
The _licenseNamePattern in the script thinks this file may be a license
because some licenses also use filenames containing "FTL".
Stop building artifacts for the HTML/AUTO renderers.
It is valid to create a `ui.Vertices` object with empty positions. This
fixes Flutter Web so we don't crash when we see an empty `ui.Vertices`
object.

Fixes #160355

## 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
This PR was generated by `flutter update-packages --force-upgrade`.
Fixes #162379

The IPConicalGradient function requires full float 32 precision, though
this depends on the exact gpu behavior. To be safe, increase the general
precision in all of these shaders.
…162104)

Resolves #143891.

This patch includes breaking changes, but this API is still in preview.
* Breaking: Rename `Texture.GetBaseMipLevelSizeInBytes` to
`Texture.getBaseMipLevelSizeInBytes`.
* Breaking: Make `Texture.overwrite` throw exception instead of
returning false.
* Non-breaking: Make `DeviceBuffer`/`Texture` creation throw exceptions
instead of returning nullables.

We can incrementally add more specific exceptions for resource creation
failure.
This target was using `release_build: true` as a way to skip release
branches. This flag is used to signal engine artifacts are built - they
need to be skipped:
- in release branches because artifacts are produced through other
paths.
- in postsubmits of monorepo since the engine artifacts are produced in
the merge queue.

This target was the only one in the framework defining it this way. It
should have been using `enabled_branches`.

tested: locally, using CiYaml directly with a copy of flutter's ci.yaml:

```dart
  final YamlMap configYaml = loadYaml(await File(args.command!['file']).readAsString()) as YamlMap;
  final pb.SchedulerConfig schedulerConfig = pb.SchedulerConfig()..mergeFromProto3Json(configYaml);
  final masterYaml = CiYamlSet(
    yamls: {
      CiType.any: schedulerConfig,
    },
    slug: RepositorySlug.full('flutter/flutter'),
    branch: 'master',
    validate: false,
    isFusion: false,
  );
  final masterNames = {...masterYaml.postsubmitTargets().map((t) => t.value.name)};
  final releaseYaml = CiYamlSet(
    yamls: {
      CiType.any: schedulerConfig,
    },
    slug: RepositorySlug.full('flutter/flutter'),
    branch: 'flutter-3.27-candidate.0',
    validate: false,
    isFusion: false,
  );
  final releaseNames = {...releaseYaml.postsubmitTargets().map((t) => t.value.name)};

  print("********************************");
  print(releaseNames.contains('Linux docs_publish'));  // false
  print(masterNames.contains('Linux docs_publish')); // true - generate docs in postsubmit
  print("********************************");
```


Fixes #162552
These API calls are triggering lints in g3, which has stricter lints for
transitively calling higher API level methods.
dart-lang/webdev#2516

- Updates restart/reload code to accept a resetCompiler boolean to
disambiguate between whether this is a full restart and whether to reset
the resident compiler.
- Adds code to call reloadSources in DWDS and handle the response
(including any errors).
- Adds code to invoke reassemble.
- Adds code to emit a script that DWDS can later consume that contains
the changed sources and their associated libraries. This is used to hot
reload. The bootstrapper puts this in the global window. DWDS should be
updated to accept it in the provider itself. See
dart-lang/webdev#2584.
- Adds code to parse module metadata from the frontend server. This is
identical to the implementation in DWDS % addressing type-related lints.
- Adds tests that run the existing hot reload tests but with web. Some
modifications are mode, including waiting for Flutter runs to finish
executing, and skipping a test that's not possible on the web.

Needs DWDS 24.3.4 to be published first and used before we can land.

## Pre-launch Checklist

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

Remake of flutter/engine#52852. 

Makes it so that `stripped` defaults to false for android in `gn`
arguments, i.e. we don't strip the Android engine builds. AGP does this
by default when the NDK is installed (and we download it automatically
now after #159756).

In testing, the step that AGP does to strip symbols adds ~1-2 seconds to
the build.

Adds a tool verification for release app bundle builds that checks to
make sure we have stripped the debug symbols and placed them in the
[`BUNDLE-METADATA`
directory](https://developer.android.com/guide/app-bundle/app-bundle-format).
The check is done by invoking `apkanalyzer`, which takes ~`0.5` seconds,
which is why the check is only enabled for release builds.

BEFORE LANDING: I need to follow up on
flutter/engine#50443 (comment), to
ensure we start stripping symbols internally as well.

## 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.
- [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 <[email protected]>
@engine-flutter-autoroll engine-flutter-autoroll merged commit c9192b9 into engine-flutter-autoroll:main Feb 3, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.