Index: chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java |
index fbadb25bc70471b8b5dda92911d99d2116fce09d..9bce7b4ef59a9800e7f3714bcc201af494722de8 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java |
@@ -11,6 +11,7 @@ import android.view.View.OnClickListener; |
import android.widget.LinearLayout; |
import org.chromium.base.annotations.CalledByNative; |
+import org.chromium.base.metrics.RecordHistogram; |
import org.chromium.chrome.R; |
import org.chromium.chrome.browser.infobar.translate.TranslateMenu; |
import org.chromium.chrome.browser.infobar.translate.TranslateMenuHelper; |
@@ -36,6 +37,41 @@ class TranslateCompactInfoBar extends InfoBar |
private long mNativeTranslateInfoBarPtr; |
private TranslateTabLayout mTabLayout; |
+ private static final String INFOBAR_HISTOGRAM_TRANSLATE_LANGUAGE = |
Leo
2017/05/10 07:23:58
Any chance moving all the definitions to Metrics.j
ramyasharma
2017/05/10 09:54:52
Hmmm.. as we discussed, keeping these metrics in t
|
+ "Translate.Compact.infobar_translate_language"; |
+ private static final String INFOBAR_HISTOGRAM_MORE_LANGUAGES_LANGUAGE = |
+ "Translate.Compact.infobar_more_languages_translate_language"; |
+ private static final String INFOBAR_HISTOGRAM_PAGE_NOT_IN_LANGUAGE = |
+ "Translate.Compact.infobar_page_not_in_language"; |
+ private static final String INFOBAR_HISTOGRAM_ALWAYS_TRANSLATE_LANGUAGE = |
+ "Translate.Compact.infobar_always_translate_lang"; |
+ private static final String INFOBAR_HISTOGRAM_NEVER_TRANSLATE_LANGUAGE = |
+ "Translate.Compact.infobar_never_translate_lang"; |
Ilya Sherman
2017/05/10 07:10:20
Did you mean to add these histograms to histograms
ramyasharma
2017/05/10 09:54:52
Yes, sorry I missed this.
Fixed the case thanks.
|
+ private static final String INFOBAR_HISTOGRAM = "Translate.Compact"; |
+ |
+ /** |
+ * This is used to back a UMA histogram, so it should be treated as |
+ * append-only. The values should not be changed or reused, and |
+ * INFOBAR_HISTOGRAM_BOUNDARY should be the last. |
+ */ |
+ private static final Integer INFOBAR_IMPRESSION = 0; |
+ private static final Integer INFOBAR_TRANSLATE = 1; |
+ private static final Integer INFOBAR_DECLINE = 2; |
+ private static final Integer INFOBAR_OPTIONS = 3; |
+ private static final Integer INFOBAR_MORE_LANGUAGES = 4; |
+ private static final Integer INFOBAR_MORE_LANGUAGES_TRANSLATE = 5; |
+ private static final Integer INFOBAR_PAGE_NOT_IN = 6; |
+ private static final Integer INFOBAR_ALWAYS_TRANSLATE = 7; |
+ private static final Integer INFOBAR_NEVER_TRANSLATE = 8; |
+ private static final Integer INFOBAR_NEVER_TRANSLATE_SITE = 9; |
+ private static final Integer INFOBAR_SCROLL_HIDE = 10; |
+ private static final Integer INFOBAR_SCROLL_SHOW = 11; |
+ private static final Integer INFOBAR_REVERT = 12; |
+ private static final Integer INFOBAR_SNACKBAR_CANCEL_ALWAYS = 13; |
+ private static final Integer INFOBAR_SNACKBAR_CANCEL_NEVER_SITE = 14; |
+ private static final Integer INFOBAR_SNACKBAR_CANCEL_NEVER = 15; |
+ private static final Integer INFOBAR_HISTOGRAM_BOUNDARY = 16; |
+ |
// Need 2 instances of TranslateMenuHelper to prevent a race condition bug which happens when |
// showing language menu after dismissing overflow menu. |
private TranslateMenuHelper mOverflowMenuHelper; |
@@ -58,8 +94,20 @@ class TranslateCompactInfoBar extends InfoBar |
@Override |
public void onAction(Object actionData) { |
- // TODO(ramyasharma): Add logging metric to track cancel actions. |
- // Do nothing. |
+ switch (mMenuItemId) { |
+ case TranslateMenu.ID_OVERFLOW_ALWAYS_TRANSLATE: |
+ RecordHistogram.recordEnumeratedHistogram(INFOBAR_HISTOGRAM, |
+ INFOBAR_SNACKBAR_CANCEL_ALWAYS, INFOBAR_HISTOGRAM_BOUNDARY); |
Ilya Sherman
2017/05/10 07:10:20
Optional nit: There's a lot of repetition of these
ramyasharma
2017/05/10 09:54:52
Thanks for the idea. Done.
|
+ return; |
+ case TranslateMenu.ID_OVERFLOW_NEVER_LANGUAGE: |
+ RecordHistogram.recordEnumeratedHistogram(INFOBAR_HISTOGRAM, |
+ INFOBAR_SNACKBAR_CANCEL_NEVER, INFOBAR_HISTOGRAM_BOUNDARY); |
+ return; |
+ case TranslateMenu.ID_OVERFLOW_NEVER_SITE: |
+ RecordHistogram.recordEnumeratedHistogram(INFOBAR_HISTOGRAM, |
+ INFOBAR_SNACKBAR_CANCEL_NEVER_SITE, INFOBAR_HISTOGRAM_BOUNDARY); |
+ return; |
+ } |
} |
}; |
@@ -67,6 +115,8 @@ class TranslateCompactInfoBar extends InfoBar |
private static InfoBar create(int initialStep, String sourceLanguageCode, |
String targetLanguageCode, boolean alwaysTranslate, boolean triggeredFromMenu, |
String[] languages, String[] codes) { |
+ RecordHistogram.recordEnumeratedHistogram( |
+ INFOBAR_HISTOGRAM, INFOBAR_IMPRESSION, INFOBAR_HISTOGRAM_BOUNDARY); |
return new TranslateCompactInfoBar(initialStep, sourceLanguageCode, targetLanguageCode, |
alwaysTranslate, triggeredFromMenu, languages, codes); |
} |
@@ -106,6 +156,8 @@ class TranslateCompactInfoBar extends InfoBar |
mMenuButton.setOnClickListener(new OnClickListener() { |
@Override |
public void onClick(View v) { |
+ RecordHistogram.recordEnumeratedHistogram( |
+ INFOBAR_HISTOGRAM, INFOBAR_OPTIONS, INFOBAR_HISTOGRAM_BOUNDARY); |
initMenuHelper(TranslateMenu.MENU_OVERFLOW); |
mOverflowMenuHelper.show(TranslateMenu.MENU_OVERFLOW); |
} |
@@ -175,9 +227,15 @@ class TranslateCompactInfoBar extends InfoBar |
public void onTabSelected(TabLayout.Tab tab) { |
switch (tab.getPosition()) { |
case SOURCE_TAB_INDEX: |
+ RecordHistogram.recordEnumeratedHistogram( |
+ INFOBAR_HISTOGRAM, INFOBAR_REVERT, INFOBAR_HISTOGRAM_BOUNDARY); |
onButtonClicked(ActionType.TRANSLATE_SHOW_ORIGINAL); |
return; |
case TARGET_TAB_INDEX: |
+ RecordHistogram.recordEnumeratedHistogram( |
+ INFOBAR_HISTOGRAM, INFOBAR_TRANSLATE, INFOBAR_HISTOGRAM_BOUNDARY); |
+ RecordHistogram.recordSparseSlowlyHistogram( |
+ INFOBAR_HISTOGRAM_TRANSLATE_LANGUAGE, mOptions.targetLanguage.hashCode()); |
startTranslating(TARGET_TAB_INDEX); |
return; |
default: |
@@ -195,10 +253,17 @@ class TranslateCompactInfoBar extends InfoBar |
public void onOverflowMenuItemClicked(int itemId) { |
switch (itemId) { |
case TranslateMenu.ID_OVERFLOW_MORE_LANGUAGE: |
+ RecordHistogram.recordEnumeratedHistogram( |
+ INFOBAR_HISTOGRAM, INFOBAR_MORE_LANGUAGES, INFOBAR_HISTOGRAM_BOUNDARY); |
initMenuHelper(TranslateMenu.MENU_TARGET_LANGUAGE); |
mLanguageMenuHelper.show(TranslateMenu.MENU_TARGET_LANGUAGE); |
return; |
case TranslateMenu.ID_OVERFLOW_ALWAYS_TRANSLATE: |
+ RecordHistogram.recordEnumeratedHistogram( |
+ INFOBAR_HISTOGRAM, INFOBAR_ALWAYS_TRANSLATE, INFOBAR_HISTOGRAM_BOUNDARY); |
+ RecordHistogram.recordSparseSlowlyHistogram( |
+ INFOBAR_HISTOGRAM_ALWAYS_TRANSLATE_LANGUAGE, |
+ mOptions.sourceLanguageCode().hashCode()); |
// Only show snackbar when "Always Translate" is enabled. |
if (!mOptions.alwaysTranslateLanguageState()) { |
createAndShowSnackbar( |
@@ -210,17 +275,26 @@ class TranslateCompactInfoBar extends InfoBar |
} |
return; |
case TranslateMenu.ID_OVERFLOW_NEVER_LANGUAGE: |
+ RecordHistogram.recordEnumeratedHistogram( |
+ INFOBAR_HISTOGRAM, INFOBAR_NEVER_TRANSLATE, INFOBAR_HISTOGRAM_BOUNDARY); |
+ RecordHistogram.recordSparseSlowlyHistogram( |
+ INFOBAR_HISTOGRAM_NEVER_TRANSLATE_LANGUAGE, |
+ mOptions.sourceLanguageCode().hashCode()); |
createAndShowSnackbar( |
getContext().getString(R.string.translate_snackbar_language_never, |
mOptions.sourceLanguageName()), |
Snackbar.UMA_TRANSLATE_NEVER, itemId); |
return; |
case TranslateMenu.ID_OVERFLOW_NEVER_SITE: |
+ RecordHistogram.recordEnumeratedHistogram(INFOBAR_HISTOGRAM, |
+ INFOBAR_NEVER_TRANSLATE_SITE, INFOBAR_HISTOGRAM_BOUNDARY); |
createAndShowSnackbar( |
getContext().getString(R.string.translate_snackbar_site_never), |
Snackbar.UMA_TRANSLATE_NEVER_SITE, itemId); |
return; |
case TranslateMenu.ID_OVERFLOW_NOT_THIS_LANGUAGE: |
+ RecordHistogram.recordEnumeratedHistogram( |
+ INFOBAR_HISTOGRAM, INFOBAR_PAGE_NOT_IN, INFOBAR_HISTOGRAM_BOUNDARY); |
initMenuHelper(TranslateMenu.MENU_SOURCE_LANGUAGE); |
mLanguageMenuHelper.show(TranslateMenu.MENU_SOURCE_LANGUAGE); |
return; |
@@ -233,6 +307,8 @@ class TranslateCompactInfoBar extends InfoBar |
public void onTargetMenuItemClicked(String code) { |
// Reset target code in both UI and native. |
if (mOptions.setTargetLanguage(code)) { |
+ RecordHistogram.recordSparseSlowlyHistogram(INFOBAR_HISTOGRAM_MORE_LANGUAGES_LANGUAGE, |
+ mOptions.targetLanguageCode().hashCode()); |
nativeApplyStringTranslateOption( |
mNativeTranslateInfoBarPtr, TranslateOption.TARGET_CODE, code); |
// Adjust UI. |
@@ -245,6 +321,8 @@ class TranslateCompactInfoBar extends InfoBar |
public void onSourceMenuItemClicked(String code) { |
// Reset source code in both UI and native. |
if (mOptions.setSourceLanguage(code)) { |
+ RecordHistogram.recordSparseSlowlyHistogram(INFOBAR_HISTOGRAM_PAGE_NOT_IN_LANGUAGE, |
+ mOptions.sourceLanguageCode().hashCode()); |
nativeApplyStringTranslateOption( |
mNativeTranslateInfoBarPtr, TranslateOption.SOURCE_CODE, code); |
// Adjust UI. |