OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "components/variations/android/variations_seed_bridge.h" | 5 #include "components/variations/android/variations_seed_bridge.h" |
6 | 6 |
7 #include <jni.h> | 7 #include <jni.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "base/android/context_utils.h" | |
12 #include "base/android/jni_android.h" | 11 #include "base/android/jni_android.h" |
13 #include "base/android/jni_array.h" | 12 #include "base/android/jni_array.h" |
14 #include "base/android/jni_string.h" | 13 #include "base/android/jni_string.h" |
15 #include "base/android/jni_weak_ref.h" | 14 #include "base/android/jni_weak_ref.h" |
16 #include "jni/VariationsSeedBridge_jni.h" | 15 #include "jni/VariationsSeedBridge_jni.h" |
17 | 16 |
18 using base::android::AttachCurrentThread; | 17 using base::android::AttachCurrentThread; |
19 using base::android::ConvertJavaStringToUTF8; | 18 using base::android::ConvertJavaStringToUTF8; |
20 using base::android::ConvertUTF8ToJavaString; | 19 using base::android::ConvertUTF8ToJavaString; |
21 using base::android::GetApplicationContext; | |
22 using base::android::ScopedJavaLocalRef; | 20 using base::android::ScopedJavaLocalRef; |
23 | 21 |
24 namespace { | 22 namespace { |
25 | 23 |
26 std::string JavaByteArrayToString(JNIEnv* env, jbyteArray byte_array) { | 24 std::string JavaByteArrayToString(JNIEnv* env, jbyteArray byte_array) { |
27 if (!byte_array) | 25 if (!byte_array) |
28 return std::string(); | 26 return std::string(); |
29 std::vector<uint8_t> array_data; | 27 std::vector<uint8_t> array_data; |
30 base::android::JavaByteArrayToByteVector(env, byte_array, &array_data); | 28 base::android::JavaByteArrayToByteVector(env, byte_array, &array_data); |
31 return std::string(array_data.begin(), array_data.end()); | 29 return std::string(array_data.begin(), array_data.end()); |
(...skipping 11 matching lines...) Expand all Loading... |
43 namespace variations { | 41 namespace variations { |
44 namespace android { | 42 namespace android { |
45 | 43 |
46 void GetVariationsFirstRunSeed(std::string* seed_data, | 44 void GetVariationsFirstRunSeed(std::string* seed_data, |
47 std::string* seed_signature, | 45 std::string* seed_signature, |
48 std::string* seed_country, | 46 std::string* seed_country, |
49 std::string* response_date, | 47 std::string* response_date, |
50 bool* is_gzip_compressed) { | 48 bool* is_gzip_compressed) { |
51 JNIEnv* env = AttachCurrentThread(); | 49 JNIEnv* env = AttachCurrentThread(); |
52 ScopedJavaLocalRef<jbyteArray> j_seed_data = | 50 ScopedJavaLocalRef<jbyteArray> j_seed_data = |
53 Java_VariationsSeedBridge_getVariationsFirstRunSeedData( | 51 Java_VariationsSeedBridge_getVariationsFirstRunSeedData(env); |
54 env, GetApplicationContext()); | |
55 ScopedJavaLocalRef<jstring> j_seed_signature = | 52 ScopedJavaLocalRef<jstring> j_seed_signature = |
56 Java_VariationsSeedBridge_getVariationsFirstRunSeedSignature( | 53 Java_VariationsSeedBridge_getVariationsFirstRunSeedSignature(env); |
57 env, GetApplicationContext()); | |
58 ScopedJavaLocalRef<jstring> j_seed_country = | 54 ScopedJavaLocalRef<jstring> j_seed_country = |
59 Java_VariationsSeedBridge_getVariationsFirstRunSeedCountry( | 55 Java_VariationsSeedBridge_getVariationsFirstRunSeedCountry(env); |
60 env, GetApplicationContext()); | |
61 ScopedJavaLocalRef<jstring> j_response_date = | 56 ScopedJavaLocalRef<jstring> j_response_date = |
62 Java_VariationsSeedBridge_getVariationsFirstRunSeedDate( | 57 Java_VariationsSeedBridge_getVariationsFirstRunSeedDate(env); |
63 env, GetApplicationContext()); | |
64 jboolean j_is_gzip_compressed = | 58 jboolean j_is_gzip_compressed = |
65 Java_VariationsSeedBridge_getVariationsFirstRunSeedIsGzipCompressed( | 59 Java_VariationsSeedBridge_getVariationsFirstRunSeedIsGzipCompressed(env); |
66 env, GetApplicationContext()); | |
67 *seed_data = JavaByteArrayToString(env, j_seed_data.obj()); | 60 *seed_data = JavaByteArrayToString(env, j_seed_data.obj()); |
68 *seed_signature = ConvertJavaStringToUTF8(j_seed_signature); | 61 *seed_signature = ConvertJavaStringToUTF8(j_seed_signature); |
69 *seed_country = ConvertJavaStringToUTF8(j_seed_country); | 62 *seed_country = ConvertJavaStringToUTF8(j_seed_country); |
70 *response_date = ConvertJavaStringToUTF8(j_response_date); | 63 *response_date = ConvertJavaStringToUTF8(j_response_date); |
71 *is_gzip_compressed = static_cast<bool>(j_is_gzip_compressed); | 64 *is_gzip_compressed = static_cast<bool>(j_is_gzip_compressed); |
72 } | 65 } |
73 | 66 |
74 void ClearJavaFirstRunPrefs() { | 67 void ClearJavaFirstRunPrefs() { |
75 JNIEnv* env = AttachCurrentThread(); | 68 JNIEnv* env = AttachCurrentThread(); |
76 Java_VariationsSeedBridge_clearFirstRunPrefs(env, GetApplicationContext()); | 69 Java_VariationsSeedBridge_clearFirstRunPrefs(env); |
77 } | 70 } |
78 | 71 |
79 void MarkVariationsSeedAsStored() { | 72 void MarkVariationsSeedAsStored() { |
80 JNIEnv* env = AttachCurrentThread(); | 73 JNIEnv* env = AttachCurrentThread(); |
81 Java_VariationsSeedBridge_markVariationsSeedAsStored(env, | 74 Java_VariationsSeedBridge_markVariationsSeedAsStored(env); |
82 GetApplicationContext()); | |
83 } | 75 } |
84 | 76 |
85 void SetJavaFirstRunPrefsForTesting(const std::string& seed_data, | 77 void SetJavaFirstRunPrefsForTesting(const std::string& seed_data, |
86 const std::string& seed_signature, | 78 const std::string& seed_signature, |
87 const std::string& seed_country, | 79 const std::string& seed_country, |
88 const std::string& response_date, | 80 const std::string& response_date, |
89 bool is_gzip_compressed) { | 81 bool is_gzip_compressed) { |
90 JNIEnv* env = AttachCurrentThread(); | 82 JNIEnv* env = AttachCurrentThread(); |
91 Java_VariationsSeedBridge_setVariationsFirstRunSeed( | 83 Java_VariationsSeedBridge_setVariationsFirstRunSeed( |
92 env, GetApplicationContext(), StringToJavaByteArray(env, seed_data), | 84 env, StringToJavaByteArray(env, seed_data), |
93 ConvertUTF8ToJavaString(env, seed_signature), | 85 ConvertUTF8ToJavaString(env, seed_signature), |
94 ConvertUTF8ToJavaString(env, seed_country), | 86 ConvertUTF8ToJavaString(env, seed_country), |
95 ConvertUTF8ToJavaString(env, response_date), | 87 ConvertUTF8ToJavaString(env, response_date), |
96 static_cast<jboolean>(is_gzip_compressed)); | 88 static_cast<jboolean>(is_gzip_compressed)); |
97 } | 89 } |
98 | 90 |
99 } // namespace android | 91 } // namespace android |
100 } // namespace variations | 92 } // namespace variations |
OLD | NEW |