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

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

Issue 1429863008: [Cronet] Remove JSON serialization of CronetEngine.Builder (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.net; 5 package org.chromium.net;
6 6
7 import android.os.Build; 7 import android.os.Build;
8 import android.os.ConditionVariable; 8 import android.os.ConditionVariable;
9 import android.os.Handler; 9 import android.os.Handler;
10 import android.os.Looper; 10 import android.os.Looper;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 new ObserverList<NetworkQualityRttListener>(); 66 new ObserverList<NetworkQualityRttListener>();
67 67
68 @GuardedBy("mNetworkQualityLock") 68 @GuardedBy("mNetworkQualityLock")
69 private final ObserverList<NetworkQualityThroughputListener> mThroughputList enerList = 69 private final ObserverList<NetworkQualityThroughputListener> mThroughputList enerList =
70 new ObserverList<NetworkQualityThroughputListener>(); 70 new ObserverList<NetworkQualityThroughputListener>();
71 71
72 @UsedByReflection("CronetEngine.java") 72 @UsedByReflection("CronetEngine.java")
73 public CronetUrlRequestContext(CronetEngine.Builder builder) { 73 public CronetUrlRequestContext(CronetEngine.Builder builder) {
74 CronetLibraryLoader.ensureInitialized(builder.getContext(), builder); 74 CronetLibraryLoader.ensureInitialized(builder.getContext(), builder);
75 nativeSetMinLogLevel(getLoggingLevel()); 75 nativeSetMinLogLevel(getLoggingLevel());
76 mUrlRequestContextAdapter = nativeCreateRequestContextAdapter(builder.to JSONString()); 76 mUrlRequestContextAdapter =
77 nativeCreateRequestContextAdapter(createNativeUrlRequestContextC onfig(builder));
77 if (mUrlRequestContextAdapter == 0) { 78 if (mUrlRequestContextAdapter == 0) {
78 throw new NullPointerException("Context Adapter creation failed."); 79 throw new NullPointerException("Context Adapter creation failed.");
79 } 80 }
80 81
81 // Init native Chromium URLRequestContext on main UI thread. 82 // Init native Chromium URLRequestContext on main UI thread.
82 Runnable task = new Runnable() { 83 Runnable task = new Runnable() {
83 @Override 84 @Override
84 public void run() { 85 public void run() {
85 synchronized (mLock) { 86 synchronized (mLock) {
86 // mUrlRequestContextAdapter is guaranteed to exist until 87 // mUrlRequestContextAdapter is guaranteed to exist until
87 // initialization on main and network threads completes and 88 // initialization on main and network threads completes and
88 // initNetworkThread is called back on network thread. 89 // initNetworkThread is called back on network thread.
89 nativeInitRequestContextOnMainThread(mUrlRequestContextAdapt er); 90 nativeInitRequestContextOnMainThread(mUrlRequestContextAdapt er);
90 } 91 }
91 } 92 }
92 }; 93 };
93 // Run task immediately or post it to the UI thread. 94 // Run task immediately or post it to the UI thread.
94 if (Looper.getMainLooper() == Looper.myLooper()) { 95 if (Looper.getMainLooper() == Looper.myLooper()) {
95 task.run(); 96 task.run();
96 } else { 97 } else {
97 new Handler(Looper.getMainLooper()).post(task); 98 new Handler(Looper.getMainLooper()).post(task);
98 } 99 }
99 } 100 }
100 101
102 static long createNativeUrlRequestContextConfig(CronetEngine.Builder builder ) {
103 final long urlRequestContextConfig = nativeCreateRequestContextConfig(
104 builder.getUserAgent(), builder.storagePath(), builder.quicEnabl ed(),
105 builder.http2Enabled(), builder.sdchEnabled(), builder.dataReduc tionProxyKey(),
106 builder.dataReductionProxyPrimaryProxy(), builder.dataReductionP roxyFallbackProxy(),
107 builder.dataReductionProxySecureProxyCheckUrl(), builder.cacheDi sabled(),
108 builder.httpCacheMode(), builder.httpCacheMaxSize(),
109 builder.experimentalQuicConnectionOptions(), builder.mockCertVer ifier());
110 for (Builder.QuicHint quicHint : builder.quicHints()) {
111 nativeAddQuicHint(urlRequestContextConfig, quicHint.mHost, quicHint. mPort,
112 quicHint.mAlternatePort);
113 }
114 return urlRequestContextConfig;
115 }
116
101 @Override 117 @Override
102 public UrlRequest createRequest(String url, UrlRequest.Callback callback, Ex ecutor executor) { 118 public UrlRequest createRequest(String url, UrlRequest.Callback callback, Ex ecutor executor) {
103 synchronized (mLock) { 119 synchronized (mLock) {
104 checkHaveAdapter(); 120 checkHaveAdapter();
105 return new CronetUrlRequest(this, mUrlRequestContextAdapter, url, 121 return new CronetUrlRequest(this, mUrlRequestContextAdapter, url,
106 UrlRequest.Builder.REQUEST_PRIORITY_MEDIUM, callback, execut or); 122 UrlRequest.Builder.REQUEST_PRIORITY_MEDIUM, callback, execut or);
107 } 123 }
108 } 124 }
109 125
110 @Override 126 @Override
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 void postObservationTaskToNetworkQualityExecutor(Runnable task) { 402 void postObservationTaskToNetworkQualityExecutor(Runnable task) {
387 try { 403 try {
388 mNetworkQualityExecutor.execute(task); 404 mNetworkQualityExecutor.execute(task);
389 } catch (RejectedExecutionException failException) { 405 } catch (RejectedExecutionException failException) {
390 Log.e(CronetUrlRequestContext.LOG_TAG, "Exception posting task to ex ecutor", 406 Log.e(CronetUrlRequestContext.LOG_TAG, "Exception posting task to ex ecutor",
391 failException); 407 failException);
392 } 408 }
393 } 409 }
394 410
395 // Native methods are implemented in cronet_url_request_context_adapter.cc. 411 // Native methods are implemented in cronet_url_request_context_adapter.cc.
396 private static native long nativeCreateRequestContextAdapter(String config); 412 private static native long nativeCreateRequestContextConfig(String userAgent ,
413 String storagePath, boolean quicEnabled, boolean http2Enabled, boole an sdchEnabled,
414 String dataReductionProxyKey, String dataReductionProxyPrimaryProxy,
415 String dataReductionProxyFallbackProxy, String dataReductionProxySec ureProxyCheckUrl,
416 boolean disableCache, int httpCacheMode, long httpCacheMaxSize,
417 String experimentalQuicConnectionOptions, long mockCertVerifier);
418
419 private static native void nativeAddQuicHint(
420 long urlRequestContextConfig, String host, int port, int alternatePo rt);
421
422 private static native long nativeCreateRequestContextAdapter(long urlRequest ContextConfig);
397 423
398 private static native int nativeSetMinLogLevel(int loggingLevel); 424 private static native int nativeSetMinLogLevel(int loggingLevel);
399 425
400 @NativeClassQualifiedName("CronetURLRequestContextAdapter") 426 @NativeClassQualifiedName("CronetURLRequestContextAdapter")
401 private native void nativeDestroy(long nativePtr); 427 private native void nativeDestroy(long nativePtr);
402 428
403 @NativeClassQualifiedName("CronetURLRequestContextAdapter") 429 @NativeClassQualifiedName("CronetURLRequestContextAdapter")
404 private native void nativeStartNetLogToFile(long nativePtr, 430 private native void nativeStartNetLogToFile(long nativePtr,
405 String fileName, boolean logAll); 431 String fileName, boolean logAll);
406 432
407 @NativeClassQualifiedName("CronetURLRequestContextAdapter") 433 @NativeClassQualifiedName("CronetURLRequestContextAdapter")
408 private native void nativeStopNetLog(long nativePtr); 434 private native void nativeStopNetLog(long nativePtr);
409 435
410 @NativeClassQualifiedName("CronetURLRequestContextAdapter") 436 @NativeClassQualifiedName("CronetURLRequestContextAdapter")
411 private native void nativeInitRequestContextOnMainThread(long nativePtr); 437 private native void nativeInitRequestContextOnMainThread(long nativePtr);
412 438
413 @NativeClassQualifiedName("CronetURLRequestContextAdapter") 439 @NativeClassQualifiedName("CronetURLRequestContextAdapter")
414 private native void nativeEnableNetworkQualityEstimator( 440 private native void nativeEnableNetworkQualityEstimator(
415 long nativePtr, boolean useLocalHostRequests, boolean useSmallerResp onses); 441 long nativePtr, boolean useLocalHostRequests, boolean useSmallerResp onses);
416 442
417 @NativeClassQualifiedName("CronetURLRequestContextAdapter") 443 @NativeClassQualifiedName("CronetURLRequestContextAdapter")
418 private native void nativeProvideRTTObservations(long nativePtr, boolean sho uld); 444 private native void nativeProvideRTTObservations(long nativePtr, boolean sho uld);
419 445
420 @NativeClassQualifiedName("CronetURLRequestContextAdapter") 446 @NativeClassQualifiedName("CronetURLRequestContextAdapter")
421 private native void nativeProvideThroughputObservations(long nativePtr, bool ean should); 447 private native void nativeProvideThroughputObservations(long nativePtr, bool ean should);
422 } 448 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698