This patch changes how we lookup native functions from Dart to be more
extensible. This patch paves the way for removing the dart:ui_internals
library.
I left this code along in my uber patch to remove the DOM and CSS, but it's
just as dead. Also, move lone files out of dead directories into more sensible
places.
The NewTextPainter is still disabled by default. A future patch will flip the
flag to enable it.
This patch uses a new approach to writing bindings by encoding data into array
buffers. This approach is more efficient than the existing IDL based approach.
If this works out well, we should convert our other performance-sensitive
interfaces to this approach in future patches.
Instead, we can just concatenate the records together, which means you can view
the generated trace file without post-processing. Also, I've made the trace
file world-readable, so that you can trace a device without needing root
access.
* Remove most of mojo/dart/embedder
* Update roll.py to only import a subset of mojo/dart/embedder
* Add mojo/dart/observatory
* Update mojo_sdk_revision to get fixes to dart_pkg.py
- truncate pixel values to 1dp since there's really no point being told
the Size is 302.98732587287 by 648.28498579187.
- describe more Widgets so that debugDumpApp() is more useful.
- remove bufferValue from ProgressIndicator (cc @hansmuller) since it's
not yet implemented.
- half-hearted toString() for ThemeData. There's no point making a
complete one, since it would cause line-wrap even on big monitors in
debugDumpApp dumps, and you can easily get the actual values from a
debugging if that's the issue.
- flesh out BoxConstraints.toString() so that fully unconstrained and
fully infinite constraints are called out explicitly. I experimented
with adding even more special cases, e.g. calling out unconstrained
widths with fixed heights, etc, but it made the output less readable.
- remove a redundant _updateVariable() in AnimatedContainer (cc
@abarth).
- add more information to RenderView.toString().
Introduce a class that can describe the metrics used in a Positioned
widget, to enable easier manipulation and storage of the values, e.g.
for animation purposes.
Roll Dart runtime forward to:
6aab1cecb25f8e04087320f2082336073628afb4
Roll Observatory pub packages to:
5c199c5954146747f75ed127871207718dc87786
---
Update to new isolate create callback signature.
Add type annotations in many places.
Fix some identifiers to have more lint-satisfying names.
Make all operator==s consistent in style.
Reorder some functions for consistency.
Make ParentData no longer dynamic, and fix all the code around that.
This patch starts down the process of cleaning up the dart:ui API. In this
approach, we use Dart code to specify the interface instead of IDL. The code in
this patch is far from complete. It's just a sketch to see how this sort of
approach might work.
Currently we run some tasks on the UI thread that shouldn't block the frame,
such as decoding images. This patch introduces a background thread on which we
can run these tasks.
This is a fix for bug #1325. The test framework is running the test code
as a microtask using DartInvokeAppClosure. If the test causes a compilation
error, the test framework Dart code can not catch it. The invocation in
sky_shell will return a compilation error handle. The sky_shell process
will not shut down, and the test framework will hang.
This change will cause sky_shell to shut down on a compilation error in
the test microtask.
- Rename EdgeDims constructor to EdgeDims.TRBL().
- Add operator== to Size and Offset so that you can compare Size to
DebugSize in checked mode.
- Add Size.lerp().
- Add various operators to EdgeDims. (*, /, ~/, %)
- Add EdgeDims.lerp().
- Update style guide. I went there to fix an EdgeDims constructor
example, and stayed because some recent things came up and I wanted to
add them before I forgot.
Dart code now supports the full flow that the C++ code used to: version check,
download, replace app bundle. Bonus: the Dart code is much easier to follow,
thanks to async/await!
This is part 2 of a 3-part change. The first part added new mojom
interfaces, PathService and UpdateService, to the sky_services package.