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

Side by Side Diff: android_webview/browser/net/aw_web_resource_response.cc

Issue 2889193004: [WebView] Replace AwContentsIoThreadClient, InputStream and AwWebResourceResponse (Closed)
Patch Set: fix test crash Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "android_webview/browser/aw_web_resource_response_impl.h" 5 #include "android_webview/browser/net/aw_web_resource_response.h"
6 6
7 #include "android_webview/browser/input_stream_impl.h" 7 #include "android_webview/browser/input_stream.h"
8 #include "base/android/jni_android.h" 8 #include "base/android/jni_android.h"
9 #include "base/android/jni_array.h" 9 #include "base/android/jni_array.h"
10 #include "base/android/jni_string.h" 10 #include "base/android/jni_string.h"
11 #include "base/memory/ptr_util.h" 11 #include "base/memory/ptr_util.h"
12 #include "jni/AwWebResourceResponse_jni.h" 12 #include "jni/AwWebResourceResponse_jni.h"
13 #include "net/http/http_response_headers.h" 13 #include "net/http/http_response_headers.h"
14 #include "net/url_request/url_request.h" 14 #include "net/url_request/url_request.h"
15 #include "net/url_request/url_request_job.h" 15 #include "net/url_request/url_request_job.h"
16 16
17 using base::android::ScopedJavaLocalRef; 17 using base::android::ScopedJavaLocalRef;
18 using base::android::AppendJavaStringArrayToStringVector; 18 using base::android::AppendJavaStringArrayToStringVector;
19 19
20 namespace android_webview { 20 namespace android_webview {
21 21
22 AwWebResourceResponseImpl::AwWebResourceResponseImpl( 22 AwWebResourceResponse::AwWebResourceResponse(
23 const base::android::JavaRef<jobject>& obj) 23 const base::android::JavaRef<jobject>& obj)
24 : java_object_(obj) {} 24 : java_object_(obj) {}
25 25
26 AwWebResourceResponseImpl::~AwWebResourceResponseImpl() {} 26 AwWebResourceResponse::~AwWebResourceResponse() {}
27 27
28 std::unique_ptr<InputStream> AwWebResourceResponseImpl::GetInputStream( 28 std::unique_ptr<InputStream> AwWebResourceResponse::GetInputStream(
29 JNIEnv* env) const { 29 JNIEnv* env) const {
30 ScopedJavaLocalRef<jobject> jstream = 30 ScopedJavaLocalRef<jobject> jstream =
31 Java_AwWebResourceResponse_getData(env, java_object_); 31 Java_AwWebResourceResponse_getData(env, java_object_);
32 if (jstream.is_null()) 32 if (jstream.is_null())
33 return std::unique_ptr<InputStream>(); 33 return std::unique_ptr<InputStream>();
34 return base::MakeUnique<InputStreamImpl>(jstream); 34 return base::MakeUnique<InputStream>(jstream);
35 } 35 }
36 36
37 bool AwWebResourceResponseImpl::GetMimeType(JNIEnv* env, 37 bool AwWebResourceResponse::GetMimeType(JNIEnv* env,
38 std::string* mime_type) const { 38 std::string* mime_type) const {
39 ScopedJavaLocalRef<jstring> jstring_mime_type = 39 ScopedJavaLocalRef<jstring> jstring_mime_type =
40 Java_AwWebResourceResponse_getMimeType(env, java_object_); 40 Java_AwWebResourceResponse_getMimeType(env, java_object_);
41 if (jstring_mime_type.is_null()) 41 if (jstring_mime_type.is_null())
42 return false; 42 return false;
43 *mime_type = ConvertJavaStringToUTF8(jstring_mime_type); 43 *mime_type = ConvertJavaStringToUTF8(jstring_mime_type);
44 return true; 44 return true;
45 } 45 }
46 46
47 bool AwWebResourceResponseImpl::GetCharset(JNIEnv* env, 47 bool AwWebResourceResponse::GetCharset(JNIEnv* env,
48 std::string* charset) const { 48 std::string* charset) const {
49 ScopedJavaLocalRef<jstring> jstring_charset = 49 ScopedJavaLocalRef<jstring> jstring_charset =
50 Java_AwWebResourceResponse_getCharset(env, java_object_); 50 Java_AwWebResourceResponse_getCharset(env, java_object_);
51 if (jstring_charset.is_null()) 51 if (jstring_charset.is_null())
52 return false; 52 return false;
53 *charset = ConvertJavaStringToUTF8(jstring_charset); 53 *charset = ConvertJavaStringToUTF8(jstring_charset);
54 return true; 54 return true;
55 } 55 }
56 56
57 bool AwWebResourceResponseImpl::GetStatusInfo( 57 bool AwWebResourceResponse::GetStatusInfo(JNIEnv* env,
58 JNIEnv* env, 58 int* status_code,
59 int* status_code, 59 std::string* reason_phrase) const {
60 std::string* reason_phrase) const {
61 int status = Java_AwWebResourceResponse_getStatusCode(env, java_object_); 60 int status = Java_AwWebResourceResponse_getStatusCode(env, java_object_);
62 ScopedJavaLocalRef<jstring> jstring_reason_phrase = 61 ScopedJavaLocalRef<jstring> jstring_reason_phrase =
63 Java_AwWebResourceResponse_getReasonPhrase(env, java_object_); 62 Java_AwWebResourceResponse_getReasonPhrase(env, java_object_);
64 if (status < 100 || status >= 600 || jstring_reason_phrase.is_null()) 63 if (status < 100 || status >= 600 || jstring_reason_phrase.is_null())
65 return false; 64 return false;
66 *status_code = status; 65 *status_code = status;
67 *reason_phrase = ConvertJavaStringToUTF8(jstring_reason_phrase); 66 *reason_phrase = ConvertJavaStringToUTF8(jstring_reason_phrase);
68 return true; 67 return true;
69 } 68 }
70 69
71 bool AwWebResourceResponseImpl::GetResponseHeaders( 70 bool AwWebResourceResponse::GetResponseHeaders(
72 JNIEnv* env, 71 JNIEnv* env,
73 net::HttpResponseHeaders* headers) const { 72 net::HttpResponseHeaders* headers) const {
74 ScopedJavaLocalRef<jobjectArray> jstringArray_headerNames = 73 ScopedJavaLocalRef<jobjectArray> jstringArray_headerNames =
75 Java_AwWebResourceResponse_getResponseHeaderNames(env, java_object_); 74 Java_AwWebResourceResponse_getResponseHeaderNames(env, java_object_);
76 ScopedJavaLocalRef<jobjectArray> jstringArray_headerValues = 75 ScopedJavaLocalRef<jobjectArray> jstringArray_headerValues =
77 Java_AwWebResourceResponse_getResponseHeaderValues(env, java_object_); 76 Java_AwWebResourceResponse_getResponseHeaderValues(env, java_object_);
78 if (jstringArray_headerNames.is_null() || jstringArray_headerValues.is_null()) 77 if (jstringArray_headerNames.is_null() || jstringArray_headerValues.is_null())
79 return false; 78 return false;
80 std::vector<std::string> header_names; 79 std::vector<std::string> header_names;
81 std::vector<std::string> header_values; 80 std::vector<std::string> header_values;
82 AppendJavaStringArrayToStringVector(env, jstringArray_headerNames.obj(), 81 AppendJavaStringArrayToStringVector(env, jstringArray_headerNames.obj(),
83 &header_names); 82 &header_names);
84 AppendJavaStringArrayToStringVector(env, jstringArray_headerValues.obj(), 83 AppendJavaStringArrayToStringVector(env, jstringArray_headerValues.obj(),
85 &header_values); 84 &header_values);
86 DCHECK_EQ(header_values.size(), header_names.size()); 85 DCHECK_EQ(header_values.size(), header_names.size());
87 for (size_t i = 0; i < header_names.size(); ++i) { 86 for (size_t i = 0; i < header_names.size(); ++i) {
88 std::string header_line(header_names[i]); 87 std::string header_line(header_names[i]);
89 header_line.append(": "); 88 header_line.append(": ");
90 header_line.append(header_values[i]); 89 header_line.append(header_values[i]);
91 headers->AddHeader(header_line); 90 headers->AddHeader(header_line);
92 } 91 }
93 return true; 92 return true;
94 } 93 }
95 94
96 } // namespace android_webview 95 } // namespace android_webview
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698