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(); |