• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 
5 #include "android_webview/native/intercepted_request_data_impl.h"
6 
7 #include "android_webview/native/input_stream_impl.h"
8 #include "base/android/jni_android.h"
9 #include "base/android/jni_string.h"
10 #include "jni/InterceptedRequestData_jni.h"
11 #include "net/url_request/url_request.h"
12 #include "net/url_request/url_request_job.h"
13 
14 using base::android::ScopedJavaLocalRef;
15 
16 namespace android_webview {
17 
InterceptedRequestDataImpl(const base::android::JavaRef<jobject> & obj)18 InterceptedRequestDataImpl::InterceptedRequestDataImpl(
19     const base::android::JavaRef<jobject>& obj)
20   : java_object_(obj) {
21 }
22 
~InterceptedRequestDataImpl()23 InterceptedRequestDataImpl::~InterceptedRequestDataImpl() {
24 }
25 
26 scoped_ptr<InputStream>
GetInputStream(JNIEnv * env) const27 InterceptedRequestDataImpl::GetInputStream(JNIEnv* env) const {
28   ScopedJavaLocalRef<jobject> jstream =
29       Java_InterceptedRequestData_getData(env, java_object_.obj());
30   if (jstream.is_null())
31     return scoped_ptr<InputStream>();
32   return make_scoped_ptr<InputStream>(new InputStreamImpl(jstream));
33 }
34 
GetMimeType(JNIEnv * env,std::string * mime_type) const35 bool InterceptedRequestDataImpl::GetMimeType(JNIEnv* env,
36                                              std::string* mime_type) const {
37   ScopedJavaLocalRef<jstring> jstring_mime_type =
38       Java_InterceptedRequestData_getMimeType(env, java_object_.obj());
39   if (jstring_mime_type.is_null())
40     return false;
41   *mime_type = ConvertJavaStringToUTF8(jstring_mime_type);
42   return true;
43 }
44 
GetCharset(JNIEnv * env,std::string * charset) const45 bool InterceptedRequestDataImpl::GetCharset(
46     JNIEnv* env, std::string* charset) const {
47   ScopedJavaLocalRef<jstring> jstring_charset =
48       Java_InterceptedRequestData_getCharset(env, java_object_.obj());
49   if (jstring_charset.is_null())
50     return false;
51   *charset = ConvertJavaStringToUTF8(jstring_charset);
52   return true;
53 }
54 
RegisterInterceptedRequestData(JNIEnv * env)55 bool RegisterInterceptedRequestData(JNIEnv* env) {
56   return RegisterNativesImpl(env);
57 }
58 
59 } // namespace android_webview
60