Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java |
index cf1b3deab9ed86a94638bb9d668add9820de97ea..a6a0b8f2d30f370df371f3e853c79e6e67d1501e 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java |
@@ -60,8 +60,6 @@ |
import org.chromium.chrome.browser.profiles.Profile; |
import org.chromium.chrome.browser.search_engines.TemplateUrlService; |
import org.chromium.chrome.browser.search_engines.TemplateUrlService.TemplateUrlServiceObserver; |
-import org.chromium.chrome.browser.signin.SigninManager; |
-import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver; |
import org.chromium.chrome.browser.snackbar.Snackbar; |
import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController; |
import org.chromium.chrome.browser.sync.SyncSessionsMetrics; |
@@ -153,8 +151,7 @@ |
// Whether destroy() has been called. |
private boolean mIsDestroyed; |
- /** Used by {@link #mNewTabPageManager}. Observer tracked for de-registration purposes. */ |
- private SignInStateObserver mSignInStateObserver; |
+ private DestructionObserver mDestructionObserver; |
/** |
* Allows clients to listen for updates to the scroll changes of the search box on the |
@@ -173,6 +170,13 @@ |
} |
/** |
+ * Object that registered through the {@link NewTabPageManager}, and that will be notified when |
+ * the {@link NewTabPage} is destroyed. |
+ * @see NewTabPageManager#setDestructionObserver(DestructionObserver) |
+ */ |
+ public interface DestructionObserver { void onDestroy(); } |
+ |
+ /** |
* Handles user interaction with the fakebox (the URL bar in the NTP). |
*/ |
public interface FakeboxDelegate { |
@@ -661,11 +665,10 @@ public SuggestionsSource getSuggestionsSource() { |
} |
@Override |
- public void registerSignInStateObserver(SignInStateObserver signInStateObserver) { |
+ public void setDestructionObserver(DestructionObserver destructionObserver) { |
if (mIsDestroyed) return; |
- assert mSignInStateObserver == null; |
- mSignInStateObserver = signInStateObserver; |
- SigninManager.get(mActivity).addSignInStateObserver(mSignInStateObserver); |
+ assert mDestructionObserver == null; |
+ mDestructionObserver = destructionObserver; |
} |
@Override |
@@ -972,8 +975,8 @@ public void destroy() { |
if (mMostVisitedItemRemovedController != null) { |
mTab.getSnackbarManager().dismissSnackbars(mMostVisitedItemRemovedController); |
} |
- if (mSignInStateObserver != null) { |
- SigninManager.get(mActivity).removeSignInStateObserver(mSignInStateObserver); |
+ if (mDestructionObserver != null) { |
+ mDestructionObserver.onDestroy(); |
} |
TemplateUrlService.getInstance().removeObserver(this); |
mTab.removeObserver(mTabObserver); |