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 org.chromium.base.UsedByReflection;
12 import java.nio.channels.WritableByteChannel;
16 * Network request factory using the native http stack implementation.
18 @UsedByReflection("HttpUrlRequestFactory.java")
19 public class ChromiumUrlRequestFactory extends HttpUrlRequestFactory {
20 private ChromiumUrlRequestContext mRequestContext;
22 @UsedByReflection("HttpUrlRequestFactory.java")
23 public ChromiumUrlRequestFactory(
24 Context context, HttpUrlRequestFactoryConfig config) {
26 System.loadLibrary(config.libraryName());
27 mRequestContext = new ChromiumUrlRequestContext(
28 context.getApplicationContext(), UserAgent.from(context),
34 public boolean isEnabled() {
35 return Build.VERSION.SDK_INT >= 14;
39 public String getName() {
40 return "Chromium/" + ChromiumUrlRequestContext.getVersion();
44 public ChromiumUrlRequest createRequest(String url, int requestPriority,
45 Map<String, String> headers, HttpUrlRequestListener listener) {
46 return new ChromiumUrlRequest(mRequestContext, url, requestPriority,
51 public ChromiumUrlRequest createRequest(String url, int requestPriority,
52 Map<String, String> headers, WritableByteChannel channel,
53 HttpUrlRequestListener listener) {
54 return new ChromiumUrlRequest(mRequestContext, url, requestPriority,
55 headers, channel, listener);
59 public void startNetLogToFile(String fileName) {
60 mRequestContext.startNetLogToFile(fileName);
64 public void stopNetLog() {
65 mRequestContext.stopNetLog();
68 public ChromiumUrlRequestContext getRequestContext() {
69 return mRequestContext;