From deaac6181d2636756fc0398097015acf7ac3a841 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Wed, 13 Dec 2023 09:12:39 +0100 Subject: [PATCH] #403 added support for checking and setting flags (even without caching) from java and moved the incorrect code between patches --- .../Move-navigation-bar-to-bottom.patch | 19 +--------- build/patches/bromite-build-utils.patch | 35 +++++++++++++++---- 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index b71f0fc8..fd86be88 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -54,7 +54,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../BrowserControlsMarginSupplier.java | 5 ++ .../BrowserControlsStateProvider.java | 6 ++ .../flags/android/chrome_feature_list.cc | 2 + - .../chrome/browser/flags/CachedFlag.java | 6 ++ .../browser/flags/ChromeFeatureList.java | 5 ++ chrome/browser/prefs/browser_prefs.cc | 2 +- .../chrome/browser/ui/appmenu/AppMenu.java | 40 ++++++++-- @@ -84,7 +83,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../AccessibilitySettingsDelegate.java | 6 ++ .../render_widget_host_view_android.cc | 3 + .../Move-navigation-bar-to-bottom.inc | 12 +++ - 71 files changed, 854 insertions(+), 73 deletions(-) + 70 files changed, 848 insertions(+), 73 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc diff --git a/cc/base/features.cc b/cc/base/features.cc @@ -1706,22 +1705,6 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kNotificationPermissionVariant, &kNotificationPermissionBottomSheet, &kOfflineIndicatorV2, -diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFlag.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFlag.java ---- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFlag.java -+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFlag.java -@@ -132,6 +132,12 @@ public class CachedFlag extends Flag { - } - } - -+ public void setValueReturnedOverride(@Nullable Boolean value) { -+ synchronized (ValuesReturned.sBoolValues) { -+ ValuesReturned.sBoolValues.put(getSharedPreferenceKey(), value); -+ } -+ } -+ - /** - * Caches the value of the feature from {@link ChromeFeatureList} to SharedPrefs. - */ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java diff --git a/build/patches/bromite-build-utils.patch b/build/patches/bromite-build-utils.patch index e1e76181..22b04223 100644 --- a/build/patches/bromite-build-utils.patch +++ b/build/patches/bromite-build-utils.patch @@ -14,12 +14,12 @@ Subject: bromite build utils build/config/android/rules.gni | 6 +- .../ChromeAccessibilitySettingsDelegate.java | 5 + chrome/browser/flags/BUILD.gn | 10 +- - .../flags/android/cromite_native_utils.cc | 27 ++++++ + .../flags/android/cromite_native_utils.cc | 41 ++++++++ .../flags/android/cromite_native_utils.h | 14 +++ - .../browser/flags/CromiteNativeUtils.java | 32 +++++++ + .../browser/flags/CromiteNativeUtils.java | 41 ++++++++ tools/grit/grit/grd_reader.py | 27 +++++- tools/grit/preprocess_if_expr.py | 32 ++++++- - 16 files changed, 415 insertions(+), 16 deletions(-) + 16 files changed, 438 insertions(+), 16 deletions(-) create mode 100644 build/bromite/bromite_utils.gni create mode 100644 build/bromite/gyp/cpp_bromite_include.py create mode 100644 build/bromite/gyp/cpp_bromite_include.pydeps @@ -486,7 +486,7 @@ diff --git a/chrome/browser/flags/android/cromite_native_utils.cc b/chrome/brows new file mode 100755 --- /dev/null +++ b/chrome/browser/flags/android/cromite_native_utils.cc -@@ -0,0 +1,27 @@ +@@ -0,0 +1,41 @@ +#include "chrome/browser/flags/android/cromite_native_utils.h" + +#include "chrome/browser/browser_process.h" @@ -514,6 +514,20 @@ new file mode 100755 + flags_storage.SetFlags(entries); + flags_storage.CommitPendingWrites(); +} ++ ++static jboolean JNI_CromiteNativeUtils_IsFlagEnabled(JNIEnv* env, ++ const JavaParamRef& featureName) { ++ auto internal_name = base::android::ConvertJavaStringToUTF8(env, featureName); ++ const std::string enabled_entry = internal_name + "@1"; ++ ++ flags_ui::PrefServiceFlagsStorage flags_storage( ++ g_browser_process->local_state()); ++ std::set entries = flags_storage.GetFlags(); ++ if (entries.count(enabled_entry)) ++ return true; ++ ++ return false; ++} diff --git a/chrome/browser/flags/android/cromite_native_utils.h b/chrome/browser/flags/android/cromite_native_utils.h new file mode 100755 --- /dev/null @@ -537,7 +551,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f new file mode 100755 --- /dev/null +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java -@@ -0,0 +1,32 @@ +@@ -0,0 +1,41 @@ +package org.chromium.chrome.browser.flags; + +import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -555,8 +569,12 @@ new file mode 100755 + * @param featureName the feature name from ChromeFeatureList. + * @param flagName the flag name name from about_flags.cc. + */ -+ public static void setFlagEnabled(String featureName, String flagName, Boolean newValue) { ++ public static void setFlagEnabled(String flagName, Boolean newValue) { + CromiteNativeUtilsJni.get().setEnabled(flagName, newValue); ++ } ++ ++ public static void setFlagEnabled(String featureName, String flagName, Boolean newValue) { ++ setFlagEnabled(flagName, newValue); + + CachedFlag cachedFlag = ChromeFeatureList.sAllCachedFlags.get(featureName); + String preferenceName = cachedFlag.getSharedPreferenceKey(); @@ -565,9 +583,14 @@ new file mode 100755 + cachedFlag.setValueReturnedOverride(newValue); + } + ++ public static boolean isFlagEnabled(String featureName) { ++ return CromiteNativeUtilsJni.get().isFlagEnabled(featureName); ++ } ++ + @NativeMethods + interface Natives { + void setEnabled(String featureName, boolean newValue); ++ boolean isFlagEnabled(String featureName); + } +} diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py