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