blob: 4bdace6ccbf64a5c73bb6e124ac048b5cb963abd [file] [log] [blame]
Nicolas Dossou-Gbeteb6d251832024-08-20 18:14:031// 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 <iterator>
6#include <string>
7
8#include "base/android/feature_map.h"
9#include "base/feature_list.h"
10#include "base/features.h"
11#include "base/no_destructor.h"
12#include "components/search_engines/search_engines_switches.h"
13
14// Must come after all headers that specialize FromJniType() / ToJniType().
15#include "components/search_engines/android/features_jni_headers/SearchEnginesFeatureMap_jni.h"
16
17namespace search_engines {
18
19namespace {
20
21// Array of features exposed through the Java BaseFeatureMap API. Entries in
22// this array refer to features defined in //search_engines features.
23const base::Feature* const kFeaturesExposedToJava[] = {
James Lee068edcb2025-06-30 13:21:4624 &switches::kClaySnackbar};
Nicolas Dossou-Gbeteb6d251832024-08-20 18:14:0325
26// static
27base::android::FeatureMap* GetFeatureMap() {
David Benjaminabf93ed2025-01-29 22:09:0328 static base::NoDestructor<base::android::FeatureMap> kFeatureMap(
29 kFeaturesExposedToJava);
Nicolas Dossou-Gbeteb6d251832024-08-20 18:14:0330 return kFeatureMap.get();
31}
32
33} // namespace
34
35static jlong JNI_SearchEnginesFeatureMap_GetNativeMap(JNIEnv* env) {
36 return reinterpret_cast<jlong>(GetFeatureMap());
37}
38
39} // namespace search_engines