#403 added support for checking and setting flags (even without caching) from java

and moved the incorrect code between patches
This commit is contained in:
Carmelo Messina
2023-12-13 09:12:39 +01:00
parent beaf889d59
commit deaac6181d
2 changed files with 30 additions and 24 deletions
@@ -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
+29 -6
View File
@@ -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<jstring>& 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<std::string> 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