anchor.diff:  
     void _handleAuthError(context) {
       String message = 'Authorization error. Bad username or password.';
  -    Function errorAction = () {
  +    Function okAction = () {
         _showAuthDialog(context);
       };
       spark.askUserOkCancel(message,
  -        okButtonLabel: 'Login Again', title: 'Push failed');
  +        okButtonLabel: 'Login Again', title: 'Push failed', okAction: okAction);
     }
   
     void _push() {
  
positive.code:   Completer<bool> _okCancelCompleter;
  
    Future<bool> askUserOkCancel(String message,
        {String okButtonLabel: 'OK', String title: ""}) {
      // TODO(ussuri): Polymerize.
      if (_okCancelDialog == null) {
        _okCancelDialog = createDialog(getDialogElement('#okCancelDialog'));
  
negative.code:       container.children.add(lineElement);
      }
  
      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();
  