84361 Commits

Author SHA1 Message Date
Matthew Kosarek
9f3dd1104d Add X for test 2025-05-29 14:19:49 -04:00
Loic Sharma
8a6a12a605 Let tests mock the list of feature flags 2025-05-29 10:52:17 -07:00
engine-flutter-autoroll
2a821a70de
Roll Packages from 5743798ede97 to 44630668aec6 (5 revisions) (#169674)
5743798ede...44630668ae

2025-05-29 15619084+vashworth@users.noreply.github.com Allow tests to
use macOS 14 or 15.5 (flutter/packages#9328)
2025-05-29 sokolovskyi.konstantin@gmail.com [camera_web] Remove mocktail
dependency. (flutter/packages#9195)
2025-05-28 engine-flutter-autoroll@skia.org Roll Flutter from
4372bfbc6c23 to 0e536eb9fe4b (27 revisions) (flutter/packages#9334)
2025-05-28 robert.odrowaz@leancode.pl [camera_avfoundation]
Implementation swift migration - part 3.5 (flutter/packages#9254)
2025-05-28 15619084+vashworth@users.noreply.github.com
[webview_flutter_wkwebview] Fix `testNilRequest` test for macOS 15.5
(flutter/packages#9330)

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-05-29 16:41:49 +00:00
Ben Konyi
f582fcbb04
Roll customer_testing to 7f55026290e721fc648d3811664bbf3abca911d5 (#169671) 2025-05-29 15:53:08 +00:00
engine-flutter-autoroll
fdc8c20d0d
Roll Skia from 274d78ef2666 to 58f43e55f1ba (1 revision) (#169669)
https://skia.googlesource.com/skia.git/+log/274d78ef2666..58f43e55f1ba

2025-05-29 ccameron@chromium.org skcms_TFType: Add default to switch
statements

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 codefu@google.com,kjlubick@google.com,nicolettep@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-05-29 14:56:57 +00:00
Jason Simmons
8abf4e7a54
[Impeller] Maintain a global map of each context's currently active thread-local command pools (#169548)
The Impeller Vulkan back end creates a thread-local map of contexts to
CommandPoolVK instances for each thread that uses Vulkan. This allows a
thread to obtain the CommandPoolVK that is currently in use for a given
context.

When a context is shut down, the Vulkan resources used by each thread's
local CommandPoolVK for that context must be freed. To do this,
CommandPoolVK maintains a global map of CommandPoolVK instances.

Prior to this PR Impeller was appending to the context's pool list in
the global map each time a new CommandPoolVK was created. In the
original implementation this worked because Impeller was only creating
one CommandPoolVK per thread for a given context.

However, CommandPoolVK later adopted a recycling scheme where each frame
creates a new CommandPoolVK instance that acquires a Vulkan command pool
from the CommandPoolRecyclerVK. So inserting every CommandPoolVK into
the global map will cause the global map to grow unbounded.

This PR changes the structure of the global map. The global map will now
associate each context with a map of thread IDs to the CommandPoolVK
that is currently placed in the thread's local storage. When a thread
calls CommandPoolRecyclerVK::Dispose to clear its thread-local
CommandPoolVK for a context, the corresponding entry is also removed
from the global map.

Fixes https://github.com/flutter/flutter/issues/169208
2025-05-29 14:27:10 +00:00
stuartmorgan-g
5df6008ec7
Update triage for new team-devexp (#169668)
Adds the new `team-devexp` to the flowchart, and updates references to
`d: devtools` to reflect that it's now `a: devtools`.
2025-05-29 14:27:06 +00:00
Mouad Debbar
8b18dde77f
Reduce some CI timeouts (#169512)
- `Linux docs_test`: Has been running consistently under 25m, while
timeout was set at 90m.
- `Linux coverage`: Has been running consistently under 1.2h (~75m),
while timeout was set at 120m.
2025-05-29 13:35:15 +00:00
engine-flutter-autoroll
9c89a8fff9
Roll Skia from cc7963935d9d to 274d78ef2666 (21 revisions) (#169665)
https://skia.googlesource.com/skia.git/+log/cc7963935d9d..274d78ef2666

2025-05-29
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-05-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from 2a18fdbf4c8c to e7118451f513 (18 revisions)
2025-05-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 8888289eb6d9 to 58febb14bdad (6 revisions)
2025-05-29 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn
from 0dc9ec06d441 to f53bc591dafd (28 revisions)
2025-05-29 syoussefi@google.com [vulkan] Switch to VK_EXT_debug_utils
2025-05-29
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-05-28
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-05-28
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-05-28 danieldilan@google.com Add bounds check to onDrawPoints for
ganesh Device
2025-05-28 bungeman@google.com [gn] Remove msvc env setting
2025-05-28 michaelludwig@google.com [graphite] Separate HSL and regular
color matrix filter shaders
2025-05-28 kainino@chromium.org [graphite] Handle Dawn breaking change
in QueueWorkDoneCallback
2025-05-28
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-05-28 kjlubick@google.com Rename SkRecorder::Type::kRaster -> kCPU
2025-05-28 thomsmit@google.com [graphite] Add test for static vertices
padding.
2025-05-28 lukasza@google.com Revert "[rust png] Round-trip
`kOpaque_SkAlphaType` when encoding."
2025-05-28
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-05-28 syoussefi@google.com [graphite][vulkan] Prepare for more
extensive property queries
2025-05-28 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 9b8253ba5637 to 8888289eb6d9 (8 revisions)
2025-05-28 kjlubick@google.com Fix integer overflow in SkSL RP code
2025-05-28 lukasza@chromium.org [rust png] Round-trip
`kOpaque_SkAlphaType` when encoding.

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 codefu@google.com,kjlubick@google.com,nicolettep@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-05-29 12:39:26 +00:00
Kevin Moore
f2625754b3
Fix minify logic (#169607)
It's meant to be ignored unless explicitly set.

Introduced in
cb3150f998
2025-05-28 23:52:39 +00:00
Nate Biggs
f5f9f351f0
Add dynamic module loader to flutter wasm entrypoint script. (#169313)
Adds support for loading dynamic module files to the Flutter wasm
entrypoint script. The Dart SDK already tries to import this function
when dynamic modules are enabled.

## 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: Nate Biggs <natebiggs@google.com>
2025-05-28 21:47:17 +00:00
Sam Rawlins
1ce59f419d
integration_tests: Check if BuildContext is mounted in display_cutout_test (#169008)
These changes highlight where code was not safely checking whether the
BuildContext was mounted before using it.

The `use_build_context_synchronously` lint rule is changing to catch
these cases.

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [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
2025-05-28 21:46:19 +00:00
Chinmay Garde
2180d9fe80
[Impeller] Update FAQ for WebGPU/Dawn. (#169616)
From the thread on the insiders channel.
2025-05-28 21:36:28 +00:00
Jonah Williams
af3627ac2b
[Impeller] acquire the gpu sync switch when flush stored GPU tasks. (#169596)
Potential fix for https://github.com/flutter/flutter/issues/166668

See:

*
https://github.com/flutter/flutter/blob/master/engine/src/flutter/impeller/renderer/backend/metal/context_mtl.mm#L429
*
5d013c73ba/engine/src/flutter/fml/synchronization/sync_switch.cc (L41)

We don't hold the sync switch lock when we flush tasks. So if we start
flushing then immediately go to the background, then we might execute
while backgrounded.
2025-05-28 21:28:17 +00:00
engine-flutter-autoroll
3e8b531b18
Roll Fuchsia Linux SDK from nC9hLWjYVlChDTEPh... to WvRLeTv2ocKsPOdrq... (#169604)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter
Please CC codefu@google.com,zra@google.com on the revert to ensure that
a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-05-28 20:15:10 +00:00
engine-flutter-autoroll
c492ad41a3
Roll Skia from 82d326fc2148 to cc7963935d9d (1 revision) (#169597)
https://skia.googlesource.com/skia.git/+log/82d326fc2148..cc7963935d9d

2025-05-28
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skia-flutter-autoroll
Please CC codefu@google.com,kjlubick@google.com,nicolettep@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-05-28 20:15:10 +00:00
Matan Lurey
8e8cb92553
Roll forward: "Initialize default-app-flavor" (#169298) (#169602)
Closes https://github.com/flutter/flutter/issues/169598 (which explains
the integration test failure).
Closes https://github.com/flutter/flutter/issues/169160.
Closes https://github.com/flutter/flutter/issues/165803.

This is the only diff from 5d013c73baa70a8b3e1c541cb63e4c22654aa3cc:
```diff
diff --git a/packages/flutter_tools/lib/src/build_system/targets/common.dart b/packages/flutter_tools/lib/src/build_system/targets/common.dart
index 61583210e47..67731019a05 100644
--- a/packages/flutter_tools/lib/src/build_system/targets/common.dart
+++ b/packages/flutter_tools/lib/src/build_system/targets/common.dart
@@ -308,10 +308,18 @@ class KernelSnapshot extends Target {
     if (flavor == null) {
       return;
     }
-    if (!dartDefines.any((String element) => element.startsWith(kAppFlavor))) {
-      // If the flavor is not already in the dart defines, add it.
-      dartDefines.add('$kAppFlavor=$flavor');
-    }
+
+    // It is possible there is a flavor already in dartDefines, from another
+    // part of the build process, but this should take precedence as it happens
+    // last (xcodebuild execution).
+    //
+    // See https://github.com/flutter/flutter/issues/169598.
+
+    // If the flavor is already in the dart defines, remove it.
+    dartDefines.removeWhere((String define) => define.startsWith(kAppFlavor));
+
+    // Then, add it to the end.
+    dartDefines.add('$kAppFlavor=$flavor');
   }
 }
 ```
2025-05-28 20:15:01 +00:00
Yegor
5e953e76c1
unskip text_painter_rtl_test on web (#169537)
Fixes https://github.com/flutter/flutter/issues/32238
2025-05-28 20:11:20 +00:00
John "codefu" McDole
a5b51dbf22
Engine tests kvm=1 is required for some fuchsia (#169614)
Undoes some changes from #168106 as these tests are looking for a KVM
specifically for hardware accelerating the emulators. Tests are timing
out as "infra failures" and making the tree go red.

> KVM path /dev/kvm does not exist. Running without acceleration;
emulator will be extremely slow and may not establish a connection with
ffx in the allotted time.
2025-05-28 19:57:47 +00:00
Alex Li
e8366e3334
🐛 Use consist slashes when generating dep files (#169570)
Continue with https://github.com/flutter/flutter/pull/169467. I've
noticed that paths in the depfile on Windows are generated with
non-normalized paths. This PR normalizes every single file path before
putting them into the output.

This might also fix https://github.com/flutter/flutter/issues/163591 as
a root cause and can be easily cherry-picked.

## 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
2025-05-28 15:59:20 +00:00
Kevin Moore
c08e9dff68
Manually update vector_math package (#169476)
Includes fixes and deprecations that will allow us to improve
performance.
2025-05-28 15:55:01 +00:00
Victoria Ashworth
6a15533bf0
Allow tests to use macOS 15.5 (#169536)
Part of https://github.com/flutter/flutter/issues/167824

## 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-05-28 15:55:00 +00:00
engine-flutter-autoroll
d48dbc5564
Roll Packages from 6eebe72ca397 to 5743798ede97 (1 revision) (#169586)
6eebe72ca3...5743798ede

2025-05-27 15619084+vashworth@users.noreply.github.com
[file_selector_macos] Do not set nameFieldStringValue for NSOpenPanel
(flutter/packages#9324)

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-05-28 15:53:27 +00:00
gaaclarke
0e536eb9fe
Introduces FlutterPluginRegistrant protocol. (#169399)
design doc:
https://docs.google.com/document/d/1ZfcQOs-UKRa9jsFG84-MTFeibZTLKCvPQLxF2eskx44/edit?tab=t.0
issue: https://github.com/flutter/flutter/issues/167267

This provides the proper long term API for registering plugins in lieu
of `application:didFinishLaunching:withOptions:` no longer being a
viable place.

## 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: Victoria Ashworth <15619084+vashworth@users.noreply.github.com>
2025-05-28 15:31:30 +00:00
auto-submit[bot]
5d013c73ba
Reverts "Initialize default-flavor in FlutterCommand, adds integration test. (#169298)" (#169581)
<!-- start_original_pr_link -->
Reverts: flutter/flutter#169298
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: matanlurey
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: Broke mac/iOS integration tests.
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: matanlurey
<!-- end_original_pr_author -->

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

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

Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2025-05-28 12:35:47 +00:00
Matan Lurey
5759401447
Initialize default-flavor in FlutterCommand, adds integration test. (#169298)
Closes https://github.com/flutter/flutter/issues/169160.
Closes https://github.com/flutter/flutter/issues/165803.
2025-05-28 05:53:23 +00:00
Jacob MacDonald
5af5c06362
Update DEPS to add dart-lang/ai repo (#169540)
Unblocks dart->flutter roll which is failing due to the new DEPS
requirement.
2025-05-28 04:55:26 +00:00
engine-flutter-autoroll
a975302a8d
Roll Skia from 92311f2ba0b7 to 82d326fc2148 (1 revision) (#169552)
https://skia.googlesource.com/skia.git/+log/92311f2ba0b7..82d326fc2148

2025-05-27 danieldilan@google.com Implement drawBlurredRRect for Ganesh

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 codefu@google.com,kjlubick@google.com,nicolettep@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-05-28 03:05:25 +00:00
Kevin Moore
398fdee2af
dev/bots: improve service worker test code (#169231)
Use `foundError` instead of throwing - as is recommended
DRASTICALLY improve the error output by copying (more) from pkg:matcher
2025-05-28 02:29:31 +00:00
Jenn Magder
d503015dd2
Make Android team platform view TESTOWNERS (#169297)
Move `embedded_android_views_integration_test` and
`hybrid_android_views_integration_test` test ownership from plugins to
Android team.

Unrelated: I noticed `native_assets_android` is miscategorized, move
from `Mac iOS DeviceLab` to `Mac Android DeviceLab` section.

## 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-05-28 00:24:30 +00:00
engine-flutter-autoroll
b885d6cbfc
Roll Skia from 044f58f78a73 to 92311f2ba0b7 (9 revisions) (#169542)
https://skia.googlesource.com/skia.git/+log/044f58f78a73..92311f2ba0b7

2025-05-27 sharaks@google.com Merge 1 release note into RELEASE_NOTES.md
2025-05-27 sharaks@google.com Update Skia milestone to 139
2025-05-27
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-05-27 syoussefi@google.com [vulkan] Update Skia's own Vulkan
headers to v1.4.313.0
2025-05-27 michaelludwig@google.com [graphite] Use CoverBoundsRenderStep
for pixel-aligned drawImageRect calls
2025-05-27 michaelludwig@google.com Revert "[vulkan] Apply
RelaxedPrecision to special intrinsics"
2025-05-27 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from d18d20e2f8cd to 9b8253ba5637 (2 revisions)
2025-05-27 kjlubick@google.com Make clang-format recognize (ignore)
.json files
2025-05-27 michaelludwig@google.com [graphite][vk] Don't requery RP
granularity in beginRenderPass

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 codefu@google.com,kjlubick@google.com,nicolettep@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-05-28 00:20:25 +00:00
engine-flutter-autoroll
5855b18782
Roll Skia from 443f5257f382 to 044f58f78a73 (16 revisions) (#169530)
https://skia.googlesource.com/skia.git/+log/443f5257f382..044f58f78a73

2025-05-27 michaelludwig@google.com [vk] Add macros to log all vulkan
commands to console
2025-05-27 michaelludwig@google.com Revert "[vulkan] Apply
RelaxedPrecision to functions"
2025-05-27 jamesgk@google.com [graphite] Add a todo for the
kTextureSample dst read enum
2025-05-27 borenet@google.com [SkPathBuilder] Add generalized addPath
method
2025-05-27 nicolettep@google.com [graphite] Add Vulkan lazy memory
allocation fallback
2025-05-27 michaelludwig@google.com [nanobench] Disable warmup when
explicit loop count is requested
2025-05-27 jreck@google.com Add libskia_skcms to Android.bp
2025-05-27 syoussefi@google.com [ganesh][gl] Avoid
GL_ANGLE_base_vertex_base_instance
2025-05-27 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from ec4d8f8e4d3f to 2a18fdbf4c8c (5 revisions)
2025-05-27 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn
from 30e8f3c65d17 to 0dc9ec06d441 (7 revisions)
2025-05-27 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from d5a5fd31a4fe to d18d20e2f8cd (6 revisions)
2025-05-26 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from bf024288c340 to d5a5fd31a4fe (1 revision)
2025-05-26
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-05-26 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from 3cf7a60476f5 to ec4d8f8e4d3f (11 revisions)
2025-05-26 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
SwiftShader from f70c1194c173 to a8133cbb3c89 (1 revision)
2025-05-26 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn
from 65e89ee3bd4c to 30e8f3c65d17 (11 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 codefu@google.com,kjlubick@google.com,nicolettep@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-05-27 19:39:26 +00:00
Kostia Sokolovskyi
3ee7f14390
[web] Fix unresponsive input above SelectionArea in Safari and Firefox. (#167275)
Fixes https://github.com/flutter/flutter/issues/157579

### Description

When the `TextField` is placed above the `HtmlElementView`, it becomes
unresponsive on Safari and Firefox. After the investigation, I found
that this happens because the underlying `input`/`textarea` loses focus,
leading to not listening to the keyboard input.

After some investigation, I found out that calling `preventDefault` on
`mousedown` events on SelectionArea's `div` element prevents the
`input/textarea` from losing focus.

This PR focuses on `SelectionArea`, but there is the same issue
happening in the `pointer_interceptor ` package
https://github.com/flutter/flutter/issues/157920. If this solution is
accepted, then I could file a separate PR for `pointer_interceptor`
package with the same fix.

| Before | After |
| :---: | :---: |
| https://input-above-selection-area-bug.web.app |
https://input-above-selection-area-fix.web.app |
| <video
src="https://github.com/user-attachments/assets/be73a5e9-84e4-44f9-96b3-f8d24f44e0b8"
/> | <video
src="https://github.com/user-attachments/assets/87746058-df6e-4caf-8f85-c240de32c630"
/> |

<details>
<summary>Old description</summary>

The fix I am proposing is to delay the `moveFocusToActiveDomElement` by
using `Timer`. I am not sure whether this is a proper fix, as it looks
like the issues may be in the way pointer events are handled. I tried
adding `event.preventDefault()` after `_callback(event, pointerData)` in
`pointer_binding.dart` and the issue was fixed, but then text selection
in `SelectionRegion` became broken.


aef4718b39/engine/src/flutter/lib/web_ui/lib/src/engine/pointer_binding.dart (L942-L974)

The application with the bug reproduction is hosted at:
https://input-above-element-view-bug.web.app
The application with the fix is hosted at:
https://input-above-element-view-fix.web.app
<details>
<summary>Application Source Code</summary>

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

void main() async {
  runApp(
    MaterialApp(
      home: Screen(),
    ),
  );
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
          Expanded(
            child: ColoredBox(
              color: Colors.green.withAlpha(50),
              child: SelectionArea(
                child: Center(
                  child: Column(
                    mainAxisSize: MainAxisSize.min,
                    children: [
                      Text('SelectionArea below'),
                      OneLineTextField(),
                      MultilineTextField(),
                    ],
                  ),
                ),
              ),
            ),
          ),
          Builder(
            builder: (context) {
              return Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  Expanded(
                    child: OneLineTextField(),
                  ),
                  ElevatedButton(
                    child: const Text('Show dialog'),
                    onPressed: () {
                      showDialog(
                        context: context,
                        builder: (BuildContext context) {
                          return SimpleDialog(
                            children: <Widget>[
                              Column(
                                mainAxisSize: MainAxisSize.min,
                                children: [
                                  OneLineTextField(),
                                  OneLineTextField(),
                                  OneLineTextField(),
                                ],
                              ),
                            ],
                          );
                        },
                      );
                    },
                  ),
                ],
              );
            },
          ),
          Expanded(
            child: ColoredBox(
              color: Colors.orange.withAlpha(50),
              child: SimpleDiv(
                child: Center(
                  child: Column(
                    mainAxisSize: MainAxisSize.min,
                    children: [
                      Text('Simple div below'),
                      OneLineTextField(),
                      MultilineTextField(),
                    ],
                  ),
                ),
              ),
            ),
          ),
        ],
      ),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return TextField(
      decoration: InputDecoration(
        labelText: 'One-line',
        floatingLabelBehavior: FloatingLabelBehavior.always,
      ),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return TextField(
      decoration: InputDecoration(
        labelText: 'Multiline',
        floatingLabelBehavior: FloatingLabelBehavior.always,
      ),
      minLines: 1,
      maxLines: null,
    );
  }
}

class SimpleDiv extends StatelessWidget {
  const SimpleDiv({
    required this.child,
    super.key,
  });

  final Widget child;

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: <Widget>[
        Positioned.fill(
          child: HtmlElementView.fromTagName(
            tagName: 'div',
            isVisible: false,
            onElementCreated: (element) {
              (element as web.HTMLElement)
                ..style.width = '100%'
                ..style.height = '100%';
            },
          ),
        ),
        child,
      ],
    );
  }
}
```

</details>

#### Firefox

On `TextField` tap, the focus moves to the `input`, and then back to the
`flutter-view`. You can take a look at the "Before" recording.

| Before | After |
| :---: | :---: |
| `flutter-view -> input -> flutter-view` | `flutter-view -> input ->
flutter-view -> input` |
| <video
src="https://github.com/user-attachments/assets/dbbbbca7-500c-4682-a2e8-b49751a27b5c"
/> | <video
src="https://github.com/user-attachments/assets/3886592f-c4e0-4c92-9e24-9cc2cb5a4763"
/> |

#### Safari

Like in Firefox, on `TextField` tap, the focus moves to the `input`, and
then back to the `flutter-view`. You can take a look at the "Before"
recording.

| Before | After |
| :---: | :---: |
| `flutter-view -> input -> flutter-view` | `flutter-view -> input ->
flutter-view -> input` |
| <video
src="https://github.com/user-attachments/assets/10c3b7e5-cf64-4858-8874-98c1e1aae74f"
/> | <video
src="https://github.com/user-attachments/assets/5c74ea51-494a-410c-ae02-be0dccf1b344"
/> |

#### Chrome

The issue is not happening on Chrome. If you take a look at the
recording, you will notice that on a `TextField` tap, the focus moves
the following way: `flutter-view -> input -> input`. The reason why it
doesn't move to `flutter-view` is that we have a
`moveFocusToActiveDomElement` call in the `handleBlur` function. As far
as I understand, it prevents `input` from losing focus.
However, the same call in Firefox doesn't prevent input focus loss.
In Safari, it fixes the issue, but listening to `blur` events is not a
way to go, according to the following comment
https://github.com/flutter/flutter/blob/master/engine/src/flutter/lib/web_ui/lib/src/engine/text_editing/text_editing.dart#L1385-L1391

<video
src="https://github.com/user-attachments/assets/6168effd-49ff-4064-9876-50ab3bfae9ac"
/>

</details>

## Pre-launch Checklist

- [X] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [X] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [X] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [X] I signed the [CLA].
- [X] I listed at least one issue that this PR fixes in the description
above.
- [X] I updated/added relevant documentation (doc comments with `///`).
- [ ] 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-05-27 19:39:24 +00:00
Srujan Gaddam
973701688c
Set pause_isolates_on_start flag if --start-paused (#169392)
This enables breakpoint management for hot restart and hot reload.
--start-paused is passed by VS code.

Also fixes a small issue where we're not passing the isolate ID when hot
reloading. It doesn't matter what we pass as there's only one isolate,
but we should keep consistent and use the isolate ID that already
exists.

https://github.com/dart-lang/sdk/issues/60186

## 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.
2025-05-27 17:16:04 +00:00
engine-flutter-autoroll
fb806f510a
Roll Packages from af0b9a941dd3 to 6eebe72ca397 (24 revisions) (#169514)
af0b9a941d...6eebe72ca3

2025-05-27 github@benprice.ca [flutter_lints] Bump lints dependency to
6.0.0 and bump package to 6.0.0 (flutter/packages#9108)
2025-05-26 engine-flutter-autoroll@skia.org Roll Flutter from
60050a0b4d56 to 4372bfbc6c23 (6 revisions) (flutter/packages#9322)
2025-05-26 robert.odrowaz@leancode.pl [video_player_android] Add note
about Android platform views known issue (flutter/packages#9312)
2025-05-24 engine-flutter-autoroll@skia.org Roll Flutter from
85564cbba9e7 to 60050a0b4d56 (17 revisions) (flutter/packages#9318)
2025-05-23 43054281+camsim99@users.noreply.github.com
[camera_android_camerax] Implement `enableAudio` for video recording
(flutter/packages#9264)
2025-05-23 65381000+raju-muliyashiya@users.noreply.github.com
[video_player_android] isBuffering flag always return true after calling
seekTo method - fixed (flutter/packages#9198)
2025-05-23 stuartmorgan@google.com [camera,video_player] replace
onSurfaceDestroyed with onSurfaceCleanup (flutter/packages#9316)
2025-05-23 stuartmorgan@google.com [camera,video_player] Update Android
to 3.29 minimum (flutter/packages#9317)
2025-05-23 engine-flutter-autoroll@skia.org Roll Flutter from
33cdd8ef31dc to 85564cbba9e7 (39 revisions) (flutter/packages#9315)
2025-05-23 stuartmorgan@google.com Update repo for 3.32 stable
(flutter/packages#9311)
2025-05-23 robert.odrowaz@leancode.pl [camera_avfoundation] Correct
pigeon configuration output paths (flutter/packages#9313)
2025-05-23 stuartmorgan@google.com [process] Remove from the repository
(flutter/packages#9310)
2025-05-22 jessiewong401@gmail.com Ensure Example Packages Work on
Android API 36 (flutter/packages#9241)
2025-05-22 engine-flutter-autoroll@skia.org Roll Flutter (stable) from
c23637390482 to be698c48a675 (1274 revisions) (flutter/packages#9300)
2025-05-22 magder@google.com Remove CODEOWNER for generated iOS files
(flutter/packages#9272)
2025-05-22 52160996+FMorschel@users.noreply.github.com
[google_maps_flutter] Removes unnecessary parentheses
(flutter/packages#9273)
2025-05-21 magder@google.com Rebalance Android plugin CODEOWNERS
(flutter/packages#9298)
2025-05-21 engine-flutter-autoroll@skia.org Roll Flutter from
9a78af5eb067 to 33cdd8ef31dc (60 revisions) (flutter/packages#9305)
2025-05-21 stuartmorgan@google.com [ci] Update repository for 3.29
release (flutter/packages#9270)
2025-05-21 stuartmorgan@google.com Ignore .cxx/ directories
(flutter/packages#9268)
2025-05-21 stuartmorgan@google.com [video_player] Skip some integration
tests on web (flutter/packages#9302)
2025-05-21 10687576+bparrishMines@users.noreply.github.com
[webview_flutter] Adds support to respond to recoverable SSL certificate
errors (flutter/packages#9150)
2025-05-19 43054281+camsim99@users.noreply.github.com
[camera_android_camerax] Swap out `BroadcastReceiver` for
`OrientationEventListener` (flutter/packages#9261)
2025-05-19 54174311+marvin-kolja@users.noreply.github.com
[video_player_android] Fix incorrect dimensions swap
(flutter/packages#9199)

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-05-27 16:43:05 +00:00
engine-flutter-autoroll
184835f7d8
Roll Fuchsia Linux SDK from 5mpmPsuD8rpeiJizT... to nC9hLWjYVlChDTEPh... (#169498)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter
Please CC codefu@google.com,zra@google.com on the revert to ensure that
a human
is aware of the problem.

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-05-27 16:41:07 +00:00
zhongliugo
768932e972
Split hint from label and expose it via aria-description or aria-describedby (#169157)
**Summary**
This PR improves web accessibility in Flutter by separating hint from
label in the semantics engine and exposing them via ARIA attributes. The
hint is set using aria-description (or aria-describedby as a fallback
for browsers that do not support aria-description).

**Details**
Hint separation:
The hint is exposed via aria-description if supported, or via
aria-describedby with a hidden node as a fallback.
Browser compatibility:
Uses feature detection to choose between aria-description and
aria-describedby.
Test coverage:
Added/updated tests to verify correct ARIA attribute behavior and
fallback logic.

**How to verify**
All relevant tests pass (semantics_test.dart, semantics_text_test.dart).

**Motivation**
This change brings Flutter web closer to accessibility best practices
and ARIA standards, improving the experience for users of assistive
technologies.

**Before/After Change**
before: https://before-change-hint.web.app/
after: https://after-change-hint.web.app/ 
after(fallback to aria-describedby):
https://after-change-hint-fallback.web.app/

**Issues fixed**
https://github.com/flutter/flutter/issues/162140

**Note**
Some focus-related tests (e.g., incrementable sends focus events) are
failing, but these failures are also present on the main branch and are
unrelated to the ARIA label/hint changes in this PR.


## Pre-launch Checklist

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

---------

Co-authored-by: Mouad Debbar <mouad.debbar@gmail.com>
2025-05-27 15:50:18 +00:00
Alex Li
4e75d56bda
🐛 Normalize generated file paths for the l10n generator (#169467)
Multiple places use non-normalized file paths when generating the
localization files.

The PR normalizes file paths when generating the file list JSON file and
the dependency file.

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

## 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
2025-05-26 23:25:42 +00:00
engine-flutter-autoroll
8e76fb2946
Roll Dart SDK from d811152316e4 to 6aeb798bdbe2 (2 revisions) (#169478)
https://dart.googlesource.com/sdk.git/+log/d811152316e4..6aeb798bdbe2

2025-05-26 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-172.0.dev
2025-05-26 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-171.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,jonahwilliams@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-05-26 22:41:33 +00:00
Tong Mu
df5f865a6b
[Cupertino] Apply RSuperellipse to most Cupertino widgets (#167784)
This PR applies RSuperellipse to most Cupertino widgets. I got the list
by searching for `ClipRRect`, `drawRRect`, and `BoxDecoration` (with
`borderRadius`) through the package. They're replaced by
`ClipRSuperellipse`, `drawRSuperellipse`, and `ShapeDecoration`
respectively.

There are a few widgets that I didn't apply:
* `CupertinoTextField` as well as its related widget
`CupertinoSearchTextField`, because `CupertinoTextField` expects a
`BoxDecoration` argument. Migrating it is nontrivial and will take place
in a separate PR.
* `CupertinoTextSelectionToolbar`, because it seems complicated
(containing a lot of paths). I wonder if it's possible to replace the
clipPath with clipRRect/clipRSe for better performance.
* `CupertinoSwitch`. I suspect it's not an squircle since it tightly
contains a full circle.

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

## 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-05-26 21:55:10 +00:00
Ben Konyi
a6205c3a66
Roll package:dds to 5.0.2 (#169471)
Fixes https://github.com/flutter/flutter/issues/156793
2025-05-26 18:43:10 +00:00
Matan Lurey
151011f7b4
Use .flutter-plugins-dependencies for crash reporting. (#169319)
Closes https://github.com/flutter/flutter/issues/169318.
2025-05-26 18:13:29 +00:00
Matan Lurey
6d8184e21e
Remove now disabled code that would generate .flutter-plugins. (#169320)
As of https://github.com/flutter/flutter/pull/169283 it's impossible for
the `.flutter-plugins` file to exist outside of unit tests.

This removes the unit tests too :)
2025-05-26 18:13:03 +00:00
engine-flutter-autoroll
51b9d60a34
Roll Dart SDK from 7dab9bffe1f7 to d811152316e4 (1 revision) (#169473)
https://dart.googlesource.com/sdk.git/+log/7dab9bffe1f7..d811152316e4

2025-05-26 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-170.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,jonahwilliams@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-05-26 17:33:32 +00:00
munrocket
a9e9ff9eb0
Precise browser resizing with integration_test and driver (#160678)
Fixes #136109 P2
Related #148028 P1

Roadmap:
- [x] find why not working (described in #136109)
- [x] create new API with backward compatibility
(`--browser-dimension=393×852@3`)
- [x] fix edge cases
- [x] internal testing
- [x] add documentation (flutter drive -h)

This PR:
- Fixes Chrome bug from dart side
- Adds pixelRatio mobile emulation in web
- Adds new notation: 393,852 -> 393×852[@1]
- Leaves previous behavior as it was, so 393,852 will give wrong size
until Chrome will fix it. But you can use 393×852@1.

---------

Co-authored-by: Mouad Debbar <mdebbar@google.com>
2025-05-26 16:58:11 +00:00
Matan Lurey
36275e1e71
Add /coverage/ to .gitignore.tmp (#169387)
Closes https://github.com/flutter/flutter/issues/166909.

Made `/build/` consistent while I was here.
2025-05-26 16:55:08 +00:00
Matan Lurey
b7566a19ee
Make test output with encoded dart-defines=... human readable. (#169353)
Closes https://github.com/flutter/flutter/issues/169350.
2025-05-26 16:53:09 +00:00
Matan Lurey
107601f338
Use at most PROC~/2 tasks to transform assets. (#169386)
Towards https://github.com/flutter/flutter/issues/168629.

I could imagine plumbing a `--concurrency` flag down from `flutter
build` to give users more control.
2025-05-26 16:51:21 +00:00
Valentin Vignal
4f83e03136
Forward exit code from dart test to flutter test (#168604)
Fixes https://github.com/flutter/flutter/issues/100467

## 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-05-26 16:51:20 +00:00
Mikhail Novoseltsev
742141a8f3
Fix warning when building for macOS desktop (#165996)
<!--
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
-->

This PR resolves warning when building macOS app in environments with
multiple available destinations (i.e. arm Macs with Rosetta).

| | Debug | Release | Profile |
|---|---|---|---|
| **Before** | <img width="657" alt="image"
src="https://github.com/user-attachments/assets/5207f2cc-2785-4bef-8eb0-e9a5a7431c91"
/> | <img width="699" alt="image"
src="https://github.com/user-attachments/assets/31f38373-adf9-4797-982d-782569be0681"
/> | <img width="699" alt="image"
src="https://github.com/user-attachments/assets/be1432f9-0668-44b9-b75e-ae4a56c0ff6e"
/> |
| **After** | <img width="672" alt="image"
src="https://github.com/user-attachments/assets/62f3b37b-8461-4274-b9be-53df22bec82d"
/> | <img width="672" alt="image"
src="https://github.com/user-attachments/assets/7c0489e7-0f7f-4498-b9d2-6d566722a05a"
/> | <img width="672" alt="image"
src="https://github.com/user-attachments/assets/d0a3e065-3ae7-4d53-beb5-d2a96aa01aea"
/> |


For release/profile builds `generic/platform=macOS` was chosen because
these configurations are "fat" (includes all arches) so it is a
preferred way of building device-agnostic actions such as `xcodebuild
build`, as per `xcodebuild` documentation.

fixes #86590 

Also, kudos to @zhibisora. This PR is heavily inspired by
https://github.com/flutter/flutter/pull/148920. Although, I failed to
properly rebase it onto current master (you know, monorepo merge and
format changes).


## 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-05-26 14:58:08 +00:00