Earlier, the dynamic service loader was part of the main application
bundle. But now, we package it into Flutter.framework and let the user
control "main". The old path was looking for the manifest in the wrong
spot.
This patch:
- makes dart traces (coming from the VM and the timeline API)
available to mojo:tracing
- adds --vm-complete-timeline parameter, which makes the Dart VM enable all
categories of timeline traces from the beginning, allowing to do startup
tracing
This is based on the equivalent support in dart content handler.
Fixes https://github.com/flutter/flutter/issues/3162.
We no longer provide the main function for Flutter apps on iOS. Instead, we
just provide Flutter.framework, and the end-developer provides main.
Also, remove unused build rules for building Runner.app. We don't build that
target anymore.
* Move node implementation to Objective C
This changes AccessibilityBridge::Node (C++) to be AccessibilityNode (objc)
in order to have the nodes returned directly as ui accessibility elements.
This buys us a few things:
1) We can now return an element tree instead of a flat list, thus negating
the need to maintain a global rect and global translation
2) We use less memory since we don't need to instantiate both nodes and
their ensuing accessibility elements
3) accessibility elements can now implement the methods necessary to respond
to events like user scrolling
https://github.com/flutter/flutter/issues/1664
Hosting this script inside the repo will let us change the contents of the SDK
without having to synchronize a change on the infrastructure and in the repo.
These Dart_GetField calls show up on traces. This patch removes almost all of
them from the Canvas interface. We still have a few in drawAltas and
drawVertices, which will be removed in a later patch.
After this patch, main_ios.mm now consumes Flutter.framework via public APIs.
This patch prepares us to move Flutter on iOS over to consuming
Flutter.framework as a binary artifact.
When there are no pending timers, we should sit in glfwWaitEvents instead of
continuously calling glfwPollEvents. This reduces CPU utilization
significantly.
In the new ParagraphConstraints code path, we weren't converting through
LayoutUnit, so we weren't getting the right overflow behavior for extremely
large double values. This resulted in test/rendering/block_test.dart failing.
We don't need to use an explict version of the script snapshotter that is
packaged with the iOS SDK. Instead, we can rely on the flutter command having a
working snapshotter.
All the headers for Flutter.framework are now in framework/Headers and all the
source files for Flutter.framework are now in framework/Source. Previously it
was unclear that FlutterAppDelegate and main_ios.mm weren't part of
Flutter.framework. (They still build as part of the framework, but that's
something I'll fix in a later patch.)