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 "base/android/jni_string.h" | 5 #include "base/android/jni_string.h" |
6 | 6 |
7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 | 10 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 std::string ConvertJavaStringToUTF8(JNIEnv* env, jstring str) { | 48 std::string ConvertJavaStringToUTF8(JNIEnv* env, jstring str) { |
49 std::string result; | 49 std::string result; |
50 ConvertJavaStringToUTF8(env, str, &result); | 50 ConvertJavaStringToUTF8(env, str, &result); |
51 return result; | 51 return result; |
52 } | 52 } |
53 | 53 |
54 std::string ConvertJavaStringToUTF8(const JavaRef<jstring>& str) { | 54 std::string ConvertJavaStringToUTF8(const JavaRef<jstring>& str) { |
55 return ConvertJavaStringToUTF8(AttachCurrentThread(), str.obj()); | 55 return ConvertJavaStringToUTF8(AttachCurrentThread(), str.obj()); |
56 } | 56 } |
57 | 57 |
| 58 std::string ConvertJavaStringToUTF8(JNIEnv* env, const JavaRef<jstring>& str) { |
| 59 return ConvertJavaStringToUTF8(env, str.obj()); |
| 60 } |
| 61 |
58 ScopedJavaLocalRef<jstring> ConvertUTF8ToJavaString( | 62 ScopedJavaLocalRef<jstring> ConvertUTF8ToJavaString( |
59 JNIEnv* env, | 63 JNIEnv* env, |
60 const base::StringPiece& str) { | 64 const base::StringPiece& str) { |
61 // JNI's NewStringUTF expects "modified" UTF8 so instead create the string | 65 // JNI's NewStringUTF expects "modified" UTF8 so instead create the string |
62 // via our own UTF16 conversion utility. | 66 // via our own UTF16 conversion utility. |
63 // Further, Dalvik requires the string passed into NewStringUTF() to come from | 67 // Further, Dalvik requires the string passed into NewStringUTF() to come from |
64 // a trusted source. We can't guarantee that all UTF8 will be sanitized before | 68 // a trusted source. We can't guarantee that all UTF8 will be sanitized before |
65 // it gets here, so constructing via UTF16 side-steps this issue. | 69 // it gets here, so constructing via UTF16 side-steps this issue. |
66 // (Dalvik stores strings internally as UTF16 anyway, so there shouldn't be | 70 // (Dalvik stores strings internally as UTF16 anyway, so there shouldn't be |
67 // a significant performance hit by doing it this way). | 71 // a significant performance hit by doing it this way). |
(...skipping 25 matching lines...) Expand all Loading... |
93 string16 ConvertJavaStringToUTF16(JNIEnv* env, jstring str) { | 97 string16 ConvertJavaStringToUTF16(JNIEnv* env, jstring str) { |
94 string16 result; | 98 string16 result; |
95 ConvertJavaStringToUTF16(env, str, &result); | 99 ConvertJavaStringToUTF16(env, str, &result); |
96 return result; | 100 return result; |
97 } | 101 } |
98 | 102 |
99 string16 ConvertJavaStringToUTF16(const JavaRef<jstring>& str) { | 103 string16 ConvertJavaStringToUTF16(const JavaRef<jstring>& str) { |
100 return ConvertJavaStringToUTF16(AttachCurrentThread(), str.obj()); | 104 return ConvertJavaStringToUTF16(AttachCurrentThread(), str.obj()); |
101 } | 105 } |
102 | 106 |
| 107 string16 ConvertJavaStringToUTF16(JNIEnv* env, const JavaRef<jstring>& str) { |
| 108 return ConvertJavaStringToUTF16(env, str.obj()); |
| 109 } |
| 110 |
103 ScopedJavaLocalRef<jstring> ConvertUTF16ToJavaString( | 111 ScopedJavaLocalRef<jstring> ConvertUTF16ToJavaString( |
104 JNIEnv* env, | 112 JNIEnv* env, |
105 const base::StringPiece16& str) { | 113 const base::StringPiece16& str) { |
106 return ScopedJavaLocalRef<jstring>(env, | 114 return ScopedJavaLocalRef<jstring>(env, |
107 ConvertUTF16ToJavaStringImpl(env, str)); | 115 ConvertUTF16ToJavaStringImpl(env, str)); |
108 } | 116 } |
109 | 117 |
110 } // namespace android | 118 } // namespace android |
111 } // namespace base | 119 } // namespace base |
OLD | NEW |