| 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 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 return request->GetUserData(kPreviouslyFailedKey) != NULL; | 55 return request->GetUserData(kPreviouslyFailedKey) != NULL; |
| 56 } | 56 } |
| 57 | 57 |
| 58 class AndroidStreamReaderURLRequestJobDelegateImpl | 58 class AndroidStreamReaderURLRequestJobDelegateImpl |
| 59 : public AndroidStreamReaderURLRequestJob::Delegate { | 59 : public AndroidStreamReaderURLRequestJob::Delegate { |
| 60 public: | 60 public: |
| 61 AndroidStreamReaderURLRequestJobDelegateImpl(); | 61 AndroidStreamReaderURLRequestJobDelegateImpl(); |
| 62 | 62 |
| 63 virtual scoped_ptr<InputStream> OpenInputStream( | 63 virtual scoped_ptr<InputStream> OpenInputStream( |
| 64 JNIEnv* env, | 64 JNIEnv* env, |
| 65 const GURL& url) OVERRIDE; | 65 const GURL& url) override; |
| 66 | 66 |
| 67 virtual void OnInputStreamOpenFailed(net::URLRequest* request, | 67 virtual void OnInputStreamOpenFailed(net::URLRequest* request, |
| 68 bool* restart) OVERRIDE; | 68 bool* restart) override; |
| 69 | 69 |
| 70 virtual bool GetMimeType(JNIEnv* env, | 70 virtual bool GetMimeType(JNIEnv* env, |
| 71 net::URLRequest* request, | 71 net::URLRequest* request, |
| 72 InputStream* stream, | 72 InputStream* stream, |
| 73 std::string* mime_type) OVERRIDE; | 73 std::string* mime_type) override; |
| 74 | 74 |
| 75 virtual bool GetCharset(JNIEnv* env, | 75 virtual bool GetCharset(JNIEnv* env, |
| 76 net::URLRequest* request, | 76 net::URLRequest* request, |
| 77 InputStream* stream, | 77 InputStream* stream, |
| 78 std::string* charset) OVERRIDE; | 78 std::string* charset) override; |
| 79 | 79 |
| 80 virtual void AppendResponseHeaders( | 80 virtual void AppendResponseHeaders( |
| 81 JNIEnv* env, | 81 JNIEnv* env, |
| 82 net::HttpResponseHeaders* headers) OVERRIDE; | 82 net::HttpResponseHeaders* headers) override; |
| 83 | 83 |
| 84 virtual ~AndroidStreamReaderURLRequestJobDelegateImpl(); | 84 virtual ~AndroidStreamReaderURLRequestJobDelegateImpl(); |
| 85 }; | 85 }; |
| 86 | 86 |
| 87 class AndroidRequestInterceptorBase : public net::URLRequestInterceptor { | 87 class AndroidRequestInterceptorBase : public net::URLRequestInterceptor { |
| 88 public: | 88 public: |
| 89 virtual net::URLRequestJob* MaybeInterceptRequest( | 89 virtual net::URLRequestJob* MaybeInterceptRequest( |
| 90 net::URLRequest* request, | 90 net::URLRequest* request, |
| 91 net::NetworkDelegate* network_delegate) const OVERRIDE; | 91 net::NetworkDelegate* network_delegate) const override; |
| 92 | 92 |
| 93 virtual bool ShouldHandleRequest(const net::URLRequest* request) const = 0; | 93 virtual bool ShouldHandleRequest(const net::URLRequest* request) const = 0; |
| 94 }; | 94 }; |
| 95 | 95 |
| 96 class AssetFileRequestInterceptor : public AndroidRequestInterceptorBase { | 96 class AssetFileRequestInterceptor : public AndroidRequestInterceptorBase { |
| 97 public: | 97 public: |
| 98 AssetFileRequestInterceptor(); | 98 AssetFileRequestInterceptor(); |
| 99 | 99 |
| 100 virtual ~AssetFileRequestInterceptor() OVERRIDE; | 100 virtual ~AssetFileRequestInterceptor() override; |
| 101 virtual bool ShouldHandleRequest( | 101 virtual bool ShouldHandleRequest( |
| 102 const net::URLRequest* request) const OVERRIDE; | 102 const net::URLRequest* request) const override; |
| 103 | 103 |
| 104 private: | 104 private: |
| 105 // file:///android_asset/ | 105 // file:///android_asset/ |
| 106 const std::string asset_prefix_; | 106 const std::string asset_prefix_; |
| 107 // file:///android_res/ | 107 // file:///android_res/ |
| 108 const std::string resource_prefix_; | 108 const std::string resource_prefix_; |
| 109 }; | 109 }; |
| 110 | 110 |
| 111 // Protocol handler for content:// scheme requests. | 111 // Protocol handler for content:// scheme requests. |
| 112 class ContentSchemeRequestInterceptor : public AndroidRequestInterceptorBase { | 112 class ContentSchemeRequestInterceptor : public AndroidRequestInterceptorBase { |
| 113 public: | 113 public: |
| 114 ContentSchemeRequestInterceptor(); | 114 ContentSchemeRequestInterceptor(); |
| 115 virtual bool ShouldHandleRequest( | 115 virtual bool ShouldHandleRequest( |
| 116 const net::URLRequest* request) const OVERRIDE; | 116 const net::URLRequest* request) const override; |
| 117 }; | 117 }; |
| 118 | 118 |
| 119 static ScopedJavaLocalRef<jobject> GetResourceContext(JNIEnv* env) { | 119 static ScopedJavaLocalRef<jobject> GetResourceContext(JNIEnv* env) { |
| 120 if (g_resource_context) | 120 if (g_resource_context) |
| 121 return g_resource_context->get(env); | 121 return g_resource_context->get(env); |
| 122 ScopedJavaLocalRef<jobject> context; | 122 ScopedJavaLocalRef<jobject> context; |
| 123 // We have to reset as GetApplicationContext() returns a jobject with a | 123 // We have to reset as GetApplicationContext() returns a jobject with a |
| 124 // global ref. The constructor that takes a jobject would expect a local ref | 124 // global ref. The constructor that takes a jobject would expect a local ref |
| 125 // and would assert. | 125 // and would assert. |
| 126 context.Reset(env, base::android::GetApplicationContext()); | 126 context.Reset(env, base::android::GetApplicationContext()); |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 319 env, android_webview::kAndroidAssetPath).Release(); | 319 env, android_webview::kAndroidAssetPath).Release(); |
| 320 } | 320 } |
| 321 | 321 |
| 322 static jstring GetAndroidResourcePath(JNIEnv* env, jclass /*clazz*/) { | 322 static jstring GetAndroidResourcePath(JNIEnv* env, jclass /*clazz*/) { |
| 323 // OK to release, JNI binding. | 323 // OK to release, JNI binding. |
| 324 return ConvertUTF8ToJavaString( | 324 return ConvertUTF8ToJavaString( |
| 325 env, android_webview::kAndroidResourcePath).Release(); | 325 env, android_webview::kAndroidResourcePath).Release(); |
| 326 } | 326 } |
| 327 | 327 |
| 328 } // namespace android_webview | 328 } // namespace android_webview |
| OLD | NEW |