blob: 8efb82befa7903a0b23a779e74f49c42e7f7e9d3 [file] [log] [blame]
// 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")
public class ChromiumUrlRequestFactory extends HttpUrlRequestFactory {
private UrlRequestContext mRequestContext;
@UsedByReflection("HttpUrlRequestFactory.java")
public ChromiumUrlRequestFactory(
Context context, HttpUrlRequestFactoryConfig config) {
if (isEnabled()) {
System.loadLibrary("cronet");
mRequestContext = new UrlRequestContext(
context.getApplicationContext(), UserAgent.from(context),
config.toString());
}
}
@Override
public boolean isEnabled() {
return Build.VERSION.SDK_INT >= 14;
}
@Override
public String getName() {
return "Chromium/" + UrlRequestContext.getVersion();
}
@Override
public HttpUrlRequest createRequest(String url, int requestPriority,
Map<String, String> headers, HttpUrlRequestListener listener) {
return new ChromiumUrlRequest(mRequestContext, url, requestPriority,
headers, listener);
}
@Override
public HttpUrlRequest createRequest(String url, int requestPriority,
Map<String, String> headers, WritableByteChannel channel,
HttpUrlRequestListener listener) {
return new ChromiumUrlRequest(mRequestContext, url, requestPriority,
headers, channel, listener);
}
}