| 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 |