summaryrefslogtreecommitdiffstats
path: root/chrome/android
diff options
context:
space:
mode:
authortedchoc <tedchoc@chromium.org>2015-01-06 19:39:18 -0800
committerCommit bot <commit-bot@chromium.org>2015-01-07 03:40:00 +0000
commit4dbfc8480b9a7e8728603a916cbbd8596707c39d (patch)
treeb7a91497bd185b80b0bf8038ab219fb811b4812e /chrome/android
parentc6ae3d0b139fef665294fee543b4016777880672 (diff)
downloadchromium_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')
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/EmptyTabObserver.java9
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/Tab.java14
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/TabObserver.java29
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}.
*/