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

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

Issue 2872083003: Added translation policy API. (Closed)
Patch Set: don't expose index unnecessairly in translate_ui_delegate Created 3 years, 7 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 8a09121282aad8f1cb9e73f5011ac99e25c7d7ee..cb2fb12b1c336d17cd35d6ae1cd37687627f0411 100644
--- a/components/translate/core/browser/translate_ui_delegate.cc
+++ b/components/translate/core/browser/translate_ui_delegate.cc
@@ -189,6 +189,16 @@ std::string TranslateUIDelegate::GetLanguageCodeAt(size_t index) const {
return languages_[index].first;
}
+base::string16 TranslateUIDelegate::GetLanguageNameForLanguageCode(
+ const std::string& language_code) {
+ auto it = std::find_if(languages_.begin(), languages_.end(),
+ [&language_code](const LanguageNamePair& x) {
+ return x.first == language_code;
+ });
+ size_t index = it != languages_.end() ? it - languages_.begin() : kNoIndex;
+ return GetLanguageNameAt(index);
+}
+
base::string16 TranslateUIDelegate::GetLanguageNameAt(size_t index) const {
if (index == kNoIndex)
return base::string16();
@@ -264,12 +274,21 @@ void TranslateUIDelegate::TranslationDeclined(bool explicitly_closed) {
}
bool TranslateUIDelegate::IsLanguageBlocked() {
- return prefs_->IsBlockedLanguage(GetOriginalLanguageCode());
+ return IsLanguageBlocked(GetOriginalLanguageCode());
+}
+
+bool TranslateUIDelegate::IsLanguageBlocked(const std::string& language_code) {
+ return prefs_->IsBlockedLanguage(language_code);
}
void TranslateUIDelegate::SetLanguageBlocked(bool value) {
+ SetLanguageBlocked(value, GetOriginalLanguageCode());
+}
+
+void TranslateUIDelegate::SetLanguageBlocked(bool value,
+ const std::string& language_code) {
if (value) {
- prefs_->BlockLanguage(GetOriginalLanguageCode());
+ prefs_->BlockLanguage(language_code);
if (translate_manager_) {
translate_manager_->GetLanguageState().SetTranslateEnabled(false);
// Translation has been blocked for this language. Capture that in the
@@ -279,24 +298,30 @@ void TranslateUIDelegate::SetLanguageBlocked(bool value) {
metrics::TranslateEventProto::USER_NEVER_TRANSLATE_LANGUAGE);
}
} else {
- prefs_->UnblockLanguage(GetOriginalLanguageCode());
+ prefs_->UnblockLanguage(language_code);
}
UMA_HISTOGRAM_BOOLEAN(kNeverTranslateLang, value);
}
bool TranslateUIDelegate::IsSiteBlacklisted() {
- std::string host = GetPageHost();
- return !host.empty() && prefs_->IsSiteBlacklisted(host);
+ return IsSiteBlacklisted(GetPageHost());
+}
+
+bool TranslateUIDelegate::IsSiteBlacklisted(const std::string& page_host) {
+ return !page_host.empty() && prefs_->IsSiteBlacklisted(page_host);
}
void TranslateUIDelegate::SetSiteBlacklist(bool value) {
- std::string host = GetPageHost();
- if (host.empty())
- return;
+ SetSiteBlacklist(value, GetPageHost());
michaeldo 2017/05/15 17:09:30 Since this is an existing method, you should leave
Eugene But (OOO till 7-30) 2017/05/15 17:22:41 Early return would be against Chromium Style Guide
jzw1 2017/05/16 03:42:12 I'm going to just keep the early returns to keep t
+}
+
+void TranslateUIDelegate::SetSiteBlacklist(bool value,
+ const std::string& page_host) {
+ DCHECK(!page_host.empty());
if (value) {
- prefs_->BlacklistSite(host);
+ prefs_->BlacklistSite(page_host);
if (translate_manager_) {
translate_manager_->GetLanguageState().SetTranslateEnabled(false);
// Translation has been blocked for this site. Capture that in the metrics
@@ -306,7 +331,7 @@ void TranslateUIDelegate::SetSiteBlacklist(bool value) {
metrics::TranslateEventProto::USER_NEVER_TRANSLATE_SITE);
}
} else {
- prefs_->RemoveSiteFromBlacklist(host);
+ prefs_->RemoveSiteFromBlacklist(page_host);
}
UMA_HISTOGRAM_BOOLEAN(kNeverTranslateSite, value);
@@ -317,6 +342,15 @@ bool TranslateUIDelegate::ShouldAlwaysTranslate() {
GetTargetLanguageCode());
}
+std::string TranslateUIDelegate::GetAlwaysTranslateToLanguage(
+ const std::string& from_language) {
+ std::string auto_target_lang;
+ if (prefs_->ShouldAutoTranslate(from_language, &auto_target_lang)) {
+ return auto_target_lang;
+ }
+ return std::string();
+}
+
bool TranslateUIDelegate::ShouldAlwaysTranslateBeCheckedByDefault() {
if (ShouldAlwaysTranslate())
return true;
@@ -344,8 +378,14 @@ bool TranslateUIDelegate::ShouldAlwaysTranslateBeCheckedByDefault() {
void TranslateUIDelegate::SetAlwaysTranslate(bool value) {
const std::string& original_lang = GetOriginalLanguageCode();
const std::string& target_lang = GetTargetLanguageCode();
+ SetAlwaysTranslate(value, original_lang, target_lang);
+}
+
+void TranslateUIDelegate::SetAlwaysTranslate(bool value,
+ const std::string& from_language,
+ const std::string& to_language) {
if (value) {
- prefs_->WhitelistLanguagePair(original_lang, target_lang);
+ prefs_->WhitelistLanguagePair(from_language, to_language);
// A default translation mapping has been accepted for this language.
// Capture that in the metrics. Note that we don't capture a language being
// unmapped... which is not the same as accepting some other translation
@@ -355,7 +395,7 @@ void TranslateUIDelegate::SetAlwaysTranslate(bool value) {
metrics::TranslateEventProto::USER_ALWAYS_TRANSLATE_LANGUAGE);
}
} else {
- prefs_->RemoveLanguagePairFromWhitelist(original_lang, target_lang);
+ prefs_->RemoveLanguagePairFromWhitelist(from_language, to_language);
}
UMA_HISTOGRAM_BOOLEAN(kAlwaysTranslateLang, value);

Powered by Google App Engine
This is Rietveld 408576698