| Index: lib/src/runner/browser/server.dart
|
| diff --git a/lib/src/runner/browser/server.dart b/lib/src/runner/browser/server.dart
|
| index e4b9d853c625d6b1061107fe6dec110654e04388..8c9bcf92ce0210222eaa26e2398d80ef314fcc98 100644
|
| --- a/lib/src/runner/browser/server.dart
|
| +++ b/lib/src/runner/browser/server.dart
|
| @@ -431,7 +431,11 @@ void main() {
|
|
|
| // TODO(nweiz): Gracefully handle the browser being killed before the
|
| // tests complete.
|
| - browser.onExit.catchError((error, stackTrace) {
|
| + browser.onExit.then((_) {
|
| + if (completer.isCompleted) return;
|
| + if (!_closed) return;
|
| + completer.complete(null);
|
| + }).catchError((error, stackTrace) {
|
| if (completer.isCompleted) return;
|
| completer.completeError(error, stackTrace);
|
| });
|
| @@ -463,10 +467,7 @@ void main() {
|
| /// resources have been fully released.
|
| Future close() {
|
| return _closeThunk.run(() async {
|
| - var futures = _browserManagers.keys.map((platform) async {
|
| - await _browserManagers[platform];
|
| - await _browsers[platform].close();
|
| - }).toList();
|
| + var futures = _browsers.values.map((browser) => browser.close()).toList();
|
|
|
| futures.add(_server.close());
|
| futures.add(_compilers.close());
|
|
|