1 // Copyright 2024 The Chromium Authors 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/token_android.h" 6 7 #include "build/robolectric_buildflags.h" 8 9 #if BUILDFLAG(IS_ROBOLECTRIC) 10 #include "base/base_robolectric_jni/TokenBase_jni.h" // nogncheck 11 #include "base/base_robolectric_jni/Token_jni.h" // nogncheck 12 #else 13 #include "base/base_jni/TokenBase_jni.h" 14 #include "base/base_jni/Token_jni.h" 15 #endif 16 17 namespace base::android { 18 Create(JNIEnv * env,const base::Token & token)19ScopedJavaLocalRef<jobject> TokenAndroid::Create(JNIEnv* env, 20 const base::Token& token) { 21 return Java_Token_Constructor(env, static_cast<jlong>(token.high()), 22 static_cast<jlong>(token.low())); 23 } 24 FromJavaToken(JNIEnv * env,const JavaRef<jobject> & j_token)25base::Token TokenAndroid::FromJavaToken(JNIEnv* env, 26 const JavaRef<jobject>& j_token) { 27 const uint64_t high = static_cast<uint64_t>( 28 Java_TokenBase_getHighForSerialization(env, j_token)); 29 const uint64_t low = static_cast<uint64_t>( 30 Java_TokenBase_getLowForSerialization(env, j_token)); 31 return base::Token(high, low); 32 } 33 JNI_Token_CreateRandom(JNIEnv * env)34static base::Token JNI_Token_CreateRandom(JNIEnv* env) { 35 return base::Token::CreateRandom(); 36 } 37 38 } // namespace base::android 39