summaryrefslogtreecommitdiffstats
path: root/components/cronet
diff options
context:
space:
mode:
authormef <mef@chromium.org>2015-12-18 08:56:15 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-18 16:57:15 +0000
commit8d1fd8841affe9d79f0ec31a68d9b6343b1d1182 (patch)
treedc720df93624126c1080a42c0bc88a0732ea3d64 /components/cronet
parent4f8c7cc523c6d1453531b7f0e16cc66c1c4a84fa (diff)
downloadchromium_src-8d1fd8841affe9d79f0ec31a68d9b6343b1d1182.zip
chromium_src-8d1fd8841affe9d79f0ec31a68d9b6343b1d1182.tar.gz
chromium_src-8d1fd8841affe9d79f0ec31a68d9b6343b1d1182.tar.bz2
[Cronet] Add BidirectionalStream.Builder.setPriority() method and corresponding values.
BUG=516342 Review URL: https://codereview.chromium.org/1514093004 Cr-Commit-Position: refs/heads/master@{#366108}
Diffstat (limited to 'components/cronet')
-rw-r--r--components/cronet/android/api/src/org/chromium/net/BidirectionalStream.java54
-rw-r--r--components/cronet/android/api/src/org/chromium/net/CronetEngine.java10
-rw-r--r--components/cronet/android/api/src/org/chromium/net/UrlRequest.java10
-rw-r--r--components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java7
4 files changed, 70 insertions, 11 deletions
diff --git a/components/cronet/android/api/src/org/chromium/net/BidirectionalStream.java b/components/cronet/android/api/src/org/chromium/net/BidirectionalStream.java
index cfffc7b..af42976 100644
--- a/components/cronet/android/api/src/org/chromium/net/BidirectionalStream.java
+++ b/components/cronet/android/api/src/org/chromium/net/BidirectionalStream.java
@@ -4,6 +4,10 @@
package org.chromium.net;
+import android.support.annotation.IntDef;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
import java.nio.ByteBuffer;
import java.util.AbstractMap;
import java.util.ArrayList;
@@ -40,6 +44,8 @@ public abstract class BidirectionalStream {
// HTTP method for the request. Default to POST.
private String mHttpMethod = "POST";
+ // Priority of the stream. Default is medium.
+ @StreamPriority private int mPriority = STREAM_PRIORITY_MEDIUM;
/**
* Creates a builder for {@link BidirectionalStream} objects. All callbacks for
@@ -107,6 +113,52 @@ public abstract class BidirectionalStream {
return this;
}
+ /** @deprecated not really deprecated but hidden. */
+ @IntDef({
+ STREAM_PRIORITY_IDLE, STREAM_PRIORITY_LOWEST, STREAM_PRIORITY_LOW,
+ STREAM_PRIORITY_MEDIUM, STREAM_PRIORITY_HIGHEST,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ @SuppressWarnings("DepAnn")
+ public @interface StreamPriority {}
+
+ /**
+ * Lowest stream priority. Passed to {@link #setPriority}.
+ */
+ public static final int STREAM_PRIORITY_IDLE = 0;
+ /**
+ * Very low stream priority. Passed to {@link #setPriority}.
+ */
+ public static final int STREAM_PRIORITY_LOWEST = 1;
+ /**
+ * Low stream priority. Passed to {@link #setPriority}.
+ */
+ public static final int STREAM_PRIORITY_LOW = 2;
+ /**
+ * Medium stream priority. Passed to {@link #setPriority}. This is the
+ * default priority given to the stream.
+ */
+ public static final int STREAM_PRIORITY_MEDIUM = 3;
+ /**
+ * Highest stream priority. Passed to {@link #setPriority}.
+ */
+ public static final int STREAM_PRIORITY_HIGHEST = 4;
+
+ /**
+ * Sets priority of the stream which should be one of the
+ * {@link #STREAM_PRIORITY_IDLE STREAM_PRIORITY_*} values.
+ * The stream is given {@link #STREAM_PRIORITY_MEDIUM} priority if {@link
+ * #setPriority} is not called.
+ *
+ * @param priority priority of the stream which should be one of the
+ * {@link #STREAM_PRIORITY_IDLE STREAM_PRIORITY_*} values.
+ * @return the builder to facilitate chaining.
+ */
+ public Builder setPriority(@StreamPriority int priority) {
+ mPriority = priority;
+ return this;
+ }
+
/**
* Creates a {@link BidirectionalStream} using configuration from this
* {@link Builder}. The returned {@code BidirectionalStream} can then be started
@@ -117,7 +169,7 @@ public abstract class BidirectionalStream {
*/
public BidirectionalStream build() {
return mCronetEngine.createBidirectionalStream(
- mUrl, mCallback, mExecutor, mHttpMethod, mRequestHeaders);
+ mUrl, mCallback, mExecutor, mHttpMethod, mRequestHeaders, mPriority);
}
}
diff --git a/components/cronet/android/api/src/org/chromium/net/CronetEngine.java b/components/cronet/android/api/src/org/chromium/net/CronetEngine.java
index 4bf88d7..be497ad 100644
--- a/components/cronet/android/api/src/org/chromium/net/CronetEngine.java
+++ b/components/cronet/android/api/src/org/chromium/net/CronetEngine.java
@@ -587,8 +587,8 @@ public abstract class CronetEngine {
* @deprecated Use {@link UrlRequest.Builder#build}.
*/
@Deprecated
- public abstract UrlRequest createRequest(
- String url, UrlRequest.Callback callback, Executor executor, int priority);
+ public abstract UrlRequest createRequest(String url, UrlRequest.Callback callback,
+ Executor executor, @UrlRequest.Builder.RequestPriority int priority);
/**
* Creates a {@link BidirectionalStream} object. {@code callback} methods will
@@ -601,11 +601,15 @@ public abstract class CronetEngine {
* @param executor the {@link Executor} on which all callbacks will be called
* @param httpMethod the HTTP method to use for the stream
* @param requestHeaders the list of request headers
+ * @param priority priority of the stream which should be one of the
+ * {@link BidirectionalStream.Builder#STREAM_PRIORITY_IDLE STREAM_PRIORITY_*}
+ * values.
* @return a new stream.
*/
abstract BidirectionalStream createBidirectionalStream(String url,
BidirectionalStream.Callback callback, Executor executor, String httpMethod,
- List<Map.Entry<String, String>> requestHeaders);
+ List<Map.Entry<String, String>> requestHeaders,
+ @BidirectionalStream.Builder.StreamPriority int priority);
/**
* @return {@code true} if the engine is enabled.
diff --git a/components/cronet/android/api/src/org/chromium/net/UrlRequest.java b/components/cronet/android/api/src/org/chromium/net/UrlRequest.java
index 3d5a5e9..1d83c4c 100644
--- a/components/cronet/android/api/src/org/chromium/net/UrlRequest.java
+++ b/components/cronet/android/api/src/org/chromium/net/UrlRequest.java
@@ -42,8 +42,8 @@ public interface UrlRequest {
new ArrayList<Pair<String, String>>();
// Disable the cache for just this request.
boolean mDisableCache;
- // Priority of request.
- int mPriority = REQUEST_PRIORITY_MEDIUM;
+ // Priority of request. Default is medium.
+ @RequestPriority int mPriority = REQUEST_PRIORITY_MEDIUM;
// If request is an upload, this provides the request body data.
UploadDataProvider mUploadDataProvider;
// Executor to call upload data provider back on.
@@ -148,7 +148,8 @@ public interface UrlRequest {
*/
public static final int REQUEST_PRIORITY_LOW = 2;
/**
- * Medium request priority. Passed to {@link #setPriority}.
+ * Medium request priority. Passed to {@link #setPriority}. This is the
+ * default priority given to the request.
*/
public static final int REQUEST_PRIORITY_MEDIUM = 3;
/**
@@ -159,7 +160,8 @@ public interface UrlRequest {
/**
* Sets priority of the request which should be one of the
* {@link #REQUEST_PRIORITY_IDLE REQUEST_PRIORITY_*} values.
- * Defaults to {@link #REQUEST_PRIORITY_MEDIUM}
+ * The request is given {@link #REQUEST_PRIORITY_MEDIUM} priority if {@link
+ * #setPriority} is not called.
*
* @param priority priority of the request which should be one of the
* {@link #REQUEST_PRIORITY_IDLE REQUEST_PRIORITY_*} values.
diff --git a/components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java b/components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java
index 90f9730..e6a337e 100644
--- a/components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java
+++ b/components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java
@@ -128,8 +128,8 @@ class CronetUrlRequestContext extends CronetEngine {
}
@Override
- public UrlRequest createRequest(
- String url, UrlRequest.Callback callback, Executor executor, int priority) {
+ public UrlRequest createRequest(String url, UrlRequest.Callback callback, Executor executor,
+ @UrlRequest.Builder.RequestPriority int priority) {
synchronized (mLock) {
checkHaveAdapter();
return new CronetUrlRequest(
@@ -139,7 +139,8 @@ class CronetUrlRequestContext extends CronetEngine {
@Override
BidirectionalStream createBidirectionalStream(String url, BidirectionalStream.Callback callback,
- Executor executor, String httpMethod, List<Map.Entry<String, String>> requestHeaders) {
+ Executor executor, String httpMethod, List<Map.Entry<String, String>> requestHeaders,
+ @BidirectionalStream.Builder.StreamPriority int priority) {
throw new UnsupportedOperationException();
}