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..8bc8584ea814a35a188eba4e0d0765b912618f3f 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.experimentalOptions(), |
| + builder.mockCertVerifier()); |
| + for (Builder.QuicHint quicHint : builder.quicHints()) { |
| + nativeAddQuicHint(urlRequestContextConfig, quicHint.mHost, quicHint.mPort, |
|
xunjieli
2015/12/01 17:30:38
I don't really like adding multiple JNI calls here
pauljensen
2015/12/02 03:50:01
I don't really like it either, but I'm not too wor
|
| + quicHint.mAlternatePort); |
| + } |
| + return urlRequestContextConfig; |
| + } |
| + |
| @Override |
| public UrlRequest createRequest(String url, UrlRequest.Callback callback, Executor executor) { |
| synchronized (mLock) { |
| @@ -400,7 +416,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 experimentalOptions, long mockCertVerifier); |
| + |
| + private static native void nativeAddQuicHint( |
| + long urlRequestContextConfig, String host, int port, int alternatePort); |
| + |
| + private static native long nativeCreateRequestContextAdapter(long urlRequestContextConfig); |
|
xunjieli
2015/12/01 17:30:38
Not sure whether we should consolidate nativeCreat
pauljensen
2015/12/02 03:50:01
I split it for a few reasons:
1. The ChromiumURLRe
|
| private static native int nativeSetMinLogLevel(int loggingLevel); |