Each stack trace will yield many async task stacks for every write request
that is in flight. If the device side is unresponsive and all writes are
failing, then this can generate an overwhelming amount of logs.
Fixes https://github.com/flutter/flutter/issues/7351
When a test runs to completion, the test harness closes the stream side of the
StreamChannel, causing the sink side to be closed as well. So by the time we
receive a test result of completed/harnessBailed, the controller sink has been
closed.
- better documentation
- verify (at run time) that onNotification doesn't return null, and
report copious helpful information if it does.
- add a toString/debugFillDescription convention to Notification.
- actually test Notification
This removes direct file access from within flutter_tools
in favor of using `package:file` via a `FileSystem` that's
accessed via the `ApplicationContext`.
This lays the groundwork for us to be able to easily swap
out the underlying file system when running Flutter tools,
which will be used to provide a record/replay file system,
analogous to what we have for process invocations.
LayoutCallback passes constraints to the callback, but the constraints
object has a different type for different subclasses. This lets you
call invokeLayoutCallback() with a specific type to verify that
everything is working as expected.
Other changes:
Slightly improve the error reporting in RenderObject.
Allow toStringShallow on RenderObject to have its separator configured.
Also, make hasOneLineDescription more discerning.
Also, add a test for hasOneLineDescription.
Also, add a test for GravitySimulation, to test the toString.
- more dartdocs for the drag typedefs
- more toStrings to aid debugging
- require the position for DragUpdateDetails since we were omitting it
in some places
- add the primaryVelocity to DragEndDetails so that consumers don't
have to themselves track the axis in question
- fix the velocity tracker so that it doesn't walk the null data.
Previously, near time t=0 (which pretty much only matters in tests,
but it does matter there) we would walk the velocity data and then
also walk missing data, treating it as Point.zero with t=0.
- simplify some of the velocity tracker; e.g. instead of trying (and
failing?) to clear the velocity tracker when the pointer stalls,
just drop the data before a stall during the velocity estimation
(where we redundantly had another bigger horizon anyway).
Previously, SizeChangedLayoutNotifier fired a notification even for
the first layout.
Also, previously its test relied on that, and didn't actually change
size at all. This fixes the test as well.
Also, rename SizeChangedLayoutNotificaion to SizeChangedLayoutNotification.
```dart
expect(x, moreOrLessEquals(0.0));
```
...for those cases where `x` might be 1e-11 or whatever.
Also, be more resilient when dumping the tree from inside the test framework.
Also, add an assert that helped me debug something the other day.
This lets you use `Listenable.merge` without having to sanitize your
incoming list of change notifiers, in case your semantics are that
they are optional.
This patch changes the default appearance of Slider to not have the
thumb be an open circle at its minimum position. The `thumbOpenAtMin`
property can enable drawing an open thumb at the min position, which was
the previous behavior.
Fixes#6941
We were trying to update the tooltip overlay entry, but that cannot work
because the overlay entry might have already built. Instead, we keep the
old value.
Fixes#7151