Chromium Code Reviews| 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, |
|
xunjieli
2015/12/04 19:19:13
nit: Need to document what |expirationTime| is. To
|
| + byte[][] hashes, boolean includeSubdomains, long expirationTime); |
| + |
| + private static native long nativeCreateRequestContextAdapter(long urlRequestContextConfig); |
| private static native int nativeSetMinLogLevel(int loggingLevel); |