30074 Commits

Author SHA1 Message Date
engine-flutter-autoroll
57bde858cd
Roll Dart SDK from fab994cca421 to 6cece361df65 (1 revision) (#165532)
https://dart.googlesource.com/sdk.git/+log/fab994cca421..6cece361df65

2025-03-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-208.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter
Please CC dart-vm-team@google.com,jsimmons@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-03-20 02:12:34 +00:00
ash2moon
ecbb115ae3
deprecate Android announcement events and add deprecation warning. (#165195)
Due to this [Android
deprecation](https://developer.android.com/reference/android/view/View#announceForAccessibility(java.lang.CharSequence))
Flutter needs to show deprecation warnings to developers when using
announce on Android.

Unfortunately testing this log statement is impossible since robolectric
currently does not support API >=36.
https://github.com/flutter/flutter/issues/165220 will add the test code
in once robolectric supports 36.

## 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-03-19 23:42:18 +00:00
Jonah Williams
125a2b749e
[Impeller] fix barriers on PowerVR hardware / ensure Render pass cached on non-MSAA. (#165497)
Work towards https://github.com/flutter/flutter/issues/162033

- barriers for render pass are not correct, but only causes a problem on
powervr/imagination. Added new external subpass dependencies that have
better descriptions for what they do. We now use the subpass to
transition images that are sampled to the final shaderReadOnlylayout,
while keeping swapchain images in eGeneral.

- missing cache for render pass objects when using non-msaa passes. This
mostly impacts powervr hardware because render pass construction is much
slower there.
2025-03-19 23:31:04 +00:00
engine-flutter-autoroll
a7a3f55ccd
Roll Skia from dbfd72770bdd to e1f426dad46d (1 revision) (#165518)
https://skia.googlesource.com/skia.git/+log/dbfd72770bdd..e1f426dad46d

2025-03-19 bungeman@google.com Do not create nullptr SkTypeface_proxy

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 jsimmons@google.com,jvanverth@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-03-19 21:09:16 +00:00
engine-flutter-autoroll
ff6ce3fb9b
Roll Dart SDK from cef5d9bd7616 to fab994cca421 (1 revision) (#165516)
https://dart.googlesource.com/sdk.git/+log/cef5d9bd7616..fab994cca421

2025-03-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-207.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter
Please CC dart-vm-team@google.com,jsimmons@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-03-19 20:49:07 +00:00
Qun Cheng
32b34ff99e
Add aria menu roles to menu-related widgets (#164741)
Related to https://github.com/flutter/flutter/issues/157177

This PR is to add the following changes:
* Implement `SemanticsRole.menu`, `SemanticsRole.menuItem`,
`SemanticsRole.menuBar`, `SemanticsRole.menuItemCheckbox`, and
`SemanticsRole.menuItemRadio`.
* Add `SemanticsRole.menu` role in ~`MenuAnchor`~, `DropdownButton`, and
`PopupMenuButton`
~* Add `SemanticsRole.menuBar` role to `MenuBar`~
* Add `SemanticsRole.menuItem` to ~`MenuItemButton`~, `DropdownMenuItem`
and `PopupMenuItem`
~* Add `SemanticsRole.menuItemCheckbox` to `CheckboxMenuButton`~
~* Add `SemanticsRole.menuItemRadio` to `RadioMenuButton`~

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [ ] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [ ] 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-03-19 20:33:15 +00:00
engine-flutter-autoroll
bf3826d2ce
Roll Skia from 38a5185e01f1 to dbfd72770bdd (3 revisions) (#165503)
https://skia.googlesource.com/skia.git/+log/38a5185e01f1..dbfd72770bdd

2025-03-19 drott@chromium.org [Fontations] Harmonize "slight"
autohinting behavior with FreeType
2025-03-19 kjlubick@google.com Remove slow path for
SkBitmapDevice::drawRRect
2025-03-19 thomsmit@google.com this is my first commit

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 jsimmons@google.com,jvanverth@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-03-19 18:43:38 +00:00
engine-flutter-autoroll
3705758a18
Roll Dart SDK from 30a676454f03 to cef5d9bd7616 (1 revision) (#165487)
https://dart.googlesource.com/sdk.git/+log/30a676454f03..cef5d9bd7616

2025-03-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-206.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter
Please CC dart-vm-team@google.com,jsimmons@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-03-19 15:22:09 +00:00
engine-flutter-autoroll
ca21baed15
Roll Dart SDK from 382211559d5e to 30a676454f03 (1 revision) (#165460)
https://dart.googlesource.com/sdk.git/+log/382211559d5e..30a676454f03

2025-03-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-205.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter
Please CC dart-vm-team@google.com,jsimmons@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-03-19 06:26:21 +00:00
engine-flutter-autoroll
466d13db0e
Roll Dart SDK from 2a13e6c0b088 to 382211559d5e (3 revisions) (#165438)
https://dart.googlesource.com/sdk.git/+log/2a13e6c0b088..382211559d5e

2025-03-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-204.0.dev
2025-03-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-203.0.dev
2025-03-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-202.0.dev

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter
Please CC dart-vm-team@google.com,jsimmons@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-03-18 23:20:08 +00:00
engine-flutter-autoroll
b0edb3de6f
Roll Fuchsia Linux SDK from mPniqXmPpXqMMpM8z... to nvix6F7GN9Q4nLH2Z... (#165429)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter
Please CC jsimmons@google.com,zra@google.com on the revert to ensure
that a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-03-18 21:46:13 +00:00
engine-flutter-autoroll
3f2fc32e8d
Roll Skia from cebb097bf651 to 5e37e525459d (1 revision) (#165426)
https://skia.googlesource.com/skia.git/+log/cebb097bf651..5e37e525459d

2025-03-18 kjlubick@google.com Make raster pipeline gradient code more
readable

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 jsimmons@google.com,jvanverth@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-03-18 21:20:49 +00:00
Jim Graham
e407d879d8
[Impeller] Move skia_conversions towards retirement (#165408)
The skia_conversions sources and namespace have been filled with methods
that are no longer used now that the DisplayList has its own complete
set of APIs and is now mostly obsolete.
2025-03-18 21:19:08 +00:00
Jim Graham
c4d8870f50
[DisplayList] DlPath supports generic path dispatching (#164753)
There are different ways to iterate over an SkPath or an impeller::Path
and various points in the engine source tree we have boilerplate
duplicates of this code to transfer the contents of the DlPath wrapper
object into some platform-specific path. This PR adds a
dispatch/receiver mechanism to read back the contents of a DlPath -
independent of whether it is backed by an SkPath or an impeller::Path -
in a simpler form that avoids potential mistakes in the various
conversion methods.

See DlPathReceiver and DlPath::Dispatch in the dl_path.h file
2025-03-18 20:42:06 +00:00
Jonah Williams
05c868e744
[Impeller] tear down swapchain when backgrounding. (#165259)
When we return to the foreground the swapchain is reconstructed anyway.
Eagerly tearing the old one down releases memory faster. Highlighted by
a regression in a customer: money benchmark.
2025-03-18 19:26:11 +00:00
Jason Simmons
6912a06f35
Add checks for disposed images in FragmentShader.setImageSampler (#165214) 2025-03-18 19:05:20 +00:00
Jason Simmons
5f0b94f50d
[Impeller] Return an empty contents in Paint::CreateContents if a runtime effect sampler is invalid (#165165)
Callers of Paint::CreateContents expect that the result is not null.

See https://github.com/flutter/flutter/issues/165119
2025-03-18 19:03:30 +00:00
engine-flutter-autoroll
25a0d9ab74
Roll Skia from 5907e2cfe986 to cebb097bf651 (6 revisions) (#165411)
https://skia.googlesource.com/skia.git/+log/5907e2cfe986..cebb097bf651

2025-03-18 jvanverth@google.com [graphite] Another attempt to fix
VkDeps.
2025-03-18 michaelludwig@google.com [graphite] UniquePaintParamsID is
constexpr
2025-03-18 michaelludwig@google.com [graphite] Move DstReadStrategy out
of Caps, make uint8_t
2025-03-18 jvanverth@google.com [graphite] Clean up DrawAtlas code.
2025-03-18 kjlubick@google.com Remove unnecessary consts from virtual
method declarations
2025-03-18 jvanverth@google.com [graphite] Try again to disable compute
tests with Vulkan

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 jsimmons@google.com,jvanverth@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-03-18 18:52:20 +00:00
Jason Simmons
44036a53cd
Roll Dart SDK from 725172afbc42 to 2a13e6c0b088 (3 revisions) (#165403)
https://dart.googlesource.com/sdk.git/+log/725172afbc42..2a13e6c0b088

2025-03-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-201.0.dev 2025-03-17
dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version
3.8.0-200.0.dev 2025-03-17
dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version
3.8.0-199.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 chinmaygarde@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

Co-authored-by: engine-flutter-autoroll <engine-flutter-autoroll@skia.org>
2025-03-18 18:50:07 +00:00
auto-submit[bot]
4e5a2dbf1a
Reverts "[web][a11y]Delete _childContainerElement (#163662)" (#165416)
<!-- start_original_pr_link -->
Reverts: flutter/flutter#163662
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: hannah-hyj
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: google 3 failure
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: hannah-hyj
<!-- end_original_pr_author -->

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

<!-- start_revert_body -->
This change reverts the following previous change:
delete _childContainerElement , add the rect compensate and scrolling
adjustment to the children

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

<!-- end_revert_body -->

Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2025-03-18 18:18:47 +00:00
engine-flutter-autoroll
155f6dc7f9
Roll Skia from 8c4c06605277 to 5907e2cfe986 (3 revisions) (#165399)
https://skia.googlesource.com/skia.git/+log/8c4c06605277..5907e2cfe986

2025-03-18 danieldilan@google.com Revert "Remove transform_scanline
functions from SkPngEncoder"
2025-03-18 drott@chromium.org [Fontations-backend] Roll Fontations,
Skrifa to 0.29
2025-03-18 danieldilan@google.com Remove transform_scanline functions
from SkPngEncoder

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 jsimmons@google.com,jvanverth@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-03-18 16:30:21 +00:00
Jonah Williams
6328b7ea08
[Impeller] limit mipmap generation (#165357)
Fixes https://github.com/flutter/flutter/issues/161283

When generating mipmaps, as soon as we hit a dimension (x,y) of 1, stop
generating mipmaps. This is done by changing the mip computation to use
min instead of max - but also adds a short circuit too.
2025-03-18 15:41:11 +00:00
Victoria Ashworth
425d1bd258
Update tests to use Xcode 16.2 and iOS 18.2 Simulator (#165318)
Runs tests on Xcode 16.2 and iOS 18.2. Also updates engine scenario
golden files to iOS 18.2 and removes non-impeller (Skia) test files that
we no longer use.

All framework tests passing:
https://github.com/flutter/flutter/issues/148899#issuecomment-2701465612
All engine tests passing:
https://github.com/flutter/flutter/issues/148906#issuecomment-2702112378

Fixes https://github.com/flutter/flutter/issues/148907 and
https://github.com/flutter/flutter/issues/148957.

## 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-03-18 14:13:26 +00:00
Bruno Leroux
d0ef1c1f86
[Android] Fix crash on some key repeat events (#165307)
## Description

This PR fixes a crash on Android related to specific keyboard events.
It is very similar to http://github.com/flutter/engine/issues/35924
which was related to down events. This PR fixes the similar logic
related to repeat events.

## Related Issue

Fixes [Flutter 3.29 Fatal crash with
java.lang.AssertionError](https://github.com/flutter/flutter/issues/164626)

## Tests

Adds 1 test.
2025-03-18 06:48:21 +00:00
engine-flutter-autoroll
4b2c79a0e0
Roll Skia from 52130e5c3b34 to c777fdc55adc (1 revision) (#165360)
https://skia.googlesource.com/skia.git/+log/52130e5c3b34..c777fdc55adc

2025-03-17 jvanverth@google.com Revert "Reland "[graphite] Convert
drawPath to drawPoints for lines""

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
chinmaygarde@google.com,jvanverth@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-03-18 01:46:36 +00:00
Jim Graham
c5d4edfe9c
[DisplayList] Use internal conversion for opacity->alpha (#165349)
Removing an unnecessary dependence on an external library for doing
opacity->alpha conversions in DlPaint.
2025-03-18 01:09:13 +00:00
Jackson Gardner
1d954f4e96
Revert "[skwasm] Dynamic Threading (#164748)" (#165350)
This reverts commit b2a4a05683b95e9c08efafb3a0f17193915897d5.

This has been causing issues when rolling to flutter/packages repo. See
https://github.com/flutter/flutter/issues/165347.
2025-03-17 23:40:59 +00:00
engine-flutter-autoroll
b836fb2682
Roll Skia from fa669e2e6d12 to 52130e5c3b34 (4 revisions) (#165348)
https://skia.googlesource.com/skia.git/+log/fa669e2e6d12..52130e5c3b34

2025-03-17 kjlubick@google.com Remove redundant lowp RasterPipeline
guard
2025-03-17 nicolettep@google.com Disable compute tests on Vulkan that
cause SPIR-V validation errors
2025-03-17 kjlubick@google.com Add justification for why SkRP doesn't
use SkVx
2025-03-17 jmbetancourt@google.com [MSKP] write a placeholder image when
encoding the original image fails

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
chinmaygarde@google.com,jvanverth@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-03-17 23:23:18 +00:00
Hannah Jin
6e74ee4833
[web][a11y]Delete _childContainerElement (#163662)
delete _childContainerElement , add the rect compensate and scrolling
adjustment to the children

## 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-03-17 21:19:33 +00:00
engine-flutter-autoroll
8c99c60a62
Roll Skia from e45207898e60 to fa669e2e6d12 (8 revisions) (#165342)
https://skia.googlesource.com/skia.git/+log/e45207898e60..fa669e2e6d12

2025-03-17 kjlubick@google.com Reduce safety hatches in SkOpSegment.cpp
to 1000
2025-03-17 jamesgk@google.com [graphite] Intersect scissor and not
viewport with attachment
2025-03-17 michaelludwig@google.com [graphite]
TextureProxy::isProtected() returns enum
2025-03-17 michaelludwig@google.com Reland "[graphite] Convert drawPath
to drawPoints for lines"
2025-03-17 lehoangquyen@google.com Graphite: Use approx sizes for
DstCopyTexture
2025-03-17 robertphillips@google.com [graphite] Update
ChromePrecompileTest to make sharing w/ Chrome easier
2025-03-17 bungeman@google.com Fix CoreText data font weight calculation
2025-03-17 jvanverth@google.com Revert "[rust png] Tweak mapping of
Skia's `CompressionLevel` to `png` APIs."

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
chinmaygarde@google.com,jvanverth@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-03-17 21:11:32 +00:00
engine-flutter-autoroll
8bcaefe0a9
Roll Fuchsia Linux SDK from SDNQgVXxHbbd0qsVw... to mPniqXmPpXqMMpM8z... (#165313)
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 chinmaygarde@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-03-17 17:01:52 +00:00
engine-flutter-autoroll
9a644a96ee
Roll Dart SDK from 9283d47199b7 to 725172afbc42 (1 revision) (#165310)
https://dart.googlesource.com/sdk.git/+log/9283d47199b7..725172afbc42

2025-03-17 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-198.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 chinmaygarde@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-03-17 17:00:07 +00:00
gaaclarke
71a5b734c7
Removes assumption that basis scalar and rounded_scalar match (#165166)
fixes https://github.com/flutter/flutter/issues/165130

## 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-03-17 16:58:06 +00:00
engine-flutter-autoroll
d5fe437f57
Roll Fuchsia Linux SDK from LPz5j18JDsms41r3T... to SDNQgVXxHbbd0qsVw... (#165275)
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 chinmaygarde@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-03-16 14:21:11 +00:00
engine-flutter-autoroll
8d69806540
Roll Dart SDK from 067560bcd521 to 9283d47199b7 (1 revision) (#165269)
https://dart.googlesource.com/sdk.git/+log/067560bcd521..9283d47199b7

2025-03-16 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-197.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 chinmaygarde@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-03-16 05:53:36 +00:00
engine-flutter-autoroll
a62569fa04
Roll Dart SDK from 40bb66a945e4 to 067560bcd521 (1 revision) (#165262)
https://dart.googlesource.com/sdk.git/+log/40bb66a945e4..067560bcd521

2025-03-15 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-196.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 chinmaygarde@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-03-15 21:44:18 +00:00
engine-flutter-autoroll
0027b63978
Roll Fuchsia Linux SDK from efdpJgW4DIV6j1mO1... to LPz5j18JDsms41r3T... (#165252)
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 chinmaygarde@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-03-15 12:06:32 +00:00
engine-flutter-autoroll
7817454563
Roll Dart SDK from f23d496f0585 to 40bb66a945e4 (1 revision) (#165250)
https://dart.googlesource.com/sdk.git/+log/f23d496f0585..40bb66a945e4

2025-03-15 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-195.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 chinmaygarde@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-03-15 09:06:25 +00:00
engine-flutter-autoroll
b9240711c8
Roll Dart SDK from 8814749ec6a4 to f23d496f0585 (1 revision) (#165246)
https://dart.googlesource.com/sdk.git/+log/8814749ec6a4..f23d496f0585

2025-03-15 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-194.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 chinmaygarde@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-03-15 04:13:32 +00:00
engine-flutter-autoroll
f77193ed0b
Roll Skia from 4568e766ed0a to f124daeb564d (1 revision) (#165245)
https://skia.googlesource.com/skia.git/+log/4568e766ed0a..f124daeb564d

2025-03-15 michaelludwig@google.com Revert "[graphite] Convert drawPath
to drawPoints for lines"

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
chinmaygarde@google.com,danieldilan@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-03-15 03:33:33 +00:00
engine-flutter-autoroll
92874a42a4
Roll Skia from bac6e76abfc7 to 4568e766ed0a (5 revisions) (#165241)
https://skia.googlesource.com/skia.git/+log/bac6e76abfc7..4568e766ed0a

2025-03-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
jsfiddle-base from b790c1251ebc to 05716f858285
2025-03-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
shaders-base from cfcb50e90210 to 64b9cec3c82d
2025-03-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
skottie-base from 62983236d361 to 868103199143
2025-03-14 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
debugger-app-base from 02aefa9619f3 to 9e80d6bc5f11
2025-03-14 michaelludwig@google.com [graphite] Convert drawPath to
drawPoints for lines

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
chinmaygarde@google.com,danieldilan@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-03-15 01:10:25 +00:00
engine-flutter-autoroll
74ce7fd6d7
Roll Dart SDK from a51f1bfa0f6a to 8814749ec6a4 (2 revisions) (#165227)
https://dart.googlesource.com/sdk.git/+log/a51f1bfa0f6a..8814749ec6a4

2025-03-14 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-193.0.dev
2025-03-14 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-192.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 chinmaygarde@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-03-14 23:07:02 +00:00
engine-flutter-autoroll
354ec5ca80
Roll Skia from 98b6922deecf to bac6e76abfc7 (5 revisions) (#165225)
https://skia.googlesource.com/skia.git/+log/98b6922deecf..bac6e76abfc7

2025-03-14 bungeman@google.com Use default and not portable typeface in
bench
2025-03-14 bungeman@google.com Use TestFontScanner to create test
FontMgr
2025-03-14 kjlubick@google.com Remove unscheduleable Debian11 jobs
2025-03-14 borenet@google.com [infra] Add jobs for MacBookPro 15,1
2025-03-14 jvanverth@google.com Reland "[graphite] Add
TextAtlasManager::freeGpuResources()."

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
chinmaygarde@google.com,danieldilan@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-03-14 23:01:25 +00:00
Kate Lovett
b2bbb52ee1
Add remaining dart fixes for Color deprecations when importing painting.dart (#162609)
Towards https://github.com/flutter/flutter/issues/160617

Noticed the `opacity` and `withOpacity` deprecations were supported by
dart fix, but not the others. Adding them here.

But strange too given `dart:ui` does not support dart fix
(https://github.com/dart-lang/sdk/issues/59764)..

---

We think since `painting.dart` exports `dart:ui`, this is somewhat of a
workaround.

If a user has this atop their file:

```dart
import 'package:flutter/painting.dart'; // 👍  dart fix will work here
```
 If instead

```dart
import 'dart:ui'; //   dart fix will not work here
```

Will continue to follow up on dart fix support for `dart:X` libraries,
for now hopefully this will help!

## 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-03-14 22:33:08 +00:00
Loïc Sharma
f6f6030b20
[Accessibility] Add required semantics flags (#164585)
This adds "required" semantic nodes, which indicate a node that requires
user input before a form can be submitted.

On Flutter Web, these get converted into [`aria-required`
attributes](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-required).

Addresses https://github.com/flutter/flutter/issues/162139

### Example app

_⚠️ This example app includes a `DropdownMenu` which currently produces
an incorrect semantics tree. That will be fixed by
https://github.com/flutter/flutter/pull/163638._

Today, you wrap your control in a `Semantics(required: true, child
...)`. For example:

<details>
<summary>Example app with required semantic flags...</summary>

```dart
import 'dart:ui';

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

void main() {
  runApp(const MyApp());
  SemanticsBinding.instance.ensureSemantics();
}

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(home: Scaffold(body: const MyForm()));
  }
}

class MyForm extends StatefulWidget {
  const MyForm({super.key});

  @override
  State<MyForm> createState() => MyFormState();
}

class MyFormState extends State<MyForm> {
  int _dropdownValue = 0;
  bool _checkboxValue = false;
  int _radioGroupValue = 0;

  @override
  Widget build(BuildContext context) {
    return Column(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        Semantics(required: true, child: TextField()),

        Semantics(
          required: true,
          child: DropdownMenu<int>(
            initialSelection: _dropdownValue,
            onSelected: (value) => setState(() => _dropdownValue = value ?? 0),
            dropdownMenuEntries: [
              DropdownMenuEntry(value: 0, label: 'Dropdown entry 1'),
              DropdownMenuEntry(value: 1, label: 'Dropdown entry 2'),
            ],
          ),
        ),

        ListTile(
          title: Text('Checkbox'),
          leading: Semantics(
            required: true,
            child: Checkbox(
              value: _checkboxValue,
              onChanged:
                  (value) => setState(() => _checkboxValue = value ?? false),
            ),
          ),
        ),

        Semantics(
          label: 'Radio group',
          role: SemanticsRole.radioGroup,
          explicitChildNodes: true,
          required: true,
          child: Column(
            children: <Widget>[
              ListTile(
                title: const Text('Radio 1'),
                leading: Radio<int>(
                  value: 0,
                  groupValue: _radioGroupValue,
                  onChanged:
                      (int? value) =>
                          setState(() => _radioGroupValue = value ?? 0),
                ),
              ),
              ListTile(
                title: const Text('Radio 2'),
                leading: Radio<int>(
                  value: 1,
                  groupValue: _radioGroupValue,
                  onChanged:
                      (int? value) =>
                          setState(() => _radioGroupValue = value ?? 0),
                ),
              ),
            ],
          ),
        ),

        Padding(
          padding: const EdgeInsets.symmetric(vertical: 16),
          child: ElevatedButton(onPressed: () {}, child: const Text('Submit')),
        ),
      ],
    );
  }
}

```

</details>

<details>
<summary>Semantics tree...</summary>

```
SemanticsNode#0
 │ Rect.fromLTRB(0.0, 0.0, 645.0, 1284.0)
 │
 └─SemanticsNode#1
   │ Rect.fromLTRB(0.0, 0.0, 645.0, 1284.0)
   │ textDirection: ltr
   │
   └─SemanticsNode#2
     │ Rect.fromLTRB(0.0, 0.0, 645.0, 1284.0)
     │ sortKey: OrdinalSortKey#e3336(order: 0.0)
     │
     └─SemanticsNode#3
       │ Rect.fromLTRB(0.0, 0.0, 645.0, 1284.0)
       │ flags: scopesRoute
       │
       ├─SemanticsNode#4
       │   Rect.fromLTRB(0.0, 0.0, 645.0, 48.0)
       │   actions: didGainAccessibilityFocus, didLoseAccessibilityFocus,
       │     focus, tap
       │   flags: isTextField, hasEnabledState, isEnabled, hasRequiredState,
       │     isRequired
       │   textDirection: ltr
       │   text selection: [0, 0]
       │   currentValueLength: 0
       │
       ├─SemanticsNode#5
       │ │ Rect.fromLTRB(0.0, 48.0, 199.3, 96.0)
       │ │ flags: hasRequiredState, isRequired
       │ │
       │ └─SemanticsNode#7
       │   │ Rect.fromLTRB(0.0, 0.0, 199.3, 48.0)
       │   │ actions: didGainAccessibilityFocus, didLoseAccessibilityFocus,
       │   │   focus, moveCursorBackwardByCharacter, moveCursorBackwardByWord,
       │   │   moveCursorForwardByCharacter, moveCursorForwardByWord, tap
       │   │ flags: isTextField, hasEnabledState, isEnabled
       │   │ value: "Dropdown entry 1"
       │   │ textDirection: ltr
       │   │ text selection: [15, 15]
       │   │ currentValueLength: 16
       │   │
       │   ├─SemanticsNode#9
       │   │   Rect.fromLTRB(4.0, 4.0, 44.0, 44.0)
       │   │   actions: focus, tap
       │   │   flags: hasSelectedState, isButton, hasEnabledState, isEnabled,
       │   │     isFocusable
       │   │
       │   └─SemanticsNode#8
       │       Rect.fromLTRB(155.3, 4.0, 195.3, 44.0)
       │       actions: focus, tap
       │       flags: hasSelectedState, isButton, hasEnabledState, isEnabled,
       │         isFocusable
       │
       ├─SemanticsNode#10
       │ │ Rect.fromLTRB(0.0, 96.0, 645.0, 144.0)
       │ │ flags: hasSelectedState, hasEnabledState, isEnabled
       │ │ label: "Checkbox"
       │ │ textDirection: ltr
       │ │
       │ └─SemanticsNode#11
       │     Rect.fromLTRB(16.0, 4.0, 56.0, 44.0)
       │     actions: focus, tap
       │     flags: hasCheckedState, hasEnabledState, isEnabled, isFocusable,
       │       hasRequiredState, isRequired
       │
       ├─SemanticsNode#12
       │ │ Rect.fromLTRB(0.0, 144.0, 645.0, 240.0)
       │ │ flags: hasRequiredState, isRequired
       │ │ label: "Radio group"
       │ │ textDirection: ltr
       │ │ role: radioGroup
       │ │
       │ ├─SemanticsNode#13
       │ │ │ Rect.fromLTRB(0.0, 0.0, 645.0, 48.0)
       │ │ │ flags: hasSelectedState, hasEnabledState, isEnabled
       │ │ │ label: "Radio 1"
       │ │ │ textDirection: ltr
       │ │ │
       │ │ └─SemanticsNode#14
       │ │     Rect.fromLTRB(16.0, 8.0, 48.0, 40.0)
       │ │     actions: focus, tap
       │ │     flags: hasCheckedState, isChecked, hasSelectedState, isSelected,
       │ │       hasEnabledState, isEnabled, isInMutuallyExclusiveGroup,
       │ │       isFocusable
       │ │
       │ └─SemanticsNode#15
       │   │ Rect.fromLTRB(0.0, 48.0, 645.0, 96.0)
       │   │ flags: hasSelectedState, hasEnabledState, isEnabled
       │   │ label: "Radio 2"
       │   │ textDirection: ltr
       │   │
       │   └─SemanticsNode#16
       │       Rect.fromLTRB(16.0, 8.0, 48.0, 40.0)
       │       actions: focus, tap
       │       flags: hasCheckedState, hasSelectedState, hasEnabledState,
       │         isEnabled, isInMutuallyExclusiveGroup, isFocusable
       │
       └─SemanticsNode#17
           Rect.fromLTRB(0.0, 256.0, 92.7, 288.0)
           actions: focus, tap
           flags: isButton, hasEnabledState, isEnabled, isFocusable
           label: "Submit"
           textDirection: ltr
           thickness: 1.0
```

</details>

<details>
<summary>HTML generated by Flutter web...</summary>

```html
<html>

<body flt-embedding="full-page" flt-renderer="canvaskit" flt-build-mode="debug" spellcheck="false" style="">

  <flt-announcement-host>
    <flt-announcement-polite aria-live="polite" style="">
    </flt-announcement-polite>
    <flt-announcement-assertive aria-live="assertive" style="">
    </flt-announcement-assertive>
  </flt-announcement-host>

  <flutter-view flt-view-id="0" tabindex="0" style="">
    <flt-glass-pane>
    </flt-glass-pane>

    <flt-text-editing-host>
    </flt-text-editing-host>

    <flt-semantics-host style="">
      <flt-semantics id="flt-semantic-node-0" style="">
        <flt-semantics-container style="">
          <flt-semantics id="flt-semantic-node-1" style="">
            <flt-semantics-container style="">
              <flt-semantics id="flt-semantic-node-2" style="">
                <flt-semantics-container style="">
                  <flt-semantics id="flt-semantic-node-3" role="dialog" style="">
                    <flt-semantics-container style="">
                      <flt-semantics id="flt-semantic-node-4" style="">
                        <input type="text" spellcheck="false" autocorrect="on" autocomplete="on"
                          data-semantics-role="text-field" aria-required="true" style="">
                      </flt-semantics>
                      <flt-semantics id="flt-semantic-node-5" aria-required="true" style="">
                        <flt-semantics-container style="">
                          <flt-semantics id="flt-semantic-node-7" style="">
                            <input type="text" spellcheck="false" autocorrect="off" autocomplete="off"
                              data-semantics-role="text-field" style="">
                            <flt-semantics-container style="">
                              <flt-semantics id="flt-semantic-node-9" role="button" tabindex="0" aria-selected="false"
                                flt-tappable="" style="">
                              </flt-semantics>
                              <flt-semantics id="flt-semantic-node-8" role="button" tabindex="0" aria-selected="false"
                                flt-tappable="" style="">
                              </flt-semantics>
                            </flt-semantics-container>
                          </flt-semantics>
                        </flt-semantics-container>
                      </flt-semantics>
                      <flt-semantics id="flt-semantic-node-10" role="group" aria-label="Checkbox" aria-selected="false"
                        style="">
                        <flt-semantics-container style="">
                          <flt-semantics id="flt-semantic-node-11" tabindex="0" aria-required="true" flt-tappable=""
                            role="checkbox" aria-checked="false" style="">
                          </flt-semantics>
                        </flt-semantics-container>
                      </flt-semantics>
                      <flt-semantics id="flt-semantic-node-12" role="radiogroup" aria-label="Radio group"
                        aria-required="true" style="">
                        <flt-semantics-container style="">
                          <flt-semantics id="flt-semantic-node-13" role="group" aria-label="Radio 1"
                            aria-selected="false" style="">
                            <flt-semantics-container style="">
                              <flt-semantics id="flt-semantic-node-14" tabindex="0" flt-tappable="" role="radio"
                                aria-checked="true" style="">
                              </flt-semantics>
                            </flt-semantics-container>
                          </flt-semantics>
                          <flt-semantics id="flt-semantic-node-15" role="group" aria-label="Radio 2"
                            aria-selected="false" style="">
                            <flt-semantics-container style="">
                              <flt-semantics id="flt-semantic-node-16" tabindex="0" flt-tappable="" role="radio"
                                aria-checked="false" style="">
                              </flt-semantics>
                            </flt-semantics-container>
                          </flt-semantics>
                        </flt-semantics-container>
                      </flt-semantics>
                      <flt-semantics id="flt-semantic-node-17" role="button" tabindex="0" flt-tappable="" style="">
                    </flt-semantics-container>
                  </flt-semantics>
                </flt-semantics-container>
              </flt-semantics>
            </flt-semantics-container>
          </flt-semantics>
        </flt-semantics-container>
      </flt-semantics>
    </flt-semantics-host>
  </flutter-view>
</body>

</html>

```

</details>


In the future, we can update Material and Cupertino widgets to
automatically make their semantics node required when desirable.


## 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-03-14 21:06:18 +00:00
engine-flutter-autoroll
635ed5b778
Roll Skia from f4467ff38f1f to 98b6922deecf (5 revisions) (#165215)
https://skia.googlesource.com/skia.git/+log/f4467ff38f1f..98b6922deecf

2025-03-14 lukasza@chromium.org [rust png] Tweak mapping of Skia's
`CompressionLevel` to `png` APIs.
2025-03-14 kjlubick@google.com Move Debian11 Perf and Test jobs to
Ubuntu Golo machines
2025-03-14 danieldilan@google.com Add color type specification to encode
benchmarks
2025-03-14 bungeman@google.com [fontconfig] Check file is supported
2025-03-14 kjlubick@google.com Misc cleanups in gradient pipeline

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
chinmaygarde@google.com,danieldilan@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-03-14 20:38:12 +00:00
engine-flutter-autoroll
ca287b67e1
Roll Dart SDK from 576514b2bfce to a51f1bfa0f6a (1 revision) (#165191)
https://dart.googlesource.com/sdk.git/+log/576514b2bfce..a51f1bfa0f6a

2025-03-14 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-191.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 chinmaygarde@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-03-14 14:53:25 +00:00
engine-flutter-autoroll
208883fe12
Roll Dart SDK from ceb58442306e to 576514b2bfce (2 revisions) (#165180)
https://dart.googlesource.com/sdk.git/+log/ceb58442306e..576514b2bfce

2025-03-14 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-190.0.dev
2025-03-14 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.8.0-189.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 chinmaygarde@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-03-14 09:46:27 +00:00
engine-flutter-autoroll
fea4197145
Roll Fuchsia Linux SDK from qXOLczyRJadxMW0PK... to efdpJgW4DIV6j1mO1... (#165175)
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 chinmaygarde@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-03-14 08:56:30 +00:00
Jonah Williams
d64db52438
[Impeller] Enable mediatek on API 34+. (#165156)
Most of the reported Mediatek issues are API 29/30, maybe up to 31. By
34 it should work, and the mokey device we have works fine with Vulkan
and runs on CI. This is necessary to allow MediaTek devices to use HCPP
without us having to write a new rendering surface abstraction for GL.

This does _not_ enable PowerVR, which is still denylisted in the vulkan
backend.
2025-03-14 01:27:29 +00:00