Index: chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java |
index fed11c8825a486df65c836a4a7e993ee1b590359..27e6965d9e18f4d240257d497458392427ce0684 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java |
@@ -1395,6 +1395,26 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener, |
} |
/** |
+ * Called when a navigation begins and no navigation was in progress |
+ * @param toDifferentDocument Whether this navigation will transition between |
+ * documents (i.e., not a fragment navigation or JS History API call). |
+ */ |
+ protected void onLoadStarted(boolean toDifferentDocument) { |
+ if (toDifferentDocument) mIsLoading = true; |
+ for (TabObserver observer : mObservers) observer.onLoadStarted(this, toDifferentDocument); |
+ } |
+ |
+ /** |
+ * Called when a navigation completes and no other navigation is in progress. |
+ */ |
+ protected void onLoadStopped() { |
+ // mIsLoading should only be false if this is a same-document navigation. |
+ boolean toDifferentDocument = mIsLoading; |
+ mIsLoading = false; |
+ for (TabObserver observer : mObservers) observer.onLoadStopped(this, toDifferentDocument); |
+ } |
+ |
+ /** |
* Called when a page has started loading. |
* @param validatedUrl URL being loaded. |
* @param showingErrorPage Whether an error page is being shown. |
@@ -1403,7 +1423,6 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener, |
mIsFullscreenWaitingForLoad = !DomDistillerUrlUtils.isDistilledPage(validatedUrl); |
mIsShowingErrorPage = showingErrorPage; |
- mIsLoading = true; |
updateTitle(); |
removeSadTabIfPresent(); |
@@ -1417,7 +1436,6 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener, |
* Called when a page has finished loading. |
*/ |
protected void didFinishPageLoad() { |
- mIsLoading = false; |
mIsBeingRestored = false; |
mIsTabStateDirty = true; |
updateTitle(); |
@@ -1450,7 +1468,6 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener, |
*/ |
protected void didFailPageLoad(int errorCode) { |
cancelEnableFullscreenLoadDelay(); |
- mIsLoading = false; |
mIsBeingRestored = false; |
if (mTabUma != null) mTabUma.onLoadFailed(errorCode); |
for (TabObserver observer : mObservers) observer.onPageLoadFailed(this, errorCode); |