29204 Commits

Author SHA1 Message Date
gaaclarke
d7182e6d40 Fixes crash in testTrackpadGesturesAreSentToFramework (flutter/engine#55990)
fixes https://github.com/flutter/flutter/issues/157205

This crashed because ocmock was storing references to rvalues for its
mocked arguments.

## 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] and the [C++,
Objective-C, Java style guides].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [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/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2024-10-23 10:11:35 -07:00
Jonah Williams
20528e2550 [display_list] grow display list backing store by power of two. (flutter/engine#56004)
Fixes https://github.com/flutter/flutter/issues/157108

Right now the DL is always growing by a minimum 4096 bytes at a time. On applications with large display lists, this can lead to hundreds of reallocations as the display list is build, as long as each draw op is small. For example, the framework benchmark long picture scrolling draws many lines, each of which is a pretty small op.

Update the code so that we grow by doubling, with a minimum increment of ~16K
2024-10-23 16:10:06 +00:00
skia-flutter-autoroll
b4e95e619a Roll Fuchsia Linux SDK from xPbin_33tT-_omeQT... to NxrFCTty8wV4-6Cpl... (flutter/engine#56056)
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-engine
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
2024-10-23 14:07:22 +00:00
skia-flutter-autoroll
f309742a72 Roll Dart SDK from 20470aaa17be to 2a4b728f6a03 (3 revisions) (flutter/engine#56055)
https://dart.googlesource.com/sdk.git/+log/20470aaa17be..2a4b728f6a03

2024-10-23 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-57.0.dev
2024-10-23 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-56.0.dev
2024-10-23 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-55.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-engine
Please CC codefu@google.com,dart-vm-team@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: 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
2024-10-23 12:57:47 +00:00
Robert Ancell
762302a69a Move get_keyboard_state from FlKeyboardViewDelegate to FlKeyboardManager. (flutter/engine#56021)
Like the other associated changes, I've added
fl_keyboard_manager_set_get_get_pressed_state_handler for now to keep
the tests working.
2024-10-23 23:05:21 +13:00
Robert Ancell
bb8679e23f Move send_key_event from FlKeyboardViewDelegate to FlKeyboardManager. (flutter/engine#56020)
Ideally the tests would mock FlEngine, but I wasn't able to get it
working so I've added fl_keyboard_manager_set_send_key_event_handler for
now.
2024-10-23 22:05:09 +13:00
Brandon DeRosier
026062f08b [Flutter GPU] Fix assert failure in createDeviceBufferWithCopy. (flutter/engine#56039)
Resolves https://github.com/flutter/flutter/issues/157336

`DartByteData` gets raw pointers into the Dart heap via `Dart_TypedDataAcquireData`. So it must be destructed before `AssociateWithDartWrapper` is called, which mutates the heap.

Re-enables failing test for Linux unopt.
2024-10-23 05:08:03 +00:00
skia-flutter-autoroll
1fbd217c0e Roll Dart SDK from 8de85635d731 to 20470aaa17be (4 revisions) (flutter/engine#56038)
https://dart.googlesource.com/sdk.git/+log/8de85635d731..20470aaa17be

2024-10-22 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.7.0-54.0.dev
2024-10-22 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.7.0-53.0.dev
2024-10-22 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.7.0-52.0.dev
2024-10-22 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.7.0-51.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-engine
Please CC codefu@google.com,dart-vm-team@google.com on the revert to
ensure that a human
is aware of the problem.

To file a bug in Flutter Engine:
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
2024-10-22 16:21:42 -07:00
David Iglesias
95ae8d46b5 [web] Remove old futureToPromise. (flutter/engine#55847)
This PR removes the old `futureToPromise` implementation (which was barely used), and replaces it by a more standard js_interop approach.

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-22 23:09:17 +00:00
Loïc Sharma
c0beb6bb71 [dart:ui] Improve Clip's docs (flutter/engine#55978) 2024-10-22 22:35:12 +00:00
Jonah Williams
ba956aac92 [Impeller] flush thread local resources during toImage/toImageSync. (flutter/engine#56037)
I suspect not flushing is related to occassionaly timeouts on flutter tester --enable impelller. because the flutter_tester never actually pumps a frame, it won't naturally flush these resources.

It shouldn't be harmful to otherwise flush.
2024-10-22 22:27:02 +00:00
K. P. Krasiński-Sroka
10f2a2ccd1 [canvaskit] Makes access to CkSurface null-safer (flutter/engine#54895)
Handles exceptions coming from `MakeSWCanvasSurface` and `MakeOffscreenSWCanvasSurface`.

Also makes surface size a member of `CkSurface` to make sure that it's always in sync with `surface`.

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-22 22:27:00 +00:00
Jonah Williams
7ebba40ad4 [Impeller] refactor clip rendering. (flutter/engine#56030)
Now that we don't have the entity pass structure, clips can be treated as a kind of structured data and not a generic entity. Doing so lets us simplify some of the clip management and remove some usage of raw pointers. This change also removes the ClipRestoreContents, which are only ever created and then immediately rendered - we can instead replace this with a function.

The ClipCoverageStack now has explicit Clip/Restore methods that internally apply the same logic, but without involving the entity object.

Redo of https://github.com/flutter/engine/pull/55784
2024-10-22 21:12:22 +00:00
Jenn Magder
2f467bae78 Fix macos xcprivacy manifest copy location (flutter/engine#56010)
Cherry-pick the beta branch privacy location fix https://github.com/flutter/engine/pull/55938 back to master so this doesn't regress in the next beta.

This is for https://github.com/flutter/flutter/issues/157016 on master.  Can be merged once the framework test https://github.com/flutter/flutter/pull/157318 merges.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-22 20:46:12 +00:00
auto-submit[bot]
c5ad234e11 Reverts "Copy gen_snapshots using python's shutil.copy, avoid links (#55830)" (flutter/engine#56034)
Reverts: flutter/engine#55830
Initiated by: chinmaygarde
Reason for reverting: Incremental builds are broken. https://github.com/flutter/flutter/issues/157367
Original PR Author: aam

Reviewed By: {mraleph, cbracken}

This change reverts the following previous change:
Default implementation of copy does it via hardlink, which seems to be causing issues with Gatekeeper on mac.

BUG=https://github.com/flutter/flutter/issues/154437
2024-10-22 19:45:47 +00:00
yaakovschectman
32d9706cec Fix typo in testing script (flutter/engine#56029)
Just fix the spelling of `warning`.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-22 19:08:12 +00:00
Chinmay Garde
b121c24502 [Impeller] libImpeller: Document the entire API. (flutter/engine#56003)
I believe I got the entire API other than the enum values. Though most a straightforward, some could use some clarification.

The typography stuff should now be easier to use. The README describes the object model and reference counting conventions.
2024-10-22 18:43:23 +00:00
Jonah Williams
7da7f8b890 [Impeller] eagerly flip backdrop back to onscreen. (flutter/engine#55983)
Fixes https://github.com/flutter/flutter/issues/157112

We currently track the number of backdrop filters in a frame. When the end of the frame is reached, we do a blit from the offscreen texture to the onscreen texture. Howeever, this extra blit is unecessary once we know we've rendered the last backdrop - and we can instead start the last render pass with the onscreen. This cuts out a fairly expensive blit.

this can only be done on iOS physical devices, vulkan, and some GLES - as emulated blends also use the backdrop.

## Before

Shader time is lower but timeline claims about 2.8ms and about ~800ms of blit pass.

![image](https://github.com/user-attachments/assets/557d12ed-b169-4806-a2d1-88db9f24d8a1)

## After

Timeline is ~2.1 ms with no blit pass. Tracks with numbers above.

![image](https://github.com/user-attachments/assets/ad547131-af0a-4247-91a2-deeb3ffda8e9)
2024-10-22 17:54:38 +00:00
John McDole
51d2f1623d Typo in engine_binary_hashing.md (flutter/engine#55866)
s/-R/-r
2024-10-22 09:25:20 -07:00
skia-flutter-autoroll
25af2569df Roll Skia from b11804aaabbb to 3731c1f7cf29 (3 revisions) (flutter/engine#56027)
https://skia.googlesource.com/skia.git/+log/b11804aaabbb..3731c1f7cf29

2024-10-22 egdaniel@google.com [Graphite] Make sure not to use Protected Vertex/Index buffers.
2024-10-22 pkasting@chromium.org Add begin()/end() to SkString.
2024-10-22 bungeman@google.com [pdf] Change structure identifiers to match specification

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 brianosman@google.com,codefu@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
2024-10-22 16:14:18 +00:00
Brandon DeRosier
3b568c8d68 [Flutter GPU] Fix conditional when checking DeviceBuffer bounds. (flutter/engine#56017)
Resolves https://github.com/flutter/flutter/issues/157324

Fix a silly off-by-one that I didn't catch because none of the tests are using `DeviceBuffer` directly. 🤦
2024-10-22 10:58:38 +00:00
skia-flutter-autoroll
94fac8afbe Roll Dart SDK from 86ac62245577 to 8de85635d731 (3 revisions) (flutter/engine#56019)
https://dart.googlesource.com/sdk.git/+log/86ac62245577..8de85635d731

2024-10-22 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-50.0.dev
2024-10-22 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-49.0.dev
2024-10-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-48.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-engine
Please CC codefu@google.com,dart-vm-team@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: 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
2024-10-22 09:07:38 +00:00
skia-flutter-autoroll
b1f0dcf32f Roll Skia from 9c6cc020751d to 64f4f1922946 (3 revisions) (flutter/engine#56016)
https://skia.googlesource.com/skia.git/+log/9c6cc020751d..64f4f1922946

2024-10-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 6c65601e5d77 to fc1fbc4105b0 (5 revisions)
2024-10-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 0afe6a306dd2 to 145112eea713 (1 revision)
2024-10-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 6a645bf6ebd6 to 8e9623dbadf3 (19 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 brianosman@google.com,jonahwilliams@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
2024-10-22 07:11:20 +00:00
skia-flutter-autoroll
c17390e606 Roll Fuchsia Linux SDK from avSAUwQTf5xVGuZQU... to xPbin_33tT-_omeQT... (flutter/engine#56011)
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-engine
Please CC jonahwilliams@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
2024-10-22 04:21:23 +00:00
Alexander Aprelev
63d8f5cb72 Copy gen_snapshots using python's shutil.copy, avoid links (flutter/engine#55830)
Default implementation of copy does it via hardlink, which seems to be
causing issues with Gatekeeper on mac.

BUG=https://github.com/flutter/flutter/issues/154437
2024-10-22 04:48:02 +03:00
Brandon DeRosier
493177b5ed [Flutter GPU] Add missing MSAA stuff. (flutter/engine#55424)
Resolves https://github.com/flutter/flutter/issues/144264.
2024-10-22 01:16:25 +00:00
skia-flutter-autoroll
5a1b014639 Roll Skia from 3a081993e2a7 to a71df7d9bc63 (24 revisions) (flutter/engine#56005)
https://skia.googlesource.com/skia.git/+log/3a081993e2a7..a71df7d9bc63

2024-10-21 arthursonzogni@chromium.org partition_alloc: Fix condition about sanitizers.
2024-10-21 robertphillips@google.com [graphite] Address Native-Vulkan Precompilation thread races
2024-10-21 robertphillips@google.com [graphite] Add test for precompilation thread safety
2024-10-21 double1kai@gmail.com fix some bugs in type conversion on Loongarch
2024-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 1ea770ceed23 to 4220684adef5 (1 revision)
2024-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 4b1e58d94333 to 4aa12e9e17f5 (6 revisions)
2024-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from e81b15c8854a to 6c65601e5d77 (2 revisions)
2024-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 7e8a128852ff to 6a645bf6ebd6 (12 revisions)
2024-10-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 7acb8149138a to 1ea770ceed23 (9 revisions)
2024-10-19 lukasza@chromium.org [rust png] Enable and fix integer conversion warnings.
2024-10-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from b48b5be748a7 to 7acb8149138a (7 revisions)
2024-10-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 2f644ed8a84e to 4b1e58d94333 (7 revisions)
2024-10-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 06128ba913e9 to b48b5be748a7 (2 revisions)
2024-10-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 4c14e8e4f022 to 7e8a128852ff (17 revisions)
2024-10-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 70e3e4feed08 to e81b15c8854a (1 revision)
2024-10-18 skia-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 74b783dffb9b to 0afe6a306dd2 (1 revision)
2024-10-17 vigneshv@google.com crabbyavif: Add support for cropping
2024-10-17 michaelludwig@google.com [graphite] ShaderInfo::toSkSL() release asserts
2024-10-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from bd3c30184daf to 06128ba913e9 (2 revisions)
2024-10-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 0dbe85f31776 to 2f644ed8a84e (15 revisions)
2024-10-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia Infra from 78ae0bf49048 to 70e3e4feed08 (3 revisions)
2024-10-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn from 65fa98d50f6d to 4c14e8e4f022 (10 revisions)
2024-10-17 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from ad31dd1cb898 to bd3c30184daf (11 revisions)
2024-10-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll skottie-base from 6a07fae851d7 to a049ff55ff14

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 brianosman@google.com,jonahwilliams@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
2024-10-22 00:28:20 +00:00
Devon Carew
fed015acfb update the SoT location for package:http_parser (flutter/engine#55998)
This PR updates the SoT location for `package:http_parser`; it's moved
from dart-lang/http_parser to dart-lang/http (in pkgs/http_parser).

Issues:
- https://github.com/dart-lang/sdk/issues/56591

*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] and the [C++,
Objective-C, Java style guides].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [ ] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [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/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2024-10-21 17:17:10 -07:00
zijiehe@
cd975cfa34 Reland: [fuchsia] Remove pm use in build_fuchsia_artifacts (flutter/engine#55932)
Redo: https://github.com/flutter/engine/pull/55832

See the diff of diffs,

```
diff <(curl -s '1cd59a0c06.diff') <(curl -s 'ccea3b80cc.diff')
```

Or

```
48c48
< index 5258466145387..83aebdaacd9b6 100755
---
> index 5258466145387..3f74d19640d0f 100755
141,142c141,142
< +  far_file = '%s_%s%s_runner-0.far' % (runner_type, mode, '_product' if product else '')
< +  CopyPath('%s/%s' % (source_root, far_file), '%s/%s' % (destination, far_file))
---
> +  far_file = '%s_%s%s_runner' % (runner_type, mode, '_product' if product else '')
> +  CopyPath('%s/%s-0.far' % (source_root, far_file), '%s/%s.far' % (destination, far_file))
```

This change restores the files' -0 suffix which was wrongly removed in the last iteration.

=== Description of the original change:

This change removes the in-house built pm-based build rules in favor of the high level fuchsia_component / fuchsia_package in the gn-sdk.

Also the use of pm in build_fuchsia_artifacts.py is removed as the placements of the binaries changed.
https://github.com/flutter/engine/pull/55445 was a previous attempt and it generates [a malformatted cipd](https://chrome-infra-packages.appspot.com/p/flutter/fuchsia/+/vU1Op26qgO5XYs9S8AqQMvBwgITD9hq3-2dIu2H5-iwC).

Bug: http://b/353729557, http://b/368608542

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-21 21:52:00 +00:00
skia-flutter-autoroll
910b7f6302 Roll Dart SDK from 10387c3fc6d4 to 86ac62245577 (1 revision) (flutter/engine#55995)
https://dart.googlesource.com/sdk.git/+log/10387c3fc6d4..86ac62245577

2024-10-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-47.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-engine
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 Engine: 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
2024-10-21 21:48:06 +00:00
Yegor
1e4d3fae97 Revert "[web:a11y] make header a proper <header> (#55747)" (flutter/engine#55993)
This reverts commit e478ea9bad00114661ee59d79d843cc66d395a24.

This broke a customer: https://github.com/flutter/engine/pull/55747#issuecomment-2426879072
2024-10-21 20:48:57 +00:00
Yegor
5d341acdc5 [web] implement selectable semantics (flutter/engine#55970)
Implement `SemanticsFlag.hasSelectedState` and `SemanticsFlag.isSelected` for web in terms of `aria-selected`.

Fixes https://github.com/flutter/flutter/issues/66673
2024-10-21 20:24:10 +00:00
Jonah Williams
9a7492dc88 [Impeller] Reland: one descriptor pool per frame. (flutter/engine#55960)
reverted https://github.com/flutter/engine/pull/55939 due to postsubmit failures.

It turns out the lifecycle is not exactly the same as the command pool. Instead, use a thread id map on the context to keep the right thread running and simplify shutdown. Leaving CI yaml edit for now to prove it works :)

Fixes https://github.com/flutter/flutter/issues/157115
2024-10-21 19:33:20 +00:00
Justin McCandless
cd1cd27685 Scribe (Android stylus handwriting text input) (flutter/engine#52943)
The engine API for Android's Scribe stylus handwriting input. Just bare bones handwriting itself, does not support special gestures, which will come in subsequent PR(s).
2024-10-21 11:55:02 -07:00
Devon Carew
b21f22cc50 re-land "update the repo references for package:file (#55906)" (flutter/engine#55935)
This is a re-land of the reverted PR, flutter/engine#55916 (it depended
on a dart roll that was reverted, and has subsequently been re-landed).

From the original PR:

> The SoT repository for `package:file` has changed from
google/file.dart to dart-lang/tools; this PR updates the DEPS file and
the hard-coded paths in the two pubspec.yaml files (see
https://github.com/dart-lang/tools/issues/674).
2024-10-21 10:39:02 -07:00
Zachary Anderson
ec3cff72ab Increase timeout for Linux mac_clangd (flutter/engine#55988)
This build does not come in under the default 30 minute timeout when the caches are cold and the bot_update steps take too long: https://ci.chromium.org/ui/p/flutter/builders/prod/Linux%20mac_clangd/2928/overview
2024-10-21 17:09:24 +00:00
Jason Simmons
9872e0ee2f Request another frame in ImageReaderSurfaceProducer.dequeueImage if more images are pending in the queue (flutter/engine#55944)
ImageReaderSurfaceProducer will request a frame when an image is enqueued. But there is no guarantee that each request will produce an additional frame.
Multiple requests happening within one vsync interval could be merged into one frame.  If no other frame is scheduled, then some images will remain in the queue and the image shown on screen will not be the latest image.

With this change, ImageReaderSurfaceProducer will continue requesting frames after consuming an image if the queue is not empty.

Fixes https://github.com/flutter/flutter/issues/156903
Fixes https://github.com/flutter/flutter/issues/155787
2024-10-21 15:31:14 +00:00
skia-flutter-autoroll
d55edb4c9a Roll Dart SDK from c8659684d34d to 10387c3fc6d4 (1 revision) (flutter/engine#55987)
https://dart.googlesource.com/sdk.git/+log/c8659684d34d..10387c3fc6d4

2024-10-21 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.7.0-46.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-engine
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 Engine: 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
2024-10-21 14:06:28 +00:00
Mouad Debbar
2af8c83f84 [web] Support woff2 fonts (flutter/engine#55908)
- Enable support for WOFF2 fonts.
- Add Brotli depndency (increases CK size by ~53KB compressed, including the Brotli dictionary).
- Use split WOFF2 fonts for Emoji.
- Remove the `useColorEmoji` runtime config flag.

Partially based off of https://github.com/flutter/engine/pull/41282
Fixes https://github.com/flutter/flutter/issues/119536
Contributes to https://github.com/flutter/flutter/issues/153974 and opens the door for moving more fonts to WOFF2.
2024-10-21 13:38:22 +00:00
skia-flutter-autoroll
49c05e315a Roll Fuchsia Linux SDK from PWz1ufnYNOGpgw-qg... to avSAUwQTf5xVGuZQU... (flutter/engine#55985)
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-engine
Please CC jonahwilliams@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
2024-10-21 03:06:12 +00:00
skia-flutter-autoroll
518ec7b770 Manual roll Dart SDK from a51df90298ca to c8659684d34d (4 revisions) (flutter/engine#55984)
Manual roll requested by asiva@google.com

https://dart.googlesource.com/sdk.git/+log/a51df90298ca..c8659684d34d

2024-10-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.7.0-45.0.dev
2024-10-19 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.7.0-44.0.dev
2024-10-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.7.0-43.0.dev
2024-10-18 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.7.0-42.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-engine
Please CC
asiva@google.com,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 Engine:
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
2024-10-20 19:43:14 -07:00
Jim Graham
6b912e50de [Impeller] New impeller round rect class (flutter/engine#55946)
Impeller geometry class analogous to SkRRect - soon to be the standard round rectangle class throughout most of the engine that doesn't talk directly to Skia.

More unit tests are being written, but this PR will enable developers to look at the API of the new class and comment as well as test its effect on any goldens (there should be none).
2024-10-20 18:59:23 +00:00
skia-flutter-autoroll
19144672ff Roll Fuchsia Linux SDK from tNQZ8d5mRYpe3--lk... to PWz1ufnYNOGpgw-qg... (flutter/engine#55982)
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-engine
Please CC jonahwilliams@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
2024-10-20 01:53:33 +00:00
Jonah Williams
d56c8a7bb0 [Impeller] batch submit vulkan command buffers on newer hardware. (flutter/engine#55956)
Coming back to this from the previous attempt: https://github.com/flutter/engine/pull/50139 

* Even if its slower sometimes, its also way faster on more complex scenes
* The adreno bugs seem limited to older devices.

Conservatively, only enable batching for Mali and newer Adreno

On non vulkan backend we immediately submit.
2024-10-19 15:53:38 +00:00
Robert Ancell
15129c0bbc Move keymap from FlKeyboardViewDelegate to FlKeyboardManager (flutter/engine#55942)
Ideally the tests would mock gdk_keymap_lookup_key, but I wasn't able to get it working so I've added fl_keyboard_manager_set_lookup_key_handler for now.
2024-10-19 01:36:10 +00:00
Jonah Williams
73ec326b80 [UI] fix scene builder parameter naming. (flutter/engine#55969)
This is reponsible for the bdf golden breaking shader mask.
2024-10-18 17:45:23 -07:00
Chris Bracken
ec22d90ba3 iOS: Improve thread safety of first frame callback (flutter/engine#55966)
Previously, we dispatched a task to a background thread to wait for the first frame to be ready. In the background task, we then throw a task on the main thread that invokes that user-provided callback to notify them that the first frame is ready.

During ARC migration, we ensured that self was strongly-captured in the task that runs on the main thread, in order to prevent the possibility that the last remaining reference to the FlutterEngine instance be the one on the background thread.

However, with the previous code, it's possible that the callback is dispatched to the main thread, executes, and completes before the block on the background thread finishes. In that case, the last remaining FlutterEngine reference may *still* be the one on the background thread.

In order to prevent this scenario, we use `dispatch_group_notify` to ensure that the tasks are executed sequentially, and that the callback task is not dispatched to the main thread until the background task has completed. Further, we capture FlutterEngine strongly in the second task to ensure that *it* is the last remaining task.

Why do we need to capture self strongly in the task fired to the main queue? Imagine the following:
* We queue up the first task on the background thread.
* We queue up the callback task on the main thread to be executed only after the background task completes.
* The task on the background thread starts running.
* That task captures weakSelf strongly and checks it -- it's not nil, yay. 
* That task now makes the blocking first frame call. Time passes. While that time passes all other strong references to self go away. That second block only captured self weakly, so the background task now has the only remaining strong reference. Uh oh!
* We hit the end of the background task block and since we have the last remaining strong reference, we dealloc FlutterEngine... on the background thread.
* KABOOM.

No changes to tests since this is a fix to a race condition that doesn't affect app semantics, isn't testable as written, and adding shims to improve testability will likely make some already subtle/difficult-to-reason-about code even more complex and difficult to reason about.

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-19 00:07:15 +00:00
Chris Bracken
3031222ef2 iOS: Fix flaky tests (remove timeouts) (flutter/engine#55961)
When run repeatedly, some of the iOS unit tests can relatively easily
blow their test timeouts. Since we're testing behaviour and not
performance in these tests there's no need to enforce a particular
timeout.

The bots will fail if the tests timeout, regardless.
2024-10-18 16:22:11 -07:00
Jonah Williams
298fba8a45 [Impeller] allocate the impeller onscreen texture from the render target cache. (flutter/engine#55943)
Otherwise with backdrop filters we create and throw away a single fullscreen texture every frame. Very wasteful!

Does not impact iOS because it has the read from resolve option. Removed some unused parts of the inline_pass_context that were only used in the entity pass days.
2024-10-18 22:24:31 +00:00
skia-flutter-autoroll
74eadd80c5 Roll Fuchsia Linux SDK from 9F_NaKPd2twhbPwP7... to tNQZ8d5mRYpe3--lk... (flutter/engine#55963)
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-engine
Please CC jonahwilliams@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
2024-10-18 22:01:52 +00:00