Index: android_webview/browser/aw_web_resource_response.cc |
diff --git a/android_webview/browser/intercepted_request_data.cc b/android_webview/browser/aw_web_resource_response.cc |
similarity index 53% |
rename from android_webview/browser/intercepted_request_data.cc |
rename to android_webview/browser/aw_web_resource_response.cc |
index 6e25ce14474fbff9d4389581e6de9c0d21251abf..e69f09ebe9dbeb9459763ec63c2067a59ce45d35 100644 |
--- a/android_webview/browser/intercepted_request_data.cc |
+++ b/android_webview/browser/aw_web_resource_response.cc |
@@ -2,10 +2,12 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "android_webview/browser/intercepted_request_data.h" |
+#include "android_webview/browser/aw_web_resource_response.h" |
#include "android_webview/browser/input_stream.h" |
#include "android_webview/browser/net/android_stream_reader_url_request_job.h" |
+#include "base/strings/string_number_conversions.h" |
+#include "net/http/http_response_headers.h" |
namespace android_webview { |
@@ -15,14 +17,14 @@ class StreamReaderJobDelegateImpl |
: public AndroidStreamReaderURLRequestJob::Delegate { |
public: |
StreamReaderJobDelegateImpl( |
- scoped_ptr<InterceptedRequestData> intercepted_request_data) |
- : intercepted_request_data_(intercepted_request_data.Pass()) { |
- DCHECK(intercepted_request_data_); |
+ scoped_ptr<AwWebResourceResponse> aw_web_resource_response) |
+ : aw_web_resource_response_(aw_web_resource_response.Pass()) { |
+ DCHECK(aw_web_resource_response_); |
} |
virtual scoped_ptr<InputStream> OpenInputStream(JNIEnv* env, |
const GURL& url) OVERRIDE { |
- return intercepted_request_data_->GetInputStream(env).Pass(); |
+ return aw_web_resource_response_->GetInputStream(env).Pass(); |
} |
virtual void OnInputStreamOpenFailed(net::URLRequest* request, |
@@ -34,28 +36,44 @@ class StreamReaderJobDelegateImpl |
net::URLRequest* request, |
android_webview::InputStream* stream, |
std::string* mime_type) OVERRIDE { |
- return intercepted_request_data_->GetMimeType(env, mime_type); |
+ return aw_web_resource_response_->GetMimeType(env, mime_type); |
} |
virtual bool GetCharset(JNIEnv* env, |
net::URLRequest* request, |
android_webview::InputStream* stream, |
std::string* charset) OVERRIDE { |
- return intercepted_request_data_->GetCharset(env, charset); |
+ return aw_web_resource_response_->GetCharset(env, charset); |
+ } |
+ |
+ virtual void AppendResponseHeaders( |
+ JNIEnv* env, |
+ net::HttpResponseHeaders* headers) OVERRIDE { |
+ 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); |
} |
private: |
- scoped_ptr<InterceptedRequestData> intercepted_request_data_; |
+ scoped_ptr<AwWebResourceResponse> aw_web_resource_response_; |
}; |
} // namespace |
// static |
-net::URLRequestJob* InterceptedRequestData::CreateJobFor( |
- scoped_ptr<InterceptedRequestData> intercepted_request_data, |
+net::URLRequestJob* AwWebResourceResponse::CreateJobFor( |
+ scoped_ptr<AwWebResourceResponse> aw_web_resource_response, |
net::URLRequest* request, |
net::NetworkDelegate* network_delegate) { |
- DCHECK(intercepted_request_data); |
+ DCHECK(aw_web_resource_response); |
DCHECK(request); |
DCHECK(network_delegate); |
@@ -63,7 +81,7 @@ net::URLRequestJob* InterceptedRequestData::CreateJobFor( |
request, |
network_delegate, |
make_scoped_ptr( |
- new StreamReaderJobDelegateImpl(intercepted_request_data.Pass())) |
+ new StreamReaderJobDelegateImpl(aw_web_resource_response.Pass())) |
.PassAs<AndroidStreamReaderURLRequestJob::Delegate>()); |
} |