| Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
|
| index 1e30b4fe978801bbf432baf2421ec5e89b8cc2bd..87b9654b15ce4d3559fc403dfea16a95ad58ec4c 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
|
| @@ -300,6 +300,12 @@ public class NewTabPageView extends FrameLayout
|
| * Page goes away.
|
| */
|
| void registerSignInStateObserver(SignInStateObserver signInStateObserver);
|
| +
|
| + /**
|
| + * @return whether the {@link NewTabPage} associated with this manager is the current page
|
| + * displayed to the user.
|
| + */
|
| + boolean isCurrentPage();
|
| }
|
|
|
| /**
|
| @@ -491,6 +497,12 @@ public class NewTabPageView extends FrameLayout
|
| private void updateSearchBoxOnScroll() {
|
| if (mDisableUrlFocusChangeAnimations) return;
|
|
|
| + // When the page changes (tab switching or new page loading), it is possible that events
|
| + // (e.g. delayed RecyclerView change notifications) trigger calls to these methods after
|
| + // the current page changes. We check it again to make sure we don't attempt to update the
|
| + // wrong page.
|
| + if (!mManager.isCurrentPage()) return;
|
| +
|
| if (mSearchBoxScrollListener != null) {
|
| mSearchBoxScrollListener.onNtpScrollChanged(getToolbarTransitionPercentage());
|
| }
|
|
|