diff --git a/android/java/apk_for_test.flags b/android/java/apk_for_test.flags index 9eb26644586a..5484aa742c89 100644 --- a/android/java/apk_for_test.flags +++ b/android/java/apk_for_test.flags @@ -107,8 +107,13 @@ *** runMenuItemEnterAnimations(...); } +-keep class org.chromium.chrome.browser.quickactionsearchwidget.QuickActionSearchWidgetProvider$QuickActionSearchWidgetProviderDino + +-keep class org.chromium.chrome.browser.quickactionsearchwidget.QuickActionSearchWidgetProvider$QuickActionSearchWidgetProviderSearch + -keep class org.chromium.chrome.browser.quickactionsearchwidget.QuickActionSearchWidgetProvider { *** setWidgetEnabled(...); + *** setWidgetComponentEnabled(...); } -keep class org.chromium.chrome.browser.quickactionsearchwidget.BraveQuickActionSearchWidgetProvider { diff --git a/android/java/org/chromium/chrome/browser/quickactionsearchwidget/BraveQuickActionSearchWidgetProvider.java b/android/java/org/chromium/chrome/browser/quickactionsearchwidget/BraveQuickActionSearchWidgetProvider.java index 92c7e132fc89..3acd36c1dc91 100644 --- a/android/java/org/chromium/chrome/browser/quickactionsearchwidget/BraveQuickActionSearchWidgetProvider.java +++ b/android/java/org/chromium/chrome/browser/quickactionsearchwidget/BraveQuickActionSearchWidgetProvider.java @@ -7,12 +7,20 @@ package org.chromium.chrome.browser.quickactionsearchwidget; +import androidx.annotation.NonNull; + import org.chromium.chrome.browser.quickactionsearchwidget.QuickActionSearchWidgetProvider; public abstract class BraveQuickActionSearchWidgetProvider extends QuickActionSearchWidgetProvider { public static void setWidgetEnabled( boolean shouldEnableQuickActionSearchWidget, boolean shouldEnableDinoVariant) { - // We don't need to do anything here as in QuickActionSearchWidgetProvider we only set dino - // and quick search widgets. + setWidgetComponentEnabled(QuickActionSearchWidgetProviderSearch.class, false); + setWidgetComponentEnabled(QuickActionSearchWidgetProviderDino.class, false); + } + + public static void setWidgetComponentEnabled( + @NonNull Class component, + boolean shouldEnableWidgetComponent) { + assert false : "setWidgetComponentEnabled should be redirected to parent in bytecode!"; } } diff --git a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java index 29acd36f36f4..d9862913200e 100644 --- a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java +++ b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java @@ -289,6 +289,14 @@ public void testClassesExist() throws Exception { Assert.assertTrue(classExists("org/chromium/chrome/browser/omnibox/LocationBarMediator")); Assert.assertTrue( classExists("org/chromium/chrome/browser/omnibox/BraveLocationBarMediator")); + Assert.assertTrue(classExists( + "org/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider")); + Assert.assertTrue(classExists( + "org/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider$QuickActionSearchWidgetProviderDino")); + Assert.assertTrue(classExists( + "org/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider$QuickActionSearchWidgetProviderSearch")); + Assert.assertTrue(classExists( + "org/chromium/chrome/browser/quickactionsearchwidget/BraveQuickActionSearchWidgetProvider")); Assert.assertTrue(classExists("org/chromium/chrome/browser/tasks/ReturnToChromeUtil")); Assert.assertTrue(classExists("org/chromium/chrome/browser/IntentHandler")); Assert.assertTrue(classExists("org/chromium/chrome/browser/BraveIntentHandler")); @@ -453,6 +461,9 @@ public void testMethodsExist() throws Exception { Assert.assertTrue(methodExists( "org/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider", "setWidgetEnabled", false, null)); + Assert.assertTrue(methodExists( + "org/chromium/chrome/browser/quickactionsearchwidget/QuickActionSearchWidgetProvider", + "setWidgetComponentEnabled", false, null)); Assert.assertTrue(methodExists( "org/chromium/chrome/browser/notifications/permissions/NotificationPermissionRationaleDialogController", "wrapDialogDismissalCallback", true, Callback.class, Callback.class)); diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveQuickActionSearchWidgetProviderClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveQuickActionSearchWidgetProviderClassAdapter.java index 345580f92a4c..d0b29998da19 100644 --- a/build/android/bytecode/java/org/brave/bytecode/BraveQuickActionSearchWidgetProviderClassAdapter.java +++ b/build/android/bytecode/java/org/brave/bytecode/BraveQuickActionSearchWidgetProviderClassAdapter.java @@ -17,5 +17,8 @@ public BraveQuickActionSearchWidgetProviderClassAdapter(ClassVisitor visitor) { super(visitor); changeMethodOwner(sQuickActionSearchWidgetProviderClassName, "setWidgetEnabled", sBraveQuickActionSearchWidgetProviderClassName); + + deleteMethod(sBraveQuickActionSearchWidgetProviderClassName, "setWidgetComponentEnabled"); + makePublicMethod(sQuickActionSearchWidgetProviderClassName, "setWidgetComponentEnabled"); } -} \ No newline at end of file +}