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

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

Issue 1923143003: Implement the 2016Q2 Translate UI designe spec out in (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: minor changes in comments Created 4 years, 8 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 5c6a862665f38487334fdb5717b6809e61c6dade..26d1ead53f46d311ee0fd69c84d479c0df86cd5c 100644
--- a/components/translate/core/browser/translate_ui_delegate.cc
+++ b/components/translate/core/browser/translate_ui_delegate.cc
@@ -71,8 +71,7 @@ TranslateUIDelegate::TranslateUIDelegate(
languages_.reserve(language_codes.size());
for (std::vector<std::string>::const_iterator iter = language_codes.begin();
- iter != language_codes.end();
- ++iter) {
+ iter != language_codes.end(); ++iter) {
std::string language_code = *iter;
base::string16 language_name =
@@ -81,9 +80,8 @@ TranslateUIDelegate::TranslateUIDelegate(
std::vector<LanguageNamePair>::iterator iter2;
if (collator) {
for (iter2 = languages_.begin(); iter2 != languages_.end(); ++iter2) {
- int result = base::i18n::CompareString16WithCollator(*collator,
- language_name,
- iter2->second);
+ int result = base::i18n::CompareString16WithCollator(
+ *collator, language_name, iter2->second);
if (result == UCOL_LESS)
break;
}
@@ -98,8 +96,7 @@ TranslateUIDelegate::TranslateUIDelegate(
languages_.insert(iter2, LanguageNamePair(language_code, language_name));
}
for (std::vector<LanguageNamePair>::const_iterator iter = languages_.begin();
- iter != languages_.end();
- ++iter) {
+ iter != languages_.end(); ++iter) {
std::string language_code = iter->first;
if (language_code == original_language) {
original_language_index_ = iter - languages_.begin();
@@ -121,8 +118,8 @@ void TranslateUIDelegate::OnErrorShown(TranslateErrors::Type error_type) {
if (error_type == TranslateErrors::NONE)
return;
- UMA_HISTOGRAM_ENUMERATION(
- kShowErrorUI, error_type, TranslateErrors::TRANSLATE_ERROR_MAX);
+ UMA_HISTOGRAM_ENUMERATION(kShowErrorUI, error_type,
+ TranslateErrors::TRANSLATE_ERROR_MAX);
}
const LanguageState& TranslateUIDelegate::GetLanguageState() {
@@ -191,9 +188,9 @@ base::string16 TranslateUIDelegate::GetLanguageNameAt(size_t index) const {
}
std::string TranslateUIDelegate::GetOriginalLanguageCode() const {
- return (GetOriginalLanguageIndex() == kNoIndex) ?
- translate::kUnknownLanguageCode :
- GetLanguageCodeAt(GetOriginalLanguageIndex());
+ return (GetOriginalLanguageIndex() == kNoIndex)
+ ? translate::kUnknownLanguageCode
+ : GetLanguageCodeAt(GetOriginalLanguageIndex());
}
std::string TranslateUIDelegate::GetTargetLanguageCode() const {
@@ -205,12 +202,13 @@ std::string TranslateUIDelegate::GetTargetLanguageCode() const {
void TranslateUIDelegate::Translate() {
if (!translate_driver_->IsOffTheRecord()) {
prefs_->ResetTranslationDeniedCount(GetOriginalLanguageCode());
+ prefs_->ResetTranslationIgnoredCount(GetOriginalLanguageCode());
prefs_->IncrementTranslationAcceptedCount(GetOriginalLanguageCode());
}
if (translate_manager_) {
- translate_manager_->TranslatePage(
- GetOriginalLanguageCode(), GetTargetLanguageCode(), false);
+ translate_manager_->TranslatePage(GetOriginalLanguageCode(),
+ GetTargetLanguageCode(), false);
UMA_HISTOGRAM_BOOLEAN(kPerformTranslate, true);
}
}
@@ -223,11 +221,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,7 +254,12 @@ bool TranslateUIDelegate::IsLanguageBlocked() {
void TranslateUIDelegate::SetLanguageBlocked(bool value) {
if (value) {
prefs_->BlockLanguage(GetOriginalLanguageCode());
- if (translate_manager_) {
+ // In the new UI, we will keep showing the translate omnibar icon
+ // even if the language is blocked so in case the user just wants to
+ // translate that page the user can invoke the translate bubble from
+ // the omnibar icon.
+ if (!base::FeatureList::IsEnabled(kTranslateUI2016Q2) &&
+ translate_manager_) {
translate_manager_->GetLanguageState().SetTranslateEnabled(false);
}
} else {
@@ -274,7 +281,12 @@ void TranslateUIDelegate::SetSiteBlacklist(bool value) {
if (value) {
prefs_->BlacklistSite(host);
- if (translate_manager_) {
+ // In the new UI, we will keep showing the translate omnibar icon
+ // even if the site is blocked so in case the user just wants to
+ // translate that page the user can invoke the translate bubble from
+ // the omnibar icon.
+ if (!base::FeatureList::IsEnabled(kTranslateUI2016Q2) &&
+ translate_manager_) {
translate_manager_->GetLanguageState().SetTranslateEnabled(false);
}
} else {
@@ -289,6 +301,17 @@ bool TranslateUIDelegate::ShouldAlwaysTranslate() {
GetTargetLanguageCode());
}
+bool TranslateUIDelegate::ShouldAlwaysTranslateBeCheckedByDefault() {
+ // After 2 clicks on Translate for the same language.
+ // We check for == 2 instead of >= 2 because if the user translates with the
+ // "Always do this?" on, then the next time the bubble won't show up.
+ // The only chance the bubble will show up is after the user manually unchecks
+ // "Always do this?". In that case, since it is after user explictly unchecks,
+ // we should show as it as unchecked so we only check == 2 instead of >= 2.
+ return ShouldAlwaysTranslate() ||
+ prefs_->GetTranslationAcceptedCount(GetOriginalLanguageCode()) == 2;
+}
+
void TranslateUIDelegate::SetAlwaysTranslate(bool value) {
const std::string& original_lang = GetOriginalLanguageCode();
const std::string& target_lang = GetTargetLanguageCode();

Powered by Google App Engine
This is Rietveld 408576698