Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3604)

Unified Diff: chrome/browser/translate/translate_infobar_delegate.cc

Issue 19596002: [Translate] Return before the new delegate is created if needed (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>());

Powered by Google App Engine
This is Rietveld 408576698