| Index: android_webview/native/android_protocol_handler.cc
|
| diff --git a/android_webview/native/android_protocol_handler.cc b/android_webview/native/android_protocol_handler.cc
|
| index de6059f9df6f8c5f98060423e71b9930db16f1d0..c5b8c5c9dd3890806ed5066165782330c44d7f75 100644
|
| --- a/android_webview/native/android_protocol_handler.cc
|
| +++ b/android_webview/native/android_protocol_handler.cc
|
| @@ -5,6 +5,7 @@
|
| // URL request job for reading from resources and assets.
|
|
|
| #include "android_webview/native/android_protocol_handler.h"
|
| +#include "android_webview/native/input_stream.h"
|
|
|
| #include "android_webview/common/url_constants.h"
|
| #include "android_webview/native/android_stream_reader_url_request_job.h"
|
| @@ -47,18 +48,18 @@ class AndroidStreamReaderURLRequestJobDelegateImpl
|
| public:
|
| AndroidStreamReaderURLRequestJobDelegateImpl();
|
|
|
| - virtual ScopedJavaLocalRef<jobject> OpenInputStream(
|
| + virtual scoped_ptr<android_webview::InputStream> OpenInputStream(
|
| JNIEnv* env,
|
| net::URLRequest* request) OVERRIDE;
|
|
|
| virtual bool GetMimeType(JNIEnv* env,
|
| net::URLRequest* request,
|
| - jobject stream,
|
| + const android_webview::InputStream& stream,
|
| std::string* mime_type) OVERRIDE;
|
|
|
| virtual bool GetCharset(JNIEnv* env,
|
| net::URLRequest* request,
|
| - jobject stream,
|
| + const android_webview::InputStream& stream,
|
| std::string* charset) OVERRIDE;
|
|
|
| virtual ~AndroidStreamReaderURLRequestJobDelegateImpl();
|
| @@ -124,7 +125,7 @@ AndroidStreamReaderURLRequestJobDelegateImpl::
|
| ~AndroidStreamReaderURLRequestJobDelegateImpl() {
|
| }
|
|
|
| -ScopedJavaLocalRef<jobject>
|
| +scoped_ptr<android_webview::InputStream>
|
| AndroidStreamReaderURLRequestJobDelegateImpl::OpenInputStream(
|
| JNIEnv* env, net::URLRequest* request) {
|
| DCHECK(request);
|
| @@ -142,23 +143,20 @@ AndroidStreamReaderURLRequestJobDelegateImpl::OpenInputStream(
|
| // Check and clear pending exceptions.
|
| if (ClearException(env) || stream.is_null()) {
|
| DLOG(ERROR) << "Unable to open input stream for Android URL";
|
| - return ScopedJavaLocalRef<jobject>(env, NULL);
|
| + return scoped_ptr<android_webview::InputStream>();
|
| }
|
| - return stream;
|
| + return make_scoped_ptr(new android_webview::InputStream(stream));
|
| }
|
|
|
| bool AndroidStreamReaderURLRequestJobDelegateImpl::GetMimeType(
|
| JNIEnv* env,
|
| net::URLRequest* request,
|
| - jobject stream,
|
| + const android_webview::InputStream& stream,
|
| std::string* mime_type) {
|
| DCHECK(env);
|
| DCHECK(request);
|
| DCHECK(mime_type);
|
|
|
| - if (!stream)
|
| - return false;
|
| -
|
| // Query the mime type from the Java side. It is possible for the query to
|
| // fail, as the mime type cannot be determined for all supported schemes.
|
| ScopedJavaLocalRef<jstring> url =
|
| @@ -167,7 +165,7 @@ bool AndroidStreamReaderURLRequestJobDelegateImpl::GetMimeType(
|
| android_webview::Java_AndroidProtocolHandler_getMimeType(
|
| env,
|
| GetResourceContext(env).obj(),
|
| - stream, url.obj());
|
| + stream.jobj(), url.obj());
|
| if (ClearException(env) || returned_type.is_null())
|
| return false;
|
|
|
| @@ -178,7 +176,7 @@ bool AndroidStreamReaderURLRequestJobDelegateImpl::GetMimeType(
|
| bool AndroidStreamReaderURLRequestJobDelegateImpl::GetCharset(
|
| JNIEnv* env,
|
| net::URLRequest* request,
|
| - jobject stream,
|
| + const android_webview::InputStream& stream,
|
| std::string* charset) {
|
| // TODO: We should probably be getting this from the managed side.
|
| return false;
|
|
|