Files
brave-core/browser/android/brave_feature_util.cc
T
Artem Samoilenko 79cb1bbb57 [cr145][Android] Replace JavaParamRef -> JavaRef
Chromium changes:
https://chromium.googlesource.com/chromium/src/+/0d6ec7e0f328e9ddd6f5174f61676ff85c777af6

commit 0d6ec7e0f328e9ddd6f5174f61676ff85c777af6
Author: Andrew Grieve <agrieve@chromium.org>
Date:   Tue Dec 2 12:37:02 2025 -0800

    Android: Replace JavaParamRef -> JavaRef (part 5)

    JavaParamRef used to be different, but now is an alias for JavaRef.

    Bug: 40173007
    Change-Id: I9bfa2fcdd012fc90859886ee2e747cb360733421
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7217772
    Commit-Queue: Andrew Grieve <agrieve@chromium.org>
    Owners-Override: Andrew Grieve <agrieve@chromium.org>
    Reviewed-by: Martin Kong <martinkong@google.com>
    Cr-Commit-Position: refs/heads/main@{#1553033}
2026-01-29 13:40:24 -05:00

57 lines
1.8 KiB
C++

/* Copyright (c) 2020 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
#include <string>
#include "base/android/jni_string.h"
#include "base/check.h"
#include "base/feature_list.h"
#include "base/strings/string_number_conversions.h"
#include "chrome/android/chrome_jni_headers/BraveFeatureUtil_jni.h"
#include "chrome/browser/about_flags.h"
#include "chrome/browser/browser_process.h"
#include "components/webui/flags/feature_entry.h"
#include "components/webui/flags/pref_service_flags_storage.h"
namespace chrome {
namespace android {
int GetNumberOfOptions(const std::string& internal_name) {
DCHECK(about_flags::GetCurrentFlagsState());
if (!about_flags::GetCurrentFlagsState()) {
return 0;
}
const flags_ui::FeatureEntry* entry =
about_flags::GetCurrentFlagsState()->FindFeatureEntryByName(
internal_name);
DCHECK(entry);
if (!entry) {
return 0;
}
return entry->NumOptions();
}
static void JNI_BraveFeatureUtil_EnableFeature(
JNIEnv* env,
const base::android::JavaRef<jstring>& featureName,
jboolean enabled,
jboolean fallback_to_default) {
std::string feature_name =
base::android::ConvertJavaStringToUTF8(env, featureName);
std::string disabled_value =
fallback_to_default
? "0"
: base::NumberToString(GetNumberOfOptions(feature_name) - 1);
enabled ? feature_name += "@1" : feature_name += "@" + disabled_value;
flags_ui::PrefServiceFlagsStorage flags_storage(
g_browser_process->local_state());
about_flags::SetFeatureEntryEnabled(&flags_storage, feature_name, true);
}
} // namespace android
} // namespace chrome
DEFINE_JNI(BraveFeatureUtil)