6041 Commits

Author SHA1 Message Date
Robert Ancell
613b0b2fb2 Remove unused virtual methods (flutter/engine#54074) 2024-07-26 04:51:12 +12:00
Robert Ancell
385b900221 Allow creating views from an external engine (flutter/engine#54080)
While only one view works at this point in the future this will allow a runner to create multiple views.
2024-07-25 19:45:37 +12:00
Robert Ancell
12a4ffb403 Support multiple views in FlRenderer (flutter/engine#54072) 2024-07-25 19:44:52 +12:00
Jonah Williams
f4ca71ce57 Disable FlutterMetalLayer by default. (flutter/engine#54095)
Backing textures aren't getting deallocated, which is causing memory leaks and crashing devicelab.
2024-07-25 02:34:16 +00:00
Greg Spencer
b5648f9fb0 Remove incorrect line (flutter/engine#54021)
## Description

Removes a line that shadows setting the device type correctly for keyboard events.

## Related Issues
 - Fixes https://github.com/flutter/flutter/issues/151308
2024-07-25 01:03:16 +00:00
Jonah Williams
80fd1f7fbf [iOS] Switch to FlutterMetalLayer by default. (flutter/engine#54086)
For this to work, we need to provide our own capture scope otherwise the default scope won't capture our commands.

This is required as part of the work to switch to unmerged threads for PVs (https://github.com/flutter/engine/pull/53826), as I can confirm @knopp 's observations that the performance is much worse with the default CAMetalLayer.

Fixes https://github.com/flutter/flutter/issues/140901
2024-07-24 23:10:11 +00:00
Matan Lurey
c696d2cf7b Move testing/litetest to pub workspaces. (flutter/engine#54082)
More incremental version of https://github.com/flutter/engine/pull/53997.
2024-07-24 21:02:17 +00:00
Robert Ancell
e0a1f3492a Fix embedder comments about struct_size (flutter/engine#54077) 2024-07-24 18:20:19 +00:00
Jonah Williams
9d7ce06c95 share platform view slicing logic across iOS and Android. (flutter/engine#54010)
This removes support for "unobstructed platform views" on iOS - instead prefering to use the Android strategy of minimizing overlay layers, as this is generally more performant.
2024-07-24 18:02:09 +00:00
Camille Simon
0619de0107 Upgrade Engine Android SDK to 35 (flutter/engine#53574)
**REVIEW BUT DO NOT MERGE:** Will merge after https://github.com/flutter/buildroot/pull/870 lands.

1: Updates engine to use Android 35. Part of https://github.com/flutter/flutter/issues/150215.
Engine step of https://github.com/flutter/flutter/blob/master/docs/platforms/android/Upgrading-Engine's-Android-API-version.md.

2: Updates test runner AGP version to 8.5, engine Gradle version to 8.9 to accommodate update.

3: Fixes lint and suppresses deprecation warnings caused by the update. None of the deprecations are unknown by the team (they are handled in the code), but the tests emitted warnings.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-07-24 16:54:38 +00:00
Robert Ancell
102617432b Don't rely on the renderer accessing the engine through the view. (flutter/engine#54049)
In the multi-view case there will be 0-N views, so instead hold a weak
reference on the engine.
2024-07-25 02:41:31 +12:00
Robert Ancell
83dca15abd Rename FlBackingStoreProvider to FlFramebuffer (flutter/engine#54047)
The name was confusing, as it only provided one type of backing store.
FlBackingStoreProvider sounds more like an interface that the
FlFramebuffer would implement if we had multiple backing stores.

Use OpenGL types for values.

Fix cases where this was sometimes called a texture.

Improve documentation.

Remove the use of GdkRectangle for dimensions - the framebuffer only has
a width and a height. There was code that was using the x,y values which
would always have been zero - this has now been removed.
2024-07-24 18:55:36 +12:00
Robert Ancell
bc9c7efb58 Remove unnecessary double cast (flutter/engine#54044) 2024-07-24 18:54:42 +12:00
Robert Ancell
904a1ab58f Fix variable name (flutter/engine#54045) 2024-07-24 18:54:30 +12:00
Chris Bracken
51706cd06f [iOS] Flush layer pool after platform view dispose (flutter/engine#54056)
`FlutterPlatformViewLayerPool` is a pool of iOS layers used for rendering platform views on iOS. When layers are no longer needed, we currently mark them available for re-use but we never actually flush them and thus recover the memory associated with these layers once we know that the layers are no longer needed.

We now flush the layer pool on `SubmitFrame` if a previously-used layer is no longer used in the current frame. In theory, this could cause a performance regression in the case where an additional layer is needed every second or third frame, but we should keep it simple on the first pass and only complicate things later if warranted.

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-07-23 23:55:04 +00:00
Chris Bracken
16455a2543 [iOS] Mark EmbeddedViewCount const (flutter/engine#54062)
Since this method isn't mutating the pool, we should mark it const.

Cleanup spotted while working on https://github.com/flutter/engine/pull/54056.

No test because no semantic change. The compiler is the test.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-07-23 23:50:58 +00:00
Robert Ancell
94a7e50936 Temporarily disable use of glBlitFramebuffer on NVIDIA (flutter/engine#54040)
Workaround for https://github.com/flutter/flutter/issues/152099
2024-07-24 05:08:11 +12:00
Robert Ancell
c9ddcc41a4 Set the view ID for FlView (flutter/engine#54043)
Follow up to https://github.com/flutter/engine/pull/54018.
2024-07-24 04:57:12 +12:00
Chinmay Garde
f4e4700369 [Impeller] Implement OpenGL to Vulkan texture trampolining. (flutter/engine#53966)
This decouples the Impeller on-by-default effort from the release schedule and [plugin migrations](https://github.com/flutter/flutter/issues/151018).

The plugin migration documented in [go/impeller-plugin-migration][plugin-migration] is still recommended and facilitates zero-copy texture transfers between OpenGL and Vulkan. To recap, the plugin migration is to move away from the OpenGL-only SurfaceTexture APIs in the plugin interface.

This patch facilitates rendering OpenGL textures in a Vulkan renderer using texture trampolining using a single device-device transfer on all devices that support Impeller using the Vulkan renderer.

The performance of this approach is more than acceptable but at the cost of an additional texture allocation and will serve as a fallback to the for any remaining unmigrated plugins (all first-party plugins will already be migrated when the Impeller is on by default and we are following up on the migration of the major third-party plugins as well).

This is a straight improvement to the current state of things were unmigrated plugins will render an empty quad.
2024-07-23 16:41:20 +00:00
Robert Ancell
e1f2360083 Add fl_engine_add/remove_view (flutter/engine#54018)
This is API that will be required when we get multi-view support on
Linux. While this internal API is not currently used, I've made a PR so
it can be more easily reviewed.
2024-07-23 23:34:47 +12:00
Robert Ancell
d11f10ccb6 Make FlWindowStateMonitor (flutter/engine#54011)
Split window state monitor out of FlView and FlEngine to make it easier
to handle different API when using GTK4. It also allows better tests.
2024-07-23 22:47:56 +12:00
Robert Ancell
7855b2c857 Don't leak binary messenger in tests (flutter/engine#53985)
Looks like the original code was just copied around. Should have no
effect on the tests other than making it easier to detect other leaks.
2024-07-19 14:36:32 +12:00
Robert Ancell
4a63063be6 Renamed plugin classes to handler (flutter/engine#53736)
The Linux embedder had a number of handlers for Flutter channels that
were named plugin/handler/manager. Rename these all to handler to be
consistent and reduce confusion with Flutter plugins (which these don't
use the infrastructure for).
2024-07-19 12:44:41 +12:00
Bruno Leroux
42ec2e55c5 [Android] Call restartInput selectively on clear (flutter/engine#53662)
## Description

This PR restricts the call to `restartInput` which was added in https://github.com/flutter/engine/pull/49829.
The restart is called when input action is null, DONE, or NONE.

## Related Issue

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

## Tests

Updates 1 test, adds 3 tests.
2024-07-18 20:27:33 +00:00
Robert Ancell
dde01765c9 Use glBlitFramebuffer when rendering (flutter/engine#53080)
This is much faster than using a shader which is not required currently
(we are not doing any transformations).
2024-07-18 16:02:39 +12:00
Gray Mackall
29a474fe3e More logs for Android unsatisfiedLinkError (flutter/engine#53920)
See https://github.com/flutter/flutter/issues/83596#issuecomment-2140605278, there are two cases:
1. IO issue
2. The directory doesn't exist

Narrow down by including in the logs if the directory exists or not.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-07-16 20:12:03 +00:00
Lasse R.H. Nielsen
13b3c93787 Prepare engine for deprecation of async_minitest.dart (flutter/engine#53560)
The Dart SDK's `package:async_helper/async_minitest.dart` was never intended for new tests, it was a drop-in polyfill for the legacy `package:unit_test` that some Dart SDK tests were using. The tests should never have used that package, and migrating them to `package:test` was not an option, so the `async_minitest.dart` file was the minimal polyfill that made all the tests run.

Since then, new tests have been written using the file, and to stop that, the file will now become deprecated, and (hopefully some day) removed.

If the Flutter engine wants to keep using the file, they should own their own copy of it, which is what this change does.

(Also migrates off the to-be-deprecated `assertStatementsEnabled` property of `package:expect/expect.dart`, moved to the new `asserts` from `package:expect/variations.dart`.)
2024-07-12 19:12:05 +00:00
Chinmay Garde
8837250654 [Impeller] Refactor and document Android rendering related TUs. (flutter/engine#53802)
No change in functionality. The updates:

* HeaderDoc comments have been added to the major rendering related TUs. However, not all comments are complete. I only documented the stuff I understood. For instance, it isn't clear how/why some subclasses use Attach/Detach while other use ProcessFrame. I intend to document as I go.
* Each package specific subclass is now in its own TU.
* Some subclasses used to be Skia specific. We added an Impeller variant but didn't rename to Skia TU. This has been patched.
2024-07-12 19:08:15 +00:00
Matan Lurey
15becdc41e Move //third_party/java to //flutter/third_party/java (flutter/engine#53590)
... as part of buildmoot.
2024-07-12 09:25:28 -07:00
Jason Simmons
604637e41f Manual roll Dart SDK from fb546f313557 to 797d3df745d1 (8 revisions) (flutter/engine#53832)
Includes patches needed for the dart:concurrent package (see https://dart.googlesource.com/sdk/+/d2bc055651cf62c549933ed379d6b23d84a07598)

Manual roll requested by jsimmons@google.com

https://dart.googlesource.com/sdk.git/+log/fb546f313557..797d3df745d1

2024-07-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-34.0.dev 2024-07-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-33.0.dev 2024-07-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-32.0.dev 2024-07-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-31.0.dev 2024-07-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-30.0.dev 2024-07-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-29.0.dev 2024-07-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-28.0.dev 2024-07-11 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.6.0-27.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 bdero@google.com,dart-vm-team@google.com,jsimmons@google.com on the revert to ensure that a human is aware of the problem.

To file a bug in Flutter 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-07-12 01:28:10 +00:00
Tong Mu
bfc7116202 [macOS] Multiview compositor (flutter/engine#52253)
This PR makes the macOS `FlutterCompositor` able to handle multiple views by adding methods `AddView` and `RemoveView`.

These two methods must take place on the main queue (platform thread), which is indeed the case, but extra effort is made to assert so. This is important because, due to the constraint of the macOS system that requires rendering to take place on the platform thread (hence `FlutterThreadSynchronizer`), no locks are needed to avoid race condition between `Add/RemoveView` and presenting.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-07-10 21:10:06 +00:00
Jonah Williams
d11db4f8c9 [engine] support combined UI/Platform thread for iOS/Android. (flutter/engine#53656)
Experimentally support merging UI and platform thread on Android/iOS. This works by changing the shell holder to set the UI thread to the platform thread. Several shell APIs that post messages from the platform to ui thread were changed to use RunNowOrPostTask to immediately call the UI task if the threads are the same.

Experimentally, this seems to work reasonably well if there are no platform views. On Android with TLHC it works fine either way, while iOS currently takes a big performance hit.

This can be opted into via a Plist:

```
	<key>FLTEnableMergedPlatformUIThread</key>
	<true/>
```

Or via AndroidManifest.xml:

```
 <meta-data
            android:name="io.flutter.embedding.android.EnableMergedPlatformUIThread"
            android:value="true" />
```

https://github.com/flutter/flutter/issues/150525
2024-07-09 19:32:20 +00:00
Jonah Williams
ef889f9d05 [Impeller] implement experimental canvas in snapshot controller. (flutter/engine#53750)
Fixes https://github.com/flutter/flutter/issues/150994

This ensures that the dart:ui API toImage and toImageSync use the experimental canvas API when the define is set. No other changes.
2024-07-09 19:19:57 +00:00
Dustin Green
6d2812b3fe [fuchsia][sysmem2] move to sysmem2 protocols (flutter/engine#53138)
Switch flutter from sysmem(1) protocols to sysmem2 protocols.

This is part of the overall sysmem(1) to sysmem2 migration.

fixes flutter/flutter#151154
2024-07-08 16:22:16 -07:00
Jonah Williams
efbf7ddc57 [Impeller] mark the end of a frame boundary for system compositor interop. (flutter/engine#53722)
Fixes https://github.com/flutter/flutter/issues/151274

This is only an issue on iOS (so far) because of the platform view rendering strategy that involves submitting multiple impeller frames per compositor frame.

FYI @bdero
2024-07-04 03:48:17 +00:00
Mouad Debbar
5fb88851d5 Add Semantics Property linkUrl (flutter/engine#53507)
The new property allows the user to specify a URI for their semantics link node. It's plumbed through for both web and non-web engines, but it's only used in the web engine currently. It sets the `href` of the anchor element associated with semantics node.

This is going to unlock better semantics support in the Link widget on web ([PR](https://github.com/flutter/packages/pull/6711)).

Framework counterpart: https://github.com/flutter/flutter/pull/150639

Part of https://github.com/flutter/flutter/issues/150263
2024-07-03 21:12:26 +00:00
Chinmay Garde
f20ab5e458 [Embedder] Document incorrectly named field in FlutterOpenGLFramebuffer. (flutter/engine#53720)
Doesn't rename the field to maintain API compatibility. But adds a bug annotation.

Fixes https://github.com/flutter/flutter/issues/148637
2024-07-03 20:38:09 +00:00
Matan Lurey
ee6b0f1b2d Move //third_party/android_embedding_dependencies to //flutter/third_party. (flutter/engine#53587)
... as part of the buildmoot effort.

I'll rebase after @gmackall's definitely-will-work-this-time bump of the dependencies.
2024-07-03 18:40:23 +00:00
hangyu
d6cff07930 [deep link][ios] Update openURL method to reflect the result from framework (flutter/engine#52643)
follow up on comments on https://github.com/flutter/engine/pull/52350

framework pr : https://github.com/flutter/flutter/pull/147901

## 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] and the [C++,
Objective-C, Java style guides].
- [ ] 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.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I signed the [CLA].
- [ ] 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-07-02 11:25:39 -07:00
Robert Ancell
e3b2d11dba Restore creation of engine before Linux widget is realized. (flutter/engine#53604)
Due to changes in the renderer in fc560d4 the engine was created once a
widget is realized, not when the widget is created. If a Flutter
application changed the default my_application.cc template to show the
Flutter widget after plugins are run then these plugins would not be
able to access the engine.

Solved by removing the GdkWindow from the renderer constructor and
setting in later when the widget is realized. This works because the
renderer is not used until the widget is realized.
    
Fixes https://github.com/flutter/flutter/issues/144873
2024-07-02 17:18:07 +12:00
Jonah Williams
d152d7632f [Impeller] experimental canvas bdf support. (flutter/engine#53597)
Almost working bdf for experimentcal canvas.

Currently there are some problems with the clip depth, and positioning of the backdrop filter. I think I am not taking the blur transform into account at the very least.

FYI @bdero
2024-06-28 20:42:07 +00:00
Gray Mackall
8e2c560e10 Re-re-re-land "Upgrade all[most] androidx dependencies to latest" (flutter/engine#53592)
Re-re-re-land https://github.com/flutter/engine/pull/53001.

I recreated the postsubmit failures of the [roll](https://github.com/flutter/flutter/pull/150733) of the [last land](https://github.com/flutter/engine/pull/53532), and then verified on a local branch that those same postsubmits pass with this upgrade after the land of https://github.com/flutter/flutter/pull/150873. 

So I have pretty high confidence this won't cause any problems in the framework repo. I also tested on a previous land attempt that the `all_packages` app builds on this branch, so that is also a good sign for the packages repo.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-06-27 19:56:47 +00:00
Håkon Bertheussen
8311e5eca9 Fix AccessibilityFeatures.disableAnimations flag on Android 12+ (flutter/engine#53428)
This PR fixes the problem where Flutter would not respect the "remove animation" accessibility setting on Android 12+.

Please see this issue for details: https://github.com/flutter/flutter/issues/130976

As [mentioned](https://github.com/flutter/flutter/issues/130976#issuecomment-1931388665) by [horsemankukka](https://github.com/horsemankukka), the problem has to do with reading `Settings.Global.TRANSITION_ANIMATION_SCALE` as a string instead of a float. Flutter would compare it to the string "0" to determine if animations should be disabled. Presumably, this worked because the settings app did indeed use the string "0" or "1" for this setting. But as of Android 12 it's instead written using float representation ("0.0" or "1.0"), at least on Samsung devices. [The documentation](https://developer.android.com/reference/android/provider/Settings.Global#TRANSITION_ANIMATION_SCALE) also states that this setting should be read as a float, which is what this PR does.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-06-27 18:44:04 +00:00
Jason Simmons
0954220cbf Return a null image from ImageExternalTextureGL::CreateEGLImage if an EGL display is not available (flutter/engine#53594)
Previously CreateEGLImage had been failing an assertion if an EGL display is not active on the calling thread.  CreateEGLImage should not assert here because it could be called from a deferred task that runs after the raster thread has lost its EGL state.

See https://github.com/flutter/flutter/issues/149396
2024-06-26 22:10:18 +00:00
Matan Lurey
df2c6daa5a Replace Log.w with Log.d, and tidy the file up a bit. (flutter/engine#53586)
Closes https://github.com/flutter/flutter/issues/150849.

(Almost all of these are mechanical auto-fix changes from Android Studio/Best Practices).
2024-06-26 19:31:02 +00:00
Jenn Magder
53573f860f Remove FlutterUndoManagerPlugin handlers from undo manager on dealloc (flutter/engine#53553)
When `FlutterUndoManagerPlugin` deallocated, it is supposed to deregister itself from the `NSUndoManager` stack.
However, during dealloc `_undoManagerDelegate.undoManager` is nil (`_undoManagerDelegate` = the engine, and `undoManager` was its view controller's `undoManager`, which was already gone).

Since `_undoManagerDelegate.undoManager` is nil, it doesn't actually call `-[NSUndoManager removeAllActionsWithTarget]`. In the add-to-app scenario, after the view controller pops back to the native view, and "undo" is invoked, the undo action for the `FlutterUndoManagerPlugin` is handled, but it already dealloced so crash.

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

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-06-25 23:54:26 +00:00
Jim Graham
34bb05029e [DisplayList] Switch to recording DrawVertices objects by reference (flutter/engine#53548)
The Vertices objects are already allocated in a shared object by default so copying them inline into the recording buffer is usually a waste of time rather than reusing the memory allocated for the shared object by recording a reference. Note that the shared DlVertices objects already inline all of their data so we have good data locality as it is without further copying the data into the buffer.

Might help with https://github.com/flutter/flutter/issues/150513
2024-06-25 17:41:14 +00:00
auto-submit[bot]
c352f44015 Reverts "Re-re-land "Upgrade all[most] androidx dependencies to latest" (#53532)" (flutter/engine#53546)
Reverts: flutter/engine#53532
Initiated by: gmackall
Reason for reverting: This breaks apps that use plugins that use compileSdk 31, some of which we use in our postsubmit (so it blocks the tree).
Original PR Author: gmackall

Reviewed By: {reidbaker, matanlurey}

This change reverts the following previous change:
Re-re-land https://github.com/flutter/engine/pull/53001

(Reland attempt was at https://github.com/flutter/engine/pull/53462)

Unblocked by https://github.com/flutter/flutter/pull/150585, but will still need a manual roll because I will need to re-generate a bunch of lockfiles.

Also, https://github.com/flutter/flutter/blob/master/docs/engine/Testing-presubmit-Engine-PRs-with-the-Flutter-framework.md doesn't work (it's blocked on https://github.com/flutter/flutter/issues/149780) so I mostly just have to pray that no new issues occur in the roll. But I believe all issues that came up in the last attempt should be addressed by the above pr and by manual lockfile generation.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-06-25 01:20:29 +00:00
Gray Mackall
f9b2f290ba Re-re-land "Upgrade all[most] androidx dependencies to latest" (flutter/engine#53532)
Re-re-land https://github.com/flutter/engine/pull/53001

(Reland attempt was at https://github.com/flutter/engine/pull/53462)

Unblocked by https://github.com/flutter/flutter/pull/150585, but will still need a manual roll because I will need to re-generate a bunch of lockfiles.

Also, https://github.com/flutter/flutter/blob/master/docs/engine/Testing-presubmit-Engine-PRs-with-the-Flutter-framework.md doesn't work (it's blocked on https://github.com/flutter/flutter/issues/149780) so I mostly just have to pray that no new issues occur in the roll. But I believe all issues that came up in the last attempt should be addressed by the above pr and by manual lockfile generation.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-06-24 21:36:22 +00:00
Matan Lurey
233edc0b8f Add SurfaceProducer.Callback lifecycle hooks (flutter/engine#53280)
Work towards https://github.com/flutter/flutter/issues/148417.
2024-06-24 08:06:56 -07:00