// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/scheduler.dart';
@Deprecated('animation_tester is not compatible with dart:async')
class Future { } // so that people can't import us and dart:async
void tick(Duration duration) {
// We don't bother running microtasks between these two calls
// because we don't use Futures in these tests and so don't care.
SchedulerBinding.instance.handleBeginFrame(duration);
SchedulerBinding.instance.handleDrawFrame();
}
-
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.
e8c46927