Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTab.java

Issue 1292493002: Add signals to make callback more reliable (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Signal hidden onPause rather than onStop Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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() {

Powered by Google App Engine
This is Rietveld 408576698