| Index: chrome/android/java/src/org/chromium/chrome/browser/customtabs/ClientManager.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/ClientManager.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/ClientManager.java
|
| index 212f0ef590ac27fc24a108704e65a6e4995cdbff..1117a17c47ee93010c85c0f3dc98dce8540d0741 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/ClientManager.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/ClientManager.java
|
| @@ -131,6 +131,7 @@ class ClientManager {
|
| private KeepAliveServiceConnection mKeepAliveConnection;
|
| private String mPredictedUrl;
|
| private long mLastMayLaunchUrlTimestamp;
|
| + private int mSpeculationMode;
|
|
|
| public SessionParams(Context context, int uid, DisconnectCallback callback,
|
| PostMessageHandler postMessageHandler) {
|
| @@ -138,6 +139,7 @@ class ClientManager {
|
| packageName = getPackageName(context, uid);
|
| disconnectCallback = callback;
|
| this.postMessageHandler = postMessageHandler;
|
| + this.mSpeculationMode = CustomTabsConnection.SpeculationParams.PRERENDER;
|
| }
|
|
|
| private static String getPackageName(Context context, int uid) {
|
| @@ -450,6 +452,21 @@ class ClientManager {
|
| if (params != null) params.mShouldPrerenderOnCellular = prerender;
|
| }
|
|
|
| + /**
|
| + * Sets the speculation mode to be used by default for given session.
|
| + */
|
| + public synchronized void setSpeculationModeForSession(
|
| + CustomTabsSessionToken session, int speculationMode) {
|
| + SessionParams params = mSessionParams.get(session);
|
| + if (params != null) params.mSpeculationMode = speculationMode;
|
| + }
|
| +
|
| + public synchronized int getSpeculationModeForSession(CustomTabsSessionToken session) {
|
| + SessionParams params = mSessionParams.get(session);
|
| + return params == null ? CustomTabsConnection.SpeculationParams.PRERENDER
|
| + : params.mSpeculationMode;
|
| + }
|
| +
|
| /** Tries to bind to a client to keep it alive, and returns true for success. */
|
| public synchronized boolean keepAliveForSession(CustomTabsSessionToken session, Intent intent) {
|
| // When an application is bound to a service, its priority is raised to
|
|
|