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

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

Issue 2400503002: [Translate] Integrate TranslateEventProto UMA logging into TranslateManager. (Closed)
Patch Set: review candidate Created 4 years, 2 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 7caffe1ef1b088fdf578cc99be49aebca85543ef..82bc691fa7e6b10d6736abc467670d120dedca75 100644
--- a/components/translate/core/browser/translate_ui_delegate.cc
+++ b/components/translate/core/browser/translate_ui_delegate.cc
@@ -149,6 +149,10 @@ void TranslateUIDelegate::UpdateOriginalLanguage(
for (size_t i = 0; i < languages_.size(); ++i) {
if (languages_[i].first.compare(language_code) == 0) {
UpdateOriginalLanguageIndex(i);
+ if (translate_manager_) {
+ translate_manager_->mutable_translate_event()
+ ->set_modified_source_language(language_code);
+ }
return;
}
}
@@ -172,6 +176,10 @@ void TranslateUIDelegate::UpdateTargetLanguage(
for (size_t i = 0; i < languages_.size(); ++i) {
if (languages_[i].first.compare(language_code) == 0) {
UpdateTargetLanguageIndex(i);
+ if (translate_manager_) {
+ translate_manager_->mutable_translate_event()
+ ->set_modified_target_language(language_code);
+ }
return;
}
}
@@ -209,6 +217,8 @@ void TranslateUIDelegate::Translate() {
}
if (translate_manager_) {
+ translate_manager_->RecordTranslateEvent(
+ metrics::TranslateEventProto::USER_ACCEPT);
translate_manager_->TranslatePage(GetOriginalLanguageCode(),
GetTargetLanguageCode(), false);
UMA_HISTOGRAM_BOOLEAN(kPerformTranslate, true);
@@ -239,14 +249,17 @@ void TranslateUIDelegate::TranslationDeclined(bool explicitly_closed) {
// 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.)
- if (explicitly_closed && translate_manager_) {
- translate_manager_->GetLanguageState().set_translation_declined(true);
- UMA_HISTOGRAM_BOOLEAN(kDeclineTranslate, true);
+ if (translate_manager_) {
+ translate_manager_->RecordTranslateEvent(
+ explicitly_closed ? metrics::TranslateEventProto::USER_DECLINE
+ : metrics::TranslateEventProto::USER_IGNORE);
+ if (explicitly_closed)
+ translate_manager_->GetLanguageState().set_translation_declined(true);
}
- if (!explicitly_closed) {
- UMA_HISTOGRAM_BOOLEAN(kDeclineTranslateDismissUI, true);
- }
+ UMA_HISTOGRAM_BOOLEAN(
+ (explicitly_closed ? kDeclineTranslate : kDeclineTranslateDismissUI),
+ true);
}
bool TranslateUIDelegate::IsLanguageBlocked() {
@@ -258,6 +271,11 @@ void TranslateUIDelegate::SetLanguageBlocked(bool value) {
prefs_->BlockLanguage(GetOriginalLanguageCode());
if (translate_manager_) {
translate_manager_->GetLanguageState().SetTranslateEnabled(false);
+ // Translation has been blocked for this language. Capture that in the
+ // metrics. Note that we don't capture a language being unblocked... which
+ // is not the same as accepting a given translation for this language.
+ translate_manager_->RecordTranslateEvent(
+ metrics::TranslateEventProto::USER_NEVER_TRANSLATE_LANGUAGE);
}
} else {
prefs_->UnblockLanguage(GetOriginalLanguageCode());
@@ -280,6 +298,11 @@ void TranslateUIDelegate::SetSiteBlacklist(bool value) {
prefs_->BlacklistSite(host);
if (translate_manager_) {
translate_manager_->GetLanguageState().SetTranslateEnabled(false);
+ // Translation has been blocked for this site. Capture that in the metrics
+ // Note that we don't capture a language being unblocked... which is not
+ // the same as accepting a given translation for this site.
+ translate_manager_->RecordTranslateEvent(
+ metrics::TranslateEventProto::USER_NEVER_TRANSLATE_SITE);
}
} else {
prefs_->RemoveSiteFromBlacklist(host);
@@ -320,10 +343,19 @@ bool TranslateUIDelegate::ShouldAlwaysTranslateBeCheckedByDefault() {
void TranslateUIDelegate::SetAlwaysTranslate(bool value) {
const std::string& original_lang = GetOriginalLanguageCode();
const std::string& target_lang = GetTargetLanguageCode();
- if (value)
+ if (value) {
prefs_->WhitelistLanguagePair(original_lang, target_lang);
- else
+ // 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
+ // for this language.
+ if (translate_manager_) {
+ translate_manager_->RecordTranslateEvent(
+ metrics::TranslateEventProto::USER_ALWAYS_TRANSLATE_LANGUAGE);
+ }
+ } else {
prefs_->RemoveLanguagePairFromWhitelist(original_lang, target_lang);
+ }
UMA_HISTOGRAM_BOOLEAN(kAlwaysTranslateLang, value);
}

Powered by Google App Engine
This is Rietveld 408576698