| 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 2b130a550d227660d2977378a17dbe872935b4b6..40f69d92f6b5e1c56420dbe00a64e05f44e3276f 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,6 +60,8 @@
|
| 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;
|
| @@ -151,6 +153,9 @@
|
| // Whether destroy() has been called.
|
| private boolean mIsDestroyed;
|
|
|
| + /** Used by {@link #mNewTabPageManager}. Observer tracked for de-registration purposes. */
|
| + private SignInStateObserver mSignInStateObserver;
|
| +
|
| /**
|
| * Allows clients to listen for updates to the scroll changes of the search box on the
|
| * NTP.
|
| @@ -652,6 +657,14 @@ public void closeContextMenu() {
|
| public SuggestionsSource getSuggestionsSource() {
|
| return mSnippetsBridge;
|
| }
|
| +
|
| + @Override
|
| + public void registerSignInStateObserver(SignInStateObserver signInStateObserver) {
|
| + if (mIsDestroyed) return;
|
| + assert mSignInStateObserver == null;
|
| + mSignInStateObserver = signInStateObserver;
|
| + SigninManager.get(mActivity).addSignInStateObserver(mSignInStateObserver);
|
| + }
|
| };
|
|
|
| /**
|
| @@ -950,6 +963,9 @@ public void destroy() {
|
| if (mMostVisitedItemRemovedController != null) {
|
| mTab.getSnackbarManager().dismissSnackbars(mMostVisitedItemRemovedController);
|
| }
|
| + if (mSignInStateObserver != null) {
|
| + SigninManager.get(mActivity).removeSignInStateObserver(mSignInStateObserver);
|
| + }
|
| TemplateUrlService.getInstance().removeObserver(this);
|
| mTab.removeObserver(mTabObserver);
|
| mTabObserver = null;
|
|
|