Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1792)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java

Issue 2910113002: Check pointer before native calls to avoid crashes. (Closed)
Patch Set: remove Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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();
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698