- 20 Jan, 2018 1 commit
-
-
Ian Hickson authored
* Move the splitting of licenses to an isolate This improves (from horrific to terrible) the performance of the license screen. It also introduces a feature in the foundation layer to make using isolates for one-off computations easier. The real problem that remains with this, though, is that transfering data between isolates is a stop-the-world operation and can take an absurd amount of time (far more than a few milliseconds), so we still skip frames. More work thus remains to be done. * - Add profile instrumentation to the isolate compute() method - Add profile instrumentation to the LicensePage - Add profile instrumentation to the scheduleTask method - Make scheduleTask support returning a value - Make the license page builder logic use scheduled tasks so that it doesn't blow the frame budget
-
- 19 Jan, 2018 1 commit
-
-
Ian Hickson authored
* Fix the confusing-zero case with NestedScrollView. * Update mock_canvas.dart * Update tabs_demo.dart * more tweaks
-
- 09 Jan, 2018 1 commit
-
-
xster authored
* Lock events during runApp's warm up frame * move to scheduler binding * let the one scheduleWarmUpFrame api always lock * tweak test
-
- 14 Dec, 2017 1 commit
-
-
xster authored
* Add more checks to scheduleWarmUpFrame * review * add test
-
- 09 Dec, 2017 1 commit
-
-
Ian Hickson authored
...instead of the engine.
-
- 17 Nov, 2017 1 commit
-
-
Greg Spencer authored
I got tired of drive-by spelling fixes, so I figured I'd just take care of them all at once. This only corrects errors in the dartdocs, not regular comments, and I skipped any sample code in the dartdocs. It doesn't touch any identifiers in the dartdocs either. No code changes, just comments.
-
- 21 Sep, 2017 1 commit
-
-
Alexandre Ardhuin authored
-
- 14 Sep, 2017 1 commit
-
-
Carlo Bernaschina authored
-
- 31 Aug, 2017 1 commit
-
-
Devon Carew authored
* Revert "Revert "fire service protocol events for frames (#11565)" (#11727)" This reverts commit f25e2f52. * move the postEvent() call into a separate method
-
- 22 Aug, 2017 2 commits
-
-
Devon Carew authored
This reverts commit 5f9acc41.
-
Devon Carew authored
-
- 04 Aug, 2017 1 commit
-
-
Ian Hickson authored
It was previously possible for event dispatch to occurr during the brief window where the tree had been marked dirty but before it had been relaid out by reassemble, which would cause assertions to fire if someone did a hot reload while touching the device.
-
- 27 Jul, 2017 2 commits
-
-
Devon Carew authored
This reverts commit 4b4cabb7.
-
Devon Carew authored
* fire service protocol extension events for frames * start time in micros * introduce a profile() function; only send frame events when in profile (or debug) modes * moved the profile() function to foundation/profile.dart * refactor to make the change more testable; test the change * fire service protocol events by listening to onFrameInfo * remove the frame event stream; add a devicelab test * remove a todo * final
-
- 21 Jul, 2017 1 commit
-
-
Ian Hickson authored
Mainly, this adds documentation to members that were previously lacking documentation. It also adds a big block of documentation about improving performance of widgets. This also removes some references to package:collection and adds global setEquals and listEquals methods in foundation that we can use. (setEquals in particular should be much faster than the package:collection equivalent, though both should be faster as they avoid allocating new objects.) All remaining references now qualify the import so we know what our remaining dependencies are. Also lots of code reordering in Flutter driver to make the code consistent and apply the style guide more thoroughly.
-
- 02 Jun, 2017 1 commit
-
-
Ian Hickson authored
This prevents some of our mixins from being subclassed. Also, move mixins to using 'extends' instead of 'implements' for future compatibility with Dart changes. Also, rename a class that had Mixin in the name but was not a mixin.
-
- 05 May, 2017 1 commit
-
-
Ian Hickson authored
-
- 02 May, 2017 1 commit
-
-
Ian Hickson authored
This splits the frame pipeline into two, beginFrame and drawFrame. As part of making this change I added some debugging hooks that helped debug the issues that came up: * I added debugPrintScheduleFrameStacks which prints a stack whenever a frame is actually scheduled, so you can see why frames are being scheduled. * I added some toString output to EditableText and RawKeyboardListener. * I added a scheduler_tester.dart library for scheduler library tests. * I changed the test framework to flush microtasks before pumping. * Some asserts that had the old string literal form were replaced by asserts with messages. I also fixed a few subtle bugs that this uncovered: * setState() now calls `ensureVisualUpdate`, rather than `scheduleFrame`. This means that calling it from an AnimationController callback does not actually schedule an extra redundant frame as it used to. * I corrected some documentation.
-
- 17 Mar, 2017 1 commit
-
-
Michael Goderbauer authored
Fixes #7793.
-
- 08 Mar, 2017 1 commit
-
-
Alexandre Ardhuin authored
-
- 04 Mar, 2017 1 commit
-
-
Chris Bracken authored
Covers lib/ in package:flutter.
-
- 02 Feb, 2017 1 commit
-
-
Ian Hickson authored
This allows us, for example, to wait for the slow mode banner to have been removed from the screen before triggering a screen shot.
-
- 06 Jan, 2017 1 commit
-
-
Ian Hickson authored
The assert helped me debug an issue recently. The TODO is obsolete.
-
- 24 Nov, 2016 1 commit
-
-
Chris Bracken authored
Q: What happens if we set time dilation to zero? A: It would be bad.
-
- 17 Nov, 2016 1 commit
-
-
Ian Hickson authored
(and minor doc changes) This will in the future allow Scrollable to not track the Simulation itself.
-
- 01 Nov, 2016 1 commit
-
-
Chris Bracken authored
-
- 26 Sep, 2016 1 commit
-
-
Ian Hickson authored
This requires all AnimationController objects to be given a TickerProvider, a class that can create the Ticker. It also provides some nice mixins for people who want to have their State provide a TickerProvider. And a schedulerTickerProvider for those cases where you just want to see your battery burn. Also, we now enforce destruction order for elements.
-
- 08 Sep, 2016 1 commit
-
-
Ian Hickson authored
Previously, pumpWidget() would do a partial pump (it didn't trigger Ticker callbacks or post-frame callbacks), and pump() would do a full pump. This patch brings them closer together. It also makes runApp run a full actual frame, rather than skipping the transient callback part of the frame logic. Having "half-frames" in the system was confusing and could lead to bugs where code expecting to run before the next layout pass didn't because a "half-frame" ran first. Also, make Tickers start ticking in the frame that they were started in, if they were started during a frame. This means we no longer spin a frame for t=0, we jump straight to the first actual frame. Other changes in this patch: * rename WidgetsBinding._runApp to WidgetsBinding.attachRootWidget, so that tests can use it to more accurately mock out runApp. * allow loadStructuredData to return synchronously. * make handleBeginFrame handle not being given a time stamp. * make DataPipeImageProvider.loadAsync protected (rather than private), and document it. There wasn't really a reason for it to be private. * fix ImageConfiguration.toString. * introduce debugPrintBuildScope and debugPrintScheduleBuildForStacks, which can help debug problems with widgets getting marked as dirty but not cleaned. * make debugPrintRebuildDirtyWidgets say "Building" the first time and "Rebuilding" the second, to make it clearer when a widget is first created. This makes debugging widget lifecycle issues much easier. * make debugDumpApp more resilient. * debugPrintStack now takes a label that is printed before the stack. * improve the banner shown for debugPrintBeginFrameBanner. * various and sundry documentation fixes
-
- 29 Aug, 2016 1 commit
-
-
Ian Hickson authored
1: If a route is already dismissed when it's popped, there's no point trying to animate heroes, because it's going to be gone before the heroes code can look at it. 2: If a hero animation finishes just as a new one is starting, we previously blew away the state for the starting one. Now we correctly segregate the "starting up quest" variables from the "actively ongoing quest" variables.
-
- 03 Aug, 2016 1 commit
-
-
Ian Hickson authored
Adds Scheduler.debugPrintTransientCallbackRegistrationStack so that you can find out how your current callback got registered.
-
- 29 Jul, 2016 1 commit
-
-
Ian Hickson authored
And make Scrollbar work with LazyBlock. And an about box to the Stocks sample app.
-
- 28 Jul, 2016 1 commit
-
-
Ian Hickson authored
- show the next error fully after a hot reload - hide _AssertionError in stacks - immediately rebuild after a reassemble, so that hit tests work - catch errors when notifying global key listeners
-
- 27 Jul, 2016 1 commit
-
-
Adam Barth authored
Also, add a few more debugging flags.
-
- 15 Jul, 2016 1 commit
-
-
Hans Muller authored
-
- 23 Jun, 2016 2 commits
-
-
Adam Barth authored
-
Adam Barth authored
Also, fix the bug where apps would assert when you change the time dilation. Use that mechanism to fix the animation controller tests.
-
- 02 Jun, 2016 1 commit
-
-
Adam Barth authored
All of the public APIs in rendering.dart now have dartdocs.
-
- 25 May, 2016 1 commit
-
-
Adam Barth authored
For consistency. Fixes #4142
-
- 18 May, 2016 1 commit
-
-
Ian Hickson authored
Don't suggest filing an issue when we can definitively say that the assertion in question was not thrown from within the flutter package. Fixes https://github.com/flutter/flutter/issues/3812. Put the stack trace first after the message, with more details below the stack trace, since the stack is often very useful and the stacks are no longer stupidly long. Better document the 'rescheduling' feature, and improve the error handling asserts when it is misused. Fixes https://github.com/flutter/flutter/issues/3888. Improve the wording around the stack dump for exceptions during callbacks. Improve the color and font size of messages in live tests. Fixes https://github.com/flutter/flutter/issues/4018.
-
- 16 May, 2016 1 commit
-
-
Ian Hickson authored
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.
-