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

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

Issue 290573013: LanguageState should be owned by TranslateManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding TBR for CL Created 6 years, 6 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
« no previous file with comments | « components/translate/core/browser/translate_ui_delegate.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/translate/core/browser/translate_ui_delegate.cc
diff --git a/components/translate/core/browser/translate_ui_delegate.cc b/components/translate/core/browser/translate_ui_delegate.cc
index 30448f026e72654abc687d479eede8f30f61b659..78fc294b871d9842d713111b72765f97d7abcedf 100644
--- a/components/translate/core/browser/translate_ui_delegate.cc
+++ b/components/translate/core/browser/translate_ui_delegate.cc
@@ -31,17 +31,16 @@ const char kShowErrorUI[] = "Translate.ShowErrorUI";
} // namespace
-TranslateUIDelegate::TranslateUIDelegate(TranslateClient* translate_client,
- TranslateManager* translate_manager,
- const std::string& original_language,
- const std::string& target_language)
- : translate_client_(translate_client),
- translate_driver_(translate_client->GetTranslateDriver()),
+TranslateUIDelegate::TranslateUIDelegate(
+ const base::WeakPtr<TranslateManager>& translate_manager,
+ const std::string& original_language,
+ const std::string& target_language)
+ : translate_driver_(
+ translate_manager->translate_client()->GetTranslateDriver()),
translate_manager_(translate_manager),
original_language_index_(NO_INDEX),
initial_original_language_index_(NO_INDEX),
target_language_index_(NO_INDEX) {
- DCHECK(translate_client_);
DCHECK(translate_driver_);
DCHECK(translate_manager_);
@@ -86,7 +85,7 @@ TranslateUIDelegate::TranslateUIDelegate(TranslateClient* translate_client,
target_language_index_ = iter - languages_.begin();
}
- prefs_ = translate_client_->GetTranslatePrefs();
+ prefs_ = translate_manager_->translate_client()->GetTranslatePrefs();
}
TranslateUIDelegate::~TranslateUIDelegate() {}
@@ -103,7 +102,7 @@ void TranslateUIDelegate::OnErrorShown(TranslateErrors::Type error_type) {
}
const LanguageState& TranslateUIDelegate::GetLanguageState() {
- return translate_driver_->GetLanguageState();
+ return translate_manager_->GetLanguageState();
}
size_t TranslateUIDelegate::GetNumberOfLanguages() const {
@@ -162,16 +161,19 @@ void TranslateUIDelegate::Translate() {
prefs_->ResetTranslationDeniedCount(GetOriginalLanguageCode());
prefs_->IncrementTranslationAcceptedCount(GetOriginalLanguageCode());
}
- translate_manager_->TranslatePage(
- GetOriginalLanguageCode(), GetTargetLanguageCode(), false);
- UMA_HISTOGRAM_BOOLEAN(kPerformTranslate, true);
+ if (translate_manager_) {
+ translate_manager_->TranslatePage(
+ GetOriginalLanguageCode(), GetTargetLanguageCode(), false);
+ UMA_HISTOGRAM_BOOLEAN(kPerformTranslate, true);
+ }
}
void TranslateUIDelegate::RevertTranslation() {
- translate_manager_->RevertTranslation();
-
- UMA_HISTOGRAM_BOOLEAN(kRevertTranslation, true);
+ if (translate_manager_) {
+ translate_manager_->RevertTranslation();
+ UMA_HISTOGRAM_BOOLEAN(kRevertTranslation, true);
+ }
}
void TranslateUIDelegate::TranslationDeclined(bool explicitly_closed) {
@@ -185,9 +187,10 @@ void TranslateUIDelegate::TranslationDeclined(bool explicitly_closed) {
// translations when getting a LANGUAGE_DETERMINED from the page, which
// happens when a load stops. That could happen multiple times, including
// after the user already declined the translation.)
- translate_driver_->GetLanguageState().set_translation_declined(true);
-
- UMA_HISTOGRAM_BOOLEAN(kDeclineTranslate, true);
+ if (translate_manager_) {
+ translate_manager_->GetLanguageState().set_translation_declined(true);
+ UMA_HISTOGRAM_BOOLEAN(kDeclineTranslate, true);
+ }
if (!explicitly_closed)
UMA_HISTOGRAM_BOOLEAN(kDeclineTranslateDismissUI, true);
@@ -200,7 +203,9 @@ bool TranslateUIDelegate::IsLanguageBlocked() {
void TranslateUIDelegate::SetLanguageBlocked(bool value) {
if (value) {
prefs_->BlockLanguage(GetOriginalLanguageCode());
- translate_driver_->GetLanguageState().SetTranslateEnabled(false);
+ if (translate_manager_) {
+ translate_manager_->GetLanguageState().SetTranslateEnabled(false);
+ }
} else {
prefs_->UnblockLanguage(GetOriginalLanguageCode());
}
@@ -220,7 +225,9 @@ void TranslateUIDelegate::SetSiteBlacklist(bool value) {
if (value) {
prefs_->BlacklistSite(host);
- translate_driver_->GetLanguageState().SetTranslateEnabled(false);
+ if (translate_manager_) {
+ translate_manager_->GetLanguageState().SetTranslateEnabled(false);
+ }
} else {
prefs_->RemoveSiteFromBlacklist(host);
}
« no previous file with comments | « components/translate/core/browser/translate_ui_delegate.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698