Adds support for pointer signals, in a way that will support both discrete events (e.g., scroll wheels, flutter/flutter#22762) and continuous gestures (e.g., trackpad scroll, flutter/flutter#21953).
Also exposes these new event options to the embedder. Does not include code to send the
new events from the platform shells.
This brings the Dart and C++ semantics flag enums back in sync.
In #5902, the ability to move the cursor forward and backward one word
were added to dart:ui, and to the Android embedder, but not to the
SemanticsAction enum on the C++ side.
This brings the Dart and C++ semantics flag enums back in sync.
In #5941, implicit scrolling support was added to SemanticsFlag in
dart:ui, and to the Android embedder, but not to the SemanticsFlags enum
on the C++ side.
This also clarifies/corrects the documentation for this value in dart:ui
and in the embedder API.
Link dart:* sources into engine for debugger source support
Currently, dart:* libraries appear to have no source in
debuggers like Observatory. With this change, these sources will be
available in debug mode applications. Sources for dart:* libraries are
lazily loaded on a script-by-script basis.
Refer to https://dart-review.googlesource.com/c/sdk/+/93375 for the Dart
SDK change.
* Roll back three Dart SDK rolls
Revert "Roll src/third_party/dart 75ee523f91..4cff5a4fd6 (6 commits)"
Revert "Roll src/third_party/dart 5ddd157809..75ee523f91 (19 commits)"
Revert "Roll src/third_party/dart c92d5ca288..5ddd157809 (153 commits)"
`pub upgrade` appears to fail 100% reproducibly on broken on Windows.
This rollback rolls back both what appears to be the breaking roll (61fc178)
and the following roll.
This reverts commit 0053c1d5064931d7a690b3d8888d15d72785a079.
This reverts commit 1cf6b8b64d42aefcbc6e7d78a2e6df706962751a.
This reverts commit 61fc1786fd98f48ee355f800cf5d7aef0fff985b.
* Revert "Revert "Revert "Remove unnecessary entry-point closurization. (#7827)" (#7876)" (#7904)"
This reverts commit 93eeb48baee5c24047a4a3cf5b1db234ecc48683.
Flutter's accessibility APIs consist of three main calls from the
embedder to the Dart application:
1. FlutterEngineUpdateSemanticsEnabled: enables/disables semantics support.
2. FlutterEngineUpdateAccessibilityFeatures: sets embedder-specific
accessibility features.
3. FlutterEngineDispatchSemanticsAction: dispatches an action (tap,
long-press, scroll, etc.) to a semantics node.
and two main callbacks triggered by Dart code:
1. FlutterUpdateSemanticsNodeCallback: notifies the embedder of
updates to the properties of a given semantics node.
2. FlutterUpdateSemanticsCustomActionCallback: notifies the embedder
of updates to custom semantics actions registered in Dart code.
In the Flutter framework, when accessibility is first enabled, the
embedder will receive a stream of update callbacks notifying the
embedder of the full semantics tree. On further changes in the Dart
application, only updates will be sent.
The shell was already designed to cleanly shut down the VM but it couldnt
earlier as |Dart_Initialize| could never be called after a |Dart_Cleanup|. This
meant that shutting down an engine instance could not shut down the VM to save
memory because newly created engines in the process after that point couldn't
restart the VM. There can only be one VM running in a process at a time.
This patch separate the previous DartVM object into one that references a
running instance of the DartVM and a set of immutable dependencies that
components can reference even as the VM is shutting down.
Unit tests have been added to assert that non-overlapping engine launches use
difference VM instances.
This does several things:
- It adds CPU time on the IO thread, but avoids GPU time on the GPU
thread.
- For images that are never drawn with mipmaps, it adds about 33%
memory overhead. For images that are drawn with mipmaps, it saves
an entire copy of the base level.
- It fixes https://github.com/flutter/flutter/issues/24517, which is
a driver bug related to mip-mapping and cross-context images.
Overall, I think the tradeoff is good, but I'm curious to see what
benchmarks look like.
`MultiFrameCodec` now uses whatever previously cached required frame is
available instead of panicking if it doesn't have the exact frame
requested by `SkCodec::FrameInfo#fRequiredFrame`.
`SkCodec::FrameInfo#fRequiredFrame` doesn't point to the one and only
frame that's required to decode the given frame. It points to the latest
frame that's disposal method none and filling a greater surface area
than the current frame. The last required frame `MultiFrameCodec` has
actually cached is also valid in these cases and can be supplied as
`fPriorFrame` instead. [flutter/flutter#26757](https://github.com/flutter/flutter/issues/26757#issuecomment-459522530)
has a more detailed explanation.
Fixesflutter/flutter#26757
Update snapshot build rules to generate .o files instead of .S files on Windows to improve link times.
This mirrors build rules for snapshots in the Dart SDK.
This reverts commit 25559ed0779604d56c47c5d2341ffd16b137cd10.
Reason for revert: broken in AOT mode.
@pragma('vm:entry-point') placed on a function only instructs
the compiler to retain the function itself, but does not tell
compiler to generate and retain tear-off for this function.
In this PR _runMainZoned was marked as an entry-point but C++
code was trying to tear it off and use a closure, instead of
invoking it directly, which is not supported.
Reuses the implementation that was previously done for Scene.toImage
(see 20c805c973)
This introduces a breaking API change:
Picture.toImage is now asynchronous and returns a Future<Image>
Fixes https://github.com/flutter/flutter/issues/23621