| Index: lib/src/runner/browser/content_shell.dart
|
| diff --git a/lib/src/runner/browser/content_shell.dart b/lib/src/runner/browser/content_shell.dart
|
| index 2df48c32f4556fc00e457b6eb2158be793f3ea7e..6849e391a8ea83923021718c8d039e76703b04d6 100644
|
| --- a/lib/src/runner/browser/content_shell.dart
|
| +++ b/lib/src/runner/browser/content_shell.dart
|
| @@ -8,6 +8,9 @@ import 'dart:async';
|
| import 'dart:convert';
|
| import 'dart:io';
|
|
|
| +import 'package:stack_trace/stack_trace.dart';
|
| +
|
| +import '../../utils.dart';
|
| import '../application_exception.dart';
|
| import 'browser.dart';
|
|
|
| @@ -71,9 +74,20 @@ class ContentShell implements Browser {
|
| "latest/dartium/");
|
| }
|
|
|
| - if (exitCode != 0) throw "Content shell failed with exit code $exitCode.";
|
| - }).then(_onExitCompleter.complete)
|
| - .catchError(_onExitCompleter.completeError);
|
| + if (exitCode == 0) return null;
|
| +
|
| +
|
| + return UTF8.decodeStream(_process.stderr).then((error) {
|
| + throw new ApplicationException(
|
| + "Content shell failed with exit code $exitCode:\n$error");
|
| + });
|
| + }).then(_onExitCompleter.complete).catchError((error, stackTrace) {
|
| + if (stackTrace == null) stackTrace = new Trace.current();
|
| + _onExitCompleter.completeError(
|
| + new ApplicationException(
|
| + "Failed to start content shell: ${getErrorMessage(error)}."),
|
| + stackTrace);
|
| + });
|
| }
|
|
|
| Future close() {
|
|
|