Previously, cases like:
```dart
Color.lerp(const Color(0xFF00FF7F), const Color(0xFF00FFFF), 1.1)
```
...would result in unexpected effects (in this instance, lerping
between these colors with a curve that overshoots would take what
should be a simple animation from pale green to blue and add some
flickering bright green whenever it overshoots).
* Remove padding values in line_heights and glyph_position_x. Each value
in glyph_position_x now represents an actual glyph in the layout.
* Remove code intended to handle extra characters beyond the end of the
last line. The LineBreaker should ensure that the end of the last run
matches the end of the last line.
* Return the upstream/downstream affinity of the cursor position in
GetGlyphPositionAtCoordinate.
* Account for the space at the end of a word wrapped line in
GetGlyphPositionAtCoordinate / GetCoordinatesForGlyphPosition
This reverts commit 72c28f3a01 as it looks
like a potential cause of performance benchmark regressions on
https://flutter-dashboard.appspot.com/benchmarks.html:
- flutter_gallery_ios__transition_perf average_frame_build_time_millis
- flutter_gallery_ios__transition_perf missed_frame_build_budget_count
* Don't crash if there is only a single SemanticsNode
Previously, the code assumed that the root SemanticsNode will allways have a child. This is not true as can be seen in the hello_world example app, which would crash when a11y is turned on.
* review comment
If an isolate shuts down (for example if an app calls
Isolate.current.kill()), the UIDartState* on DartController will refer
to a freed object. This wires through notification that the is shutting
down through to the DartController so it can clean up appropriately.
This also makes gives the vm-service isolate an UIDartState* so that
the shutdown callback can behave correctly.
By adding these events the new developer centric timeline will be able
to identify and correlate events related to the different stages of the
drawing pipeline.
Roll Dart to 62045a4590a333ae557f8f261a909ee75449cd70
If an isolate shuts down (for example if an app calls
Isolate.current.kill()), the UIDartState* on DartController will refer
to a freed object. This wires through notification that the is shutting
down through to the DartController so it can clean up appropriately.
Skia tracing is extremely useful for internal debug, but reduces the
amount of space available in the Dart Timeline buffers.
Disable skia tracing by default and expose them via the --trace-skia
flag.
* Fix remaining ftl->fxl conversions
The previous scripting pass at this did not account for objective c file endings
* Update tonic DEPS reference to the post-fxl version