Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(131)

Unified Diff: components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java

Issue 2029423004: QUIC/Cronet - Add Java glue layer to serialize and de-serialize (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@cert_serialize_0526
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 1c4140cbcdbc4e266121b385596e21bd8f7c73c1..6ecdf894bf4e9bc4edf4524493e1bf2bdb03f3f8 100644
--- a/components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java
+++ b/components/cronet/android/java/src/org/chromium/net/CronetUrlRequestContext.java
@@ -75,6 +75,15 @@ class CronetUrlRequestContext extends CronetEngine {
private final ObserverList<RequestFinishedListener> mFinishedListenerList =
new ObserverList<RequestFinishedListener>();
+ /**
+ * Synchronize access to mCertVerifierData.
+ */
+ private ConditionVariable mWaitGetCertVerifierDataComplete = new ConditionVariable();
+ private static final long CERT_VERIFIER_DATA_TIMEOUT_MS = 30;
+
+ /** Holds CertVerifier data. */
+ private String mCertVerifierData;
+
@UsedByReflection("CronetEngine.java")
public CronetUrlRequestContext(final CronetEngine.Builder builder) {
CronetLibraryLoader.ensureInitialized(builder.getContext(), builder);
@@ -117,7 +126,7 @@ class CronetUrlRequestContext extends CronetEngine {
builder.dataReductionProxyPrimaryProxy(), builder.dataReductionProxyFallbackProxy(),
builder.dataReductionProxySecureProxyCheckUrl(), builder.cacheDisabled(),
builder.httpCacheMode(), builder.httpCacheMaxSize(), builder.experimentalOptions(),
- builder.mockCertVerifier());
+ builder.mockCertVerifier(), builder.certVerifierData());
for (Builder.QuicHint quicHint : builder.quicHints()) {
nativeAddQuicHint(urlRequestContextConfig, quicHint.mHost, quicHint.mPort,
quicHint.mAlternatePort);
@@ -213,6 +222,17 @@ class CronetUrlRequestContext extends CronetEngine {
}
}
+ @Override
+ public String getCertVerifierData() {
+ synchronized (mLock) {
+ checkHaveAdapter();
+ nativeGetCertVerifierData(mUrlRequestContextAdapter);
+ }
+ mWaitGetCertVerifierDataComplete.block(CERT_VERIFIER_DATA_TIMEOUT_MS);
+ mWaitGetCertVerifierDataComplete.close();
+ return mCertVerifierData;
+ }
+
// This method is intentionally non-static to ensure Cronet native library
// is loaded by class constructor.
@Override
@@ -444,6 +464,13 @@ class CronetUrlRequestContext extends CronetEngine {
postObservationTaskToNetworkQualityExecutor(task);
}
+ @SuppressWarnings("unused")
+ @CalledByNative
+ private void onGetCertVerifierData(String certVerifierData) {
+ mCertVerifierData = certVerifierData;
+ mWaitGetCertVerifierDataComplete.open();
+ }
+
void reportFinished(final CronetUrlRequest request) {
if (mNetworkQualityEstimatorEnabled) {
Runnable task = new Runnable() {
@@ -476,7 +503,8 @@ class CronetUrlRequestContext extends CronetEngine {
boolean sdchEnabled, String dataReductionProxyKey,
String dataReductionProxyPrimaryProxy, String dataReductionProxyFallbackProxy,
String dataReductionProxySecureProxyCheckUrl, boolean disableCache, int httpCacheMode,
- long httpCacheMaxSize, String experimentalOptions, long mockCertVerifier);
+ long httpCacheMaxSize, String experimentalOptions, long mockCertVerifier,
+ String certVerifierData);
private static native void nativeAddQuicHint(
long urlRequestContextConfig, String host, int port, int alternatePort);
@@ -501,6 +529,9 @@ class CronetUrlRequestContext extends CronetEngine {
private native void nativeStopNetLog(long nativePtr);
@NativeClassQualifiedName("CronetURLRequestContextAdapter")
+ private native void nativeGetCertVerifierData(long nativePtr);
+
+ @NativeClassQualifiedName("CronetURLRequestContextAdapter")
private native void nativeInitRequestContextOnMainThread(long nativePtr);
@NativeClassQualifiedName("CronetURLRequestContextAdapter")

Powered by Google App Engine
This is Rietveld 408576698