| 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 4df2b5eb09d2ed57e624193e43aad2411b50b4a4..3c13687db2e1666fd2df8df9121b0a6913cd0716 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,21 +4,23 @@
|
|
|
| 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 {
|
| - @Override
|
| - public void onCreate() {
|
| - super.onCreate();
|
| - }
|
| +public class CustomTabsConnectionService extends CustomTabsService {
|
| + private CustomTabsConnection mConnection;
|
|
|
| @Override
|
| public IBinder onBind(Intent intent) {
|
| @@ -26,16 +28,47 @@ public class CustomTabsConnectionService extends Service {
|
| .checkIfFirstRunIsNecessary(getApplicationContext(), false) != null;
|
| if (firstRunNecessary) return null;
|
| if (!ChromePreferenceManager.getInstance(this).getCustomTabsEnabled()) return null;
|
| - CustomTabsConnection connection = CustomTabsConnection.getInstance(getApplication());
|
| - connection.logCall("Service#onBind()", true);
|
| - return (IBinder) connection;
|
| + mConnection = CustomTabsConnection.getInstance(getApplication());
|
| + mConnection.logCall("Service#onBind()", true);
|
| + return super.onBind(intent);
|
| }
|
|
|
| @Override
|
| public boolean onUnbind(Intent intent) {
|
| super.onUnbind(intent);
|
| - CustomTabsConnection connection = CustomTabsConnection.getInstance(getApplication());
|
| - connection.logCall("Service#onUnbind()", true);
|
| + mConnection.logCall("Service#onUnbind()", true);
|
| return false; // No support for onRebind().
|
| }
|
| +
|
| + @Override
|
| + protected boolean warmup(long flags) {
|
| + return mConnection.warmup(flags);
|
| + }
|
| +
|
| + @Override
|
| + protected boolean newSession(CustomTabsSessionToken sessionToken) {
|
| + return mConnection.newSession(sessionToken);
|
| + }
|
| +
|
| + @Override
|
| + protected boolean mayLaunchUrl(CustomTabsSessionToken sessionToken, Uri url, Bundle extras,
|
| + List<Bundle> otherLikelyBundles) {
|
| + return mConnection.mayLaunchUrl(sessionToken, url, extras, otherLikelyBundles);
|
| + }
|
| +
|
| + @Override
|
| + protected Bundle extraCommand(String commandName, Bundle args) {
|
| + return mConnection.extraCommand(commandName, args);
|
| + }
|
| +
|
| + @Override
|
| + protected boolean updateVisuals(CustomTabsSessionToken sessionToken, Bundle bundle) {
|
| + return mConnection.updateVisuals(sessionToken, bundle);
|
| + }
|
| +
|
| + @Override
|
| + protected boolean cleanUpSession(CustomTabsSessionToken sessionToken) {
|
| + mConnection.cleanUpSession(sessionToken);
|
| + return super.cleanUpSession(sessionToken);
|
| + }
|
| }
|
|
|