Upstream version 7.35.144.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 java.nio.channels.WritableByteChannel;
11 import java.util.Map;
12
13 /**
14  * Network request factory using the native http stack implementation.
15  */
16 @UsedByReflection("HttpUrlRequestFactory.java")
17 class ChromiumUrlRequestFactory extends HttpUrlRequestFactory {
18     private static ChromiumUrlRequestContext sRequestContext;
19
20     @UsedByReflection("HttpUrlRequestFactory.java")
21     public ChromiumUrlRequestFactory(Context context) {
22         if (sRequestContext == null && isEnabled()) {
23             System.loadLibrary("cronet");
24             sRequestContext = ChromiumUrlRequestContext.getInstance(context);
25         }
26     }
27
28     @Override
29     protected boolean isEnabled() {
30         return Build.VERSION.SDK_INT >= 14;
31     }
32
33     @Override
34     protected String getName() {
35         return "Chromium/" + UrlRequestContext.getVersion();
36     }
37
38     @Override
39     protected HttpUrlRequest createRequest(String url, int requestPriority,
40             Map<String, String> headers, HttpUrlRequestListener listener) {
41         return new ChromiumUrlRequest(sRequestContext, url, requestPriority,
42                 headers, listener);
43     }
44
45     @Override
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);
51     }
52 }