diff options
author | tedchoc <tedchoc@chromium.org> | 2015-01-06 19:39:18 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-01-07 03:40:00 +0000 |
commit | 4dbfc8480b9a7e8728603a916cbbd8596707c39d (patch) | |
tree | b7a91497bd185b80b0bf8038ab219fb811b4812e /chrome/android | |
parent | c6ae3d0b139fef665294fee543b4016777880672 (diff) | |
download | chromium_src-4dbfc8480b9a7e8728603a916cbbd8596707c39d.zip chromium_src-4dbfc8480b9a7e8728603a916cbbd8596707c39d.tar.gz chromium_src-4dbfc8480b9a7e8728603a916cbbd8596707c39d.tar.bz2 |
[Android] Add tab observer methods for page load started/stopped.
BUG=344589
Review URL: https://codereview.chromium.org/839553006
Cr-Commit-Position: refs/heads/master@{#310228}
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}. */ |