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

Unified Diff: components/translate/core/browser/translate_infobar_delegate.cc

Issue 2894553002: Replace OnPageTranslate Obsever by a responder of delegate. (Closed)
Patch Set: fix Created 3 years, 7 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: components/translate/core/browser/translate_infobar_delegate.cc
diff --git a/components/translate/core/browser/translate_infobar_delegate.cc b/components/translate/core/browser/translate_infobar_delegate.cc
index 1ca24c8e7dda38048ce612f9df423a68aebf6bba..e6df58584d2b5e929ebf1fc29f145a4a0ce53358 100644
--- a/components/translate/core/browser/translate_infobar_delegate.cc
+++ b/components/translate/core/browser/translate_infobar_delegate.cc
@@ -101,12 +101,18 @@ void TranslateInfoBarDelegate::Create(
old_infobar = infobar_manager->infobar_at(i);
old_delegate = old_infobar->delegate()->AsTranslateInfoBarDelegate();
if (old_delegate) {
- if (!replace_existing_infobar || IsCompactUIEnabled())
+ if (!replace_existing_infobar)
return;
break;
}
}
+ // Try to reuse existing translate infobar delegate.
+ if (old_delegate && old_delegate->responder_) {
+ old_delegate->responder_->ActionOnStep(step, error_type);
+ return;
+ }
+
// Add the new delegate.
TranslateClient* translate_client = translate_manager->translate_client();
std::unique_ptr<infobars::InfoBar> infobar(translate_client->CreateInfoBar(
@@ -124,6 +130,10 @@ bool TranslateInfoBarDelegate::IsCompactUIEnabled() {
return base::FeatureList::IsEnabled(kTranslateCompactUI);
}
+void TranslateInfoBarDelegate::SetResponder(Responder* responder) {
+ responder_ = responder;
+}
+
void TranslateInfoBarDelegate::UpdateOriginalLanguage(
const std::string& language_code) {
ui_delegate_.UpdateOriginalLanguage(language_code);

Powered by Google App Engine
This is Rietveld 408576698