Index: chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnectionService.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnectionService.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnectionService.java |
index 2e931bd08b106797acf681187bdd4c81fc1e0161..d49818ccf1cd4856ae98c9fa2bf0fa005cfe8be8 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnectionService.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnectionService.java |
@@ -20,12 +20,11 @@ import java.util.List; |
*/ |
public class CustomTabsConnectionService extends CustomTabsService { |
private CustomTabsConnection mConnection; |
+ private Intent mBindIntent; |
@Override |
public IBinder onBind(Intent intent) { |
- boolean firstRunNecessary = FirstRunFlowSequencer |
- .checkIfFirstRunIsNecessary(getApplicationContext(), intent) != null; |
- if (firstRunNecessary) return null; |
+ mBindIntent = intent; |
mConnection = CustomTabsConnection.getInstance(getApplication()); |
mConnection.logCall("Service#onBind()", true); |
return super.onBind(intent); |
@@ -40,6 +39,7 @@ public class CustomTabsConnectionService extends CustomTabsService { |
@Override |
protected boolean warmup(long flags) { |
+ if (!isFirstRunDone()) return false; |
return mConnection.warmup(flags); |
} |
@@ -51,6 +51,7 @@ public class CustomTabsConnectionService extends CustomTabsService { |
@Override |
protected boolean mayLaunchUrl(CustomTabsSessionToken sessionToken, Uri url, Bundle extras, |
List<Bundle> otherLikelyBundles) { |
+ if (!isFirstRunDone()) return false; |
return mConnection.mayLaunchUrl(sessionToken, url, extras, otherLikelyBundles); |
} |
@@ -61,6 +62,7 @@ public class CustomTabsConnectionService extends CustomTabsService { |
@Override |
protected boolean updateVisuals(CustomTabsSessionToken sessionToken, Bundle bundle) { |
+ if (!isFirstRunDone()) return false; |
return mConnection.updateVisuals(sessionToken, bundle); |
} |
@@ -69,4 +71,15 @@ public class CustomTabsConnectionService extends CustomTabsService { |
mConnection.cleanUpSession(sessionToken); |
return super.cleanUpSession(sessionToken); |
} |
+ |
+ private boolean isFirstRunDone() { |
+ if (mBindIntent == null) return true; |
+ boolean firstRunNecessary = FirstRunFlowSequencer |
+ .checkIfFirstRunIsNecessary(getApplicationContext(), mBindIntent) != null; |
+ if (!firstRunNecessary) { |
+ mBindIntent = null; |
+ return true; |
+ } |
+ return false; |
+ } |
} |