| 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 5128efe960e0e5cc73ae0f678e089c913e9aa0d8..1dc3f014e3602bc77470b23606ee8104b89b0845 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 | 
| @@ -71,7 +71,7 @@ public class TranslateCompactInfoBar extends InfoBar | 
| * INFOBAR_HISTOGRAM_BOUNDARY should be the last. | 
| */ | 
| private static final int INFOBAR_IMPRESSION = 0; | 
| -    private static final int INFOBAR_TRANSLATE = 1; | 
| +    private static final int INFOBAR_TARGET_TAB_TRANSLATE = 1; | 
| private static final int INFOBAR_DECLINE = 2; | 
| private static final int INFOBAR_OPTIONS = 3; | 
| private static final int INFOBAR_MORE_LANGUAGES = 4; | 
| @@ -90,7 +90,7 @@ public class TranslateCompactInfoBar extends InfoBar | 
| private static final int INFOBAR_SNACKBAR_CANCEL_NEVER_SITE = 17; | 
| private static final int INFOBAR_SNACKBAR_CANCEL_NEVER = 18; | 
| private static final int INFOBAR_ALWAYS_TRANSLATE_UNDO = 19; | 
| -    private static final int INFOBAR_CLOSE = 20; | 
| +    private static final int INFOBAR_CLOSE_DEPRECATED = 20; | 
| private static final int INFOBAR_SNACKBAR_AUTO_ALWAYS_IMPRESSION = 21; | 
| private static final int INFOBAR_SNACKBAR_AUTO_NEVER_IMPRESSION = 22; | 
| private static final int INFOBAR_SNACKBAR_CANCEL_AUTO_ALWAYS = 23; | 
| @@ -105,6 +105,7 @@ public class TranslateCompactInfoBar extends InfoBar | 
|  | 
| private boolean mMenuExpanded; | 
| private boolean mIsFirstLayout = true; | 
| +    private boolean mUserInteracted; | 
|  | 
| /** The controller for translate UI snackbars. */ | 
| class TranslateSnackbarController implements SnackbarController { | 
| @@ -184,6 +185,7 @@ public class TranslateCompactInfoBar extends InfoBar | 
| if (mInitialStep == TRANSLATING_INFOBAR) { | 
| mTabLayout.getTabAt(TARGET_TAB_INDEX).select(); | 
| mTabLayout.showProgressBarOnTab(TARGET_TAB_INDEX); | 
| +            mUserInteracted = true; | 
| } | 
|  | 
| mTabLayout.addOnTabSelectedListener(this); | 
| @@ -252,6 +254,7 @@ public class TranslateCompactInfoBar extends InfoBar | 
| // Already on the target tab. | 
| mTabLayout.showProgressBarOnTab(TARGET_TAB_INDEX); | 
| onButtonClicked(ActionType.TRANSLATE); | 
| +            mUserInteracted = true; | 
| } else { | 
| mTabLayout.getTabAt(TARGET_TAB_INDEX).select(); | 
| } | 
| @@ -293,6 +296,10 @@ public class TranslateCompactInfoBar extends InfoBar | 
| } | 
|  | 
| private void closeInfobar(boolean explicitly) { | 
| +        if (!mUserInteracted) { | 
| +            recordInfobarAction(INFOBAR_DECLINE); | 
| +        } | 
| + | 
| // Check if we should trigger the auto "never translate" if infobar is closed explicitly. | 
| if (explicitly && mNativeTranslateInfoBarPtr != 0 | 
| && nativeShouldAutoNeverTranslate(mNativeTranslateInfoBarPtr, mMenuExpanded)) { | 
| @@ -304,7 +311,6 @@ public class TranslateCompactInfoBar extends InfoBar | 
| // perform the action. | 
| return; | 
| } | 
| -        recordInfobarAction(INFOBAR_CLOSE); | 
| // This line will dismiss this infobar. | 
| super.onCloseButtonClicked(); | 
| } | 
| @@ -324,7 +330,7 @@ public class TranslateCompactInfoBar extends InfoBar | 
| onButtonClicked(ActionType.TRANSLATE_SHOW_ORIGINAL); | 
| return; | 
| case TARGET_TAB_INDEX: | 
| -                recordInfobarAction(INFOBAR_TRANSLATE); | 
| +                recordInfobarAction(INFOBAR_TARGET_TAB_TRANSLATE); | 
| recordInfobarLanguageData( | 
| INFOBAR_HISTOGRAM_TRANSLATE_LANGUAGE, mOptions.targetLanguageCode()); | 
| startTranslating(TARGET_TAB_INDEX); | 
| @@ -392,6 +398,7 @@ public class TranslateCompactInfoBar extends InfoBar | 
| public void onTargetMenuItemClicked(String code) { | 
| // Reset target code in both UI and native. | 
| if (mNativeTranslateInfoBarPtr != 0 && mOptions.setTargetLanguage(code)) { | 
| +            recordInfobarAction(INFOBAR_MORE_LANGUAGES_TRANSLATE); | 
| recordInfobarLanguageData( | 
| INFOBAR_HISTOGRAM_MORE_LANGUAGES_LANGUAGE, mOptions.targetLanguageCode()); | 
| nativeApplyStringTranslateOption( | 
| @@ -499,11 +506,13 @@ public class TranslateCompactInfoBar extends InfoBar | 
| return; | 
| case ACTION_OVERFLOW_NEVER_LANGUAGE: | 
| case ACTION_AUTO_NEVER_LANGUAGE: | 
| +                mUserInteracted = true; | 
| // After applying this option, the infobar will dismiss. | 
| nativeApplyBoolTranslateOption( | 
| mNativeTranslateInfoBarPtr, TranslateOption.NEVER_TRANSLATE, true); | 
| return; | 
| case ACTION_OVERFLOW_NEVER_SITE: | 
| +                mUserInteracted = true; | 
| // After applying this option, the infobar will dismiss. | 
| nativeApplyBoolTranslateOption( | 
| mNativeTranslateInfoBarPtr, TranslateOption.NEVER_TRANSLATE_SITE, true); | 
|  |