Index: components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java |
diff --git a/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java b/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java |
index 2c2df1a7f1d23f066c66f28f65a24e6277e7c477..8c0195a45e941211f10bb136e2ea23f0bd247ae7 100644 |
--- a/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java |
+++ b/components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java |
@@ -19,8 +19,8 @@ import org.chromium.base.annotations.JNINamespace; |
import org.chromium.base.annotations.NativeClassQualifiedName; |
import org.chromium.base.annotations.UsedByReflection; |
import org.chromium.net.BidirectionalStream; |
-import org.chromium.net.CronetEngine; |
import org.chromium.net.EffectiveConnectionType; |
+import org.chromium.net.ExperimentalBidirectionalStream; |
import org.chromium.net.NetworkQualityRttListener; |
import org.chromium.net.NetworkQualityThroughputListener; |
import org.chromium.net.RequestFinishedInfo; |
@@ -48,7 +48,7 @@ import javax.annotation.concurrent.GuardedBy; |
@JNINamespace("cronet") |
@UsedByReflection("CronetEngine.java") |
@VisibleForTesting |
-public class CronetUrlRequestContext extends CronetEngine { |
+public class CronetUrlRequestContext extends CronetEngineBase { |
private static final int LOG_NONE = 3; // LOG(FATAL), no VLOG. |
private static final int LOG_DEBUG = -1; // LOG(FATAL...INFO), VLOG(1) |
private static final int LOG_VERBOSE = -2; // LOG(FATAL...INFO), VLOG(2) |
@@ -129,7 +129,7 @@ public class CronetUrlRequestContext extends CronetEngine { |
private boolean mNetLogToDisk; |
@UsedByReflection("CronetEngine.java") |
- public CronetUrlRequestContext(final CronetEngine.Builder builder) { |
+ public CronetUrlRequestContext(final CronetEngineBuilderImpl builder) { |
CronetLibraryLoader.ensureInitialized(builder.getContext(), builder); |
nativeSetMinLogLevel(getLoggingLevel()); |
synchronized (mLock) { |
@@ -164,7 +164,7 @@ public class CronetUrlRequestContext extends CronetEngine { |
@VisibleForTesting |
public static long createNativeUrlRequestContextConfig( |
- final Context context, CronetEngine.Builder builder) { |
+ final Context context, CronetEngineBuilderImpl builder) { |
final long urlRequestContextConfig = nativeCreateRequestContextConfig( |
builder.getUserAgent(), builder.storagePath(), builder.quicEnabled(), |
builder.getDefaultQuicUserAgentId(context), builder.http2Enabled(), |
@@ -175,11 +175,11 @@ public class CronetUrlRequestContext extends CronetEngine { |
builder.mockCertVerifier(), builder.networkQualityEstimatorEnabled(), |
builder.publicKeyPinningBypassForLocalTrustAnchorsEnabled(), |
builder.certVerifierData()); |
- for (Builder.QuicHint quicHint : builder.quicHints()) { |
+ for (CronetEngineBuilderImpl.QuicHint quicHint : builder.quicHints()) { |
nativeAddQuicHint(urlRequestContextConfig, quicHint.mHost, quicHint.mPort, |
quicHint.mAlternatePort); |
} |
- for (Builder.Pkp pkp : builder.publicKeyPins()) { |
+ for (CronetEngineBuilderImpl.Pkp pkp : builder.publicKeyPins()) { |
nativeAddPkp(urlRequestContextConfig, pkp.mHost, pkp.mHashes, pkp.mIncludeSubdomains, |
pkp.mExpirationDate.getTime()); |
} |
@@ -187,7 +187,13 @@ public class CronetUrlRequestContext extends CronetEngine { |
} |
@Override |
- public UrlRequest createRequest(String url, UrlRequest.Callback callback, Executor executor, |
+ public ExperimentalBidirectionalStream.Builder newBidirectionalStreamBuilder( |
+ String url, BidirectionalStream.Callback callback, Executor executor) { |
+ return new BidirectionalStreamBuilderImpl(url, callback, executor, this); |
+ } |
+ |
+ @Override |
+ public UrlRequestBase createRequest(String url, UrlRequest.Callback callback, Executor executor, |
int priority, Collection<Object> requestAnnotations, boolean disableCache, |
boolean disableConnectionMigration, boolean allowDirectExecutor) { |
synchronized (mLock) { |
@@ -202,11 +208,30 @@ public class CronetUrlRequestContext extends CronetEngine { |
} |
} |
+ /** |
+ * Creates a {@link BidirectionalStream} object. {@code callback} methods will |
+ * be invoked on {@code executor}. {@code executor} must not run |
+ * tasks on the current thread to prevent blocking networking operations |
+ * and causing exceptions during shutdown. |
+ * |
+ * @param url the URL for the stream |
+ * @param callback the object whose methods get invoked upon different events |
+ * @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. |
+ * @param delayRequestHeadersUntilFirstFlush whether to delay sending request |
+ * headers until flush() is called, and try to combine them |
+ * with the next data frame. |
+ * @return a new stream. |
+ */ |
pauljensen
2016/09/26 14:51:22
Remove comment on @Override method
kapishnikov
2016/09/27 18:38:26
Done.
|
@Override |
public BidirectionalStream createBidirectionalStream(String url, |
BidirectionalStream.Callback callback, Executor executor, String httpMethod, |
List<Map.Entry<String, String>> requestHeaders, |
- @BidirectionalStream.Builder.StreamPriority int priority, |
+ @BidirectionalStreamBuilderImpl.StreamPriority int priority, |
boolean delayRequestHeadersUntilFirstFlush, Collection<Object> requestAnnotations) { |
synchronized (mLock) { |
checkHaveAdapter(); |