From a3b2e682dfeb8a8644bdf98db440a7c705351ac2 Mon Sep 17 00:00:00 2001 From: AlexeyBarabash Date: Mon, 22 Sep 2025 12:07:53 +0300 Subject: [PATCH] [cr142][Android] New arg topControlsStacker at TopToolbarCoordinator.ctor Chromium change: https://source.chromium.org/chromium/chromium/src/+/7849fe4a5084ba98d8b3e38acac8ce86589d855b [Bookmarks Bar] Hide the Android widget hairline when not scrolled This CL completes the work of correcting the hairline of the toolbar to account for bookmark bar visibility. We add a new method for TopControlLayer's to check if they are the bottom layer in the stack by calling the TopControlsStacker. This can be used by the Toolbar to hide the hairline when it is not at the bottom. We call this whenever the top controls layer height changes. We update the Android widget of the hairline to hide when not scrolled, to match the behavior of the scene layer, which hides its drop shadow when the bookmark bar is visible. Bug: 394614019 Change-Id: Ib212bfb7732e4b619f4155b187d4445c05d5499b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6955916 --- .../browser/toolbar/top/BraveTopToolbarCoordinator.java | 7 +++++-- .../org/chromium/chrome/browser/BytecodeTest.java | 3 ++- 2 files changed, 7 insertions(+), 3 deletions(-) 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 b6c74b1fc31..5a7cfd4c50e 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/top/BraveTopToolbarCoordinator.java +++ b/android/java/org/chromium/chrome/browser/toolbar/top/BraveTopToolbarCoordinator.java @@ -17,6 +17,7 @@ import org.chromium.base.supplier.OneshotSupplier; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; import org.chromium.chrome.browser.browser_controls.BrowserStateBrowserControlsVisibilityDelegate; +import org.chromium.chrome.browser.browser_controls.TopControlsStacker; import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.layouts.LayoutStateProvider; import org.chromium.chrome.browser.tab.Tab; @@ -89,7 +90,8 @@ public class BraveTopToolbarCoordinator extends TopToolbarCoordinator { @Nullable BackButtonCoordinator backButtonCoordinator, @Nullable ForwardButtonCoordinator forwardButtonCoordinator, @Nullable HomeButtonDisplay homeButtonDisplay, - @Nullable ExtensionToolbarCoordinator extensionToolbarCoordinator) { + @Nullable ExtensionToolbarCoordinator extensionToolbarCoordinator, + TopControlsStacker topControlsStacker) { super( controlContainer, toolbarLayout, @@ -123,7 +125,8 @@ public class BraveTopToolbarCoordinator extends TopToolbarCoordinator { backButtonCoordinator, forwardButtonCoordinator, homeButtonDisplay, - extensionToolbarCoordinator); + extensionToolbarCoordinator, + topControlsStacker); mBraveToolbarLayout = toolbarLayout; mBraveMenuButtonCoordinator = browsingModeMenuButtonCoordinator; diff --git a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java index b6449b9de2e..73b035587e0 100644 --- a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java +++ b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java @@ -1439,7 +1439,8 @@ public class BytecodeTest { BackButtonCoordinator.class, ForwardButtonCoordinator.class, HomeButtonDisplay.class, - ExtensionToolbarCoordinator.class)); + ExtensionToolbarCoordinator.class, + TopControlsStacker.class)); Assert.assertTrue( constructorsMatch( "org/chromium/chrome/browser/toolbar/menu_button/MenuButtonCoordinator", // presubmit: ignore-long-line