Commit 8f09864d authored by googleo's avatar googleo Committed by Commit Bot

Check pointer before native calls to avoid crashes.

BUG=727312

Review-Url: https://codereview.chromium.org/2910113002
Cr-Commit-Position: refs/heads/master@{#476159}
parent 144fb7b8
...@@ -277,7 +277,7 @@ public class TranslateCompactInfoBar extends InfoBar ...@@ -277,7 +277,7 @@ public class TranslateCompactInfoBar extends InfoBar
private void closeInfobar(boolean explicitly) { private void closeInfobar(boolean explicitly) {
// Check if we should trigger the auto "never translate" if infobar is closed explicitly. // Check if we should trigger the auto "never translate" if infobar is closed explicitly.
if (explicitly if (explicitly && mNativeTranslateInfoBarPtr != 0
&& nativeShouldAutoNeverTranslate(mNativeTranslateInfoBarPtr, mMenuExpanded)) { && nativeShouldAutoNeverTranslate(mNativeTranslateInfoBarPtr, mMenuExpanded)) {
createAndShowSnackbar(getContext().getString(R.string.translate_snackbar_language_never, createAndShowSnackbar(getContext().getString(R.string.translate_snackbar_language_never,
mOptions.sourceLanguageName()), mOptions.sourceLanguageName()),
...@@ -373,7 +373,7 @@ public class TranslateCompactInfoBar extends InfoBar ...@@ -373,7 +373,7 @@ public class TranslateCompactInfoBar extends InfoBar
@Override @Override
public void onTargetMenuItemClicked(String code) { public void onTargetMenuItemClicked(String code) {
// Reset target code in both UI and native. // Reset target code in both UI and native.
if (mOptions.setTargetLanguage(code)) { if (mNativeTranslateInfoBarPtr != 0 && mOptions.setTargetLanguage(code)) {
recordInfobarLanguageData( recordInfobarLanguageData(
INFOBAR_HISTOGRAM_MORE_LANGUAGES_LANGUAGE, mOptions.targetLanguageCode()); INFOBAR_HISTOGRAM_MORE_LANGUAGES_LANGUAGE, mOptions.targetLanguageCode());
nativeApplyStringTranslateOption( nativeApplyStringTranslateOption(
...@@ -387,7 +387,7 @@ public class TranslateCompactInfoBar extends InfoBar ...@@ -387,7 +387,7 @@ public class TranslateCompactInfoBar extends InfoBar
@Override @Override
public void onSourceMenuItemClicked(String code) { public void onSourceMenuItemClicked(String code) {
// Reset source code in both UI and native. // Reset source code in both UI and native.
if (mOptions.setSourceLanguage(code)) { if (mNativeTranslateInfoBarPtr != 0 && mOptions.setSourceLanguage(code)) {
recordInfobarLanguageData( recordInfobarLanguageData(
INFOBAR_HISTOGRAM_PAGE_NOT_IN_LANGUAGE, mOptions.sourceLanguageCode()); INFOBAR_HISTOGRAM_PAGE_NOT_IN_LANGUAGE, mOptions.sourceLanguageCode());
nativeApplyStringTranslateOption( nativeApplyStringTranslateOption(
...@@ -463,6 +463,9 @@ public class TranslateCompactInfoBar extends InfoBar ...@@ -463,6 +463,9 @@ public class TranslateCompactInfoBar extends InfoBar
} }
private void handleTranslateOptionPostSnackbar(int actionId) { private void handleTranslateOptionPostSnackbar(int actionId) {
// Quit if native is destroyed.
if (mNativeTranslateInfoBarPtr == 0) return;
switch (actionId) { switch (actionId) {
case ACTION_OVERFLOW_ALWAYS_TRANSLATE: case ACTION_OVERFLOW_ALWAYS_TRANSLATE:
toggleAlwaysTranslate(); toggleAlwaysTranslate();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment