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) { |
Benoit L
2017/03/27 13:18:14
tiny nit: I'm usually all for not adding javadoc t
ahemery1
2017/03/27 14:47:33
Done.
|
+ 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 |