| Index: chrome/browser/ui/views/translate/translate_bubble_view.cc
 | 
| diff --git a/chrome/browser/ui/views/translate/translate_bubble_view.cc b/chrome/browser/ui/views/translate/translate_bubble_view.cc
 | 
| index c0b4c52cde350609be1a01598421203618a3da87..940169671b9a5ed06a15f301e4cbb45bf7f19b5b 100644
 | 
| --- a/chrome/browser/ui/views/translate/translate_bubble_view.cc
 | 
| +++ b/chrome/browser/ui/views/translate/translate_bubble_view.cc
 | 
| @@ -297,6 +297,8 @@ TranslateBubbleView::TranslateBubbleView(
 | 
|        source_language_combobox_(NULL),
 | 
|        target_language_combobox_(NULL),
 | 
|        always_translate_checkbox_(NULL),
 | 
| +      advanced_cancel_button_(NULL),
 | 
| +      advanced_done_button_(NULL),
 | 
|        model_(model.Pass()),
 | 
|        is_in_incognito_window_(
 | 
|            web_contents ?
 | 
| @@ -342,8 +344,15 @@ void TranslateBubbleView::HandleButtonPressed(
 | 
|      case BUTTON_ID_DONE: {
 | 
|        if (always_translate_checkbox_)
 | 
|          model_->SetAlwaysTranslate(always_translate_checkbox_->checked());
 | 
| -      translate_executed_ = true;
 | 
| -      model_->Translate();
 | 
| +      if (model_->IsPageTranslatedInCurrentLanguages()) {
 | 
| +        model_->GoBackFromAdvanced();
 | 
| +        UpdateChildVisibilities();
 | 
| +        SizeToContents();
 | 
| +      } else {
 | 
| +        translate_executed_ = true;
 | 
| +        model_->Translate();
 | 
| +        SwitchView(TranslateBubbleModel::VIEW_STATE_TRANSLATING);
 | 
| +      }
 | 
|        break;
 | 
|      }
 | 
|      case BUTTON_ID_CANCEL: {
 | 
| @@ -719,13 +728,13 @@ views::View* TranslateBubbleView::CreateViewAdvanced() {
 | 
|    layout->AddView(CreateLink(this,
 | 
|                               IDS_TRANSLATE_BUBBLE_LEARN_MORE,
 | 
|                               LINK_ID_LEARN_MORE));
 | 
| -  views::LabelButton* cancel_button = CreateLabelButton(
 | 
| +  advanced_cancel_button_ = CreateLabelButton(
 | 
|        this, l10n_util::GetStringUTF16(IDS_CANCEL), BUTTON_ID_CANCEL);
 | 
| -  layout->AddView(cancel_button);
 | 
| -  views::LabelButton* done_button = CreateLabelButton(
 | 
| +  layout->AddView(advanced_cancel_button_);
 | 
| +  advanced_done_button_ = CreateLabelButton(
 | 
|        this, l10n_util::GetStringUTF16(IDS_DONE), BUTTON_ID_DONE);
 | 
| -  done_button->SetIsDefault(true);
 | 
| -  layout->AddView(done_button);
 | 
| +  advanced_done_button_->SetIsDefault(true);
 | 
| +  layout->AddView(advanced_done_button_);
 | 
|  
 | 
|    UpdateAdvancedView();
 | 
|  
 | 
| @@ -739,12 +748,15 @@ void TranslateBubbleView::SwitchView(
 | 
|  
 | 
|    model_->SetViewState(view_state);
 | 
|    UpdateChildVisibilities();
 | 
| +  if (view_state == TranslateBubbleModel::VIEW_STATE_ADVANCED)
 | 
| +    UpdateAdvancedView();
 | 
|    SizeToContents();
 | 
|  }
 | 
|  
 | 
|  void TranslateBubbleView::UpdateAdvancedView() {
 | 
|    DCHECK(source_language_combobox_);
 | 
|    DCHECK(target_language_combobox_);
 | 
| +  DCHECK(advanced_done_button_);
 | 
|  
 | 
|    string16 source_language_name =
 | 
|        model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex());
 | 
| @@ -758,4 +770,11 @@ void TranslateBubbleView::UpdateAdvancedView() {
 | 
|      always_translate_checkbox_->SetChecked(
 | 
|          model_->ShouldAlwaysTranslate());
 | 
|    }
 | 
| +
 | 
| +  string16 label;
 | 
| +  if (model_->IsPageTranslatedInCurrentLanguages())
 | 
| +    label = l10n_util::GetStringUTF16(IDS_DONE);
 | 
| +  else
 | 
| +    label = l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT);
 | 
| +  advanced_done_button_->SetText(label);
 | 
|  }
 | 
| 
 |