Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1969)

Unified Diff: android_webview/browser/net/aw_stream_reader_job_delegate_impl.cc

Issue 1350553005: [Android WebView] Call shouldInterceptRequest on a background thread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed indent in AwStreamReaderJobDelegateImpl Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698