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 227bd41f9d8c4c389f99e220bfc1e45b54d049fc..90f97309d22bfa57be8b4b36ce4bd7cd502a16e7 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,25 @@ 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.experimentalOptions(), |
+ builder.mockCertVerifier()); |
+ for (Builder.QuicHint quicHint : builder.quicHints()) { |
+ nativeAddQuicHint(urlRequestContextConfig, quicHint.mHost, quicHint.mPort, |
+ quicHint.mAlternatePort); |
+ } |
+ for (Builder.Pkp pkp : builder.publicKeyPins()) { |
+ nativeAddPkp(urlRequestContextConfig, pkp.mHost, pkp.mHashes, pkp.mIncludeSubdomains, |
+ pkp.mExpirationDate.getTime()); |
+ } |
+ return urlRequestContextConfig; |
+ } |
+ |
@Override |
public UrlRequest createRequest(String url, UrlRequest.Callback callback, Executor executor) { |
synchronized (mLock) { |
@@ -400,7 +420,20 @@ 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 experimentalOptions, long mockCertVerifier); |
+ |
+ private static native void nativeAddQuicHint( |
+ long urlRequestContextConfig, String host, int port, int alternatePort); |
+ |
+ private static native void nativeAddPkp(long urlRequestContextConfig, String host, |
+ byte[][] hashes, boolean includeSubdomains, long expirationTime); |
+ |
+ private static native long nativeCreateRequestContextAdapter(long urlRequestContextConfig); |
private static native int nativeSetMinLogLevel(int loggingLevel); |