Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / components / cronet / android / java / src / org / chromium / net / ChromiumUrlRequestFactory.java
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.
4
5 package org.chromium.net;
6
7 import android.content.Context;
8 import android.os.Build;
9
10 import org.chromium.base.UsedByReflection;
11
12 import java.nio.channels.WritableByteChannel;
13 import java.util.Map;
14
15 /**
16  * Network request factory using the native http stack implementation.
17  */
18 @UsedByReflection("HttpUrlRequestFactory.java")
19 public class ChromiumUrlRequestFactory extends HttpUrlRequestFactory {
20     private ChromiumUrlRequestContext mRequestContext;
21
22     @UsedByReflection("HttpUrlRequestFactory.java")
23     public ChromiumUrlRequestFactory(
24             Context context, HttpUrlRequestFactoryConfig config) {
25         if (isEnabled()) {
26             System.loadLibrary(config.libraryName());
27             mRequestContext = new ChromiumUrlRequestContext(
28                     context.getApplicationContext(), UserAgent.from(context),
29                     config.toString());
30         }
31     }
32
33     @Override
34     public boolean isEnabled() {
35         return Build.VERSION.SDK_INT >= 14;
36     }
37
38     @Override
39     public String getName() {
40         return "Chromium/" + ChromiumUrlRequestContext.getVersion();
41     }
42
43     @Override
44     public ChromiumUrlRequest createRequest(String url, int requestPriority,
45             Map<String, String> headers, HttpUrlRequestListener listener) {
46         return new ChromiumUrlRequest(mRequestContext, url, requestPriority,
47                 headers, listener);
48     }
49
50     @Override
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);
56     }
57
58     @Override
59     public void startNetLogToFile(String fileName) {
60         mRequestContext.startNetLogToFile(fileName);
61     }
62
63     @Override
64     public void stopNetLog() {
65         mRequestContext.stopNetLog();
66     }
67
68     public ChromiumUrlRequestContext getRequestContext() {
69         return mRequestContext;
70     }
71 }