Chromium Code Reviews| 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 5c6a862665f38487334fdb5717b6809e61c6dade..8ebde497758a3559e2d5d2172b744db5fa2d5399 100644 |
| --- a/components/translate/core/browser/translate_ui_delegate.cc |
| +++ b/components/translate/core/browser/translate_ui_delegate.cc |
| @@ -205,6 +205,7 @@ std::string TranslateUIDelegate::GetTargetLanguageCode() const { |
| void TranslateUIDelegate::Translate() { |
| if (!translate_driver_->IsOffTheRecord()) { |
| prefs_->ResetTranslationDeniedCount(GetOriginalLanguageCode()); |
| + prefs_->ResetTranslationIgnoredCount(GetOriginalLanguageCode()); |
| prefs_->IncrementTranslationAcceptedCount(GetOriginalLanguageCode()); |
| } |
| @@ -223,11 +224,15 @@ void TranslateUIDelegate::RevertTranslation() { |
| } |
| void TranslateUIDelegate::TranslationDeclined(bool explicitly_closed) { |
| - if (explicitly_closed && !translate_driver_->IsOffTheRecord()) { |
| + if (!translate_driver_->IsOffTheRecord()) { |
| const std::string& language = GetOriginalLanguageCode(); |
| - prefs_->ResetTranslationAcceptedCount(language); |
| - prefs_->IncrementTranslationDeniedCount(language); |
| - prefs_->UpdateLastDeniedTime(language); |
| + if (explicitly_closed) { |
|
groby-ooo-7-16
2016/04/27 19:08:25
Can we get unit tests?
|
| + prefs_->ResetTranslationAcceptedCount(language); |
| + prefs_->IncrementTranslationDeniedCount(language); |
| + prefs_->UpdateLastDeniedTime(language); |
| + } else { |
| + prefs_->IncrementTranslationIgnoredCount(language); |
| + } |
| } |
| // Remember that the user declined the translation so as to prevent showing a |
| @@ -249,11 +254,14 @@ bool TranslateUIDelegate::IsLanguageBlocked() { |
| return prefs_->IsBlockedLanguage(GetOriginalLanguageCode()); |
| } |
| + |
|
groby-ooo-7-16
2016/04/27 19:08:25
nit:Please remove
ftang
2016/04/27 21:43:16
Done.
|
| void TranslateUIDelegate::SetLanguageBlocked(bool value) { |
| if (value) { |
| prefs_->BlockLanguage(GetOriginalLanguageCode()); |
| - if (translate_manager_) { |
| - translate_manager_->GetLanguageState().SetTranslateEnabled(false); |
| + if (!base::FeatureList::IsEnabled(kTranslateUI2016Q2)) { |
| + if (translate_manager_) { |
|
groby-ooo-7-16
2016/04/27 19:08:25
Why are we not resetting TranslateEnabled for the
ftang
2016/04/27 21:43:16
In the new ui, the omnibar icon is always shown, r
groby-ooo-7-16
2016/04/29 05:26:14
Ah, I understand - thanks for the explanation. Wou
|
| + translate_manager_->GetLanguageState().SetTranslateEnabled(false); |
| + } |
| } |
| } else { |
| prefs_->UnblockLanguage(GetOriginalLanguageCode()); |
| @@ -274,8 +282,10 @@ void TranslateUIDelegate::SetSiteBlacklist(bool value) { |
| if (value) { |
| prefs_->BlacklistSite(host); |
| - if (translate_manager_) { |
| - translate_manager_->GetLanguageState().SetTranslateEnabled(false); |
| + if (!base::FeatureList::IsEnabled(kTranslateUI2016Q2)) { |
| + if (translate_manager_) { |
| + translate_manager_->GetLanguageState().SetTranslateEnabled(false); |
| + } |
| } |
| } else { |
| prefs_->RemoveSiteFromBlacklist(host); |
| @@ -289,6 +299,17 @@ bool TranslateUIDelegate::ShouldAlwaysTranslate() { |
| GetTargetLanguageCode()); |
| } |
| +bool TranslateUIDelegate::ShowAlwaysTranslateChecked() { |
| + return ShouldAlwaysTranslate() || |
| + // After 2 clicks on Translate for the same language. |
| + // it is == 2 not >2 because if the user translate with always on |
| + // the next time the bubble won't show up. So the only chance the |
| + // bubble will show up is if the user uncheck the Always translate, |
| + // but in that case since user explictly uncheck, we should show |
| + // as uncheck. |
| + prefs_->GetTranslationAcceptedCount(GetOriginalLanguageCode()) == 3; |
| +} |
| + |
| void TranslateUIDelegate::SetAlwaysTranslate(bool value) { |
| const std::string& original_lang = GetOriginalLanguageCode(); |
| const std::string& target_lang = GetTargetLanguageCode(); |