* Add a "build" phase to EnginePhase for completeness.
* Ignore events from the device during test execution.
* More dartdocs
* Slightly more helpful messages about Timers in verifyInvariants.
* Add widgetList, elementList, stateList, renderObjectList.
* Send test events asynchronously for consistency with other APIs.
* Fix a test that was depending on test events being synchronous (or
rather, scheduled in a microtask that came before the microtask for
the completer of the future that the tap() function returned).
This also fixes some related problems affecting "flutter run":
* FLXes built during AndroidDevice.startApp need to match the build mode
* APKs should always be rebuilt if the build mode uses AOT compilation
According to the profile for the flow manual test, we're spending the vast
majority of our time recording timeline traces. This patch removes the timeline
traces, which greatly improves performance.
Also, optimize TransformLayer to avoid one matrix memcpy. I filed
https://github.com/google/vector_math.dart/issues/166 about an API that would
make this even faster.
SInce this is a subset of `always_specify_types` I think we can safely remove it.
In practice, if you violate you get doubly nagged:
```
[lint] Type annotate public APIs. (packages/flutter_tools/lib/src/dart/runner.dart, line 5, col 1)
[lint] Declare method return types. (packages/flutter_tools/lib/src/dart/runner.dart, line 5, col 1)
```
One warning is probably enough to get the message across? ;)
This makes it possible to substitute 'flutter run' for 'flutter test'
and actually watch a test run on a device.
For any test that depends on flutter_test:
1. Remove any import of 'package:test/test.dart'.
2. Replace `testWidgets('...', (WidgetTester tester) {`
with `testWidgets('...', (WidgetTester tester) async {`
3. Add an "await" in front of calls to any of the following:
* tap()
* tapAt()
* fling()
* flingFrom()
* scroll()
* scrollAt()
* pump()
* pumpWidget()
4. Replace any calls to `tester.flushMicrotasks()` with calls to
`await tester.idle()`.
There's a guarding API that you can use, if you have particularly
complicated tests, to get better error messages. Search for
TestAsyncUtils.
Remove the unimplemented `more` option from the copy/paste toolbar.
Punting this feature for the near time, so I'm removing the dead option
from the toolbar.
This reverts commit 55f9145ef4fb7a7f4b4738740d5848ff745ae076.
Turns out that this commit breaks apps that use the material library,
because of the _errorTextStyle DefaultTextStyle which has inherit:true.
Just setting it to false doesn't work, unfortunately, because then you
hit some sort of issue with merging that text style with others that
have inherit:true.
To make it clear that this constructor requires an explicit style. Also
throw a descriptive error recommending the inherit constructor for
styles with the inherit bit set.
Fixes#3842
* add a webmaster tools verification file
* also put the verification file at the root of our bucket
* add comment for when we can simplify this script
- Handles appear with tap or long press.
- Toolbar appears with long press on text, or tap on handle.
- Correct toolbar items shown depending on context.
* rename service_protocol.dart to protocol_discovery.dart
* add a wrapper around the obs. protocol
* use json-rpc in run
* consolidate obs. code; implement flutter run --benchmark
* review comments