| Index: android_webview/browser/net/aw_stream_reader_job_delegate_impl.cc
|
| diff --git a/android_webview/browser/net/aw_stream_reader_job_delegate_impl.cc b/android_webview/browser/net/aw_stream_reader_job_delegate_impl.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9093c93b2619bd6b80bfa055a447e943be5b3fb2
|
| --- /dev/null
|
| +++ b/android_webview/browser/net/aw_stream_reader_job_delegate_impl.cc
|
| @@ -0,0 +1,65 @@
|
| +// Copyright 2015 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.
|
| +
|
| +#include "android_webview/browser/net/aw_stream_reader_job_delegate_impl.h"
|
| +
|
| +#include "android_webview/browser/input_stream.h"
|
| +#include "base/strings/string_number_conversions.h"
|
| +#include "net/http/http_response_headers.h"
|
| +
|
| +namespace android_webview {
|
| +
|
| +AwStreamReaderJobDelegateImpl::AwStreamReaderJobDelegateImpl(
|
| + scoped_ptr<AwWebResourceResponse> aw_web_resource_response)
|
| + : aw_web_resource_response_(aw_web_resource_response.Pass()) {
|
| + DCHECK(aw_web_resource_response_);
|
| +}
|
| +
|
| +AwStreamReaderJobDelegateImpl::~AwStreamReaderJobDelegateImpl() {}
|
| +
|
| +scoped_ptr<InputStream> AwStreamReaderJobDelegateImpl::OpenInputStream(
|
| + JNIEnv* env,
|
| + const GURL& url) {
|
| + return aw_web_resource_response_->GetInputStream(env).Pass();
|
| +}
|
| +
|
| +void AwStreamReaderJobDelegateImpl::OnInputStreamOpenFailed(
|
| + net::URLRequest* request,
|
| + bool* restart) {
|
| + *restart = false;
|
| +}
|
| +
|
| +bool AwStreamReaderJobDelegateImpl::GetMimeType(
|
| + JNIEnv* env,
|
| + net::URLRequest* request,
|
| + android_webview::InputStream* stream,
|
| + std::string* mime_type) {
|
| + return aw_web_resource_response_->GetMimeType(env, mime_type);
|
| +}
|
| +
|
| +bool AwStreamReaderJobDelegateImpl::GetCharset(
|
| + JNIEnv* env,
|
| + net::URLRequest* request,
|
| + android_webview::InputStream* stream,
|
| + std::string* charset) {
|
| + return aw_web_resource_response_->GetCharset(env, charset);
|
| +}
|
| +
|
| +void AwStreamReaderJobDelegateImpl::AppendResponseHeaders(
|
| + JNIEnv* env,
|
| + net::HttpResponseHeaders* headers) {
|
| + int status_code;
|
| + std::string reason_phrase;
|
| + if (aw_web_resource_response_->GetStatusInfo(env, &status_code,
|
| + &reason_phrase)) {
|
| + std::string status_line("HTTP/1.1 ");
|
| + status_line.append(base::IntToString(status_code));
|
| + status_line.append(" ");
|
| + status_line.append(reason_phrase);
|
| + headers->ReplaceStatusLine(status_line);
|
| + }
|
| + aw_web_resource_response_->GetResponseHeaders(env, headers);
|
| +}
|
| +
|
| +} // namespace android_webview
|
|
|