diff --git a/android/brave_java_sources.gni b/android/brave_java_sources.gni index 8ee9c69ca98..c869bcc2001 100644 --- a/android/brave_java_sources.gni +++ b/android/brave_java_sources.gni @@ -205,7 +205,7 @@ brave_java_sources = [ "../../brave/android/java/org/chromium/chrome/browser/toolbar/menu_button/BraveMenuButtonCoordinator.java", "../../brave/android/java/org/chromium/chrome/browser/toolbar/top/BraveTabSwitcherModeTTCoordinatorPhone.java", "../../brave/android/java/org/chromium/chrome/browser/toolbar/top/BraveTabSwitcherModeTTPhone.java", - "../../brave/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java", + "../../brave/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayoutImpl.java", "../../brave/android/java/org/chromium/chrome/browser/toolbar/top/BraveTopToolbarCoordinator.java", "../../brave/android/java/org/chromium/chrome/browser/ui/brave_tricks/checkbox_to_switch/CheckBoxPreference.java", "../../brave/android/java/org/chromium/chrome/browser/ui/messages/infobar/BraveSimpleConfirmInfoBarBuilder.java", @@ -288,7 +288,10 @@ brave_components_browser_ui_site_settings_android_java = [ brave_browser_ui_android_appmenu_internal_sources = [ "//brave/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/BraveAppMenu.java" ] -brave_browser_ui_android_toolbar_sources = [ "//brave/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsMediator.java" ] +brave_browser_ui_android_toolbar_sources = [ + "//brave/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsMediator.java", + "//brave/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java", +] brave_java_base_sources = [ "//brave/android/java/org/chromium/base/BraveCommandLineInitUtil.java", diff --git a/android/feed/core/java/src/org/chromium/chrome/browser/feed/BraveFeedSurfaceCoordinator.java b/android/feed/core/java/src/org/chromium/chrome/browser/feed/BraveFeedSurfaceCoordinator.java index 46d2b05ca92..f07479ae3f1 100644 --- a/android/feed/core/java/src/org/chromium/chrome/browser/feed/BraveFeedSurfaceCoordinator.java +++ b/android/feed/core/java/src/org/chromium/chrome/browser/feed/BraveFeedSurfaceCoordinator.java @@ -45,14 +45,14 @@ public class BraveFeedSurfaceCoordinator extends FeedSurfaceCoordinator { boolean isPlaceholderShownInitially, BottomSheetController bottomSheetController, Supplier shareDelegateSupplier, @Nullable ScrollableContainerDelegate externalScrollableContainerDelegate, - TabModelSelector tabModelSelector, @NewTabPageLaunchOrigin int launchOrigin, + @NewTabPageLaunchOrigin int launchOrigin, PrivacyPreferencesManagerImpl privacyPreferencesManager, FeedLaunchReliabilityLoggingState launchReliabilityLoggingState) { super(activity, snackbarManager, windowAndroid, snapScrollHelper, ntpHeader, sectionHeaderView, showDarkBackground, delegate, pageNavigationDelegate, profile, isPlaceholderShownInitially, bottomSheetController, shareDelegateSupplier, - externalScrollableContainerDelegate, tabModelSelector, launchOrigin, - privacyPreferencesManager, launchReliabilityLoggingState); + externalScrollableContainerDelegate, launchOrigin, privacyPreferencesManager, + launchReliabilityLoggingState); } @Override diff --git a/android/java/apk_for_test.flags b/android/java/apk_for_test.flags index 2dd0d5875d7..d9be0453767 100644 --- a/android/java/apk_for_test.flags +++ b/android/java/apk_for_test.flags @@ -291,7 +291,7 @@ -keep class org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbar --keep class org.chromium.chrome.browser.toolbar.top.BraveToolbarLayout +-keep class org.chromium.chrome.browser.toolbar.top.BraveToolbarLayoutImpl -keep class org.chromium.chrome.browser.toolbar.top.ToolbarPhone diff --git a/android/java/org/chromium/chrome/browser/app/BraveActivity.java b/android/java/org/chromium/chrome/browser/app/BraveActivity.java index 2f9720089af..ed5ac21a877 100644 --- a/android/java/org/chromium/chrome/browser/app/BraveActivity.java +++ b/android/java/org/chromium/chrome/browser/app/BraveActivity.java @@ -99,7 +99,7 @@ import org.chromium.chrome.browser.tab.TabLaunchType; import org.chromium.chrome.browser.tab.TabSelectionType; import org.chromium.chrome.browser.tabmodel.TabModel; import org.chromium.chrome.browser.tabmodel.TabModelUtils; -import org.chromium.chrome.browser.toolbar.top.BraveToolbarLayout; +import org.chromium.chrome.browser.toolbar.top.BraveToolbarLayoutImpl; import org.chromium.chrome.browser.util.BraveDbUtil; import org.chromium.chrome.browser.util.BraveReferrer; import org.chromium.chrome.browser.util.PackageUtils; @@ -555,7 +555,7 @@ public abstract class BraveActivity } public void hideRewardsOnboardingIcon() { - BraveToolbarLayout layout = (BraveToolbarLayout)findViewById(R.id.toolbar); + BraveToolbarLayoutImpl layout = (BraveToolbarLayoutImpl) findViewById(R.id.toolbar); assert layout != null; if (layout != null) { layout.hideRewardsOnboardingIcon(); @@ -655,7 +655,7 @@ public abstract class BraveActivity } public void OnRewardsPanelDismiss() { - BraveToolbarLayout layout = (BraveToolbarLayout)findViewById(R.id.toolbar); + BraveToolbarLayoutImpl layout = (BraveToolbarLayoutImpl) findViewById(R.id.toolbar); assert layout != null; if (layout != null) { layout.onRewardsPanelDismiss(); @@ -663,7 +663,7 @@ public abstract class BraveActivity } public void dismissRewardsPanel() { - BraveToolbarLayout layout = (BraveToolbarLayout)findViewById(R.id.toolbar); + BraveToolbarLayoutImpl layout = (BraveToolbarLayoutImpl) findViewById(R.id.toolbar); assert layout != null; if (layout != null) { layout.dismissRewardsPanel(); @@ -671,7 +671,7 @@ public abstract class BraveActivity } public void dismissShieldsTooltip() { - BraveToolbarLayout layout = (BraveToolbarLayout)findViewById(R.id.toolbar); + BraveToolbarLayoutImpl layout = (BraveToolbarLayoutImpl) findViewById(R.id.toolbar); assert layout != null; if (layout != null) { layout.dismissShieldsTooltip(); @@ -679,7 +679,7 @@ public abstract class BraveActivity } public void openRewardsPanel() { - BraveToolbarLayout layout = (BraveToolbarLayout)findViewById(R.id.toolbar); + BraveToolbarLayoutImpl layout = (BraveToolbarLayoutImpl) findViewById(R.id.toolbar); assert layout != null; if (layout != null) { layout.openRewardsPanel(); diff --git a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPage.java b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPage.java index 99f1ba013bd..c54b45c07ca 100644 --- a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPage.java +++ b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPage.java @@ -55,10 +55,9 @@ public class BraveNewTabPage extends NewTabPage { protected void initializeMainView(Activity activity, WindowAndroid windowAndroid, SnackbarManager snackbarManager, NewTabPageUma uma, boolean isInNightMode, BottomSheetController bottomSheetController, - Supplier shareDelegateSupplier, TabModelSelector tabModelSelector, - String url) { + Supplier shareDelegateSupplier, String url) { super.initializeMainView(activity, windowAndroid, snackbarManager, uma, isInNightMode, - bottomSheetController, shareDelegateSupplier, tabModelSelector, url); + bottomSheetController, shareDelegateSupplier, url); // Override surface provider Profile profile = Profile.fromWebContents(mTab.getWebContents()); @@ -69,7 +68,7 @@ public class BraveNewTabPage extends NewTabPage { mNewTabPageManager.getNavigationDelegate(), profile, /* isPlaceholderShownInitially= */ false, bottomSheetController, shareDelegateSupplier, /* externalScrollableContainerDelegate= */ null, - tabModelSelector, NewTabPageUtils.decodeOriginFromNtpUrl(url), + NewTabPageUtils.decodeOriginFromNtpUrl(url), PrivacyPreferencesManagerImpl.getInstance(), /* FeedLaunchReliabilityLoggingState */ null); } diff --git a/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java b/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java index 0dd421a85c6..7650186b43c 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java +++ b/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java @@ -18,6 +18,7 @@ import androidx.appcompat.app.AppCompatActivity; import org.chromium.base.ApiCompatibilityUtils; import org.chromium.base.Callback; import org.chromium.base.CallbackController; +import org.chromium.base.jank_tracker.JankTracker; import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.base.supplier.OneshotSupplier; @@ -152,7 +153,7 @@ public class BraveToolbarManager extends ToolbarManager { @NonNull TabContentManager tabContentManager, @NonNull TabCreatorManager tabCreatorManager, @NonNull OneshotSupplier overviewModeBehaviorSupplier, - @NonNull SnackbarManager snackbarManager) { + @NonNull SnackbarManager snackbarManager, JankTracker jankTracker) { super(activity, controlsSizer, fullscreenManager, controlContainer, compositorViewHolder, urlFocusChangedCallback, topUiThemeColorProvider, tabObscuringHandler, shareDelegateSupplier, identityDiscController, buttonDataProviders, tabProvider, @@ -164,7 +165,7 @@ public class BraveToolbarManager extends ToolbarManager { isInOverviewModeSupplier, modalDialogManagerSupplier, statusBarColorController, appMenuDelegate, activityLifecycleDispatcher, startSurfaceParentTabSupplier, bottomSheetController, isWarmOnResumeSupplier, tabContentManager, tabCreatorManager, - overviewModeBehaviorSupplier, snackbarManager); + overviewModeBehaviorSupplier, snackbarManager, jankTracker); mOmniboxFocusStateSupplier = omniboxFocusStateSupplier; mLayoutStateProviderSupplier = layoutStateProviderSupplier; mActivity = activity; diff --git a/android/java/org/chromium/chrome/browser/toolbar/menu_button/BraveMenuButtonCoordinator.java b/android/java/org/chromium/chrome/browser/toolbar/menu_button/BraveMenuButtonCoordinator.java index 5067e64f813..2ac3e583ea2 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/menu_button/BraveMenuButtonCoordinator.java +++ b/android/java/org/chromium/chrome/browser/toolbar/menu_button/BraveMenuButtonCoordinator.java @@ -18,7 +18,7 @@ import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.browser_controls.BrowserStateBrowserControlsVisibilityDelegate; import org.chromium.chrome.browser.theme.ThemeColorProvider; -import org.chromium.chrome.browser.toolbar.top.BraveToolbarLayout; +import org.chromium.chrome.browser.toolbar.top.BraveToolbarLayoutImpl; import org.chromium.chrome.browser.ui.appmenu.AppMenuCoordinator; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.modelutil.PropertyModel; @@ -64,7 +64,8 @@ public class BraveMenuButtonCoordinator extends MenuButtonCoordinator { } private void updateMenuButtonState() { - BraveToolbarLayout layout = (BraveToolbarLayout) mActivity.findViewById(R.id.toolbar); + BraveToolbarLayoutImpl layout = + (BraveToolbarLayoutImpl) mActivity.findViewById(R.id.toolbar); assert layout != null; if (layout != null) { layout.updateMenuButtonState(); diff --git a/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java b/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayoutImpl.java similarity index 98% rename from android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java rename to android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayoutImpl.java index e57a5757e25..d9266782ab0 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java +++ b/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayoutImpl.java @@ -62,7 +62,6 @@ import org.chromium.chrome.browser.BraveRewardsHelper; import org.chromium.chrome.browser.BraveRewardsNativeWorker; import org.chromium.chrome.browser.BraveRewardsObserver; import org.chromium.chrome.browser.BraveRewardsPanelPopup; -import org.chromium.chrome.browser.NavigationPopup.HistoryDelegate; import org.chromium.chrome.browser.app.BraveActivity; import org.chromium.chrome.browser.brave_stats.BraveStatsUtil; import org.chromium.chrome.browser.custom_layout.popup_window_tooltip.PopupWindowTooltip; @@ -105,6 +104,7 @@ import org.chromium.chrome.browser.toolbar.ToolbarTabController; import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarVariationManager; import org.chromium.chrome.browser.toolbar.menu_button.BraveMenuButtonCoordinator; import org.chromium.chrome.browser.toolbar.menu_button.MenuButtonCoordinator; +import org.chromium.chrome.browser.toolbar.top.NavigationPopup.HistoryDelegate; import org.chromium.chrome.browser.toolbar.top.ToolbarLayout; import org.chromium.chrome.browser.toolbar.top.ToolbarTablet.OfflineDownloader; import org.chromium.chrome.browser.util.PackageUtils; @@ -126,9 +126,9 @@ import java.util.EnumSet; import java.util.List; import java.util.Locale; -public abstract class BraveToolbarLayout extends ToolbarLayout - implements OnClickListener, View.OnLongClickListener, BraveRewardsObserver, - BraveRewardsNativeWorker.PublisherObserver { +public abstract class BraveToolbarLayoutImpl extends ToolbarLayout + implements BraveToolbarLayout, OnClickListener, View.OnLongClickListener, + BraveRewardsObserver, BraveRewardsNativeWorker.PublisherObserver { public static final String PREF_HIDE_BRAVE_REWARDS_ICON = "hide_brave_rewards_icon"; private static final String JAPAN_COUNTRY_CODE = "JP"; private static final long MB_10 = 10000000; @@ -162,7 +162,7 @@ public abstract class BraveToolbarLayout extends ToolbarLayout private boolean mIsBottomToolbarVisible; - public BraveToolbarLayout(Context context, AttributeSet attrs) { + public BraveToolbarLayoutImpl(Context context, AttributeSet attrs) { super(context, attrs); } @@ -183,7 +183,7 @@ public abstract class BraveToolbarLayout extends ToolbarLayout protected void onFinishInflate() { super.onFinishInflate(); - if (this instanceof ToolbarTablet) { + if (BraveReflectionUtil.EqualTypes(this.getClass(), ToolbarTablet.class)) { ImageButton forwardButton = findViewById(R.id.forward_button); if (forwardButton != null) { final Drawable forwardButtonDrawable = UiUtils.getTintedDrawable(getContext(), @@ -841,10 +841,6 @@ public abstract class BraveToolbarLayout extends ToolbarLayout } @Override - public void onClick(View v) { - onClickImpl(v); - } - public void onClickImpl(View v) { if (mBraveShieldsHandler == null) { assert false; @@ -883,6 +879,11 @@ public abstract class BraveToolbarLayout extends ToolbarLayout } } + @Override + public void onClick(View v) { + onClickImpl(v); + } + private boolean checkForRewardsOnboarding() { return PackageUtils.isFirstInstall(getContext()) && !BraveAdsNativeHelper.nativeIsBraveAdsEnabled( @@ -911,7 +912,7 @@ public abstract class BraveToolbarLayout extends ToolbarLayout } @Override - public boolean onLongClick(View v) { + public boolean onLongClickImpl(View v) { // Use null as the default description since Toast.showAnchoredToast // will return false if it is null. String description = null; @@ -929,6 +930,11 @@ public abstract class BraveToolbarLayout extends ToolbarLayout return Toast.showAnchoredToast(context, v, description); } + @Override + public boolean onLongClick(View v) { + return onLongClickImpl(v); + } + @Override public void onUrlFocusChange(boolean hasFocus) { Context context = getContext(); @@ -944,7 +950,8 @@ public abstract class BraveToolbarLayout extends ToolbarLayout super.onUrlFocusChange(hasFocus); } - public void populateUrlAnimatorSet(boolean showExpandedState, + @Override + public void populateUrlAnimatorSetImpl(boolean showExpandedState, int urlFocusToolbarButtonsDuration, int urlClearFocusTabStackDelayMs, List animators) { if (mBraveShieldsButton != null) { @@ -981,10 +988,7 @@ public abstract class BraveToolbarLayout extends ToolbarLayout } } - private void updateModernLocationBarColor(int color) { - updateModernLocationBarColorImpl(color); - } - + @Override public void updateModernLocationBarColorImpl(int color) { if (mShieldsLayout != null && mShieldsLayoutIsColorBackground) { mShieldsLayout.setBackgroundColor( @@ -999,7 +1003,8 @@ public abstract class BraveToolbarLayout extends ToolbarLayout } } - public int getBoundsAfterAccountingForRightButtons(ViewGroup toolbarButtonsContainer) { + @Override + public int getBoundsAfterAccountingForRightButtonsImpl(ViewGroup toolbarButtonsContainer) { if (toolbarButtonsContainer == null || mShieldsLayout == null) { assert false; return 0; @@ -1186,7 +1191,7 @@ public abstract class BraveToolbarLayout extends ToolbarLayout public void onThemeColorChanged(int color, boolean shouldAnimate) { final int textBoxColor = ThemeUtils.getTextBoxColorForToolbarBackgroundInNonNativePage( getContext().getResources(), color, isIncognito()); - updateModernLocationBarColor(textBoxColor); + updateModernLocationBarColorImpl(textBoxColor); } /** @@ -1232,7 +1237,10 @@ public abstract class BraveToolbarLayout extends ToolbarLayout } private void updateShieldsLayoutBackground(boolean rounded) { - if (!(this instanceof ToolbarTablet) || (mShieldsLayout == null)) return; + if (!BraveReflectionUtil.EqualTypes(this.getClass(), ToolbarTablet.class) + || (mShieldsLayout == null)) { + return; + } if (rounded) { mShieldsLayout.setBackgroundDrawable( @@ -1244,7 +1252,7 @@ public abstract class BraveToolbarLayout extends ToolbarLayout ChromeColors.getDefaultThemeColor(getContext().getResources(), isIncognito())); mShieldsLayoutIsColorBackground = true; } - updateModernLocationBarColor(mCurrentToolbarColor); + updateModernLocationBarColorImpl(mCurrentToolbarColor); } private boolean isTabSwitcherOnBottom() { diff --git a/android/java/org/chromium/chrome/browser/toolbar/top/BraveTopToolbarCoordinator.java b/android/java/org/chromium/chrome/browser/toolbar/top/BraveTopToolbarCoordinator.java index 3e467af87af..774ca097564 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/top/BraveTopToolbarCoordinator.java +++ b/android/java/org/chromium/chrome/browser/toolbar/top/BraveTopToolbarCoordinator.java @@ -13,7 +13,6 @@ import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; -import org.chromium.chrome.browser.NavigationPopup.HistoryDelegate; import org.chromium.chrome.browser.identity_disc.IdentityDiscController; import org.chromium.chrome.browser.layouts.LayoutStateProvider; import org.chromium.chrome.browser.tabmodel.TabModelSelector; @@ -23,6 +22,7 @@ import org.chromium.chrome.browser.toolbar.ButtonDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarTabController; import org.chromium.chrome.browser.toolbar.menu_button.MenuButtonCoordinator; +import org.chromium.chrome.browser.toolbar.top.NavigationPopup.HistoryDelegate; import org.chromium.chrome.browser.toolbar.top.ToolbarTablet.OfflineDownloader; import org.chromium.chrome.browser.ui.appmenu.AppMenuButtonHelper; import org.chromium.chrome.browser.user_education.UserEducationHelper; @@ -53,7 +53,6 @@ public class BraveTopToolbarCoordinator extends TopToolbarCoordinator { ObservableSupplier homepageManagedByPolicySupplier, ObservableSupplier identityDiscStateSupplier, Callback invalidatorCallback, Supplier identityDiscButtonSupplier, - OneshotSupplier startSurfaceSupplier, Supplier resourceManagerSupplier, BooleanSupplier isInVrSupplier, BooleanSupplier isIncognitoModeEnabledSupplier, boolean isGridTabSwitcherEnabled, boolean isTabToGtsAnimationEnabled, boolean isStartSurfaceEnabled, @@ -66,9 +65,8 @@ public class BraveTopToolbarCoordinator extends TopToolbarCoordinator { appMenuButtonHelperSupplier, tabModelSelectorSupplier, homepageEnabledSupplier, startSurfaceAsHomepageSupplier, homepageManagedByPolicySupplier, identityDiscStateSupplier, invalidatorCallback, identityDiscButtonSupplier, - startSurfaceSupplier, resourceManagerSupplier, isInVrSupplier, - isIncognitoModeEnabledSupplier, isGridTabSwitcherEnabled, - isTabToGtsAnimationEnabled, isStartSurfaceEnabled, + resourceManagerSupplier, isInVrSupplier, isIncognitoModeEnabledSupplier, + isGridTabSwitcherEnabled, isTabToGtsAnimationEnabled, isStartSurfaceEnabled, isTabGroupsAndroidContinuationEnabled, historyDelegate, partnerHomepageEnabledSupplier, offlineDownloader); @@ -87,7 +85,8 @@ public class BraveTopToolbarCoordinator extends TopToolbarCoordinator { public void onBottomToolbarVisibilityChanged(boolean isVisible) { if (mBraveToolbarLayout instanceof BraveToolbarLayout) { - ((BraveToolbarLayout) mBraveToolbarLayout).onBottomToolbarVisibilityChanged(isVisible); + ((BraveToolbarLayoutImpl) mBraveToolbarLayout) + .onBottomToolbarVisibilityChanged(isVisible); } if (mTabSwitcherModeCoordinatorPhone instanceof BraveTabSwitcherModeTTCoordinatorPhone) { ((BraveTabSwitcherModeTTCoordinatorPhone) mTabSwitcherModeCoordinatorPhone) diff --git a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java index ad6e87852e0..e3d9b5bda33 100644 --- a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java +++ b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java @@ -25,7 +25,6 @@ import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.base.supplier.OneshotSupplier; import org.chromium.base.supplier.Supplier; -import org.chromium.chrome.browser.NavigationPopup.HistoryDelegate; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.browser_controls.BrowserControlsSizer; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; @@ -58,6 +57,7 @@ import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarManager; import org.chromium.chrome.browser.toolbar.ToolbarTabController; import org.chromium.chrome.browser.toolbar.menu_button.MenuButtonCoordinator; +import org.chromium.chrome.browser.toolbar.top.NavigationPopup.HistoryDelegate; import org.chromium.chrome.browser.toolbar.top.ToolbarActionModeCallback; import org.chromium.chrome.browser.toolbar.top.ToolbarControlContainer; import org.chromium.chrome.browser.toolbar.top.ToolbarLayout; @@ -334,7 +334,7 @@ public class BytecodeTest { StatusBarColorController.class, AppMenuDelegate.class, ActivityLifecycleDispatcher.class, Supplier.class, BottomSheetController.class, Supplier.class, TabContentManager.class, TabCreatorManager.class, - OneshotSupplier.class, SnackbarManager.class)); + OneshotSupplier.class, SnackbarManager.class, JankTracker.class)); Assert.assertTrue(constructorsMatch( "org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator", "org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsMediator", @@ -394,8 +394,8 @@ public class BytecodeTest { MenuButtonCoordinator.class, MenuButtonCoordinator.class, ObservableSupplier.class, ObservableSupplier.class, ObservableSupplier.class, ObservableSupplier.class, ObservableSupplier.class, ObservableSupplier.class, Callback.class, Supplier.class, - OneshotSupplier.class, Supplier.class, BooleanSupplier.class, BooleanSupplier.class, - boolean.class, boolean.class, boolean.class, boolean.class, HistoryDelegate.class, + Supplier.class, BooleanSupplier.class, BooleanSupplier.class, boolean.class, + boolean.class, boolean.class, boolean.class, HistoryDelegate.class, BooleanSupplier.class, OfflineDownloader.class)); Assert.assertTrue(constructorsMatch( "org/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator", @@ -574,9 +574,11 @@ public class BytecodeTest { "org/chromium/chrome/browser/suggestions/tile/BraveTileView")); Assert.assertTrue(checkSuperName( "org/chromium/chrome/browser/customtabs/features/toolbar/CustomTabToolbar", - "org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout")); + "org/chromium/chrome/browser/toolbar/top/BraveToolbarLayoutImpl")); Assert.assertTrue(checkSuperName("org/chromium/chrome/browser/toolbar/top/ToolbarPhone", - "org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout")); + "org/chromium/chrome/browser/toolbar/top/BraveToolbarLayoutImpl")); + Assert.assertTrue(checkSuperName("org/chromium/chrome/browser/toolbar/top/ToolbarTablet", + "org/chromium/chrome/browser/toolbar/top/BraveToolbarLayoutImpl")); Assert.assertTrue(checkSuperName( "org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone", "org/chromium/chrome/browser/compositor/layouts/BraveLayoutManagerChrome")); diff --git a/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java b/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java new file mode 100644 index 00000000000..9aada170522 --- /dev/null +++ b/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java @@ -0,0 +1,28 @@ +/* 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.toolbar.top; + +import android.animation.Animator; +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; +import android.view.ViewGroup; + +import java.util.List; + +public interface BraveToolbarLayout { + public void onClickImpl(View v); + + public boolean onLongClickImpl(View v); + + public void updateModernLocationBarColorImpl(int color); + + public int getBoundsAfterAccountingForRightButtonsImpl(ViewGroup toolbarButtonsContainer); + + public void populateUrlAnimatorSetImpl(boolean showExpandedState, + int urlFocusToolbarButtonsDuration, int urlClearFocusTabStackDelayMs, + List animators); +} diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveToolbarLayoutClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveToolbarLayoutClassAdapter.java index 3d756041387..5b0f1fd194e 100644 --- a/build/android/bytecode/java/org/brave/bytecode/BraveToolbarLayoutClassAdapter.java +++ b/build/android/bytecode/java/org/brave/bytecode/BraveToolbarLayoutClassAdapter.java @@ -11,13 +11,16 @@ public class BraveToolbarLayoutClassAdapter extends BraveClassVisitor { static String sCustomTabToolbarClassName = "org/chromium/chrome/browser/customtabs/features/toolbar/CustomTabToolbar"; static String sToolbarPhoneClassName = "org/chromium/chrome/browser/toolbar/top/ToolbarPhone"; + static String sToolbarTabletClassName = "org/chromium/chrome/browser/toolbar/top/ToolbarTablet"; static String sBraveToolbarLayoutClassName = - "org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout"; + "org/chromium/chrome/browser/toolbar/top/BraveToolbarLayoutImpl"; public BraveToolbarLayoutClassAdapter(ClassVisitor visitor) { super(visitor); changeSuperName(sCustomTabToolbarClassName, sBraveToolbarLayoutClassName); changeSuperName(sToolbarPhoneClassName, sBraveToolbarLayoutClassName); + + changeSuperName(sToolbarTabletClassName, sBraveToolbarLayoutClassName); } } diff --git a/components/brave_ads/browser/ads_service_impl.cc b/components/brave_ads/browser/ads_service_impl.cc index 888135c5c45..4f1b543747e 100644 --- a/components/brave_ads/browser/ads_service_impl.cc +++ b/components/brave_ads/browser/ads_service_impl.cc @@ -86,6 +86,7 @@ #include "content/public/browser/service_process_host.h" #include "content/public/browser/storage_partition.h" #include "net/base/network_change_notifier.h" +#include "services/network/public/cpp/resource_request.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/cpp/simple_url_loader.h" #include "third_party/abseil-cpp/absl/types/optional.h" diff --git a/patches/chrome-browser-ui-android-toolbar-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarPhone.java.patch b/patches/chrome-browser-ui-android-toolbar-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarPhone.java.patch index 2a1b66c93fe..07e2e498b31 100644 --- a/patches/chrome-browser-ui-android-toolbar-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarPhone.java.patch +++ b/patches/chrome-browser-ui-android-toolbar-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarPhone.java.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java -index a41e088b95a2900daa15513f399dbd276ca084f9..7448905d9ee4fb47415d6267fc89d0a02367e0dc 100644 +index a41e088b95a2900daa15513f399dbd276ca084f9..a170d8d74392fd20c295057af4173c50ac3d1a86 100644 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java @@ -406,6 +406,7 @@ public class ToolbarPhone extends ToolbarLayout implements OnClickListener, TabC @@ -22,7 +22,7 @@ index a41e088b95a2900daa15513f399dbd276ca084f9..7448905d9ee4fb47415d6267fc89d0a0 * @return The right bounds of the location bar after accounting for any visible left buttons. */ private int getBoundsAfterAccountingForRightButtons() { -+ if (true) return Math.max(mToolbarSidePadding, BraveToolbarLayout.class.cast(this).getBoundsAfterAccountingForRightButtons(mToolbarButtonsContainer)); ++ if (true) return Math.max(mToolbarSidePadding, BraveToolbarLayout.class.cast(this).getBoundsAfterAccountingForRightButtonsImpl(mToolbarButtonsContainer)); return Math.max(mToolbarSidePadding, mToolbarButtonsContainer.getMeasuredWidth()); } @@ -30,7 +30,7 @@ index a41e088b95a2900daa15513f399dbd276ca084f9..7448905d9ee4fb47415d6267fc89d0a0 } else { populateUrlClearExpansionAnimatorSet(animators); } -+ BraveToolbarLayout.class.cast(this).populateUrlAnimatorSet(showExpandedState, URL_FOCUS_TOOLBAR_BUTTONS_DURATION_MS, URL_CLEAR_FOCUS_TABSTACK_DELAY_MS, animators); ++ BraveToolbarLayout.class.cast(this).populateUrlAnimatorSetImpl(showExpandedState, URL_FOCUS_TOOLBAR_BUTTONS_DURATION_MS, URL_CLEAR_FOCUS_TABSTACK_DELAY_MS, animators); mUrlFocusLayoutAnimator = new AnimatorSet(); mUrlFocusLayoutAnimator.playTogether(animators); diff --git a/patches/chrome-browser-ui-android-toolbar-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarTablet.java.patch b/patches/chrome-browser-ui-android-toolbar-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarTablet.java.patch index 9db5c78f858..c7bb8e0c8a0 100644 --- a/patches/chrome-browser-ui-android-toolbar-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarTablet.java.patch +++ b/patches/chrome-browser-ui-android-toolbar-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarTablet.java.patch @@ -1,26 +1,17 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java -index e14c4ffdd2c20e6b3f673066b22512b18e65bb0c..06fa5bcf8ccbf0fe86f9572646693f7d2ff21cb7 100644 +index e14c4ffdd2c20e6b3f673066b22512b18e65bb0c..bc63c6c68a60e46010906c545aa622640ad02b38 100644 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java -@@ -59,7 +59,7 @@ import java.util.Collection; - * The Toolbar object for Tablet screens. - */ - @SuppressLint("Instantiatable") --public class ToolbarTablet extends ToolbarLayout -+public class ToolbarTablet extends BraveToolbarLayout - implements OnClickListener, View.OnLongClickListener, TabCountObserver { - /** Downloads page for offline access. */ - public interface OfflineDownloader { @@ -326,10 +326,12 @@ public class ToolbarTablet extends ToolbarLayout mOfflineDownloader.downloadPage(getContext(), getToolbarDataProvider().getTab()); RecordUserAction.record("MobileToolbarDownloadPage"); } -+ super.onClick(v); ++ BraveToolbarLayout.class.cast(this).onClickImpl(v); } @Override public boolean onLongClick(View v) { -+ if (super.onLongClick(v)) return true; ++ if (BraveToolbarLayout.class.cast(this).onLongClickImpl(v)) return true; String description = null; Context context = getContext(); Resources resources = context.getResources();