116 lines
4.2 KiB
Java
116 lines
4.2 KiB
Java
![]() |
// Copyright 2016 The Chromium Authors
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
package org.chromium.net;
|
||
|
|
||
|
import java.util.concurrent.Executor;
|
||
|
|
||
|
/**
|
||
|
* {@link UrlRequest} that exposes experimental features. To obtain an instance of this class, cast
|
||
|
* a {@code UrlRequest} to this type. Every instance of {@code UrlRequest} can be cast to an
|
||
|
* instance of this class, as they are backed by the same implementation and hence perform
|
||
|
* identically. Instances of this class are not meant for general use, but instead only to access
|
||
|
* experimental features. Experimental features may be deprecated in the future. Use at your own
|
||
|
* risk.
|
||
|
*
|
||
|
* {@hide for consistency with other experimental classes}
|
||
|
*
|
||
|
* @deprecated scheduled for deletion, don't use in new code.
|
||
|
*/
|
||
|
@Deprecated
|
||
|
public abstract class ExperimentalUrlRequest extends UrlRequest {
|
||
|
/**
|
||
|
* {@link UrlRequest#Builder} that exposes experimental features. To obtain an instance of this
|
||
|
* class, cast a {@code UrlRequest.Builder} to this type. Every instance of {@code
|
||
|
* UrlRequest.Builder} can be cast to an instance of this class, as they are backed by the same
|
||
|
* implementation and hence perform identically. Instances of this class are not meant for
|
||
|
* general use, but instead only to access experimental features. Experimental features may be
|
||
|
* deprecated in the future. Use at your own risk.
|
||
|
*
|
||
|
* {@hide for consistency with other experimental classes}
|
||
|
*
|
||
|
* @deprecated scheduled for deletion, don't use in new code.
|
||
|
*/
|
||
|
@Deprecated
|
||
|
public abstract static class Builder extends UrlRequest.Builder {
|
||
|
/**
|
||
|
* Disables connection migration for the request if enabled for the session.
|
||
|
*
|
||
|
* @return the builder to facilitate chaining.
|
||
|
*/
|
||
|
public Builder disableConnectionMigration() {
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Default request idempotency, only enable 0-RTT for safe HTTP methods. Passed to {@link
|
||
|
* #setIdempotency}.
|
||
|
*/
|
||
|
public static final int DEFAULT_IDEMPOTENCY = 0;
|
||
|
|
||
|
/** Request is idempotent. Passed to {@link #setIdempotency}. */
|
||
|
public static final int IDEMPOTENT = 1;
|
||
|
|
||
|
/** Request is not idempotent. Passed to {@link #setIdempotency}. */
|
||
|
public static final int NOT_IDEMPOTENT = 2;
|
||
|
|
||
|
/**
|
||
|
* Sets idempotency of the request which should be one of the {@link #DEFAULT_IDEMPOTENCY
|
||
|
* IDEMPOTENT NOT_IDEMPOTENT} values. The default idempotency indicates that 0-RTT is only
|
||
|
* enabled for safe HTTP methods (GET, HEAD, OPTIONS, and TRACE).
|
||
|
*
|
||
|
* @param idempotency idempotency of the request which should be one of the {@link
|
||
|
* #DEFAULT_IDEMPOTENCY IDEMPOTENT NOT_IDEMPOTENT} values.
|
||
|
* @return the builder to facilitate chaining.
|
||
|
*/
|
||
|
public Builder setIdempotency(int idempotency) {
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
// To support method chaining, override superclass methods to return an
|
||
|
// instance of this class instead of the parent.
|
||
|
|
||
|
@Override
|
||
|
public abstract Builder setHttpMethod(String method);
|
||
|
|
||
|
@Override
|
||
|
public abstract Builder addHeader(String header, String value);
|
||
|
|
||
|
@Override
|
||
|
public abstract Builder disableCache();
|
||
|
|
||
|
@Override
|
||
|
public abstract Builder setPriority(int priority);
|
||
|
|
||
|
@Override
|
||
|
public abstract Builder setUploadDataProvider(
|
||
|
UploadDataProvider uploadDataProvider, Executor executor);
|
||
|
|
||
|
@Override
|
||
|
public abstract Builder allowDirectExecutor();
|
||
|
|
||
|
@Override
|
||
|
public abstract ExperimentalUrlRequest build();
|
||
|
|
||
|
@Override
|
||
|
public Builder addRequestAnnotation(Object annotation) {
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public Builder setTrafficStatsTag(int tag) {
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public Builder setTrafficStatsUid(int uid) {
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public Builder setRequestFinishedListener(RequestFinishedInfo.Listener listener) {
|
||
|
return this;
|
||
|
}
|
||
|
}
|
||
|
}
|