anchor.diff:        process.exitCode.then((exitCode) {
           _logEvent("Browser closed with exitcode $exitCode");
           Future.wait([stdoutDone.future, stderrDone.future]).then((_) {
  -          if (_processClosed != null) _processClosed();
  -          if (_cleanup != null) _cleanup();
  -          if (onClose != null) onClose(exitCode);
  +          _processClosedCompleter.complete(exitCode);
           });
         });
         return true;
  
positive.code:    * Id of the browser
     */
    String id;
  
    /** Callback that will be executed when the browser has closed */
    Function onClose;
  
    /** Print everything (stdout, stderr, usageLog) whenever we add to it */
    bool debugPrint = false;
  
negative.code: 
        return new Directory('').createTemp().then((userDir) {
          _createPreferenceFile(userDir.path);
          _cleanup = () { userDir.deleteSync(recursive: true); };
          var args = ["-profile", "${userDir.path}",
                      "-no-remote", "-new-instance", url];
          return startBrowser(binary, args);
  