| 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 3d6e37304e1d6cdc47a319f4eb806c7d105e66e6..050c0b82cefff014a492830cf7f450bd696eb14c 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
|
| @@ -277,7 +277,7 @@ class TranslateCompactInfoBar extends InfoBar
|
|
|
| private void closeInfobar(boolean explicitly) {
|
| // Check if we should trigger the auto "never translate" if infobar is closed explicitly.
|
| - if (explicitly
|
| + if (explicitly && mNativeTranslateInfoBarPtr != 0
|
| && nativeShouldAutoNeverTranslate(mNativeTranslateInfoBarPtr, mMenuExpanded)) {
|
| createAndShowSnackbar(getContext().getString(R.string.translate_snackbar_language_never,
|
| mOptions.sourceLanguageName()),
|
| @@ -373,7 +373,7 @@ class TranslateCompactInfoBar extends InfoBar
|
| @Override
|
| public void onTargetMenuItemClicked(String code) {
|
| // Reset target code in both UI and native.
|
| - if (mOptions.setTargetLanguage(code)) {
|
| + if (mNativeTranslateInfoBarPtr != 0 && mOptions.setTargetLanguage(code)) {
|
| recordInfobarLanguageData(
|
| INFOBAR_HISTOGRAM_MORE_LANGUAGES_LANGUAGE, mOptions.targetLanguageCode());
|
| nativeApplyStringTranslateOption(
|
| @@ -387,7 +387,7 @@ class TranslateCompactInfoBar extends InfoBar
|
| @Override
|
| public void onSourceMenuItemClicked(String code) {
|
| // Reset source code in both UI and native.
|
| - if (mOptions.setSourceLanguage(code)) {
|
| + if (mNativeTranslateInfoBarPtr != 0 && mOptions.setSourceLanguage(code)) {
|
| recordInfobarLanguageData(
|
| INFOBAR_HISTOGRAM_PAGE_NOT_IN_LANGUAGE, mOptions.sourceLanguageCode());
|
| nativeApplyStringTranslateOption(
|
| @@ -447,6 +447,9 @@ class TranslateCompactInfoBar extends InfoBar
|
| }
|
|
|
| private void handleTranslateOptionPostSnackbar(int actionId) {
|
| + // Quit if native is destroyed.
|
| + if (mNativeTranslateInfoBarPtr == 0) return;
|
| +
|
| switch (actionId) {
|
| case ACTION_OVERFLOW_ALWAYS_TRANSLATE:
|
| toggleAlwaysTranslate();
|
|
|