| Index: lib/src/runner/browser/browser_manager.dart
|
| diff --git a/lib/src/runner/browser/browser_manager.dart b/lib/src/runner/browser/browser_manager.dart
|
| index 6fd0a8abeb5b6fc4b3622abc1ad54e7a93bcd747..456ca47a08bce85346de4959e7517681b1eea14a 100644
|
| --- a/lib/src/runner/browser/browser_manager.dart
|
| +++ b/lib/src/runner/browser/browser_manager.dart
|
| @@ -50,7 +50,12 @@ class BrowserManager {
|
| // Create a nested MultiChannel because the iframe will be using a channel
|
| // wrapped within the host's channel.
|
| suiteChannel = new MultiChannel(suiteChannel.stream, suiteChannel.sink);
|
| - return suiteChannel.stream.first.then((response) {
|
| +
|
| + // The stream may close before emitting a value if the browser is killed
|
| + // prematurely (e.g. via Control-C).
|
| + return maybeFirst(suiteChannel.stream).then((response) {
|
| + if (response == null) return null;
|
| +
|
| if (response["type"] == "loadException") {
|
| return new Future.error(new LoadException(path, response["message"]));
|
| } else if (response["type"] == "error") {
|
|
|