30387 Commits

Author SHA1 Message Date
Matan Lurey
e7a4ef0d8a
Only build and download Fuchsia artifacts on master (#168154)
Closes https://github.com/flutter/flutter/issues/168089.

/cc @zanderso
2025-05-01 19:06:32 +00:00
engine-flutter-autoroll
e2b220b683
Roll Skia from d945cbcbbb58 to aaf863936c1b (1 revision) (#168151)
https://skia.googlesource.com/skia.git/+log/d945cbcbbb58..aaf863936c1b

2025-05-01 nicolettep@google.com [graphite] Fix some
CanUseHardwareBlending logic

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 bungeman@google.com,jsimmons@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-05-01 17:07:08 +00:00
auto-submit[bot]
fe60a2b0b7
Reverts "Remove linux_fuchsia builds from release_build: "true". (#168094)" (#168146)
<!-- start_original_pr_link -->
Reverts: flutter/flutter#168094
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: matanlurey
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: I guess it is used.
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: matanlurey
<!-- end_original_pr_author -->

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

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

These builds are not required in the MQ/part of `beta` or `stable`
branches, and are not requested by the Flutter CLI.

Notably, this deletes the line instead of `release_build: "false"`,
because that is broken:
https://github.com/flutter/flutter/issues/168088.
<!-- end_revert_body -->

Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2025-05-01 13:33:26 +00:00
Matan Lurey
11c3067620
Remove release_build: "false" which is interpreted as true due to a recipes bug. (#168098)
Mitigates https://github.com/flutter/flutter/issues/168088.

The non-existence of `properties: release_build: "true"` is the same
thing as `false`.

I'll fix the recipe, but this is better for now.

/cc @sigmundch for FYI.
2025-05-01 05:20:39 +00:00
Matan Lurey
1a1d00516f
Remove linux_fuchsia builds from release_build: "true". (#168094)
Closes https://github.com/flutter/flutter/issues/168089.

These builds are not required in the MQ/part of `beta` or `stable`
branches, and are not requested by the Flutter CLI.

Notably, this deletes the line instead of `release_build: "false"`,
because that is broken:
https://github.com/flutter/flutter/issues/168088.
2025-05-01 04:42:57 +00:00
engine-flutter-autoroll
259e8a432b
Roll Skia from 8905c603ba16 to be4cf4d010f7 (11 revisions) (#168115)
https://skia.googlesource.com/skia.git/+log/8905c603ba16..be4cf4d010f7

2025-04-30 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
skottie-base from 8262f8d1506b to 375561920728
2025-04-30 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
debugger-app-base from a5a06e3903f7 to 7f477239b384
2025-04-30 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
jsfiddle-base from 6047456f77fc to 552d94229577
2025-04-30 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
shaders-base from 800235d48433 to 3a63c1930823
2025-04-30
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-04-30 nscobie@google.com Add more failure logging to Ganesh's
SkSurfaces::WrapAndroidHardwareBuffer
2025-04-30 nicolettep@google.com [graphite] Consolidate determination of
final blending method
2025-04-30 syoussefi@google.com Load Vulkan dynamic state entry points
2025-04-30
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-04-30 borenet@google.com [infra] Update recipe dependencies
2025-04-30 jamesgk@google.com [graphite] Lift coord normalization shader
expressions

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 bungeman@google.com,jsimmons@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-05-01 04:28:36 +00:00
Chris Bracken
4c5d0de983
macOS: Update minimum macOS version to 10.15 (#168101)
This updates the Flutter minimum macOS version from 10.14 to 10.15 adds
a migrator for existing apps, and updates our own examples, tests, and
benchmark apps to 10.15. A follow-up patch will drop macOS 10.15
`@available` checks in the embedder.

This is required in order to use Swift in the embedder and not need to
bundle the Swift runtime libs in every app that uses Flutter. Swift
stable ABI was introduced in macOS 10.14.4.

As of March 2025, usage of macOS 10.14 is approximately 1.2~1.8%
depending on source of statistics, see example public usage data here:
https://gs.statcounter.com/macos-version-market-share/desktop/worldwide

This patch makes the following changes:
1. Updates mac_deployment_target from 12.0 to 13.0.
2. Changes templates to `MACOSX_DEPLOYMENT_TARGET`, `MinimumOSVersion`,
and Podfile `platform :osx` to 10.15.
3. Adds migrator for Podfile part to migrate `platform :osx, '10.14'` ->
`platform :osx, '10.15'`
4. Compiles with `-mmacosx-version-min=10.15`
5. Runs the migrator on all example apps and integration tests.
6. Updates examples, tests to macOS 10.15 deployment target

Issue: https://github.com/flutter/flutter/issues/167745

## 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-01 04:02:25 +00:00
chunhtai
b47c298320
Removes semantics role search box (#167290)
<!--
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
-->

it is replaced by textfield with SemanticsInputType.search

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-30 23:53:20 +00:00
engine-flutter-autoroll
c04202faf6
Roll Fuchsia Linux SDK from RlQprtM7XbYtyrgDz... to uRZ63_whHk5Gt6MSM... (#168060)
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-04-30 18:46:55 +00:00
Matej Knopp
fffe394cdd
[Linux] Merge UI And Platform thread (#162671)
Disabled by default, to enable use
`fl_dart_project_get_ui_thread_policy`:
```cpp
  g_autoptr(FlDartProject) project = fl_dart_project_new();
  fl_dart_project_set_ui_thread_policy(project, FL_UI_THREAD_POLICY_RUN_ON_PLATFORM_THREAD);
```

With this PR, the UI isolate now runs on platform thread, which allows
for synchronous calls to Gtk, as well as synchronous calls from Gtk to
Flutter. For example something like this is now possible:

```dart
typedef GtkWindow = Pointer<Void>;

void setWindowPosition() {
  final library = DynamicLibrary.executable();
  // Hypothetical function to get pointer to GtkWindow
  final getMainWindow = library
      .lookupFunction<GtkWindow Function(), GtkWindow Function()>(
        'get_main_window',
      );
  final gtkWindowResize = library.lookupFunction<
    Void Function(GtkWindow, Int32, Int32),
    void Function(GtkWindow, int, int)
  >('gtk_window_resize');
  final window = getMainWindow();
  gtkWindowResize(window, 200, 200);
}
```

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-30 08:53:09 +00:00
Loïc Sharma
3cc51e90ca
[Windows] Improve et's error if gclient has never been run (#167956)
Mirrors et's shell error here:


69da944f9e/engine/src/flutter/bin/et (L55-L58)
2025-04-30 03:14:16 +00:00
Jason Simmons
83a94d9055
Declare both Mac and iOS build arguments in apple_sdk.gni (#168025)
Without this the Flutter GN wrapper script warns about undeclared
variables.
2025-04-30 03:14:16 +00:00
engine-flutter-autoroll
3109beb68d
Roll Skia from 25bba45c7b25 to 799cfd39b501 (6 revisions) (#168023)
https://skia.googlesource.com/skia.git/+log/25bba45c7b25..799cfd39b501

2025-04-29 nicolettep@google.com [graphite] Pass in correct size value
to shader data encoding
2025-04-29 jmbetancourt@google.com [skcapture] add missing capture
canvas destructor implementation
2025-04-29 robertphillips@google.com [graphite] Add ability to rein in
gradient Precompilation over-generation
2025-04-29 bungeman@google.com Re-train Chromebook jobs
2025-04-29 bungeman@google.com Fix chromebook.py build args
2025-04-29 michaelludwig@google.com [graphite] Clamp quantized mask blur
values to 1/32

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-04-30 00:59:40 +00:00
sigmundch
f88cde1e01
[dyn_modules] simplify CI now that dart2bytecode is prebuilt by default (#167851)
This makes a couple changes to the ddm bots:

* removes the host configuration: now the DartSDK has dart2bytecode
included by default, so we no longer need to build a custom host. None
of the ddm flags were necessary on the host-build except for that tool.
* removes the `--no-prebuilt-dart-sdk` from the target builds: turns out
this was not needed because all artifacts that require building with
`--dart-dynamic-modules` were not part of the dart sdk, but built by the
flutter bot already. That includes the runtime (libflutter.so) and
gen_snapshot.

Note: the change to the Dart SDK has landed, but not rolled yet. It
should be OK, however, to land the two changes out of order.

b/393719931

cc @zanderso - FYI
cc @jiahaog - note this PR will require an internal change to fetch the
bytecode compiler from the default host going forward

## 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].
- [ ] I signed the [CLA].
- [X] I listed at least one issue that this PR fixes in the description
above.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

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

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

Co-authored-by: Sigmund Cherem < 2049220+sigmundch@users.noreply.github.com>
2025-04-29 23:43:56 +00:00
Jason Simmons
3131d5a826
Roll Skia to 25bba45c7b25 (#168012)
Requires some updates to golden images that are now encoded differently
due to changes in Skia's PNG codec.

See
https://skia.googlesource.com/skia/+/25bba45c7b253ed3a735ae6c6d32173fbf5cc9e7
2025-04-29 21:37:26 +00:00
Camille Simon
6c15c4587f
[Android] Implement setting sensitive content, take 2 (#167815)
> [!NOTE]  
> This PR lands https://github.com/flutter/flutter/pull/158473 (closed
due to confusing git-isms). Please see that PR for all comments and
discussion on landing this feature.

### Overview
Implements setting content sensitivity on Android via a new widget
called `SensitiveContent` that currently will only function on Android.

### How it's implemented
There are three different content sensitivity levels:
[`autoSensitive`](https://developer.android.com/reference/android/view/View#CONTENT_SENSITIVITY_AUTO),
[`sensitive`](https://developer.android.com/reference/android/view/View#CONTENT_SENSITIVITY_SENSITIVE),
[`notSensitive`](https://developer.android.com/reference/android/view/View#CONTENT_SENSITIVITY_NOT_SENSITIVE).
All except `autoSensitive` behave as their Android counterpart level
behaves (see links on the levels); for Flutter, `autoSensitive` will
behave the same as `notSensitive` though it is implemented as if it
works (see https://github.com/flutter/flutter/issues/160879 for more
details.

In any given Flutter view, each `SensitiveContent` widget sets a content
sensitivity level and there may be multiple `SensitiveContent` widgets
in the widget tree at a time, but only the most severe content
sensitivity level in the tree will be maintained in order to ensure
secure content remains obscured during screen projection. This means
that even widgets that are not visible may still impact the overall
content sensitivity of the entire Flutter view (see
https://github.com/flutter/flutter/issues/160051 for more details).

Under the hood, the implementation uses method channels. Theoretically,
this could cause a delay in setting the content sensitivity level and a
Flutter view being obscured during screen projection on time, so we will
investigate using JNIgen in the future (see
https://github.com/flutter/flutter/issues/160050 for more details). Over
the method channel, the framework will send a Flutter view ID and
content sensitivity level to the engine to set the expected content
sensitivity level for the view.

### Timeline

#### Required for feature shipping
- Land this PR with the method channel implementation of content
sensitivity.

#### Short-term follow up tasks
- Ensure every `FlutterView` has a unique ID for the native
`SensitiveContentPlugin` to identify them by:
https://github.com/flutter/flutter/pull/162685
- Add `SensitiveContent` widget to relevant Flutter widgets:
https://github.com/flutter/flutter/issues/167302

#### Long-term follow up tasks
- Convert this PR to use JNIgen:
https://github.com/flutter/flutter/issues/160050. Verify no frames are
dropped, revealing sensitive content during media projection:
https://github.com/flutter/flutter/issues/164820.

#### Stretch goals
- Make the `SensitiveContent` widget sensitive to the visibility of
child widgets: https://github.com/flutter/flutter/issues/160051
- Implement `autoSensitivity` mode:
https://github.com/flutter/flutter/issues/160879
- Investigate backwards compatibility for APIs < 35:
https://github.com/flutter/flutter/issues/159208

### Open questions
- ~Is it okay to hard-code the `FlutterActivity` and `FlutterFragment`
view IDs? Does this impact add-to-app in any way? I assume we would need
extenders of those classes to use a different view ID than the hardcoded
one.~ Approach not used.
- ~Should we expose `autoSensitive` for now? If so, what behavior should
it have?~ Exposing `autoSensitive` as if it works.

### One way to test this PR (rough steps)
1. Create a Flutter app that has some number of `SensitiveContent`
widgets.
9. Run the app on an emulator/device that runs API 35 and has the Google
meets app downloaded.
10. Start a Google meets meeting and screen share (works with full
screen and single app mode).
11. Join the Google meets meeting from another device and witness a
blacked out screen if content has been marked sensitive.

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-29 20:58:29 +00:00
Narek Malkhasyan
9eddcb7ba4
Deprecated methods that call setStatusBarColor, setNavigationBarColor, setNavigationBarDividerColor (#165737)
Added @deprecated annotation and explanation to methods that use these
methods: setStatusBarColor, setNavigationBarColor,
setNavigationBarDividerColor

This PR partially addresses #165327

---------

Co-authored-by: Reid Baker <1063596+reidbaker@users.noreply.github.com>
Co-authored-by: Camille Simon <43054281+camsim99@users.noreply.github.com>
Co-authored-by: Camille Simon <camillesimon@google.com>
2025-04-29 19:13:23 +00:00
engine-flutter-autoroll
ae80d692ee
Roll Fuchsia Linux SDK from dtMOzWwcSUe3z6-1c... to RlQprtM7XbYtyrgDz... (#167981)
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-04-29 09:27:19 +00:00
Chinmay Garde
f9f6953ef7
Revert "[Impeller] Make incremental builds faster when tinkering on the compiler." (#167965)
Reverts flutter/flutter#167492

Makes things slower if the sources are newer than the outputs.
2025-04-29 04:25:30 +00:00
Chris Bracken
b0e52e51f7
Add ConnectionCollection and Swift test (#167962)
This rewrites the ConnectionCollection C++ class and its test to Swift.
This ensures we're successfully able to write/run XCTests written in
Swift.

It also adds new tests for ConnectionCollection:
* Verifies connection IDs are > 0.
* Verifies connection IDs are unique.
* Verifies the IDs of error connections are as specified.

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-29 03:07:22 +00:00
Jonah Williams
e7e4fa56cc
[Impeller] report application version info as 2.0 (#167961)
Update the reported engine so we can distinguish 3.27 engines from
(eventually) newer engines.
2025-04-29 00:52:26 +00:00
engine-flutter-autoroll
b261c51609
Roll Skia from f64ea333611d to 33e56395c03a (4 revisions) (#167963)
https://skia.googlesource.com/skia.git/+log/f64ea333611d..33e56395c03a

2025-04-28 robertphillips@google.com [graphite] Add ability to reduce
Image and YUVImage Precompile combinations
2025-04-28 jmbetancourt@google.com [skcapture] add a capturing canvas to
enable dynamic skia-wide canvas recordings
2025-04-28 nscobie@google.com Move SkGainmapShader::Make overload
definition out of header
2025-04-28 nscobie@google.com Rename SkEmbossMaskFilter::EmbossLight
back to SkEmbossMaskFilter::Light

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-04-28 23:29:15 +00:00
Chris Bracken
c5deaa2747
iOS: extract config_ios_test (#167958)
Creates a config for iOS test targets, which includes framework,
library, and swiftmodule paths for for XCTest and other SDK testing
libraries.

This patch:
* Merges `config_ios` and `config_swift`. `config_swift` was equivalent
to `config_ios` but just with additional `swiftargs`. Since `swiftargs`
is ignored in Obj-C targets, we can just merge the two for simplicity.
* Adds a `config_ios_test` which adds:
* `$ios_platform_path/Developer/Library/Frameworks` to the framework
search path, used for XCTest.framework in Obj-C/Swift builds.
* `$ios_platform_path/Developer/usr/lib` to the include path, use for
XCTest.swiftmodule in Swift builds.
* `$ios_platform_path/Developer/usr/lib` to the lib dirs used by the
linker when building Swift code.

Note that we manually pass the `-F` flag via `cflags` (Obj-C) and
`swiftflags` (Swift) for the framework search path _as well as_ via the
more general `framework_dirs` param. This is because our macOS/iOS
compiler toolchain doesn't correctly translate `framework_dirs` into the
compiler invocation for either Obj-C or Swift builds, _but_ it's
correctly passed to linker invocations in our toolchain.

As a followup, I'll update our toolchain to translate the contents of
`framework_dirs` to the appropriate `-F` flags passed to the compilers.

Issue: https://github.com/flutter/flutter/issues/167592

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-28 23:03:15 +00:00
Chris Bracken
34f8df3c84
iOS,macOS: Merge iOS, macOS config (#167945)
Merges iOS and macOS configuration and SDK finder scripts:

* //build/mac/find_sdk.py and //build/ios/config/ios_sdk.py merge to
  //build/mac/apple_sdk.py.

* //build/config/ios/ios_sdk.gni and //build/config/mac/mac_sdk.gni
  merge to //build/config/apple/apple_sdk.gni. gn args for macOS are
  available on all builds with `host_os == "mac"`. gn args for iOS are
  available on builds where `is_ios` is true (in place of the existing
  conditional import logic). Merging the two allows us to check all
  Apple SDK-related variable for anything missing and run `apple_sdk.py`
  a maximum of once across all Apple platforms.

* Adds `Platforms` directory to `//flutter/prebuilts`, which contains
  Apple platform symlinks for `iPhoneOS`, `iPhoneSimulator`, `MacOSX`.
  Adds `ios_device_platform_path`, `ios_simulator_platform_path`,
  `mac_platform_path` gn args to hold these paths. Adds logic to
  `//flutter/tools/gn` to locate these paths and prepopulate these args
  from them to avoid running the script as part of the build.

  These are used to link to Swift core libs for each platform where
  necessary, as well as (for tests) test frameworks and `.swiftmodule`s
  like XCTest.framework.

* Eliminates `Library/Frameworks` symlink from `//flutter/prebuilts`.
  This path is a subdirectory of each of the platform directories above.
  It was used to populate `platform_frameworks_path` in
  `//flutter/shell/platform/darwin/ios/BUILD.gn` using sort of sketchy
  relative-path logic.

  Further, the existing logic for greating the link was buggy for runs
  of `ios_sdk.py` where the `--sdk` option was not specified (i.e. all
  runs where `--as-gclient-hook` were specified). Without this option,
  we cycle through both `iphoneos` and `iphonesimulator` SDKs, and since
  this symlink was written on each iteration through the `SDKs` list, it
  was always linked to the `Library/Frameworks` directory for the last
  item in the list: `iPhoneSimulator.platform`. The platform arg for the
  current build is now resolved to `ios_platform_path` from which we
  resolve `$ios_platform_path/Developer/Library/Frameworks`.

A follow-up patch will refactor the iOS build file to extract an iOS
test config that eliminates some of the unnecessary duplication of
cc_flags, swiftflags, and ld_flags across targets.

Issue: https://github.com/flutter/flutter/issues/167592

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-28 21:03:59 +00:00
engine-flutter-autoroll
69da944f9e
Roll Skia from a8e9b6aa2b40 to f64ea333611d (3 revisions) (#167947)
https://skia.googlesource.com/skia.git/+log/a8e9b6aa2b40..f64ea333611d

2025-04-28 jvanverth@google.com Reland "[graphite] Add allocation checks
to BasicDrawAtlas test."
2025-04-28 jvanverth@google.com [graphite] Add command line options to
run tools with no MSAA
2025-04-28 ccameron@chromium.org SkGainmapShader: Use
SkShader::makeWithWorkingColorSpace

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-04-28 19:26:01 +00:00
Chinmay Garde
c37156e5cf
Forward mnemonics for compiled actions. (#167511)
Previously, mnemonics specified in templates that used compiled_action
and compiled_action_foreach would not be forwarded. This made actions
like ImpellerC invocation unable to tag themselves. As Ninja builds
progressed, only a mysterious ACTION label would be emitted for all
ImpellerC edges. Now, the edges tag themselves.
2025-04-28 18:19:20 +00:00
Jason Simmons
3fad2e2616
Roll ICU to c9fb4b3a6fb5 (#167691) 2025-04-28 18:14:57 +00:00
gaaclarke
bee65f3a4f
Reduces the compile size of Pipelines and ContentContext (#167671)
This reduces the size of ContentContext by introducing generic
superclass versions of `RenderPipelineHandle` and `Variants` which
allows the compiler to put most of the .text in the superclasses.

testing: no new functionality, refactor

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-28 17:56:03 +00:00
Chris Bracken
2ca6284ce3
iOS,macOS: delete run_command_with_retry (#167908)
`//build/mac/find_sdk.py` and `//build/config/ios/ios_sdk.py` contain a
copy-pasted function to run a given command with a specified number of
retries and a timeout. This code was added in
https://github.com/flutter/buildroot/pull/876 in response to timeouts on
the mac bots in relation to
https://github.com/flutter/flutter/issues/157636, and is no longer
necessary.

This is a pre-factoring patch to reduce the size of the upcoming merge
of iOS and macOS SDK config/resolving infrastructure.

No tests, since this is a refactor with no change in functionality.

Issue: https://github.com/flutter/flutter/issues/167592

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-28 17:47:15 +00:00
Yegor
c790bb111a
[web] denull some of text_editing.dart (#166595)
According to
485d6b8ae3/packages/flutter/lib/src/services/text_input.dart (L1086),
the framework never sends null values for any of the fields. So there's
no need for the engine to do all the null handling.

---------

Co-authored-by: Mouad Debbar <mouad.debbar@gmail.com>
2025-04-28 16:25:03 +00:00
Matej Knopp
aadc23a804
Reland "[Windows] Enable merged platform and UI thread by default" (#167472)
This relands https://github.com/flutter/flutter/pull/163726 without
changes.

The likely reason for flakiness was
https://github.com/flutter/flutter/pull/166918
(https://github.com/flutter/flutter/issues/167418#issuecomment-2816376678).

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

*Replace this paragraph with a description of what this PR is changing
or adding, and why. Consider including before/after screenshots.*

*List which issues are fixed by this PR. You must list at least one
issue. An issue is not required if the PR fixes something trivial like a
typo.*

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

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-28 14:14:17 +00:00
engine-flutter-autoroll
5f93d1a874
Roll Fuchsia Linux SDK from QtmaCk4UgT3_zCY8t... to dtMOzWwcSUe3z6-1c... (#167912)
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-04-28 07:12:27 +00:00
Chris Bracken
dba788a63b
iOS: remove unused ios_sdk.gni import (#167909)
Neither `use_ios_simulator` nor any other variable from ios_sdk.gni is
used in //build/toolchain/clang.gni.

This is a pre-factoring patch to reduce the size of the upcoming merge
of iOS and macOS SDK config/resolving infrastructure.

Issue: https://github.com/flutter/flutter/issues/167592

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-28 06:22:18 +00:00
Chris Bracken
45e7de58d0
macOS: remove unused mac_sdk_min (#167907)
This variable is no longer used in //build/mac/find_sdk.py or in our
build. It was removed in flutter/buildroot#912. Previously, we worked
out the SDK path from a list of available SDKs, and used mac_sdk_min as
a filter. We now use `xcrun --sdk macosx --show-sdk-path` to get the SDK
path and no longer need this variable.

This is a pre-factoring patch to reduce the size of the upcoming merge
of iOS and macOS SDK config/resolving infrastructure.

No test changes since this is dead code elimination.

Issue: https://github.com/flutter/flutter/issues/167592

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-28 04:19:36 +00:00
Chris Bracken
7895450c0b
iOS: Re-enable iOS unittests (#167893)
Re-enables iOS unittests, which were inadvertently disabled as part of
#167530.

This extracts out `enable_ios_unittests` for readability/re-usability
across the build system, and better documents `enable_unittests` as
specifically being for platform-portable unit tests that can be run on
general-purpose operating systems such as macOS, Fuchsia, Linux, but not
specific target OSes such as iOS/Android that require executables to be
built against platform SDKs as installable apps.

Issue: https://github.com/flutter/flutter/issues/144791

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-28 04:13:43 +00:00
engine-flutter-autoroll
1e5926ab93
Roll Dart SDK from 340ee0bc50e2 to 8fe61b2d428b (1 revision) (#167905)
https://dart.googlesource.com/sdk.git/+log/340ee0bc50e2..8fe61b2d428b

2025-04-28 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-63.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-04-28 02:53:26 +00:00
engine-flutter-autoroll
cabb97bf7e
Roll Dart SDK from 23d165839a7e to 340ee0bc50e2 (1 revision) (#167891)
https://dart.googlesource.com/sdk.git/+log/23d165839a7e..340ee0bc50e2

2025-04-27 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-62.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-04-27 11:29:28 +00:00
engine-flutter-autoroll
983e43b521
Roll Fuchsia Linux SDK from caltX4YRjHb_6V5Rw... to QtmaCk4UgT3_zCY8t... (#167886)
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-04-27 04:13:35 +00:00
Chris Bracken
769d6d41b8
Support Swift in the iOS embedder (#167530)
Adds a `swift` tool to the gn mac toolchain and wires up support for
Swift `source_set` targets. Ports `FlutterUIPressProxy` to Swift.

`gn` toolchain modifications include:
* Removes `//flutter/third_party/libcxx/include` and
`//flutter/third_party/libcxxabi/include` from the default
`include_dirs` on all `source_set` targets, and instead adds them via
`cflags` and `cflags_cc` so they continue to be picked up by C, C++,
Obj-C, Obj-C++ targets. Flutter's custom libc++ library headers should
be picked up by C, C++, Objective-C, and Objective-C++ targets, but not
Swift targets. Swift code does not use libc++ directly, but many Apple
core libraries such as Foundation.framework are implemented in
Objective-C/Objective-C++ and directly or indirectly rely on Apple's
libc++ implementation in System.framework. Because of this, and because
Swift compiles use Clang modules, we should ensure the correct (Apple)
libc++ is picked up from Swift targets by ensuring our own libc++ is
not.
* Adds a default empty list for `swiftflags` to `source_set` targets.
This list is used by for Swift `source_set` targets by the `swift` tool
in the gn toolchain.
* Adds a `//build/config/ios:compiler` config to
`engine/src/build/config/ios/BUILD.gn`. This sets default `swiftflags`
for iOS targets. This attribute is (only) used by the new `swift` tool
in the toolchain.
* Adds `-g` to `swiftflags` for debug (unopt) builds in
`engine/src/build/config/compiler/BUILD.gn`.
* Adds a `swift` tool to the gn toolchain that invokes `swiftc.py` to
perform compilation and generate a bridging header. This tool is invoked
automatically by gn for Swift `source_set` targets.
* Adds `//build/toolchain/apple/swiftc.py`, a wrapper script around
`swiftc` in Xcode's Swift toolchain. This script ensures builds are
invoked hermetically using a new build cache directory for the emitted
swiftmodule, precompiled header, and bridging header, for each compile.
The outputs are then copied into the gn output directory. Also adds
supporting script `//build/toolchain/apple/get_tool_mtime.py` and data
`//build/toolchain/apple/swift_const_gather_protocols.json`, both used
by `swiftc.py`.
* Adds a `cxx_module` tool to the gn toolchain that supports clang
module-based compiles. This is used for libc++ transitively via
System.framework and others that rely on it.

`gn` variable modifications include:
* Adds `apple_host_toolchain_path` variable in
`engine/src/build/config/apple/apple_sdk.gni`. This is set using
`//build/mac/find_sdk.py` to the path of Xcode's
`XcodeDefault.xctoolchain`. This is where Xcode's `swiftc` tool and some
Swift libraries are located. This will be used to create a symlink in
the `//flutter/prebuilts/SDKs` directory to locate Swift tooling during
builds.
* Updates `enging/src/tools/gn` to pre-populate that path as we do with
other Xcode SDK path symlinks, to improve performance.
* Adds `ios_swift_lib_paths` in
`engine/src/build/config/ios/ios_sdk.gni` which holds the path of Swift
shared libraries for either iOS physical device or simulator targets.
This is within the appropriate `iphone` or `iphonesimulator` SDK
directory within Xcode.

`verify_exported.dart` changes:
* Allow exported symbols that match regexp
`^_\$s\d+InternalFlutterSwift`. To allow Swift symbols to be exported in
an Objective-C bridging header, they must be `public` or `open`. We only
ever use these types internally within the framework and never publish
these types in a public header. Like `_InternalFlutter` Obj-C symbols,
we allow `InternalFlutterSwift` symbols, as they are clearly marked as
internal and an end user would need to reverse engineer out their own
header to use them.
* Allow Obj-C symbols in the `(__DATA,__data)` and
`(__DATA_CONST,__const)` in addition to the existing Mach-O sections, so
long as it matches the existing criteria.

Finally, this patch adds Swift code to the embedder and embedder tests
as proof of concept and to prevent regressions. This ports
`FlutterUIPressProxy` and its subclass `FakeUIPressProxy` to Swift in
order to verify both:
* Objective-C imports of Swift via a bridging header
* Swift imports of Swift via a bridging header

Issue: https://github.com/flutter/flutter/issues/144791

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-26 18:59:22 +00:00
engine-flutter-autoroll
2a350ab36c
Roll Dart SDK from bddb7f44a538 to 23d165839a7e (1 revision) (#167883)
https://dart.googlesource.com/sdk.git/+log/bddb7f44a538..23d165839a7e

2025-04-26 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-61.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-04-26 18:47:28 +00:00
engine-flutter-autoroll
76c59bc9cd
Roll Dart SDK from dc6ad1866ded to bddb7f44a538 (3 revisions) (#167867)
https://dart.googlesource.com/sdk.git/+log/dc6ad1866ded..bddb7f44a538

2025-04-26 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-60.0.dev
2025-04-26 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-59.0.dev
2025-04-25 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-58.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-04-26 06:46:29 +00:00
engine-flutter-autoroll
f092e06e2d
Roll Skia from 1161451d903b to 50ed51d9e529 (2 revisions) (#167865)
https://skia.googlesource.com/skia.git/+log/1161451d903b..50ed51d9e529

2025-04-25 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from ac1b0b870946 to 299f5f19d010 (4 revisions)
2025-04-25 kjlubick@google.com Enable C++20 for some Bazel builds
(skslc)

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-04-26 02:50:37 +00:00
engine-flutter-autoroll
def562a07e
Roll Fuchsia Linux SDK from Kf_RtNWkgzeuJbZo2... to caltX4YRjHb_6V5Rw... (#167862)
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-04-26 02:00:19 +00:00
engine-flutter-autoroll
a6b1fd2e57
Roll Dart SDK from 2790fef88d68 to dc6ad1866ded (2 revisions) (#167852)
https://dart.googlesource.com/sdk.git/+log/2790fef88d68..dc6ad1866ded

2025-04-25 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-57.0.dev
2025-04-25 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-56.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-04-25 22:24:32 +00:00
Chris Bracken
1cc4d32992
iOS: Drop iOS 13.0 @available checks (#167833)
After migrating our iOS deployment target to 13.0 in #167737, these
checks are no longer necessary.

Issue: https://github.com/flutter/flutter/issues/167735

## Pre-launch Checklist

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

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

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-25 21:39:53 +00:00
engine-flutter-autoroll
0f1fb96211
Roll Skia from de42a0c4337b to 1161451d903b (2 revisions) (#167844)
https://skia.googlesource.com/skia.git/+log/de42a0c4337b..1161451d903b

2025-04-25 danieldilan@google.com Allow mask filters to effect shading
properties for autolayer
2025-04-25 borenet@google.com [infra] Update OS dimension for Windows
GCE VMs

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

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

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

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
2025-04-25 21:38:01 +00:00
Jim Graham
e7e19fb5bd
Impeller will stroke paths directly from the original path via iteration (#167422)
Currently stroking paths in Impeller goes through a few steps:

- [Once per path object, if reused] If necessary, convert a source Skia
path to an Impeller path
- Ask the Impeller path object to create a polyline, with only line
segments each potentially marked as "coming from a curve"
- Widen the polyline treating curves specially
- render the widened vertex list

This PR attempts to streamline that process by iterating the original
curve and widening the strokes from that. It will require no conversion
of the path from SkPath to impeller::Path (if it was created as an
SkPath as is done for all ui.Path objects). It also avoids the
intermediate polyline stage. It will also produce fewer outline vertices
since it attempts to recognize which vertices are produced by the prior
and future line segments and avoid duplicating them.
2025-04-25 18:18:09 +00:00
Jonah Williams
c0c12a759e
[Impeller] reland: defer impeller context initialization onto the raster thread. (#167765)
Attempt to speed up vulkan startup by ensuring vulkan driver
initialization happens on raster thread. Prev. we immediately
initialized the impeller::Context, unfortunately setting up the vulkan
context can take upwards of 100ms. This time is running on the platform
thread and blocking startup.

Instead, I attempt to hide/defer as much as possible what backend is
being used - this requires us to access the impeller context via a
shared_future in some cases instead of immediately knowing it is valid.
2025-04-25 18:01:19 +00:00
Matan Lurey
5da19ccfbc
Move backfill: "false" out of properties, make it a boolean. (#167820)
Towards https://github.com/flutter/flutter/issues/167755.

Cocoon supports both formats at the moment, so this a NOP.
2025-04-25 17:26:07 +00:00
zhongliugo
f01be78706
web: Use aria-current as fallback for aria-selected (#167672)
<!--
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
-->

Use aria-current as fallback for aria-selected.

Please check the Proposal section in the issue #167147. 

after the change demo:
https://aria-selected-04172025.web.app/
https://aria-current-04222025.web.app/

issue to fix:  #167147 


## 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].
- [ ] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

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

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