Index: android_webview/browser/intercepted_request_data.cc |
diff --git a/android_webview/browser/intercepted_request_data.cc b/android_webview/browser/intercepted_request_data.cc |
index 6e25ce14474fbff9d4389581e6de9c0d21251abf..f3bd6f3d17ab0428b2ecf220f9d1fc92fdc83785 100644 |
--- a/android_webview/browser/intercepted_request_data.cc |
+++ b/android_webview/browser/intercepted_request_data.cc |
@@ -6,6 +6,8 @@ |
#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 { |
@@ -44,6 +46,21 @@ class StreamReaderJobDelegateImpl |
return intercepted_request_data_->GetCharset(env, charset); |
} |
+ virtual void UpdateHeaders(JNIEnv* env, |
+ net::HttpResponseHeaders* headers) OVERRIDE { |
+ int status_code; |
+ std::string reason_phrase; |
+ if (intercepted_request_data_->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); |
+ } |
+ intercepted_request_data_->GetHeaders(env, headers); |
+ } |
+ |
private: |
scoped_ptr<InterceptedRequestData> intercepted_request_data_; |
}; |