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

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

Issue 1492583002: Add HttpUrlConnection backed implementation of CronetEngine. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix tests Created 5 years 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
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.net;
6
7 import static android.os.Process.THREAD_PRIORITY_BACKGROUND;
8 import static android.os.Process.THREAD_PRIORITY_MORE_FAVORABLE;
9
10 import java.io.IOException;
11 import java.net.Proxy;
12 import java.net.URL;
13 import java.net.URLConnection;
14 import java.net.URLStreamHandler;
15 import java.net.URLStreamHandlerFactory;
16 import java.util.List;
17 import java.util.Map;
18 import java.util.concurrent.Executor;
19 import java.util.concurrent.ExecutorService;
20 import java.util.concurrent.Executors;
21 import java.util.concurrent.ThreadFactory;
22
23 /**
24 * {@link java.net.HttpURLConnection} backed CronetEngine.
25 */
26 final class JavaCronetEngine extends CronetEngine {
27 private final String mUserAgent;
28
29 private final ExecutorService mExecutorService =
30 Executors.newCachedThreadPool(new ThreadFactory() {
31 @Override
32 public Thread newThread(final Runnable r) {
33 return Executors.defaultThreadFactory().newThread(new Runnab le() {
34 @Override
35 public void run() {
36 Thread.currentThread().setName("JavaCronetEngine");
37 android.os.Process.setThreadPriority(
38 THREAD_PRIORITY_BACKGROUND + THREAD_PRIORITY _MORE_FAVORABLE);
pauljensen 2015/12/08 19:49:52 why one above background? I think Cronet's networ
Charles 2015/12/11 16:45:39 Added comment explaining priority selection.
39 r.run();
40 }
41 });
42 }
43 });
44
45 JavaCronetEngine(String userAgent) {
46 this.mUserAgent = userAgent;
47 }
48
49 @Override
50 public UrlRequest createRequest(String url, UrlRequest.Callback callback, Ex ecutor executor) {
51 return new JavaUrlRequest(callback, mExecutorService, executor, url, mUs erAgent);
52 }
53
54 @Override
55 public UrlRequest createRequest(
56 String url, UrlRequest.Callback callback, Executor executor, int pri ority) {
pauljensen 2015/12/08 19:49:52 I see you're ignoring priority. That's probably f
Charles 2015/12/11 16:45:39 Done.
57 return new JavaUrlRequest(callback, mExecutorService, executor, url, mUs erAgent);
58 }
59
60 @Override
61 BidirectionalStream createBidirectionalStream(String url, BidirectionalStrea m.Callback callback,
62 Executor executor, String httpMethod, List<Map.Entry<String, String> > requestHeaders) {
63 throw new UnsupportedOperationException(
64 "Can't create a bidi stream - httpurlconnection doesn't have tho se APIs");
65 }
66
67 @Override
68 boolean isEnabled() {
69 return true;
70 }
71
72 @Override
73 public String getVersionString() {
74 return "HttpUrlConnection";
pauljensen 2015/12/08 19:49:52 This should really include a version string so we
Charles 2015/12/11 16:45:39 Done.
75 }
76
77 @Override
78 public void shutdown() {
79 mExecutorService.shutdown();
80 }
81
82 @Override
83 public void startNetLogToFile(String fileName, boolean logAll) {}
84
85 @Override
86 public void stopNetLog() {}
87
88 @Override
89 public byte[] getGlobalMetricsDeltas() {
90 return new byte[0];
91 }
92
93 @Override
94 public void enableNetworkQualityEstimator(Executor executor) {}
95
96 @Override
97 void enableNetworkQualityEstimatorForTesting(
98 boolean useLocalHostRequests, boolean useSmallerResponses, Executor executor) {}
99
100 @Override
101 public void addRttListener(NetworkQualityRttListener listener) {}
102
103 @Override
104 public void removeRttListener(NetworkQualityRttListener listener) {}
105
106 @Override
107 public void addThroughputListener(NetworkQualityThroughputListener listener) {}
108
109 @Override
110 public void removeThroughputListener(NetworkQualityThroughputListener listen er) {}
111
112 @Override
113 public URLConnection openConnection(URL url) throws IOException {
114 return url.openConnection();
115 }
116
117 @Override
118 public URLConnection openConnection(URL url, Proxy proxy) throws IOException {
119 return url.openConnection(proxy);
120 }
121
122 @Override
123 public URLStreamHandlerFactory createURLStreamHandlerFactory() {
124 return new URLStreamHandlerFactory() {
125 @Override
126 public URLStreamHandler createURLStreamHandler(String protocol) {
127 return null;
pauljensen 2015/12/08 19:49:52 perhaps instead of returning null, return: new URL
Charles 2015/12/11 16:45:39 That causes infinite recursion. Added a comment.
128 }
129 };
130 }
131 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698