* preserve Window callback zones
Run Window callbacks in the zone they are registered in. This is consistent with how other native API work, such as `scheduleMicrotask`, `Timer`, and `dart:io`. This also enables the developers to use the `Zone` API to capture and log unhandled Dart errors.
* refactor wrapping
* new line
* fewer if checks; group getters/setters/fields
* inline _invokeOnPointerDataPacket
**This is a breaking change on iOS**
Previously, the `paused` state was entered when the application resigned
active status. `inactive` now maps to this status. `paused` now maps to
an app that has been backgrounded.
`inactive` is currently emitted on iOS only and corresponds to iOS's
foreground inactive state.
Current state transitions are:
`resumed` <--> `inactive` <--> `paused`
suspending is currently emitted on Android only and corresponds to the
transition to Android's stopped state.
Current state transitions are:
`resumed` <--> `paused` --> `suspending` --> `resumed`
These transitions may change in future.
This patch prepares us to switch sending semantics information over mojom to
using dart:ui directly. Currently the recorded information is dropped on the
floor, but that will improve in future patches.
Rather than using mojom to encode pointer data, we now encode and decode it
manually. A future patch will remove the mojom codepath once the framework is
updated.
This patch makes three API changes:
* The dart:ui library now always communicates in physical pixels. The
framework is responsible for converting to whatever logical coordinate
system it wishes to use.
* The textBaselien property is now on TextStyle rather than ParagraphStyle,
which will let us choose which baseline to use on a per-span basis rather
than on a per-paragraph basis.
* This patch also removes the old MojoServices function endpoints.
Fixes https://github.com/flutter/flutter/issues/3779
Fixes https://github.com/flutter/flutter/issues/1360
Also, rename SkyViewClient to RuntimeDelegate. These names are more
sensible.
This patch also cleans up the RuntimeDelegate a bit, for example by
removing support for flushing real-time events, which aren't used.
This change disentangles the build for the snapshotter from the main engine
build. Also, we now have all the Dart files for dart:ui in the same directory.