naiveproxy/base/android/unguessable_token_android.cc

42 lines
1.2 KiB
C++
Raw Normal View History

2018-12-10 05:59:24 +03:00
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/android/unguessable_token_android.h"
#include "jni/UnguessableToken_jni.h"
namespace base {
namespace android {
ScopedJavaLocalRef<jobject> UnguessableTokenAndroid::Create(
JNIEnv* env,
const base::UnguessableToken& token) {
const uint64_t high = token.GetHighForSerialization();
const uint64_t low = token.GetLowForSerialization();
DCHECK(high);
DCHECK(low);
return Java_UnguessableToken_create(env, high, low);
}
base::UnguessableToken UnguessableTokenAndroid::FromJavaUnguessableToken(
JNIEnv* env,
const JavaRef<jobject>& token) {
const uint64_t high =
Java_UnguessableToken_getHighForSerialization(env, token);
const uint64_t low = Java_UnguessableToken_getLowForSerialization(env, token);
DCHECK(high);
DCHECK(low);
return base::UnguessableToken::Deserialize(high, low);
}
ScopedJavaLocalRef<jobject>
UnguessableTokenAndroid::ParcelAndUnparcelForTesting(
JNIEnv* env,
const JavaRef<jobject>& token) {
return Java_UnguessableToken_parcelAndUnparcelForTesting(env, token);
}
} // namespace android
} // namespace base