diff options
Diffstat (limited to 'chrome/android')
3 files changed, 52 insertions, 0 deletions
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/EmptyTabObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/EmptyTabObserver.java index 03ca97d..ffefd35 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/EmptyTabObserver.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/EmptyTabObserver.java @@ -21,6 +21,15 @@ public class EmptyTabObserver implements TabObserver { public void onLoadUrl(Tab tab, String url, int loadType) { } @Override + public void onPageLoadStarted(Tab tab) { } + + @Override + public void onPageLoadFinished(Tab tab) { } + + @Override + public void onPageLoadFailed(Tab tab, int errorCode) { } + + @Override public void onFaviconUpdated(Tab tab) { } @Override diff --git a/chrome/android/java/src/org/chromium/chrome/browser/Tab.java b/chrome/android/java/src/org/chromium/chrome/browser/Tab.java index 7131bec..3daba53 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/Tab.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/Tab.java @@ -485,6 +485,8 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener, observer.onDidFailLoad(Tab.this, isProvisionalLoad, isMainFrame, errorCode, description, failingUrl); } + + if (isMainFrame) didFailPageLoad(errorCode); } @Override @@ -1240,6 +1242,8 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener, } clearHungRendererState(); + + for (TabObserver observer : mObservers) observer.onPageLoadStarted(this); } /** @@ -1249,6 +1253,16 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener, mIsTabStateDirty = true; updateTitle(); updateFullscreenEnabledState(); + + for (TabObserver observer : mObservers) observer.onPageLoadFinished(this); + } + + /** + * Called when a page has failed loading. + * @param errorCode The error code causing the page to fail loading. + */ + protected void didFailPageLoad(int errorCode) { + for (TabObserver observer : mObservers) observer.onPageLoadFailed(this, errorCode); } /** diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/TabObserver.java index 306984f..1d5ad64 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/TabObserver.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/TabObserver.java @@ -39,6 +39,35 @@ public interface TabObserver { void onLoadUrl(Tab tab, String url, int loadType); /** + * Called when a tab has started to load a page. + * <p> + * This will occur when the main frame has committed a provisional load, and will also + * occur in instances where we need to simulate load progress (i.e. swapping in a not + * fully loaded pre-rendered page). + * <p> + * For visual loading indicators/throbbers, {@link #onLoadStarted(Tab)} and + * {@link #onLoadStopped(Tab)} should be used to drive updates. + * + * @param tab The notifying {@link Tab}. + */ + void onPageLoadStarted(Tab tab); + + /** + * Called when a tab has finished loading a page. + * + * @param tab The notifying {@link Tab}. + */ + void onPageLoadFinished(Tab tab); + + /** + * Called when a tab has failed loading a page. + * + * @param tab The notifying {@link Tab}. + * @param errorCode The error code that causes the page to fail loading. + */ + void onPageLoadFailed(Tab tab, int errorCode); + + /** * Called when the favicon of a {@link Tab} has been updated. * @param tab The notifying {@link Tab}. */ |