Index: net/cronet/android/java/src/org/chromium/net/ChromiumUrlRequestFactory.java |
diff --git a/net/cronet/android/java/src/org/chromium/net/ChromiumUrlRequestFactory.java b/net/cronet/android/java/src/org/chromium/net/ChromiumUrlRequestFactory.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0b0e9c269a094adc0be9373a31a70f3661ae6fff |
--- /dev/null |
+++ b/net/cronet/android/java/src/org/chromium/net/ChromiumUrlRequestFactory.java |
@@ -0,0 +1,52 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package org.chromium.net; |
+ |
+import android.content.Context; |
+import android.os.Build; |
+ |
+import java.nio.channels.WritableByteChannel; |
+import java.util.Map; |
+ |
+/** |
+ * Network request factory using the native http stack implementation. |
+ */ |
+@UsedByReflection("HttpUrlRequestFactory.java") |
+class ChromiumUrlRequestFactory extends HttpUrlRequestFactory { |
+ private static ChromiumUrlRequestContext sRequestContext; |
+ |
+ @UsedByReflection("HttpUrlRequestFactory.java") |
+ public ChromiumUrlRequestFactory(Context context) { |
+ if (sRequestContext == null && isEnabled()) { |
+ System.loadLibrary("cronet"); |
+ sRequestContext = ChromiumUrlRequestContext.getInstance(context); |
+ } |
+ } |
+ |
+ @Override |
+ protected boolean isEnabled() { |
+ return Build.VERSION.SDK_INT >= 14; |
+ } |
+ |
+ @Override |
+ protected String getName() { |
+ return "Chromium/" + UrlRequestContext.getVersion(); |
+ } |
+ |
+ @Override |
+ protected HttpUrlRequest createRequest(String url, int requestPriority, |
+ Map<String, String> headers, HttpUrlRequestListener listener) { |
+ return new ChromiumUrlRequest(sRequestContext, url, requestPriority, |
+ headers, listener); |
+ } |
+ |
+ @Override |
+ protected HttpUrlRequest createRequest(String url, int requestPriority, |
+ Map<String, String> headers, WritableByteChannel channel, |
+ HttpUrlRequestListener listener) { |
+ return new ChromiumUrlRequest(sRequestContext, url, requestPriority, |
+ headers, channel, listener); |
+ } |
+} |