v118 patches
moved method for changing native flag value from java due to changes in v118
This commit is contained in:
@@ -5,6 +5,7 @@ Subject: Add setting to invert tap and long tap
|
||||
Reverses single tap to long tap in android for accessibility reasons.
|
||||
The feature can be activated from the accessibility settings.
|
||||
|
||||
Need: bromite-build-utils.patch
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
chrome/android/java/res/values/ids.xml | 1 +
|
||||
@@ -46,7 +47,7 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
@@ -126,6 +126,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
@@ -130,6 +130,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
mSnackbarManager.showSnackbar(mSnackbar);
|
||||
}
|
||||
|
||||
@@ -58,7 +59,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
+
|
||||
+ @Override
|
||||
+ public void setEnabled(boolean value) {
|
||||
+ CachedFeatureFlags.setFlagEnabled(ChromeFeatureList.SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS,
|
||||
+ CromiteNativeUtils.setFlagEnabled(ChromeFeatureList.SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS,
|
||||
+ "show-always-context-menu-on-links", value);
|
||||
+ }
|
||||
+ }
|
||||
|
||||
@@ -9,6 +9,7 @@ The bottom bar will also be colored as the navigation bar to make the interface
|
||||
more pleasant and fixes upstream bug 1285311.
|
||||
Support for tablet mode is also included.
|
||||
|
||||
Need: bromite-build-utils.patch
|
||||
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
@@ -25,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../tab_management/TabListCoordinator.java | 81 +++++++++++++++++++
|
||||
.../tab_management/TabListRecyclerView.java | 19 ++++-
|
||||
.../tab_management/TabSwitcherMediator.java | 16 ++++
|
||||
.../ChromeAccessibilitySettingsDelegate.java | 52 ++++++++++++
|
||||
.../ChromeAccessibilitySettingsDelegate.java | 50 ++++++++++++
|
||||
.../chrome/browser/app/ChromeActivity.java | 13 +++
|
||||
.../compositor/CompositorViewHolder.java | 9 +++
|
||||
.../layouts/LayoutManagerChrome.java | 18 ++++-
|
||||
@@ -56,7 +57,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
chrome/browser/flag_descriptions.cc | 4 +
|
||||
chrome/browser/flag_descriptions.h | 3 +
|
||||
.../flags/android/chrome_feature_list.cc | 2 +
|
||||
.../browser/flags/CachedFeatureFlags.java | 18 +++++
|
||||
.../chrome/browser/flags/CachedFlag.java | 6 ++
|
||||
.../browser/flags/ChromeFeatureList.java | 5 ++
|
||||
chrome/browser/prefs/browser_prefs.cc | 2 +-
|
||||
@@ -64,11 +64,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../ui/appmenu/AppMenuHandlerImpl.java | 11 +++
|
||||
.../omnibox/LocationBarCoordinator.java | 6 +-
|
||||
...mniboxSuggestionsDropdownEmbedderImpl.java | 14 +++-
|
||||
.../browser/omnibox/UrlBarCoordinator.java | 10 +++
|
||||
.../browser/omnibox/UrlBarCoordinator.java | 9 +++
|
||||
.../suggestions/AutocompleteCoordinator.java | 16 +++-
|
||||
.../suggestions/AutocompleteMediator.java | 7 +-
|
||||
.../DropdownItemViewInfoListManager.java | 15 +++-
|
||||
.../OmniboxSuggestionsDropdown.java | 31 ++++++-
|
||||
.../OmniboxSuggestionsDropdown.java | 39 ++++++++-
|
||||
.../OmniboxSuggestionsDropdownEmbedder.java | 9 +++
|
||||
.../strings/android_chrome_strings.grd | 6 ++
|
||||
chrome/browser/ui/android/toolbar/BUILD.gn | 1 +
|
||||
@@ -87,7 +87,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../accessibility/AccessibilitySettings.java | 16 ++++
|
||||
.../AccessibilitySettingsDelegate.java | 6 ++
|
||||
.../render_widget_host_view_android.cc | 3 +
|
||||
75 files changed, 884 insertions(+), 63 deletions(-)
|
||||
74 files changed, 871 insertions(+), 63 deletions(-)
|
||||
|
||||
diff --git a/cc/base/features.cc b/cc/base/features.cc
|
||||
--- a/cc/base/features.cc
|
||||
@@ -633,13 +633,11 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
@@ -15,6 +15,14 @@ import org.chromium.components.browser_ui.accessibility.PageZoomUtils;
|
||||
import org.chromium.components.user_prefs.UserPrefs;
|
||||
import org.chromium.content_public.browser.BrowserContextHandle;
|
||||
@@ -21,6 +21,12 @@ import org.chromium.chrome.browser.flags.CromiteNativeUtils;
|
||||
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
|
||||
|
||||
+import android.app.Activity;
|
||||
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
+import org.chromium.chrome.browser.flags.CachedFeatureFlags;
|
||||
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
|
||||
+import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager;
|
||||
+import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
|
||||
@@ -648,7 +646,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
/** The Chrome implementation of AccessibilitySettingsDelegate. */
|
||||
public class ChromeAccessibilitySettingsDelegate implements AccessibilitySettingsDelegate {
|
||||
private static class ReaderForAccessibilityDelegate implements BooleanPreferenceDelegate {
|
||||
@@ -35,6 +43,12 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
@@ -41,6 +47,12 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
}
|
||||
}
|
||||
|
||||
@@ -661,7 +659,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
private final Profile mProfile;
|
||||
|
||||
/**
|
||||
@@ -74,6 +88,44 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
@@ -80,6 +92,44 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
return new ForceTabletUIDelegate();
|
||||
}
|
||||
|
||||
@@ -673,7 +671,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
+
|
||||
+ @Override
|
||||
+ public void setEnabled(boolean value) {
|
||||
+ CachedFeatureFlags.setFlagEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM,
|
||||
+ CromiteNativeUtils.setFlagEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM,
|
||||
+ "move-top-toolbar-to-bottom", value);
|
||||
+ }
|
||||
+ }
|
||||
@@ -1754,41 +1752,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/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
|
||||
@@ -188,6 +188,23 @@ public class CachedFeatureFlags {
|
||||
return value;
|
||||
}
|
||||
|
||||
+ /**
|
||||
+ * Allows the modification of the flag value on the java side.
|
||||
+ * Currently only the feature flag with on / off values is managed.
|
||||
+ *
|
||||
+ * @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) {
|
||||
+ CachedFeatureFlagsJni.get().setEnabled(flagName, newValue);
|
||||
+
|
||||
+ CachedFlag cachedFlag = ChromeFeatureList.sAllCachedFlags.get(featureName);
|
||||
+ String preferenceName = cachedFlag.getSharedPreferenceKey();
|
||||
+
|
||||
+ SharedPreferencesManager.getInstance().writeBoolean(preferenceName, newValue);
|
||||
+ cachedFlag.setValueReturnedOverride(newValue);
|
||||
+ }
|
||||
+
|
||||
@AnyThread
|
||||
static double getConsistentDoubleValue(String preferenceName, double defaultValue) {
|
||||
CachedFlagsSafeMode.getInstance().onFlagChecked();
|
||||
@@ -235,6 +252,7 @@ public class CachedFeatureFlags {
|
||||
|
||||
@NativeMethods
|
||||
interface Natives {
|
||||
+ void setEnabled(String featureName, boolean newValue);
|
||||
void setAdBlockFiltersURL(String url);
|
||||
String getAdBlockFiltersURL();
|
||||
}
|
||||
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
|
||||
@@ -2027,26 +1990,25 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java
|
||||
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java
|
||||
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java
|
||||
@@ -25,6 +25,9 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
|
||||
@@ -25,6 +25,10 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
+import org.chromium.chrome.browser.flags.CachedFeatureFlags;
|
||||
+import android.view.WindowManager;
|
||||
+
|
||||
/**
|
||||
* Coordinates the interactions with the UrlBar text component.
|
||||
*/
|
||||
@@ -234,6 +237,13 @@ public class UrlBarCoordinator implements UrlBarEditingTextStateProvider, UrlFoc
|
||||
@@ -234,6 +238,11 @@ public class UrlBarCoordinator implements UrlBarEditingTextStateProvider, UrlFoc
|
||||
// to show or hide keyboard anyway. This may happen when we schedule keyboard hide, and
|
||||
// receive a second request to hide the keyboard instantly.
|
||||
if (showKeyboard) {
|
||||
+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) {
|
||||
+ // probably due to an android bug, fix the size rather than pan the view.
|
||||
+ // with the pan the bar may not always follow the focus if not at the first input by the user
|
||||
+ setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE, /* delay */ false);
|
||||
+ } else {
|
||||
+ setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN, /* delay */ false);
|
||||
+ mWindowDelegate.setWindowSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
||||
+ }
|
||||
mKeyboardVisibilityDelegate.showKeyboard(mUrlBar);
|
||||
} else {
|
||||
@@ -2179,17 +2141,18 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java
|
||||
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java
|
||||
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java
|
||||
@@ -35,6 +35,9 @@ import org.chromium.chrome.browser.util.KeyNavigationUtil;
|
||||
@@ -35,6 +35,10 @@ import org.chromium.chrome.browser.util.KeyNavigationUtil;
|
||||
import org.chromium.components.browser_ui.styles.ChromeColors;
|
||||
import org.chromium.ui.base.ViewUtils;
|
||||
|
||||
+import android.graphics.Rect;
|
||||
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
+import org.chromium.chrome.browser.flags.CachedFeatureFlags;
|
||||
+
|
||||
/** A widget for showing a list of omnibox suggestions. */
|
||||
public class OmniboxSuggestionsDropdown extends RecyclerView {
|
||||
/**
|
||||
@@ -188,7 +191,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView {
|
||||
@@ -188,7 +192,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView {
|
||||
* Constructs a new list designed for containing omnibox suggestions.
|
||||
* @param context Context used for contained views.
|
||||
*/
|
||||
@@ -2199,7 +2162,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
super(context, null, android.R.attr.dropDownListViewStyle);
|
||||
setFocusable(true);
|
||||
setFocusableInTouchMode(true);
|
||||
@@ -199,13 +203,25 @@ public class OmniboxSuggestionsDropdown extends RecyclerView {
|
||||
@@ -199,13 +204,25 @@ public class OmniboxSuggestionsDropdown extends RecyclerView {
|
||||
setItemAnimator(null);
|
||||
|
||||
mLayoutScrollListener = new SuggestionLayoutScrollListener(context);
|
||||
@@ -2226,7 +2189,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
ViewCompat.setPaddingRelative(this, 0, 0, 0, paddingBottom);
|
||||
|
||||
mStandardBgColor = shouldShowModernizeVisualUpdate
|
||||
@@ -340,8 +356,15 @@ public class OmniboxSuggestionsDropdown extends RecyclerView {
|
||||
@@ -340,8 +357,16 @@ public class OmniboxSuggestionsDropdown extends RecyclerView {
|
||||
try (TraceEvent tracing = TraceEvent.scoped("OmniboxSuggestionsList.Measure");
|
||||
TimingMetric metric = OmniboxMetrics.recordSuggestionListMeasureTime()) {
|
||||
OmniboxAlignment omniboxAlignment = mEmbedder.getCurrentAlignment();
|
||||
@@ -2237,13 +2200,27 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
+ top = 0;
|
||||
+ }
|
||||
+ maybeUpdateLayoutParams(top);
|
||||
+ boolean useAlignmentSpecifiedHeight = false;
|
||||
+ boolean useAlignmentSpecifiedHeight =
|
||||
+ !ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled();
|
||||
+ int availableViewportHeight = useAlignmentSpecifiedHeight
|
||||
+ ? omniboxAlignment.height
|
||||
+ : calculateAvailableViewportHeight() - top;
|
||||
int desiredWidth = omniboxAlignment.width;
|
||||
adjustHorizontalPosition();
|
||||
notifyObserversIfViewportHeightChanged(availableViewportHeight);
|
||||
@@ -353,6 +378,12 @@ public class OmniboxSuggestionsDropdown extends RecyclerView {
|
||||
}
|
||||
}
|
||||
|
||||
+ private int calculateAvailableViewportHeight() {
|
||||
+ Rect mTempRect = new Rect();
|
||||
+ mEmbedder.getWindowDelegate().getWindowVisibleDisplayFrame(mTempRect);
|
||||
+ return mTempRect.height();
|
||||
+ }
|
||||
+
|
||||
private void maybeUpdateLayoutParams(int topMargin) {
|
||||
// Update the layout params to ensure the parent correctly positions the suggestions
|
||||
// under the anchor view.
|
||||
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java
|
||||
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java
|
||||
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java
|
||||
|
||||
@@ -3,23 +3,31 @@ 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 +-
|
||||
tools/grit/grit/grd_reader.py | 27 ++++--
|
||||
tools/grit/preprocess_if_expr.py | 32 ++++++-
|
||||
11 files changed, 329 insertions(+), 14 deletions(-)
|
||||
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 | 6 ++
|
||||
chrome/browser/flags/BUILD.gn | 10 +-
|
||||
.../flags/android/cromite_native_utils.cc | 27 ++++++
|
||||
.../flags/android/cromite_native_utils.h | 14 +++
|
||||
.../browser/flags/CromiteNativeUtils.java | 32 +++++++
|
||||
tools/grit/grit/grd_reader.py | 27 +++++-
|
||||
tools/grit/preprocess_if_expr.py | 32 ++++++-
|
||||
16 files changed, 416 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
|
||||
create mode 100644 build/bromite/gyp/java_bromite_impl.py
|
||||
create mode 100644 build/bromite/gyp/java_bromite_impl.pydeps
|
||||
create mode 100755 chrome/browser/flags/android/cromite_native_utils.cc
|
||||
create mode 100755 chrome/browser/flags/android/cromite_native_utils.h
|
||||
create mode 100755 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java
|
||||
|
||||
diff --git a/build/android/gyp/java_cpp_enum.py b/build/android/gyp/java_cpp_enum.py
|
||||
--- a/build/android/gyp/java_cpp_enum.py
|
||||
@@ -425,6 +433,144 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
|
||||
outputs = [ _srcjar_path ]
|
||||
}
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
@@ -15,6 +15,12 @@ import org.chromium.components.browser_ui.accessibility.PageZoomUtils;
|
||||
import org.chromium.components.user_prefs.UserPrefs;
|
||||
import org.chromium.content_public.browser.BrowserContextHandle;
|
||||
|
||||
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
+import org.chromium.chrome.browser.flags.CachedFeatureFlags;
|
||||
+import org.chromium.chrome.browser.flags.CromiteNativeUtils;
|
||||
+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
+import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
|
||||
+
|
||||
/** The Chrome implementation of AccessibilitySettingsDelegate. */
|
||||
public class ChromeAccessibilitySettingsDelegate implements AccessibilitySettingsDelegate {
|
||||
private static class ReaderForAccessibilityDelegate implements BooleanPreferenceDelegate {
|
||||
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
|
||||
@@ -5,7 +5,8 @@
|
||||
import("//build/config/android/rules.gni")
|
||||
|
||||
android_library("java") {
|
||||
- sources = [
|
||||
+ sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ]
|
||||
+ sources += [
|
||||
"android/java/src/org/chromium/chrome/browser/flags/AllCachedFieldTrialParameters.java",
|
||||
"android/java/src/org/chromium/chrome/browser/flags/BooleanCachedFieldTrialParameter.java",
|
||||
"android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java",
|
||||
@@ -41,7 +42,8 @@ android_library("java") {
|
||||
}
|
||||
|
||||
generate_jni("jni_headers") {
|
||||
- sources = [
|
||||
+ sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ]
|
||||
+ sources += [
|
||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java",
|
||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java",
|
||||
]
|
||||
@@ -49,6 +51,10 @@ generate_jni("jni_headers") {
|
||||
|
||||
static_library("flags_android") {
|
||||
sources = [
|
||||
+ "android/cromite_native_utils.cc",
|
||||
+ "android/cromite_native_utils.h",
|
||||
+ ]
|
||||
+ sources += [
|
||||
"android/chrome_session_state.cc",
|
||||
"android/chrome_session_state.h",
|
||||
]
|
||||
diff --git a/chrome/browser/flags/android/cromite_native_utils.cc b/chrome/browser/flags/android/cromite_native_utils.cc
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
+++ b/chrome/browser/flags/android/cromite_native_utils.cc
|
||||
@@ -0,0 +1,27 @@
|
||||
+#include "chrome/browser/flags/android/cromite_native_utils.h"
|
||||
+
|
||||
+#include "chrome/browser/browser_process.h"
|
||||
+#include "chrome/browser/flags/jni_headers/CromiteNativeUtils_jni.h"
|
||||
+#include "components/flags_ui/pref_service_flags_storage.h"
|
||||
+
|
||||
+#include "base/android/jni_string.h"
|
||||
+
|
||||
+using base::android::JavaParamRef;
|
||||
+
|
||||
+static void JNI_CromiteNativeUtils_SetEnabled(JNIEnv* env,
|
||||
+ const JavaParamRef<jstring>& featureName, jboolean isEnabled) {
|
||||
+ flags_ui::PrefServiceFlagsStorage flags_storage(
|
||||
+ g_browser_process->local_state());
|
||||
+ std::set<std::string> entries = flags_storage.GetFlags();
|
||||
+
|
||||
+ auto internal_name = base::android::ConvertJavaStringToUTF8(env, featureName);
|
||||
+ entries.erase(internal_name);
|
||||
+ entries.erase(internal_name + "@1"); // enabled
|
||||
+ entries.erase(internal_name + "@2"); // disabled
|
||||
+
|
||||
+ if (isEnabled)
|
||||
+ entries.insert(internal_name + "@1");
|
||||
+
|
||||
+ flags_storage.SetFlags(entries);
|
||||
+ flags_storage.CommitPendingWrites();
|
||||
+}
|
||||
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
|
||||
+++ b/chrome/browser/flags/android/cromite_native_utils.h
|
||||
@@ -0,0 +1,14 @@
|
||||
+#ifndef CHROME_BROWSER_FLAGS_ANDROID_CROMITE_NATIVE_UTILS_H_
|
||||
+#define CHROME_BROWSER_FLAGS_ANDROID_CROMITE_NATIVE_UTILS_H_
|
||||
+
|
||||
+#include <jni.h>
|
||||
+
|
||||
+#include "base/feature_list.h"
|
||||
+
|
||||
+namespace chrome {
|
||||
+namespace android {
|
||||
+
|
||||
+} // namespace android
|
||||
+} // namespace chrome
|
||||
+
|
||||
+#endif // CHROME_BROWSER_FLAGS_ANDROID_CROMITE_NATIVE_UTILS_H_
|
||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java
|
||||
@@ -0,0 +1,32 @@
|
||||
+package org.chromium.chrome.browser.flags;
|
||||
+
|
||||
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
+import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
|
||||
+
|
||||
+import org.chromium.base.annotations.CalledByNative;
|
||||
+import org.chromium.base.annotations.NativeMethods;
|
||||
+
|
||||
+public class CromiteNativeUtils {
|
||||
+ /**
|
||||
+ * Allows the modification of the flag value on the java side.
|
||||
+ * Currently only the feature flag with on / off values is managed.
|
||||
+ *
|
||||
+ * @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) {
|
||||
+ CromiteNativeUtilsJni.get().setEnabled(flagName, newValue);
|
||||
+
|
||||
+ CachedFlag cachedFlag = ChromeFeatureList.sAllCachedFlags.get(featureName);
|
||||
+ String preferenceName = cachedFlag.getSharedPreferenceKey();
|
||||
+
|
||||
+ SharedPreferencesManager.getInstance().writeBoolean(preferenceName, newValue);
|
||||
+ cachedFlag.setValueReturnedOverride(newValue);
|
||||
+ }
|
||||
+
|
||||
+ @NativeMethods
|
||||
+ interface Natives {
|
||||
+ void setEnabled(String featureName, boolean newValue);
|
||||
+ }
|
||||
+}
|
||||
diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py
|
||||
--- a/tools/grit/grit/grd_reader.py
|
||||
+++ b/tools/grit/grit/grd_reader.py
|
||||
|
||||
Reference in New Issue
Block a user