Skip to content

Commit

Permalink
[Android] remove old widgets on upgrade scenario (uplift to 1.48.x) (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
brave-builds authored Jan 23, 2023
1 parent 7a9b1ef commit 58fecbb
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 3 deletions.
5 changes: 5 additions & 0 deletions android/java/apk_for_test.flags
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<? extends QuickActionSearchWidgetProvider> component,
boolean shouldEnableWidgetComponent) {
assert false : "setWidgetComponentEnabled should be redirected to parent in bytecode!";
}
}
11 changes: 11 additions & 0 deletions android/javatests/org/chromium/chrome/browser/BytecodeTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,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"));
Expand Down Expand Up @@ -449,6 +457,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));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,8 @@ public BraveQuickActionSearchWidgetProviderClassAdapter(ClassVisitor visitor) {
super(visitor);
changeMethodOwner(sQuickActionSearchWidgetProviderClassName, "setWidgetEnabled",
sBraveQuickActionSearchWidgetProviderClassName);

deleteMethod(sBraveQuickActionSearchWidgetProviderClassName, "setWidgetComponentEnabled");
makePublicMethod(sQuickActionSearchWidgetProviderClassName, "setWidgetComponentEnabled");
}
}
}

0 comments on commit 58fecbb

Please sign in to comment.