| 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);
|
|
|
|
|