#608 Add support to cached flags
This commit is contained in:
@@ -25,9 +25,13 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
.../browser/settings/SettingsActivity.java | 36 +++++
|
||||
chrome/browser/about_flags.cc | 7 +
|
||||
chrome/browser/browser_features.cc | 1 +
|
||||
chrome/browser/flags/BUILD.gn | 12 ++
|
||||
.../flags/android/chrome_feature_list.cc | 1 +
|
||||
.../flags/android/chrome_feature_list.h | 1 +
|
||||
.../chrome/browser/flags/CachedFlag.java | 6 +
|
||||
.../browser/flags/ChromeFeatureList.java | 13 +-
|
||||
.../flags/cromite/include_all_directory.java | 1 +
|
||||
.../java_template/CromiteCachedFlag.java.tmpl | 47 ++++++
|
||||
chrome/browser/settings/BUILD.gn | 1 +
|
||||
.../settings/ChromeBaseSettingsFragment.java | 47 ++++++
|
||||
.../strings/android_chrome_strings.grd | 1 +
|
||||
@@ -81,7 +85,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
services/network/public/cpp/features.h | 1 +
|
||||
third_party/blink/common/features.cc | 1 +
|
||||
third_party/blink/public/common/features.h | 1 +
|
||||
67 files changed, 659 insertions(+), 17 deletions(-)
|
||||
71 files changed, 731 insertions(+), 18 deletions(-)
|
||||
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java
|
||||
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl
|
||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/placeholder.txt
|
||||
create mode 100755 cromite_flags/BUILD.gn
|
||||
create mode 100755 cromite_flags/chrome/browser/about_flags_cc/placeholder.txt
|
||||
@@ -523,6 +529,42 @@ diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_feature
|
||||
|
||||
+#include "cromite_flags/chrome_browser_browser_features_cc.inc"
|
||||
} // namespace features
|
||||
diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
|
||||
--- a/chrome/browser/flags/BUILD.gn
|
||||
+++ b/chrome/browser/flags/BUILD.gn
|
||||
@@ -26,7 +26,11 @@ android_library("java") {
|
||||
"android/java/src/org/chromium/chrome/browser/flags/ValuesReturned.java",
|
||||
"android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java",
|
||||
]
|
||||
+ sources += [
|
||||
+ "android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java",
|
||||
+ ]
|
||||
deps = [
|
||||
+ ":java_cromite_cached_flags",
|
||||
"//base:base_java",
|
||||
"//build:chromeos_buildflags",
|
||||
"//build/android:build_java",
|
||||
@@ -37,12 +41,20 @@ android_library("java") {
|
||||
"//third_party/jni_zero:jni_zero_java",
|
||||
]
|
||||
srcjar_deps = [
|
||||
+ ":java_cromite_cached_flags",
|
||||
":chrome_android_java_switches_srcjar",
|
||||
":chrome_browser_flags_enums_srcjar",
|
||||
":jni_headers",
|
||||
]
|
||||
}
|
||||
|
||||
+java_bromite_impl("java_cromite_cached_flags") {
|
||||
+ inputs = [ "android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java" ]
|
||||
+ namespace = "org.chromium.chrome.browser.flags.cromite"
|
||||
+ template = "android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl"
|
||||
+ static_classes = true
|
||||
+}
|
||||
+
|
||||
generate_jni("jni_headers") {
|
||||
sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ]
|
||||
sources += [
|
||||
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
--- a/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
|
||||
@@ -560,6 +602,101 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
|
||||
/**
|
||||
* Create a Map of feature names -> {@link CachedFlag} from multiple lists of CachedFlags.
|
||||
*/
|
||||
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
|
||||
@@ -7,6 +7,10 @@ package org.chromium.chrome.browser.flags;
|
||||
import org.chromium.base.FeatureMap;
|
||||
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
|
||||
+import org.chromium.chrome.browser.flags.cromite.CromiteCachedFlagImplBase;
|
||||
+import java.util.Arrays;
|
||||
+import java.util.stream.Collectors;
|
||||
+
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -673,7 +677,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final CachedFlag sUseLibunwindstackNativeUnwinderAndroid =
|
||||
new CachedFlag(USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID, true);
|
||||
|
||||
- public static final List<CachedFlag> sFlagsCachedFullBrowser =
|
||||
+ public static final List<CachedFlag> sFlagsCachedFullBrowserChromium =
|
||||
List.of(
|
||||
sAllowUserCertificates,
|
||||
sAndroidAppIntegration,
|
||||
@@ -757,6 +761,13 @@ public abstract class ChromeFeatureList {
|
||||
sShowAlwaysContextMenuOnLinks,
|
||||
sUseLibunwindstackNativeUnwinderAndroid);
|
||||
|
||||
+ private static <T> List<T> concatenateLists(List<T>... collections) {
|
||||
+ return Arrays.stream(collections).flatMap(x -> x.stream()).collect(Collectors.toList());
|
||||
+ }
|
||||
+
|
||||
+ public static final List<CachedFlag> sFlagsCachedFullBrowser =
|
||||
+ concatenateLists(CromiteCachedFlagImplBase.getList(), sFlagsCachedFullBrowserChromium);
|
||||
+
|
||||
public static final List<CachedFlag> sFlagsCachedInMinimalBrowser =
|
||||
List.of(sExperimentsForAgsa);
|
||||
|
||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java
|
||||
@@ -0,0 +1 @@
|
||||
+this file is intentionally empty
|
||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl
|
||||
@@ -0,0 +1,47 @@
|
||||
+/*
|
||||
+ This file is part of Cromite.
|
||||
+
|
||||
+ Cromite is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ Cromite is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Cromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+
|
||||
+*/
|
||||
+
|
||||
+{DESCRIPTION}
|
||||
+
|
||||
+package org.chromium.chrome.browser.flags.cromite;
|
||||
+
|
||||
+import java.util.ArrayList;
|
||||
+import java.util.List;
|
||||
+
|
||||
+import org.chromium.chrome.browser.flags.CachedFlag;
|
||||
+
|
||||
+{IMPORT_CLAUSE}
|
||||
+
|
||||
+public class CromiteCachedFlagImplBase {{
|
||||
+
|
||||
+ static protected final ArrayList<CachedFlag> mItemList;
|
||||
+
|
||||
+ private static void add(CachedFlag flag) {{
|
||||
+ mItemList.add(flag);
|
||||
+ }}
|
||||
+
|
||||
+ public static List<CachedFlag> getList() {{
|
||||
+ return mItemList;
|
||||
+ }}
|
||||
+
|
||||
+ static {{
|
||||
+ mItemList = new ArrayList<CachedFlag>();
|
||||
+{ADD_CLAUSE}
|
||||
+ }}
|
||||
+
|
||||
+}}
|
||||
diff --git a/chrome/browser/settings/BUILD.gn b/chrome/browser/settings/BUILD.gn
|
||||
--- a/chrome/browser/settings/BUILD.gn
|
||||
+++ b/chrome/browser/settings/BUILD.gn
|
||||
@@ -615,7 +752,7 @@ diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browse
|
||||
+ Preference pref = prefScreen.getPreference(i);
|
||||
+ if (pref instanceof ChromeSwitchPreference) {
|
||||
+ ChromeSwitchPreference switchPref = (ChromeSwitchPreference)pref;
|
||||
+ String featureName = switchPref.GetFeatureName();
|
||||
+ String featureName = switchPref.getFeatureName();
|
||||
+ if (featureName == null)
|
||||
+ continue;
|
||||
+
|
||||
@@ -624,7 +761,7 @@ diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browse
|
||||
+
|
||||
+ switchPref.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||
+ CromiteNativeUtils.setFlagEnabled(featureName, (boolean)newValue);
|
||||
+ if (switchPref.NeedRestart())
|
||||
+ if (switchPref.needRestart())
|
||||
+ mRequireRestartDelegate.RequireRestart();
|
||||
+ return true;
|
||||
+ });
|
||||
@@ -719,11 +856,11 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
|
||||
+ a.recycle();
|
||||
+ }
|
||||
+
|
||||
+ public String GetFeatureName() {
|
||||
+ public String getFeatureName() {
|
||||
+ return mFeatureName;
|
||||
+ }
|
||||
+
|
||||
+ public boolean NeedRestart() {
|
||||
+ public boolean needRestart() {
|
||||
+ return mNeedRestart;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,23 +7,34 @@ Added a setting for the option
|
||||
need: Add-cromite-flags-support.patch
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
.../tasks/tab_management/TabUiFeatureUtilities.java | 2 +-
|
||||
chrome/android/java/res/xml/privacy_preferences.xml | 7 +++++++
|
||||
.../Use-list-mode-for-tab-switcher.grdp | 9 +++++++++
|
||||
.../chrome_feature_list_cc/tab-switcher-list-mode.inc | 3 +++
|
||||
4 files changed, 20 insertions(+), 1 deletion(-)
|
||||
.../tab_management/TabUiFeatureUtilities.java | 4 +--
|
||||
.../java/res/xml/privacy_preferences.xml | 7 +++++
|
||||
.../flags/cromite/sTabSwitcherListMode.java | 31 +++++++++++++++++++
|
||||
.../Use-list-mode-for-tab-switcher.grdp | 9 ++++++
|
||||
.../tab-switcher-list-mode.inc | 3 ++
|
||||
5 files changed, 52 insertions(+), 2 deletions(-)
|
||||
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sTabSwitcherListMode.java
|
||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Use-list-mode-for-tab-switcher.grdp
|
||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/tab-switcher-list-mode.inc
|
||||
|
||||
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java
|
||||
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java
|
||||
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java
|
||||
@@ -116,7 +116,7 @@ public class TabUiFeatureUtilities {
|
||||
@@ -15,6 +15,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
import org.chromium.chrome.browser.flags.IntCachedFieldTrialParameter;
|
||||
import org.chromium.chrome.browser.flags.MutableFlagWithSafeDefault;
|
||||
import org.chromium.ui.base.DeviceFormFactor;
|
||||
+import org.chromium.chrome.browser.flags.cromite.sTabSwitcherListMode;
|
||||
|
||||
/**
|
||||
* A class to handle the state of flags for tab_management.
|
||||
@@ -115,8 +116,7 @@ public class TabUiFeatureUtilities {
|
||||
* @param context The activity context.
|
||||
*/
|
||||
public static boolean shouldUseListMode(Context context) {
|
||||
// Low-end forces list mode.
|
||||
- // Low-end forces list mode.
|
||||
- return SysUtils.isLowEndDevice();
|
||||
+ return ChromeFeatureList.isEnabled("TabSwitcherListMode");
|
||||
+ return sTabSwitcherListMode.getInstance().isEnabled();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -44,6 +55,42 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
||||
<PreferenceCategory
|
||||
android:key="security_section"
|
||||
android:title="@string/security_section_title" />
|
||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sTabSwitcherListMode.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sTabSwitcherListMode.java
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sTabSwitcherListMode.java
|
||||
@@ -0,0 +1,31 @@
|
||||
+/*
|
||||
+ This file is part of Cromite.
|
||||
+
|
||||
+ Cromite is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ Cromite is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Cromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+package org.chromium.chrome.browser.flags.cromite;
|
||||
+
|
||||
+import org.chromium.chrome.browser.flags.CachedFlag;
|
||||
+
|
||||
+public class sTabSwitcherListMode {
|
||||
+ private static final CachedFlag sInstance =
|
||||
+ new CachedFlag("TabSwitcherListMode", false);
|
||||
+
|
||||
+ private sTabSwitcherListMode() {}
|
||||
+
|
||||
+ public static CachedFlag getInstance() {
|
||||
+ return sInstance;
|
||||
+ }
|
||||
+}
|
||||
diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Use-list-mode-for-tab-switcher.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Use-list-mode-for-tab-switcher.grdp
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
|
||||
@@ -25,7 +25,7 @@ Require: bromite-build-utils.patch
|
||||
.../views/page_info/page_info_view_factory.cc | 13 +
|
||||
.../settings_localized_strings_provider.cc | 39 +++
|
||||
.../ui/webui/settings/site_settings_helper.cc | 34 +-
|
||||
.../browser_ui/site_settings/android/BUILD.gn | 16 +
|
||||
.../browser_ui/site_settings/android/BUILD.gn | 18 +
|
||||
.../site_settings/AllSiteSettings.java | 5 +-
|
||||
.../BromiteCustomContentSetting.java | 139 ++++++++
|
||||
.../BromiteCustomContentSettingImpl.java | 307 ++++++++++++++++++
|
||||
@@ -72,7 +72,7 @@ Require: bromite-build-utils.patch
|
||||
.../platform/web_content_settings_client.h | 5 +
|
||||
.../execution_context/execution_context.cc | 16 +
|
||||
.../execution_context/execution_context.h | 5 +
|
||||
61 files changed, 1193 insertions(+), 44 deletions(-)
|
||||
61 files changed, 1195 insertions(+), 44 deletions(-)
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomTriStateSiteSettingsPreferenceImpl.java
|
||||
@@ -587,7 +587,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
|
||||
diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn
|
||||
--- a/components/browser_ui/site_settings/android/BUILD.gn
|
||||
+++ b/components/browser_ui/site_settings/android/BUILD.gn
|
||||
@@ -148,6 +148,21 @@ android_library("java") {
|
||||
@@ -148,6 +148,23 @@ android_library("java") {
|
||||
":site_settings_jni_headers",
|
||||
"//components/content_settings/android:java_pref_names_srcjar",
|
||||
]
|
||||
@@ -605,11 +605,13 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b
|
||||
+
|
||||
+java_bromite_impl("java_bromite_content_settings") {
|
||||
+ inputs = [ "java/src/org/chromium/components/browser_ui/site_settings/impl/include_all_directory.java" ]
|
||||
+ namespace = "org.chromium.components.browser_ui.site_settings.impl"
|
||||
+ template = "java/src/org/chromium/components/browser_ui/site_settings/impl/java_template/BromiteCustomContentSettingImplBase.java.tmpl"
|
||||
+ static_classes = false
|
||||
}
|
||||
|
||||
android_library("javatests") {
|
||||
@@ -193,6 +208,7 @@ robolectric_library("junit") {
|
||||
@@ -193,6 +210,7 @@ robolectric_library("junit") {
|
||||
}
|
||||
|
||||
android_resources("java_resources") {
|
||||
|
||||
@@ -3,23 +3,23 @@ Date: Fri, 9 Jun 2023 15:11:46 +0000
|
||||
Subject: bromite build utils
|
||||
|
||||
---
|
||||
build/android/gyp/java_cpp_enum.py | 36 +++++--
|
||||
build/android/gyp/util/build_utils.py | 25 ++++-
|
||||
build/bromite/bromite_utils.gni | 69 ++++++++++++++
|
||||
build/bromite/gyp/cpp_bromite_include.py | 35 +++++++
|
||||
build/bromite/gyp/cpp_bromite_include.pydeps | 9 ++
|
||||
build/bromite/gyp/java_bromite_impl.py | 94 +++++++++++++++++++
|
||||
build/bromite/gyp/java_bromite_impl.pydeps | 9 ++
|
||||
build/config/BUILDCONFIG.gn | 1 +
|
||||
build/config/android/rules.gni | 6 +-
|
||||
.../ChromeAccessibilitySettingsDelegate.java | 5 +
|
||||
chrome/browser/flags/BUILD.gn | 10 +-
|
||||
.../flags/android/cromite_native_utils.cc | 41 ++++++++
|
||||
.../flags/android/cromite_native_utils.h | 14 +++
|
||||
.../browser/flags/CromiteNativeUtils.java | 41 ++++++++
|
||||
tools/grit/grit/grd_reader.py | 27 +++++-
|
||||
tools/grit/preprocess_if_expr.py | 32 ++++++-
|
||||
16 files changed, 438 insertions(+), 16 deletions(-)
|
||||
build/android/gyp/java_cpp_enum.py | 36 +++++-
|
||||
build/android/gyp/util/build_utils.py | 25 +++-
|
||||
build/bromite/bromite_utils.gni | 79 +++++++++++++
|
||||
build/bromite/gyp/cpp_bromite_include.py | 35 ++++++
|
||||
build/bromite/gyp/cpp_bromite_include.pydeps | 9 ++
|
||||
build/bromite/gyp/java_bromite_impl.py | 108 ++++++++++++++++++
|
||||
build/bromite/gyp/java_bromite_impl.pydeps | 9 ++
|
||||
build/config/BUILDCONFIG.gn | 1 +
|
||||
build/config/android/rules.gni | 6 +-
|
||||
.../ChromeAccessibilitySettingsDelegate.java | 5 +
|
||||
chrome/browser/flags/BUILD.gn | 10 +-
|
||||
.../flags/android/cromite_native_utils.cc | 41 +++++++
|
||||
.../flags/android/cromite_native_utils.h | 14 +++
|
||||
.../browser/flags/CromiteNativeUtils.java | 46 ++++++++
|
||||
tools/grit/grit/grd_reader.py | 27 ++++-
|
||||
tools/grit/preprocess_if_expr.py | 32 +++++-
|
||||
16 files changed, 467 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
|
||||
@@ -162,7 +162,7 @@ diff --git a/build/bromite/bromite_utils.gni b/build/bromite/bromite_utils.gni
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/build/bromite/bromite_utils.gni
|
||||
@@ -0,0 +1,69 @@
|
||||
@@ -0,0 +1,79 @@
|
||||
+import("//build/config/python.gni")
|
||||
+
|
||||
+# generates the file specified in ouput_file containing
|
||||
@@ -215,18 +215,28 @@ new file mode 100644
|
||||
+ TESTONLY_AND_VISIBILITY + [
|
||||
+ "deps",
|
||||
+ "inputs",
|
||||
+ "namespace",
|
||||
+ "static_classes",
|
||||
+ ])
|
||||
+ script = "//build/bromite/gyp/java_bromite_impl.py"
|
||||
+ namespace = ""
|
||||
+ static_classes = false
|
||||
+
|
||||
+ _srcjar_path = "${target_gen_dir}/${target_name}.srcjar"
|
||||
+ _rebased_srcjar_path = rebase_path(_srcjar_path, root_build_dir)
|
||||
+ _rebased_directories = rebase_path(invoker.inputs, root_build_dir)
|
||||
+ _rebased_template = rebase_path(invoker.template, root_build_dir)
|
||||
+ _namespace = invoker.namespace
|
||||
+ _static_classes = invoker.static_classes
|
||||
+
|
||||
+ args = [
|
||||
+ "--srcjar=$_rebased_srcjar_path",
|
||||
+ "--template=$_rebased_template",
|
||||
+ "--namespace=$_namespace",
|
||||
+ ]
|
||||
+ if (_static_classes) {
|
||||
+ args += [ "--static_classes", ]
|
||||
+ }
|
||||
+ args += _rebased_directories
|
||||
+
|
||||
+ outputs = [ _srcjar_path ]
|
||||
@@ -290,7 +300,7 @@ diff --git a/build/bromite/gyp/java_bromite_impl.py b/build/bromite/gyp/java_bro
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/build/bromite/gyp/java_bromite_impl.py
|
||||
@@ -0,0 +1,94 @@
|
||||
@@ -0,0 +1,108 @@
|
||||
+#!/usr/bin/env python3
|
||||
+
|
||||
+import argparse
|
||||
@@ -307,7 +317,8 @@ new file mode 100644
|
||||
+import action_helpers # build_utils adds //build to sys.path.
|
||||
+import zip_helpers
|
||||
+
|
||||
+def _GenerateOutput(template, source_paths, template_path, strings):
|
||||
+def _GenerateOutput(template, source_paths, template_path, strings,
|
||||
+ namespace, static_classes):
|
||||
+ description_template = """
|
||||
+// This following string constants were inserted by
|
||||
+// {SCRIPT_NAME}
|
||||
@@ -325,8 +336,13 @@ new file mode 100644
|
||||
+ description = description_template.format(**values)
|
||||
+
|
||||
+ import_clause = '\n'.join(
|
||||
+ ['import org.chromium.components.browser_ui.site_settings.impl.' + f + ';' for f in strings])
|
||||
+ add_clause = '\n\t'.join(['\tadd(new ' + f + '());' for f in strings])
|
||||
+ ['import ' + namespace + '.' + f + ';' for f in strings])
|
||||
+ print(namespace)
|
||||
+ print(static_classes)
|
||||
+ if static_classes:
|
||||
+ add_clause = '\n\t'.join(['\tadd(' + f + '.getInstance());' for f in strings])
|
||||
+ else:
|
||||
+ add_clause = '\n\t'.join(['\tadd(new ' + f + '());' for f in strings])
|
||||
+
|
||||
+ values = {
|
||||
+ 'DESCRIPTION': description,
|
||||
@@ -336,7 +352,7 @@ new file mode 100644
|
||||
+ return template.format(**values)
|
||||
+
|
||||
+
|
||||
+def _Generate(source_paths, template_path):
|
||||
+def _Generate(source_paths, template_path, namespace, static_classes):
|
||||
+ with open(template_path) as f:
|
||||
+ lines = f.readlines()
|
||||
+
|
||||
@@ -356,7 +372,8 @@ new file mode 100644
|
||||
+ if not f.endswith('include_all_directory.java') and
|
||||
+ not f.endswith('.java.tmpl') ]
|
||||
+
|
||||
+ output = _GenerateOutput(template, source_paths, template_path, strings)
|
||||
+ output = _GenerateOutput(template, source_paths, template_path, strings,
|
||||
+ namespace, static_classes)
|
||||
+
|
||||
+ return output, output_path
|
||||
+
|
||||
@@ -374,12 +391,19 @@ new file mode 100644
|
||||
+ 'class.')
|
||||
+
|
||||
+ parser.add_argument(
|
||||
+ '--namespace', required=True, help='Output namespace')
|
||||
+ parser.add_argument(
|
||||
+ '--static_classes', action="store_true",
|
||||
+ default=False,
|
||||
+ help='True to use getInstance() method')
|
||||
+ parser.add_argument(
|
||||
+ 'inputs', nargs='+', help='Input folder(s)', metavar='INPUTFILE')
|
||||
+ args = parser.parse_args(argv)
|
||||
+
|
||||
+ with action_helpers.atomic_output(args.srcjar) as f:
|
||||
+ with zipfile.ZipFile(f, 'w', zipfile.ZIP_STORED) as srcjar:
|
||||
+ data, path = _Generate(args.inputs, args.template)
|
||||
+ data, path = _Generate(args.inputs, args.template,
|
||||
+ args.namespace, args.static_classes)
|
||||
+ zip_helpers.add_to_zip_hermetic(srcjar, path, data=data)
|
||||
+
|
||||
+
|
||||
@@ -551,7 +575,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,41 @@
|
||||
@@ -0,0 +1,46 @@
|
||||
+package org.chromium.chrome.browser.flags;
|
||||
+
|
||||
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
@@ -570,17 +594,22 @@ new file mode 100755
|
||||
+ * @param flagName the flag name name from about_flags.cc.
|
||||
+ */
|
||||
+ public static void setFlagEnabled(String flagName, Boolean newValue) {
|
||||
+ CromiteNativeUtilsJni.get().setEnabled(flagName, newValue);
|
||||
+ CachedFlag cachedFlag = ChromeFeatureList.sAllCachedFlags.get(flagName);
|
||||
+ setFlagEnabled(cachedFlag == null
|
||||
+ ? ""
|
||||
+ : cachedFlag.getFeatureName(), flagName, newValue);
|
||||
+ }
|
||||
+
|
||||
+ public static void setFlagEnabled(String featureName, String flagName, Boolean newValue) {
|
||||
+ setFlagEnabled(flagName, newValue);
|
||||
+ CromiteNativeUtilsJni.get().setEnabled(flagName, newValue);
|
||||
+
|
||||
+ CachedFlag cachedFlag = ChromeFeatureList.sAllCachedFlags.get(featureName);
|
||||
+ String preferenceName = cachedFlag.getSharedPreferenceKey();
|
||||
+ if (!featureName.isEmpty()) {
|
||||
+ CachedFlag cachedFlag = ChromeFeatureList.sAllCachedFlags.get(featureName);
|
||||
+ String preferenceName = cachedFlag.getSharedPreferenceKey();
|
||||
+
|
||||
+ ChromeSharedPreferences.getInstance().writeBoolean(preferenceName, newValue);
|
||||
+ cachedFlag.setValueReturnedOverride(newValue);
|
||||
+ ChromeSharedPreferences.getInstance().writeBoolean(preferenceName, newValue);
|
||||
+ cachedFlag.setValueReturnedOverride(newValue);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ public static boolean isFlagEnabled(String featureName) {
|
||||
|
||||
Reference in New Issue
Block a user