[Android] Changes for search engine logo

Chromium change:
https://chromium.googlesource.com/chromium/src/+/ea3ad04f98806c71fa5d7ed91faa1afeb1f61cd1

Remove search engine logo feature flag and cleanup surrounding code

- Simplified the logo/no-logo padding cases and removed associated
  plumbing (mostly in LocationBarMediator/Phone).
- Simplified SearchEngineLogoUtils as the feature is enabled by default.
- Removed search engine logo feature flag.
- Move ReturnToChromeExperimentsUtil#isCanonicalizedNTPUrl to
  UrlUtilities and generalize it a bit.

Bug: 1178959
This commit is contained in:
samartnik
2021-06-29 16:35:34 -04:00
committed by mkarolin
parent cd11f3c342
commit b19af7a8fe
7 changed files with 95 additions and 0 deletions
+1
View File
@@ -113,6 +113,7 @@ brave_java_sources = [
"../../brave/android/java/org/chromium/chrome/browser/ntp_background_images/util/NTPUtil.java",
"../../brave/android/java/org/chromium/chrome/browser/ntp_background_images/util/NewTabPageListener.java",
"../../brave/android/java/org/chromium/chrome/browser/ntp_background_images/util/SponsoredImageUtil.java",
"../../brave/android/java/org/chromium/chrome/browser/omnibox/status/BraveStatusMediator.java",
"../../brave/android/java/org/chromium/chrome/browser/omnibox/suggestions/editurl/BraveEditUrlSuggestionProcessor.java",
"../../brave/android/java/org/chromium/chrome/browser/onboarding/BraveRewardsOnboardingFragment.java",
"../../brave/android/java/org/chromium/chrome/browser/onboarding/OnViewPagerAction.java",
+8
View File
@@ -299,4 +299,12 @@
-keep class org.chromium.chrome.browser.notifications.BraveNotificationManagerProxyImpl {
public <init>(...);
}
-keep class org.chromium.chrome.browser.omnibox.status.StatusMediator {
public <init>(...);
}
-keep class org.chromium.chrome.browser.omnibox.status.BraveStatusMediator {
public <init>(...);
}
@@ -0,0 +1,43 @@
/* Copyright (c) 2021 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.chromium.chrome.browser.omnibox.status;
import android.content.Context;
import android.content.res.Resources;
import org.chromium.base.supplier.OneshotSupplier;
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.browser.omnibox.LocationBarDataProvider;
import org.chromium.chrome.browser.omnibox.SearchEngineLogoUtils;
import org.chromium.chrome.browser.omnibox.UrlBarEditingTextStateProvider;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.components.permissions.PermissionDialogController;
import org.chromium.components.search_engines.TemplateUrlService;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.modelutil.PropertyModel;
public class BraveStatusMediator extends StatusMediator {
// To delete in bytecode, members from parent class will be used instead.
private boolean mUrlHasFocus;
public BraveStatusMediator(PropertyModel model, Resources resources, Context context,
UrlBarEditingTextStateProvider urlBarEditingTextStateProvider, boolean isTablet,
LocationBarDataProvider locationBarDataProvider,
PermissionDialogController permissionDialogController,
SearchEngineLogoUtils searchEngineLogoUtils,
OneshotSupplier<TemplateUrlService> templateUrlServiceSupplier,
Supplier<Profile> profileSupplier, PageInfoIPHController pageInfoIPHController,
WindowAndroid windowAndroid) {
super(model, resources, context, urlBarEditingTextStateProvider, isTablet,
locationBarDataProvider, permissionDialogController, searchEngineLogoUtils,
templateUrlServiceSupplier, profileSupplier, pageInfoIPHController, windowAndroid);
}
@Override
boolean shouldDisplaySearchEngineIcon() {
return super.shouldDisplaySearchEngineIcon() && mUrlHasFocus;
}
}
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser;
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.support.test.filters.SmallTest;
import android.view.View;
import android.view.ViewGroup;
@@ -33,6 +34,10 @@ import org.chromium.chrome.browser.identity_disc.IdentityDiscController;
import org.chromium.chrome.browser.init.StartupTabPreloader;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.multiwindow.MultiWindowModeStateDispatcher;
import org.chromium.chrome.browser.omnibox.LocationBarDataProvider;
import org.chromium.chrome.browser.omnibox.SearchEngineLogoUtils;
import org.chromium.chrome.browser.omnibox.UrlBarEditingTextStateProvider;
import org.chromium.chrome.browser.omnibox.status.PageInfoIPHController;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.AsyncTabParamsManager;
import org.chromium.chrome.browser.tabmodel.ChromeTabCreator;
@@ -49,6 +54,7 @@ import org.chromium.chrome.browser.ui.system.StatusBarColorController;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.components.browser_ui.widget.scrim.ScrimCoordinator;
import org.chromium.components.embedder_support.browser_context.BrowserContextHandle;
import org.chromium.components.permissions.PermissionDialogController;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.modelutil.PropertyModel;
@@ -159,6 +165,9 @@ public class BytecodeTest {
"org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities"));
Assert.assertTrue(classExists(
"org/chromium/chrome/browser/tasks/tab_management/BraveTabUiFeatureUtilities"));
Assert.assertTrue(classExists("org/chromium/chrome/browser/omnibox/status/StatusMediator"));
Assert.assertTrue(
classExists("org/chromium/chrome/browser/omnibox/status/BraveStatusMediator"));
}
@Test
@@ -311,6 +320,14 @@ public class BytecodeTest {
"org/chromium/components/browser_ui/notifications/NotificationManagerProxyImpl",
"org/chromium/chrome/browser/notifications/BraveNotificationManagerProxyImpl",
Context.class));
Assert.assertTrue(
constructorsMatch("org/chromium/chrome/browser/omnibox/status/StatusMediator",
"org/chromium/chrome/browser/omnibox/status/BraveStatusMediator",
PropertyModel.class, Resources.class, Context.class,
UrlBarEditingTextStateProvider.class, boolean.class,
LocationBarDataProvider.class, PermissionDialogController.class,
SearchEngineLogoUtils.class, OneshotSupplier.class, Supplier.class,
PageInfoIPHController.class, WindowAndroid.class));
}
@Test
+1
View File
@@ -38,6 +38,7 @@ java_binary("java_bytecode_rewriter") {
"//brave/build/android/bytecode/java/org/brave/bytecode/BraveSettingsLauncherImplClassAdapter.java",
"//brave/build/android/bytecode/java/org/brave/bytecode/BraveSingleCategorySettingsClassAdapter.java",
"//brave/build/android/bytecode/java/org/brave/bytecode/BraveSiteSettingsDelegateClassAdapter.java",
"//brave/build/android/bytecode/java/org/brave/bytecode/BraveStatusMediatorClassAdapter.java",
"//brave/build/android/bytecode/java/org/brave/bytecode/BraveTabGroupUiCoordinatorClassAdapter.java",
"//brave/build/android/bytecode/java/org/brave/bytecode/BraveTabSwitcherModeTTCoordinatorPhoneClassAdapter.java",
"//brave/build/android/bytecode/java/org/brave/bytecode/BraveTabSwitcherModeTTPhoneClassAdapter.java",
@@ -37,6 +37,7 @@ public class BraveClassAdapter {
chain = new BraveSettingsLauncherImplClassAdapter(chain);
chain = new BraveSingleCategorySettingsClassAdapter(chain);
chain = new BraveSiteSettingsDelegateClassAdapter(chain);
chain = new BraveStatusMediatorClassAdapter(chain);
chain = new BraveTabbedActivityClassAdapter(chain);
chain = new BraveTabGroupUiCoordinatorClassAdapter(chain);
chain = new BraveTabSwitcherModeTTCoordinatorPhoneClassAdapter(chain);
@@ -0,0 +1,24 @@
/* Copyright (c) 2021 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.brave.bytecode;
import org.objectweb.asm.ClassVisitor;
public class BraveStatusMediatorClassAdapter extends BraveClassVisitor {
static String sStatusMediatorClassName =
"org/chromium/chrome/browser/omnibox/status/StatusMediator";
static String sBraveStatusMediatorClassName =
"org/chromium/chrome/browser/omnibox/status/BraveStatusMediator";
public BraveStatusMediatorClassAdapter(ClassVisitor visitor) {
super(visitor);
redirectConstructor(sStatusMediatorClassName, sBraveStatusMediatorClassName);
deleteField(sBraveStatusMediatorClassName, "mUrlHasFocus");
makeProtectedField(sStatusMediatorClassName, "mUrlHasFocus");
}
}