* 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
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.
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.
Dart_DebugName should be used just to make debug outputs more readable.
We remove the dependency from this API and form the UIDartState debug
name in the engine using the predefined format:
<script_uri>$main-<main_port>
This will allow the engine to change the format of the isolate name
without breaking the engine.
Related https://codereview.chromium.org/3004563003/
Without this, the cull rect calculated by an SkPicture may be truncated
to integer pixel coordinates. The raster cache relies on a precise cull
rect in logical coordinates.
See https://bugs.chromium.org/p/skia/issues/detail?id=6954
Both dart:core and dart:_internal export Symbol.
This is silently ignored by the VM but some tools (e.g. fasta) report a warning when processing dart:ui sources.
See https://github.com/dart-lang/sdk/issues/30127 for more details.
Compute the necessary texture resolution using more accurate scaling
information provided by Mozart scene node metrics events instead of the
device pixel ratio provided by the Mozart view properties (which we
might remove in the future).
This allows us to allocate smaller textures when a Flutter view is
being scaled down.
This action is triggered when the user swipes (in accessibility mode) to the last visible item of a scrollable list to bring that item fully on screen.
iOS implementation to follow.
* Revert "Revert "Reland "Run Flutter on iOS and Android with color correct Skia" (#3818)" (#3823)"
This reverts commit db8d8a9979901d05b011368226ad5bf61b1da13f.
* Fix test code to match internal API change
* 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
* Revert "Revert "Run Flutter on iOS and Android with color correct Skia (#3743)" (#3775)"
This reverts commit cfe70e07d386d6052267fe3772bbd641c8413a54.
* Enable sRGB on IO thread, too
* Add 4444 as a fallback rendering mode
* Use bare ptr to SkColorSpace (not sk_sp) in PrerollContext
This attempts to make the Canvas API and some related features more
likely to throw a Dart exception than crash when exposed to bad input.
Depends on rolling tonic to
https://fuchsia-review.googlesource.com/c/35742/ which this patch does
not yet do, but I wanted to put it up for review to see if it was even
a reasonable approach.
ASL was deprecated in iOS 10 and started causing SIGPIPE issues in iOS
10.3. Under the iOS 8 SDK, syslog() stopped working as of iOS 10.3
devices, with the result that ASL stdout/stderr forwarding was the only
means of logging. The engine now builds against the iOS 10 SDK, with
deployment target of iOS 8. Under this SDK, syslog() works correctly
across all supported OS versions.
NOTE: This is a temporary fix to get developers unblocked. While this
does fix the SIGPIPE issue and put iOS logging on par with the Android
solution, the intent is to move to a dedicated communication channel
with flutter_tools that isn't log-based.