Index: components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java |
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 6a315f76e1d1d1855c5eb6aa73416ba9bcd88c47..c656402ca7bd4f403f6926afc2816959775377f3 100644 |
--- a/components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java |
+++ b/components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java |
@@ -73,7 +73,8 @@ class CronetUrlRequestContext extends CronetEngine { |
public CronetUrlRequestContext(CronetEngine.Builder builder) { |
CronetLibraryLoader.ensureInitialized(builder.getContext(), builder); |
nativeSetMinLogLevel(getLoggingLevel()); |
- mUrlRequestContextAdapter = nativeCreateRequestContextAdapter(builder.toJSONString()); |
+ mUrlRequestContextAdapter = |
+ nativeCreateRequestContextAdapter(createNativeUrlRequestContextConfig(builder)); |
if (mUrlRequestContextAdapter == 0) { |
throw new NullPointerException("Context Adapter creation failed."); |
} |
@@ -98,6 +99,21 @@ class CronetUrlRequestContext extends CronetEngine { |
} |
} |
+ static long createNativeUrlRequestContextConfig(CronetEngine.Builder builder) { |
+ final long urlRequestContextConfig = nativeCreateRequestContextConfig( |
+ builder.getUserAgent(), builder.storagePath(), builder.quicEnabled(), |
+ builder.http2Enabled(), builder.sdchEnabled(), builder.dataReductionProxyKey(), |
+ builder.dataReductionProxyPrimaryProxy(), builder.dataReductionProxyFallbackProxy(), |
+ builder.dataReductionProxySecureProxyCheckUrl(), builder.cacheDisabled(), |
+ builder.httpCacheMode(), builder.httpCacheMaxSize(), |
+ builder.experimentalQuicConnectionOptions(), builder.mockCertVerifier()); |
+ for (Builder.QuicHint quicHint : builder.quicHints()) { |
+ nativeAddQuicHint(urlRequestContextConfig, quicHint.mHost, quicHint.mPort, |
+ quicHint.mAlternatePort); |
+ } |
+ return urlRequestContextConfig; |
+ } |
+ |
@Override |
public UrlRequest createRequest(String url, UrlRequest.Callback callback, Executor executor) { |
synchronized (mLock) { |
@@ -393,7 +409,17 @@ class CronetUrlRequestContext extends CronetEngine { |
} |
// Native methods are implemented in cronet_url_request_context_adapter.cc. |
- private static native long nativeCreateRequestContextAdapter(String config); |
+ private static native long nativeCreateRequestContextConfig(String userAgent, |
+ String storagePath, boolean quicEnabled, boolean http2Enabled, boolean sdchEnabled, |
+ String dataReductionProxyKey, String dataReductionProxyPrimaryProxy, |
+ String dataReductionProxyFallbackProxy, String dataReductionProxySecureProxyCheckUrl, |
+ boolean disableCache, int httpCacheMode, long httpCacheMaxSize, |
+ String experimentalQuicConnectionOptions, long mockCertVerifier); |
+ |
+ private static native void nativeAddQuicHint( |
+ long urlRequestContextConfig, String host, int port, int alternatePort); |
+ |
+ private static native long nativeCreateRequestContextAdapter(long urlRequestContextConfig); |
private static native int nativeSetMinLogLevel(int loggingLevel); |