• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2023 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/base_features.h"
6 #include "base/android/feature_map.h"
7 #include "base/base_jni/BaseFeatureMap_jni.h"
8 #include "base/no_destructor.h"
9 
10 namespace base::android {
11 
12 namespace {
13 
14 // Array of features exposed through the Java BaseFeatureMap API. Entries in
15 // this array refer to features defined in base_features.h.
16 const base::Feature* const kFeaturesExposedToJava[] = {
17     &features::kBrowserProcessMemoryPurge,
18 };  // namespace
19 
20 // static
GetFeatureMap()21 base::android::FeatureMap* GetFeatureMap() {
22   static base::NoDestructor<base::android::FeatureMap> kFeatureMap(std::vector(
23       std::begin(kFeaturesExposedToJava), std::end(kFeaturesExposedToJava)));
24   return kFeatureMap.get();
25 }
26 
27 }  // namespace
28 
JNI_BaseFeatureMap_GetNativeMap(JNIEnv * env)29 static jlong JNI_BaseFeatureMap_GetNativeMap(JNIEnv* env) {
30   return reinterpret_cast<jlong>(GetFeatureMap());
31 }
32 
33 }  // namespace base::android
34