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()21base::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)29static jlong JNI_BaseFeatureMap_GetNativeMap(JNIEnv* env) { 30 return reinterpret_cast<jlong>(GetFeatureMap()); 31 } 32 33 } // namespace base::android 34