| Index: chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTab.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTab.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTab.java
|
| index d59b5563251dcd38d00e61240b581e929969aa5a..d67e55034025a20d05fc94f59422eaa1c0b583fc 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTab.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTab.java
|
| @@ -28,6 +28,7 @@ import org.chromium.chrome.browser.contextmenu.ContextMenuParams;
|
| import org.chromium.chrome.browser.contextmenu.ContextMenuPopulator;
|
| import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl;
|
| import org.chromium.chrome.browser.externalnav.ExternalNavigationHandler;
|
| +import org.chromium.chrome.browser.ssl.ConnectionSecurityLevel;
|
| import org.chromium.chrome.browser.tab.ChromeTab;
|
| import org.chromium.chrome.browser.tab.EmptyTabObserver;
|
| import org.chromium.chrome.browser.tab.Tab;
|
| @@ -78,12 +79,22 @@ public class CustomTab extends ChromeTab {
|
| if (mCurrentState == STATE_WAITING_LOAD_START) {
|
| mPageLoadStartedTimestamp = SystemClock.elapsedRealtime();
|
| mCurrentState = STATE_WAITING_LOAD_FINISH;
|
| + } else if (mCurrentState == STATE_WAITING_LOAD_FINISH) {
|
| + mCustomTabsConnection.notifyNavigationEvent(
|
| + mSession, CustomTabsCallback.NAVIGATION_ABORTED);
|
| + mPageLoadStartedTimestamp = SystemClock.elapsedRealtime();
|
| }
|
| mCustomTabsConnection.notifyNavigationEvent(
|
| mSession, CustomTabsCallback.NAVIGATION_STARTED);
|
| }
|
|
|
| @Override
|
| + public void onShown(Tab tab) {
|
| + mCustomTabsConnection.notifyNavigationEvent(
|
| + mSession, CustomTabsCallback.TAB_SHOWN);
|
| + }
|
| +
|
| + @Override
|
| public void onPageLoadFinished(Tab tab) {
|
| long pageLoadFinishedTimestamp = SystemClock.elapsedRealtime();
|
| mCustomTabsConnection.notifyNavigationEvent(
|
| @@ -108,8 +119,18 @@ public class CustomTab extends ChromeTab {
|
| }
|
|
|
| @Override
|
| + public void onDidAttachInterstitialPage(Tab tab) {
|
| + if (tab.getSecurityLevel() != ConnectionSecurityLevel.SECURITY_ERROR) return;
|
| + resetPageLoadTracking();
|
| + mCustomTabsConnection.notifyNavigationEvent(
|
| + mSession, CustomTabsCallback.NAVIGATION_FAILED);
|
| + }
|
| +
|
| + @Override
|
| public void onPageLoadFailed(Tab tab, int errorCode) {
|
| resetPageLoadTracking();
|
| + mCustomTabsConnection.notifyNavigationEvent(
|
| + mSession, CustomTabsCallback.NAVIGATION_FAILED);
|
| }
|
|
|
| private void resetPageLoadTracking() {
|
|
|