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

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

Issue 1492583002: Add HttpUrlConnection backed implementation of CronetEngine. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments Created 4 years, 11 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 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;
11 import android.os.Process; 11 import android.os.Process;
12 import android.util.Log; 12 import android.util.Log;
13 13
14 import org.chromium.base.ObserverList; 14 import org.chromium.base.ObserverList;
15 import org.chromium.base.VisibleForTesting; 15 import org.chromium.base.VisibleForTesting;
16 import org.chromium.base.annotations.CalledByNative; 16 import org.chromium.base.annotations.CalledByNative;
17 import org.chromium.base.annotations.JNINamespace; 17 import org.chromium.base.annotations.JNINamespace;
18 import org.chromium.base.annotations.NativeClassQualifiedName; 18 import org.chromium.base.annotations.NativeClassQualifiedName;
19 import org.chromium.base.annotations.UsedByReflection; 19 import org.chromium.base.annotations.UsedByReflection;
20 import org.chromium.net.urlconnection.CronetHttpURLConnection; 20 import org.chromium.net.urlconnection.CronetHttpURLConnection;
21 import org.chromium.net.urlconnection.CronetURLStreamHandlerFactory; 21 import org.chromium.net.urlconnection.CronetURLStreamHandlerFactory;
22 22
23 import java.net.Proxy; 23 import java.net.Proxy;
24 import java.net.URL; 24 import java.net.URL;
25 import java.net.URLConnection; 25 import java.net.URLConnection;
26 import java.net.URLStreamHandlerFactory; 26 import java.net.URLStreamHandlerFactory;
27 import java.util.Collection; 27 import java.util.Collection;
28 import java.util.Collections;
29 import java.util.List; 28 import java.util.List;
30 import java.util.Map; 29 import java.util.Map;
31 import java.util.concurrent.Executor; 30 import java.util.concurrent.Executor;
32 import java.util.concurrent.RejectedExecutionException; 31 import java.util.concurrent.RejectedExecutionException;
33 import java.util.concurrent.atomic.AtomicInteger; 32 import java.util.concurrent.atomic.AtomicInteger;
34 33
35 import javax.annotation.concurrent.GuardedBy; 34 import javax.annotation.concurrent.GuardedBy;
36 35
37 /** 36 /**
38 * CronetEngine using Chromium HTTP stack implementation. 37 * CronetEngine using Chromium HTTP stack implementation.
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 quicHint.mAlternatePort); 117 quicHint.mAlternatePort);
119 } 118 }
120 for (Builder.Pkp pkp : builder.publicKeyPins()) { 119 for (Builder.Pkp pkp : builder.publicKeyPins()) {
121 nativeAddPkp(urlRequestContextConfig, pkp.mHost, pkp.mHashes, pkp.mI ncludeSubdomains, 120 nativeAddPkp(urlRequestContextConfig, pkp.mHost, pkp.mHashes, pkp.mI ncludeSubdomains,
122 pkp.mExpirationDate.getTime()); 121 pkp.mExpirationDate.getTime());
123 } 122 }
124 return urlRequestContextConfig; 123 return urlRequestContextConfig;
125 } 124 }
126 125
127 @Override 126 @Override
128 public UrlRequest createRequest(String url, UrlRequest.Callback callback, Ex ecutor executor) {
129 return createRequest(url, callback, executor, UrlRequest.Builder.REQUEST _PRIORITY_MEDIUM,
130 Collections.emptyList());
131 }
132
133 @Override
134 public UrlRequest createRequest(String url, UrlRequest.Callback callback, Ex ecutor executor,
135 @UrlRequest.Builder.RequestPriority int priority) {
136 synchronized (mLock) {
137 checkHaveAdapter();
138 return new CronetUrlRequest(this, mUrlRequestContextAdapter, url, pr iority, callback,
139 executor, Collections.emptyList(), mNetworkQualityEstimatorE nabled);
140 }
141 }
142
143 @Override
144 public UrlRequest createRequest(String url, UrlRequest.Callback callback, Ex ecutor executor, 127 public UrlRequest createRequest(String url, UrlRequest.Callback callback, Ex ecutor executor,
145 int priority, Collection<Object> requestAnnotations) { 128 int priority, Collection<Object> requestAnnotations) {
146 synchronized (mLock) { 129 synchronized (mLock) {
147 checkHaveAdapter(); 130 checkHaveAdapter();
148 boolean metricsCollectionEnabled = mNetworkQualityEstimatorEnabled; 131 boolean metricsCollectionEnabled = mNetworkQualityEstimatorEnabled;
149 if (metricsCollectionEnabled) { // Collect metrics only if someone i s listening. 132 if (metricsCollectionEnabled) { // Collect metrics only if someone i s listening.
150 synchronized (mNetworkQualityLock) { 133 synchronized (mNetworkQualityLock) {
151 metricsCollectionEnabled = !mFinishedListenerList.isEmpty(); 134 metricsCollectionEnabled = !mFinishedListenerList.isEmpty();
152 } 135 }
153 } 136 }
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
512 @NativeClassQualifiedName("CronetURLRequestContextAdapter") 495 @NativeClassQualifiedName("CronetURLRequestContextAdapter")
513 private native void nativeEnableNetworkQualityEstimator( 496 private native void nativeEnableNetworkQualityEstimator(
514 long nativePtr, boolean useLocalHostRequests, boolean useSmallerResp onses); 497 long nativePtr, boolean useLocalHostRequests, boolean useSmallerResp onses);
515 498
516 @NativeClassQualifiedName("CronetURLRequestContextAdapter") 499 @NativeClassQualifiedName("CronetURLRequestContextAdapter")
517 private native void nativeProvideRTTObservations(long nativePtr, boolean sho uld); 500 private native void nativeProvideRTTObservations(long nativePtr, boolean sho uld);
518 501
519 @NativeClassQualifiedName("CronetURLRequestContextAdapter") 502 @NativeClassQualifiedName("CronetURLRequestContextAdapter")
520 private native void nativeProvideThroughputObservations(long nativePtr, bool ean should); 503 private native void nativeProvideThroughputObservations(long nativePtr, bool ean should);
521 } 504 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698