diff options
author | mef <mef@chromium.org> | 2015-12-18 08:56:15 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-18 16:57:15 +0000 |
commit | 8d1fd8841affe9d79f0ec31a68d9b6343b1d1182 (patch) | |
tree | dc720df93624126c1080a42c0bc88a0732ea3d64 /components/cronet | |
parent | 4f8c7cc523c6d1453531b7f0e16cc66c1c4a84fa (diff) | |
download | chromium_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')
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(); } |