From 852a600f71defbc5e5948ea820327bdf234c6a6a Mon Sep 17 00:00:00 2001 From: samartnik Date: Mon, 9 May 2022 17:41:17 -0400 Subject: [PATCH] [Android] Fixed assert on url bar focus change Chromium change: https://github.com/chromium/chromium/commit/b964b99f01113d8f0107f81cbdea03c98429e874 Add logic to track suggestions list scroll events. This change allows us to learn how frequently our users need to scroll the suggestions list in order to find what they are looking for. Bug: 1291761 --- android/java/apk_for_test.flags | 1 + .../org/chromium/chrome/browser/BytecodeTest.java | 3 +++ .../omnibox/suggestions/BraveAutocompleteMediator.java | 9 +++++++++ .../bytecode/BraveAutocompleteMediatorClassAdapter.java | 3 +++ 4 files changed, 16 insertions(+) diff --git a/android/java/apk_for_test.flags b/android/java/apk_for_test.flags index ce3c1bf706d..e7068254b8c 100644 --- a/android/java/apk_for_test.flags +++ b/android/java/apk_for_test.flags @@ -434,6 +434,7 @@ } -keep class org.chromium.chrome.browser.omnibox.suggestions.AutocompleteMediator { + *** mNativeInitialized; public (...); } diff --git a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java index 85ad2e29b0c..c724902321a 100644 --- a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java +++ b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java @@ -697,6 +697,9 @@ public class BytecodeTest { Assert.assertTrue(fieldExists( "org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings", "mSite", true, Website.class)); + Assert.assertTrue( + fieldExists("org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator", + "mNativeInitialized", true, boolean.class)); } @Test diff --git a/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/BraveAutocompleteMediator.java b/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/BraveAutocompleteMediator.java index 4719516c01f..1ffa6ab54dd 100644 --- a/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/BraveAutocompleteMediator.java +++ b/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/BraveAutocompleteMediator.java @@ -30,6 +30,8 @@ import org.chromium.ui.modelutil.PropertyModel; class BraveAutocompleteMediator extends AutocompleteMediator { private static final String AUTOCOMPLETE_ENABLED = "brave.autocomplete_enabled"; + private boolean mNativeInitialized; + public BraveAutocompleteMediator(@NonNull Context context, @NonNull AutocompleteDelegate delegate, @NonNull UrlBarEditingTextStateProvider textProvider, @@ -59,4 +61,11 @@ class BraveAutocompleteMediator extends AutocompleteMediator { super.onTextChanged(textWithoutAutocomplete, textWithAutocomplete); } + + @Override + public void onUrlFocusChange(boolean hasFocus) { + if (!mNativeInitialized) return; + + super.onUrlFocusChange(hasFocus); + } } diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveAutocompleteMediatorClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveAutocompleteMediatorClassAdapter.java index 6e984508628..65adaceceb4 100644 --- a/build/android/bytecode/java/org/brave/bytecode/BraveAutocompleteMediatorClassAdapter.java +++ b/build/android/bytecode/java/org/brave/bytecode/BraveAutocompleteMediatorClassAdapter.java @@ -17,5 +17,8 @@ public class BraveAutocompleteMediatorClassAdapter extends BraveClassVisitor { super(visitor); redirectConstructor(sAutocompleteMediator, sBraveAutocompleteMediator); + + deleteField(sBraveAutocompleteMediator, "mNativeInitialized"); + makeProtectedField(sAutocompleteMediator, "mNativeInitialized"); } }