| 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..0f806a77c677bba05ce7d7348602a5678f340c35 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) {
|
| + 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
|
| @@ -252,8 +257,10 @@ bool TranslateUIDelegate::IsLanguageBlocked() {
|
| 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_) {
|
| + translate_manager_->GetLanguageState().SetTranslateEnabled(false);
|
| + }
|
| }
|
| } else {
|
| prefs_->UnblockLanguage(GetOriginalLanguageCode());
|
| @@ -274,8 +281,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 +298,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();
|
|
|