anchor.diff:  
     void _handleAuthError(context) {
       String message = 'Authorization error. Bad username or password.';
  -    Function okAction = () {
  -      _showAuthDialog(context);
  -    };
  -    spark.askUserOkCancel(message,
  -        okButtonLabel: 'Login Again', title: 'Push failed', okAction: okAction);
  +
  +    spark.askUserOkCancel(message, okButtonLabel: 'Login Again', title: 'Push failed')
  +        .then((bool value) {
  +      if (value) {
  +        _showAuthDialog(context);
  +      }
  +    });
     }
   
     void _push() {
  
positive.code: 
      SparkDialogButton okButton = _okCancelDialog.getElement('#okText');
      _okCancelDialog.getElement('#okText').text = okButtonLabel;
  
      if (okAction != null) {
        okButton.onClick.listen((_) {
          // Ensures that errorDialog closes before the action.
          Timer.run(() {
            okAction();
          });
        });
      }
  
      _okCancelCompleter = new Completer();
      _okCancelDialog.show();
  
negative.code:   /**
     * Show a model error dialog.
     */
    void showErrorMessage(String title, String message) {
      // TODO(ussuri): Polymerize.
      if (_errorDialog == null) {
        _errorDialog = createDialog(getDialogElement('#errorDialog'));
  