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
3 // found in the LICENSE file.
5 package org.chromium.net;
7 import android.content.Context;
8 import android.os.Build;
10 import java.nio.channels.WritableByteChannel;
14 * Network request factory using the native http stack implementation.
16 @UsedByReflection("HttpUrlRequestFactory.java")
17 class ChromiumUrlRequestFactory extends HttpUrlRequestFactory {
18 private static ChromiumUrlRequestContext sRequestContext;
20 @UsedByReflection("HttpUrlRequestFactory.java")
21 public ChromiumUrlRequestFactory(Context context) {
22 if (sRequestContext == null && isEnabled()) {
23 System.loadLibrary("cronet");
24 sRequestContext = ChromiumUrlRequestContext.getInstance(context);
29 protected boolean isEnabled() {
30 return Build.VERSION.SDK_INT >= 14;
34 protected String getName() {
35 return "Chromium/" + UrlRequestContext.getVersion();
39 protected HttpUrlRequest createRequest(String url, int requestPriority,
40 Map<String, String> headers, HttpUrlRequestListener listener) {
41 return new ChromiumUrlRequest(sRequestContext, url, requestPriority,
46 protected HttpUrlRequest createRequest(String url, int requestPriority,
47 Map<String, String> headers, WritableByteChannel channel,
48 HttpUrlRequestListener listener) {
49 return new ChromiumUrlRequest(sRequestContext, url, requestPriority,
50 headers, channel, listener);