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

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: Tested for asan issue on linux 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
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..7db73c89c61ec6db315e6140cad65b1018ee7cbc 100644
--- a/components/translate/core/browser/translate_ui_delegate.cc
+++ b/components/translate/core/browser/translate_ui_delegate.cc
@@ -31,10 +31,11 @@ const char kShowErrorUI[] = "Translate.ShowErrorUI";
} // namespace
-TranslateUIDelegate::TranslateUIDelegate(TranslateClient* translate_client,
- TranslateManager* translate_manager,
- const std::string& original_language,
- const std::string& target_language)
+TranslateUIDelegate::TranslateUIDelegate(
+ TranslateClient* translate_client,
+ const base::WeakPtr<TranslateManager>& translate_manager,
+ const std::string& original_language,
+ const std::string& target_language)
: translate_client_(translate_client),
translate_driver_(translate_client->GetTranslateDriver()),
translate_manager_(translate_manager),
@@ -103,7 +104,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,14 +163,19 @@ void TranslateUIDelegate::Translate() {
prefs_->ResetTranslationDeniedCount(GetOriginalLanguageCode());
prefs_->IncrementTranslationAcceptedCount(GetOriginalLanguageCode());
}
- translate_manager_->TranslatePage(
- GetOriginalLanguageCode(), GetTargetLanguageCode(), false);
+
+ if (translate_manager_) {
droger 2014/06/05 08:36:35 Note: if translate_manager_ is NULL here, we will
nshaik 2014/06/05 18:45:30 Done.
+ translate_manager_->TranslatePage(
+ GetOriginalLanguageCode(), GetTargetLanguageCode(), false);
+ }
UMA_HISTOGRAM_BOOLEAN(kPerformTranslate, true);
}
void TranslateUIDelegate::RevertTranslation() {
- translate_manager_->RevertTranslation();
+ if (translate_manager_) {
+ translate_manager_->RevertTranslation();
+ }
UMA_HISTOGRAM_BOOLEAN(kRevertTranslation, true);
}
@@ -185,7 +191,9 @@ 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);
+ if (translate_manager_) {
+ translate_manager_->GetLanguageState().set_translation_declined(true);
+ }
UMA_HISTOGRAM_BOOLEAN(kDeclineTranslate, true);
@@ -200,7 +208,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 +230,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);
}

Powered by Google App Engine
This is Rietveld 408576698