1 // Copyright 2014 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 "base/android/field_trial_list.h"
6
7 #include <jni.h>
8
9 #include "base/android/jni_string.h"
10 #include "base/metrics/field_trial.h"
11 #include "jni/FieldTrialList_jni.h"
12
13 using base::android::ConvertJavaStringToUTF8;
14 using base::android::ConvertUTF8ToJavaString;
15 using base::android::JavaParamRef;
16 using base::android::ScopedJavaLocalRef;
17
FindFullName(JNIEnv * env,const JavaParamRef<jclass> & clazz,const JavaParamRef<jstring> & jtrial_name)18 static ScopedJavaLocalRef<jstring> FindFullName(
19 JNIEnv* env,
20 const JavaParamRef<jclass>& clazz,
21 const JavaParamRef<jstring>& jtrial_name) {
22 std::string trial_name(ConvertJavaStringToUTF8(env, jtrial_name));
23 return ConvertUTF8ToJavaString(
24 env, base::FieldTrialList::FindFullName(trial_name));
25 }
26
TrialExists(JNIEnv * env,const JavaParamRef<jclass> & clazz,const JavaParamRef<jstring> & jtrial_name)27 static jboolean TrialExists(JNIEnv* env,
28 const JavaParamRef<jclass>& clazz,
29 const JavaParamRef<jstring>& jtrial_name) {
30 std::string trial_name(ConvertJavaStringToUTF8(env, jtrial_name));
31 return base::FieldTrialList::TrialExists(trial_name);
32 }
33
34 namespace base {
35 namespace android {
36
RegisterFieldTrialList(JNIEnv * env)37 bool RegisterFieldTrialList(JNIEnv* env) {
38 return RegisterNativesImpl(env);
39 }
40
41 } // namespace android
42 } // namespace base
43