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 fe9ba418dd98efd1345f88328f6fd80949e0b7e0..a6942d9e38acf6a62a501da6bb67dc2cda1c79f5 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 |
@@ -4,17 +4,22 @@ |
package org.chromium.chrome.browser.customtabs; |
-import android.app.Service; |
import android.content.Intent; |
+import android.net.Uri; |
+import android.os.Bundle; |
import android.os.IBinder; |
+import android.support.customtabs.CustomTabsService; |
+import android.support.customtabs.CustomTabsSessionToken; |
import org.chromium.chrome.browser.firstrun.FirstRunFlowSequencer; |
import org.chromium.chrome.browser.preferences.ChromePreferenceManager; |
+import java.util.List; |
+ |
/** |
* Custom tabs connection service, used by the embedded Chrome activities. |
*/ |
-public class CustomTabsConnectionService extends Service { |
+public class CustomTabsConnectionService extends CustomTabsService { |
@Override |
public void onCreate() { |
super.onCreate(); |
@@ -27,12 +32,39 @@ public class CustomTabsConnectionService extends Service { |
if (firstRunNecessary) return null; |
if (!ChromePreferenceManager.getInstance(this).getCustomTabsEnabled()) return null; |
- return (IBinder) CustomTabsConnection.getInstance(getApplication()); |
+ return super.onBind(intent); |
} |
@Override |
public boolean onUnbind(Intent intent) { |
- super.onUnbind(intent); |
- return false; // No support for onRebind(). |
+ return super.onUnbind(intent); |
+ } |
+ |
+ @Override |
+ protected boolean warmup(long flags) { |
+ return CustomTabsConnection.getInstance(getApplication()).warmup(flags); |
+ } |
+ |
+ @Override |
+ protected boolean newSession(CustomTabsSessionToken sessionToken) { |
+ return CustomTabsConnection.getInstance(getApplication()).newSession(sessionToken); |
+ } |
+ |
+ @Override |
+ protected boolean mayLaunchUrl(CustomTabsSessionToken sessionToken, Uri url, Bundle extras, |
+ List<Bundle> otherLikelyBundles) { |
+ return CustomTabsConnection.getInstance(getApplication()) |
+ .mayLaunchUrl(sessionToken, url, extras, otherLikelyBundles); |
+ } |
+ |
+ @Override |
+ protected Bundle extraCommand(String commandName, Bundle args) { |
+ return CustomTabsConnection.getInstance(getApplication()).extraCommand(commandName, args); |
+ } |
+ |
+ @Override |
+ protected boolean cleanUpSession(CustomTabsSessionToken sessionToken) { |
+ CustomTabsConnection.getInstance(getApplication()).cleanupSession(sessionToken); |
+ return super.cleanUpSession(sessionToken); |
} |
} |