Index: ios/chrome/browser/infobars/infobar.mm |
diff --git a/ios/chrome/browser/infobars/infobar.mm b/ios/chrome/browser/infobars/infobar.mm |
index 65f9a89fb97b0586dbd45f33da44648f61cd6e67..eb558cf185a0fc873ebfb57df09a817297aaa4d4 100644 |
--- a/ios/chrome/browser/infobars/infobar.mm |
+++ b/ios/chrome/browser/infobars/infobar.mm |
@@ -8,6 +8,7 @@ |
#include "components/infobars/core/confirm_infobar_delegate.h" |
#include "components/translate/core/browser/translate_infobar_delegate.h" |
#import "ios/chrome/browser/infobars/confirm_infobar_controller.h" |
+#include "ios/chrome/browser/translate/translate_infobar_tags.h" |
using infobars::InfoBar; |
using infobars::InfoBarDelegate; |
@@ -74,8 +75,41 @@ void InfoBarIOS::InfoBarButtonDidPress(NSUInteger button_id) { |
RemoveSelf(); |
} |
} else if (delegate()->AsTranslateInfoBarDelegate()) { |
- // TODO(droger): Upstream Translate infobars. |
- NOTREACHED() << "Translate infobars not upstreamed yet."; |
+ translate::TranslateInfoBarDelegate* translateDelegate = |
+ delegate()->AsTranslateInfoBarDelegate(); |
+ switch (button_id) { |
+ case TranslateInfoBarIOSTag::AFTER_DONE: |
+ InfoBarDidCancel(); |
+ break; |
+ case TranslateInfoBarIOSTag::AFTER_REVERT: |
+ translateDelegate->RevertTranslation(); |
+ break; |
+ case TranslateInfoBarIOSTag::BEFORE_ACCEPT: |
+ translateDelegate->Translate(); |
+ break; |
+ case TranslateInfoBarIOSTag::BEFORE_DENY: |
+ translateDelegate->TranslationDeclined(); |
+ if (translateDelegate->ShouldShowNeverTranslateShortcut()) |
+ translateDelegate->ShowNeverTranslateInfobar(); |
+ else |
+ RemoveSelf(); |
+ break; |
+ case TranslateInfoBarIOSTag::DENY_LANGUAGE: |
+ translateDelegate->NeverTranslatePageLanguage(); |
+ RemoveSelf(); |
+ break; |
+ case TranslateInfoBarIOSTag::DENY_WEBSITE: |
+ if (!translateDelegate->IsSiteBlacklisted()) |
+ translateDelegate->ToggleSiteBlacklist(); |
+ RemoveSelf(); |
+ break; |
+ case TranslateInfoBarIOSTag::MESSAGE: |
+ translateDelegate->MessageInfoBarButtonPressed(); |
+ break; |
+ default: |
+ NOTREACHED() << "Unexpected Translate button label"; |
+ break; |
+ } |
} |
} |