Index: chrome/browser/translate/translate_infobar_delegate.cc |
diff --git a/chrome/browser/translate/translate_infobar_delegate.cc b/chrome/browser/translate/translate_infobar_delegate.cc |
index 20a5b0a7d4bc0f0014fc80c97ed6b834d3aa98bb..b1345b622aad402f661cc5a49a9ea57254570633 100644 |
--- a/chrome/browser/translate/translate_infobar_delegate.cc |
+++ b/chrome/browser/translate/translate_infobar_delegate.cc |
@@ -67,6 +67,18 @@ void TranslateInfoBarDelegate::Create( |
break; |
} |
+ // Do not create the after translate infobar if we are auto translating. |
+ if (infobar_type == TranslateInfoBarDelegate::AFTER_TRANSLATE || |
+ infobar_type == TranslateInfoBarDelegate::TRANSLATING) { |
+ TranslateTabHelper* translate_tab_helper = |
+ TranslateTabHelper::FromWebContents(infobar_service->web_contents()); |
+ if (!translate_tab_helper || |
+ translate_tab_helper->language_state().InTranslateNavigation()) { |
+ DCHECK(!old_delegate); |
Takashi Toyoshima
2013/07/17 17:02:08
I agreed this DCHECK is always correct.
But I'd li
Peter Kasting
2013/07/17 18:06:19
I don't know whether the DCHECK here is important.
|
+ return; |
+ } |
+ } |
+ |
// Create the new delegate. |
scoped_ptr<TranslateInfoBarDelegate> infobar( |
new TranslateInfoBarDelegate(infobar_type, error_type, infobar_service, |
@@ -74,16 +86,6 @@ void TranslateInfoBarDelegate::Create( |
original_language, target_language)); |
infobar->UpdateBackgroundAnimation(old_delegate); |
- // Do not create the after translate infobar if we are auto translating. |
- if (infobar_type == TranslateInfoBarDelegate::AFTER_TRANSLATE || |
- infobar_type == TranslateInfoBarDelegate::TRANSLATING) { |
- TranslateTabHelper* translate_tab_helper = |
- TranslateTabHelper::FromWebContents(infobar_service->web_contents()); |
- if (!translate_tab_helper || |
- translate_tab_helper->language_state().InTranslateNavigation()) |
- return; |
- } |
- |
// Add the new delegate if necessary. |
if (!old_delegate) { |
infobar_service->AddInfoBar(infobar.PassAs<InfoBarDelegate>()); |