Chromium Code Reviews| Index: android_webview/browser/net/android_stream_reader_url_request_job.h |
| diff --git a/android_webview/native/android_stream_reader_url_request_job.h b/android_webview/browser/net/android_stream_reader_url_request_job.h |
| similarity index 71% |
| rename from android_webview/native/android_stream_reader_url_request_job.h |
| rename to android_webview/browser/net/android_stream_reader_url_request_job.h |
| index e29acd86e90045dfcb2265d78d2d80fc217e9c53..725ca259bf8e459e34b3f78062a33fc99ae67957 100644 |
| --- a/android_webview/native/android_stream_reader_url_request_job.h |
| +++ b/android_webview/browser/net/android_stream_reader_url_request_job.h |
| @@ -6,12 +6,22 @@ |
| #define ANDROID_WEBVIEW_NATIVE_ANDROID_STREAM_READER_URL_REQUEST_JOB_H_ |
| #include "base/android/scoped_java_ref.h" |
| +#include "base/location.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "base/memory/weak_ptr.h" |
| #include "base/threading/non_thread_safe.h" |
| #include "net/http/http_byte_range.h" |
| #include "net/url_request/url_request_job.h" |
| +namespace android_webview { |
| +class InputStream; |
| +class InputStreamReader; |
| +} |
| + |
| +namespace base { |
| +class TaskRunner; |
| +} |
| + |
| namespace net { |
| class URLRequest; |
| } |
| @@ -25,20 +35,20 @@ class AndroidStreamReaderURLRequestJob : public net::URLRequestJob { |
| */ |
| class Delegate { |
| public: |
| - virtual base::android::ScopedJavaLocalRef<jobject> OpenInputStream( |
| + virtual scoped_ptr<android_webview::InputStream> OpenInputStream( |
| JNIEnv* env, |
| net::URLRequest* request) = 0; |
| virtual bool GetMimeType( |
| JNIEnv* env, |
| net::URLRequest* request, |
| - jobject stream, |
| + const android_webview::InputStream& stream, |
| std::string* mime_type) = 0; |
| virtual bool GetCharset( |
| JNIEnv* env, |
| net::URLRequest* request, |
| - jobject stream, |
| + const android_webview::InputStream& stream, |
| std::string* charset) = 0; |
| virtual ~Delegate() {} |
| @@ -51,6 +61,7 @@ class AndroidStreamReaderURLRequestJob : public net::URLRequestJob { |
| // URLRequestJob: |
| virtual void Start() OVERRIDE; |
| + virtual void Kill() OVERRIDE; |
| virtual bool ReadRawData(net::IOBuffer* buf, |
| int buf_size, |
| int* bytes_read) OVERRIDE; |
| @@ -62,24 +73,27 @@ class AndroidStreamReaderURLRequestJob : public net::URLRequestJob { |
| protected: |
| virtual ~AndroidStreamReaderURLRequestJob(); |
| - private: |
| - // Verify the requested range against the stream size. |
| - bool VerifyRequestedRange(JNIEnv* env); |
| + // Gets the TaskRunner for the worker thread. |
| + // Useful to override in tests. |
| + virtual base::TaskRunner* GetWorkerThreadRunner(); |
| - // Skip to the first byte of the requested read range. |
| - bool SkipToRequestedRange(JNIEnv* env); |
| + // Creates an InputStreamReader instance. |
| + virtual android_webview::InputStreamReader* |
|
joth
2012/11/20 20:46:35
comment ownership is not returned. (I come from a
mkosiba (inactive)
2012/11/21 15:19:47
umm.. why do you think ownership is not returned?
joth
2012/11/21 21:11:00
I've become too used to see scoped_ptr to indicate
|
| + CreateStreamReader(android_webview::InputStream* stream); |
| + private: |
| void StartAsync(); |
| + void OnReaderSeekCompleted(int content_size); |
| + void OnReaderReadCompleted(int bytes_read); |
| + |
| net::HttpByteRange byte_range_; |
| scoped_ptr<Delegate> delegate_; |
| - base::android::ScopedJavaGlobalRef<jobject> stream_; |
| - base::android::ScopedJavaGlobalRef<jbyteArray> buffer_; |
| + scoped_refptr<android_webview::InputStreamReader> input_stream_reader_; |
| + scoped_ptr<android_webview::InputStream> stream_; |
| base::WeakPtrFactory<AndroidStreamReaderURLRequestJob> weak_factory_; |
| DISALLOW_COPY_AND_ASSIGN(AndroidStreamReaderURLRequestJob); |
| }; |
| -bool RegisterAndroidStreamReaderUrlRequestJob(JNIEnv* env); |
| - |
| #endif // ANDROID_WEBVIEW_NATIVE_ANDROID_STREAM_READER_URL_REQUEST_JOB_H_ |