EngineLayers can hold references to Skia objects and may consume significant
resources. This change will result in more aggressive cleanup of EngineLayers
by the Dart GC.
See https://github.com/flutter/flutter/issues/31303
Skia allows drawing unpremul images, but filtering them can look bad.
Internally Skia performs this transformation when creating SkImages from
encoded data (so this already happens for MakeCrossContextFromEncoded),
and for consistency/quality it should be done here, too.
Fixes#28785
* Revert "fix toString (#8688)"
This reverts commit 9fa7336784b56ef70fd3580ac54d2939d1faa5a0.
* Revert "Make Rect and RRect use 64 bit doubles, and make them const-able (#8565)"
This reverts commit c12315273f6344175dae748ec1f23e15b4e7d59e.
This is the first step in making Flutter aware of and responsive to Z
bound overflow. On its own this patch shouldn't result in any changes in
behavior. This will need to be followed up with a patch in Fuchsia's
Flutter runner to set the Z bounds after this lands, and another patch
in the engine actually implementing the desired overflow behavior.
This Z bound info is routed through the engine itself to make sure the
bounds in flow are truly consistent from the Fuchsia runner. However
these values should eventually be exposed to the framework as well.
Some components in the Flutter engine were derived from the forked blink codebase. While the forked components have either been removed or rewritten, the use of the blink namespace has mostly (and inconsistently) remained. This renames the blink namesapce to flutter for consistency. There are no functional changes in this patch.
The font manager returned by SkFontMgr::RefDefault is determined by Skia's
build configuration flags. Embedders may want to use a default font manager
other than the one selected by their build of Skia.
The DartPersistentValue used to hold the image callback is tied to a
Dart isolate. Destructing the DartPersistentValue requires entering
the isolate and must be done on the UI thread.
Fixes https://github.com/flutter/flutter/issues/29379
Follow up the framework change in flutter/flutter#29304.
Inject the accessibility element tree in the semantic node if the node is for platform views.
flutter/flutter#29302
We used to make tonic make the wrapper before the SendPlatformMessage invocation. However, tonic would not collect the wrapper before make the Dart API call to return the value from the native method. This is illegal and would trip an assertion in the Dart VM. A more systematic fix required reworking tonic to handle this case. However, to fix our illegal use of the Dart API now, this patch creates the wrapper manually in function scope.
Fixes https://github.com/flutter/flutter/issues/29058