OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/native/android_protocol_handler.h" | 5 #include "android_webview/native/android_protocol_handler.h" |
6 | 6 |
7 #include "android_webview/browser/net/android_stream_reader_url_request_job.h" | 7 #include "android_webview/browser/net/android_stream_reader_url_request_job.h" |
8 #include "android_webview/browser/net/aw_url_request_job_factory.h" | 8 #include "android_webview/browser/net/aw_url_request_job_factory.h" |
9 #include "android_webview/common/url_constants.h" | 9 #include "android_webview/common/url_constants.h" |
10 #include "android_webview/native/input_stream_impl.h" | 10 #include "android_webview/native/input_stream_impl.h" |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 | 139 |
140 // Open the input stream. | 140 // Open the input stream. |
141 ScopedJavaLocalRef<jstring> jurl = | 141 ScopedJavaLocalRef<jstring> jurl = |
142 ConvertUTF8ToJavaString(env, url.spec()); | 142 ConvertUTF8ToJavaString(env, url.spec()); |
143 ScopedJavaLocalRef<jobject> stream = | 143 ScopedJavaLocalRef<jobject> stream = |
144 android_webview::Java_AndroidProtocolHandler_open( | 144 android_webview::Java_AndroidProtocolHandler_open( |
145 env, | 145 env, |
146 GetResourceContext(env).obj(), | 146 GetResourceContext(env).obj(), |
147 jurl.obj()); | 147 jurl.obj()); |
148 | 148 |
149 // Check and clear pending exceptions. | 149 if (stream.is_null()) { |
150 if (ClearException(env) || stream.is_null()) { | |
151 DLOG(ERROR) << "Unable to open input stream for Android URL"; | 150 DLOG(ERROR) << "Unable to open input stream for Android URL"; |
152 return scoped_ptr<InputStream>(); | 151 return scoped_ptr<InputStream>(); |
153 } | 152 } |
154 return make_scoped_ptr<InputStream>(new InputStreamImpl(stream)); | 153 return make_scoped_ptr<InputStream>(new InputStreamImpl(stream)); |
155 } | 154 } |
156 | 155 |
157 void AndroidStreamReaderURLRequestJobDelegateImpl::OnInputStreamOpenFailed( | 156 void AndroidStreamReaderURLRequestJobDelegateImpl::OnInputStreamOpenFailed( |
158 net::URLRequest* request, | 157 net::URLRequest* request, |
159 bool* restart) { | 158 bool* restart) { |
160 DCHECK(!HasRequestPreviouslyFailed(request)); | 159 DCHECK(!HasRequestPreviouslyFailed(request)); |
(...skipping 14 matching lines...) Expand all Loading... |
175 // fail, as the mime type cannot be determined for all supported schemes. | 174 // fail, as the mime type cannot be determined for all supported schemes. |
176 ScopedJavaLocalRef<jstring> url = | 175 ScopedJavaLocalRef<jstring> url = |
177 ConvertUTF8ToJavaString(env, request->url().spec()); | 176 ConvertUTF8ToJavaString(env, request->url().spec()); |
178 const InputStreamImpl* stream_impl = | 177 const InputStreamImpl* stream_impl = |
179 InputStreamImpl::FromInputStream(stream); | 178 InputStreamImpl::FromInputStream(stream); |
180 ScopedJavaLocalRef<jstring> returned_type = | 179 ScopedJavaLocalRef<jstring> returned_type = |
181 android_webview::Java_AndroidProtocolHandler_getMimeType( | 180 android_webview::Java_AndroidProtocolHandler_getMimeType( |
182 env, | 181 env, |
183 GetResourceContext(env).obj(), | 182 GetResourceContext(env).obj(), |
184 stream_impl->jobj(), url.obj()); | 183 stream_impl->jobj(), url.obj()); |
185 if (ClearException(env) || returned_type.is_null()) | 184 if (returned_type.is_null()) |
186 return false; | 185 return false; |
187 | 186 |
188 *mime_type = base::android::ConvertJavaStringToUTF8(returned_type); | 187 *mime_type = base::android::ConvertJavaStringToUTF8(returned_type); |
189 return true; | 188 return true; |
190 } | 189 } |
191 | 190 |
192 bool AndroidStreamReaderURLRequestJobDelegateImpl::GetCharset( | 191 bool AndroidStreamReaderURLRequestJobDelegateImpl::GetCharset( |
193 JNIEnv* env, | 192 JNIEnv* env, |
194 net::URLRequest* request, | 193 net::URLRequest* request, |
195 android_webview::InputStream* stream, | 194 android_webview::InputStream* stream, |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
308 env, android_webview::kAndroidAssetPath).Release(); | 307 env, android_webview::kAndroidAssetPath).Release(); |
309 } | 308 } |
310 | 309 |
311 static jstring GetAndroidResourcePath(JNIEnv* env, jclass /*clazz*/) { | 310 static jstring GetAndroidResourcePath(JNIEnv* env, jclass /*clazz*/) { |
312 // OK to release, JNI binding. | 311 // OK to release, JNI binding. |
313 return ConvertUTF8ToJavaString( | 312 return ConvertUTF8ToJavaString( |
314 env, android_webview::kAndroidResourcePath).Release(); | 313 env, android_webview::kAndroidResourcePath).Release(); |
315 } | 314 } |
316 | 315 |
317 } // namespace android_webview | 316 } // namespace android_webview |
OLD | NEW |