#include "android_webview/common/aw_cached_flags.h"
#include <string>
#include "android_webview/common/aw_feature_map.h"
#include "base/android/feature_map.h"
#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
#include "base/feature_list.h"
#include "android_webview/common_jni/WebViewCachedFlags_jni.h"
namespace android_webview {
bool CachedFlags::IsEnabled(const base::Feature& feature) {
JNIEnv* env = base::android::AttachCurrentThread();
return Java_WebViewCachedFlags_isFeatureEnabled(env,
std::string(feature.name));
}
bool CachedFlags::IsCachedFeatureOverridden(const base::Feature& feature) {
JNIEnv* env = base::android::AttachCurrentThread();
return Java_WebViewCachedFlags_isFeatureOverridden(env,
std::string(feature.name));
}
static std::optional<bool> JNI_WebViewCachedFlags_GetStateIfOverridden(
JNIEnv* env,
std::string& feature_name) {
base::android::FeatureMap* feature_map = GetFeatureMap();
const base::Feature* feature =
feature_map->FindFeatureExposedToJava(feature_name);
return base::FeatureList::GetStateIfOverridden(*feature);
}
}
DEFINE_JNI(WebViewCachedFlags)