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

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

Issue 1150193004: Straighten up life cycle of native InfoBar pointers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: removed setNativeInfoBarPtr calls from child classes Created 5 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
Index: chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateInfoBar.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateInfoBar.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateInfoBar.java
index bbfa1820c22aab12a54a743c8d6f0ba11328a4c8..91b0cc50d541922c5fe4d4ab36027df45c70823a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateInfoBar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateInfoBar.java
@@ -34,6 +34,7 @@ public class TranslateInfoBar extends InfoBar implements SubPanelListener {
public static final int ALWAYS_PANEL = 3;
public static final int MAX_PANEL_INDEX = 4;
+ private long mNativeTranslateInfoBarPtr;
private int mInfoBarType;
private final TranslateOptions mOptions;
private int mOptionsPanelViewType;
@@ -41,18 +42,18 @@ public class TranslateInfoBar extends InfoBar implements SubPanelListener {
private final boolean mShouldShowNeverBar;
private final TranslateInfoBarDelegate mTranslateDelegate;
- public TranslateInfoBar(long nativeInfoBarPtr, TranslateInfoBarDelegate delegate,
+ public TranslateInfoBar(long nativeTranslateInfoBarPtr, TranslateInfoBarDelegate delegate,
int infoBarType, int sourceLanguageIndex, int targetLanguageIndex,
- boolean autoTranslatePair, boolean shouldShowNeverBar,
- boolean triggeredFromMenu, String[] languages) {
+ boolean autoTranslatePair, boolean shouldShowNeverBar, boolean triggeredFromMenu,
+ String[] languages) {
super(null, R.drawable.infobar_translate, null, null);
+ mNativeTranslateInfoBarPtr = nativeTranslateInfoBarPtr;
mTranslateDelegate = delegate;
mOptions = new TranslateOptions(sourceLanguageIndex, targetLanguageIndex, languages,
autoTranslatePair, triggeredFromMenu);
mInfoBarType = infoBarType;
mShouldShowNeverBar = shouldShowNeverBar;
mOptionsPanelViewType = NO_PANEL;
- setNativeInfoBar(nativeInfoBarPtr);
}
@Override
@@ -61,7 +62,7 @@ public class TranslateInfoBar extends InfoBar implements SubPanelListener {
// Make it behave exactly as the Nope Button.
onButtonClicked(false);
} else {
- nativeOnCloseButtonClicked(mNativeInfoBarPtr);
+ super.onCloseButtonClicked();
}
}
@@ -208,8 +209,7 @@ public class TranslateInfoBar extends InfoBar implements SubPanelListener {
// We need to re-check if the pointer is null now because applying options (like never
// translate this site) can sometimes trigger closing the InfoBar.
- if (mNativeInfoBarPtr == 0) return;
- nativeOnButtonClicked(mNativeInfoBarPtr, action, "");
+ super.onButtonClicked(action, "");
}
@Override
@@ -226,14 +226,12 @@ public class TranslateInfoBar extends InfoBar implements SubPanelListener {
@Override
public void onOptionsChanged() {
- if (mNativeInfoBarPtr == 0) return;
+ if (mNativeTranslateInfoBarPtr == 0) return;
if (mOptions.optionsChanged()) {
- mTranslateDelegate.applyTranslateOptions(mNativeInfoBarPtr,
- mOptions.sourceLanguageIndex(),
- mOptions.targetLanguageIndex(),
- mOptions.alwaysTranslateLanguageState(),
- mOptions.neverTranslateLanguageState(),
+ mTranslateDelegate.applyTranslateOptions(mNativeTranslateInfoBarPtr,
David Trainor- moved to gerrit 2015/06/02 17:51:55 This one is particularly confusing. Why isn't thi
Changwan Ryu 2015/06/03 04:55:41 Removed TranslateInfoBarDelegate.
+ mOptions.sourceLanguageIndex(), mOptions.targetLanguageIndex(),
+ mOptions.alwaysTranslateLanguageState(), mOptions.neverTranslateLanguageState(),
mOptions.neverTranslateDomainState());
}
}
@@ -331,10 +329,12 @@ public class TranslateInfoBar extends InfoBar implements SubPanelListener {
return mInfoBarType;
}
- void changeInfoBarTypeAndNativePointer(int infoBarType, long newNativePointer) {
+ void changeInfoBarTypeAndNativePointer(
+ int infoBarType, long newNativeInfoBarPtr, long newNativeTranslateInfobarPtr) {
if (infoBarType >= 0 && infoBarType < MAX_INFOBAR_INDEX) {
mInfoBarType = infoBarType;
- replaceNativePointer(newNativePointer);
+ replaceNativePointer(newNativeInfoBarPtr);
+ mNativeTranslateInfoBarPtr = newNativeTranslateInfobarPtr;
updateViewForCurrentState(createView());
} else {
assert false : "Trying to change the InfoBar to a type that is invalid.";

Powered by Google App Engine
This is Rietveld 408576698