Skip to content

Commit 06e61d2

Browse files
committed
[Android] ThemeColorProvider replaces TabThemeColorProvider
Chromium change: https://chromium.googlesource.com/chromium/src/+/eafd059d9f7f4656f7110349fa9ffd221dfae93c Toolbar: TopUiThemeColorProvider A ThemeColorProvider for top UI (TopUiThemeColorProvider) replaces TabThemeColorProvider, and gets moved to a modularized target chrome/browser/ui/android/theme. This is a new source of truth for toolbar/top part of Chrome UI theme color. Previously TabThemeColorHelper played the role, but now it was redefined to provide the theme color coming from tab contents only. TopUiThemeColorProvider puts together all the signals and decides the final theme color to be used for top UI. Bug: 1127732
1 parent d9f3394 commit 06e61d2

File tree

5 files changed

+42
-13
lines changed

5 files changed

+42
-13
lines changed

android/java/apk_for_test.flags

+5
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
}
8383

8484
-keep class org.chromium.chrome.browser.toolbar.ToolbarManager {
85+
public <init>(...);
8586
*** mBottomControlsCoordinatorSupplier;
8687
*** mCallbackController;
8788
*** mBrowserControlsSizer;
@@ -177,3 +178,7 @@
177178
*** addBookmarkInternal(...);
178179
*** createSnackbarControllerForEditButton(...);
179180
}
181+
182+
-keep class org.chromium.chrome.browser.toolbar.BraveToolbarManager {
183+
public <init>(...);
184+
}

android/javatests/org/chromium/chrome/browser/BytecodeTest.java

+29
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import android.support.test.filters.SmallTest;
1010
import android.view.View;
1111

12+
import androidx.appcompat.app.AppCompatActivity;
13+
1214
import org.junit.Assert;
1315
import org.junit.Test;
1416
import org.junit.runner.RunWith;
@@ -19,21 +21,34 @@
1921
import org.chromium.base.supplier.OneshotSupplier;
2022
import org.chromium.base.supplier.Supplier;
2123
import org.chromium.chrome.browser.app.ChromeActivity;
24+
import org.chromium.chrome.browser.browser_controls.BrowserControlsSizer;
25+
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
26+
import org.chromium.chrome.browser.findinpage.FindToolbarManager;
27+
import org.chromium.chrome.browser.fullscreen.FullscreenManager;
28+
import org.chromium.chrome.browser.identity_disc.IdentityDiscController;
2229
import org.chromium.chrome.browser.init.StartupTabPreloader;
30+
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
2331
import org.chromium.chrome.browser.multiwindow.MultiWindowModeStateDispatcher;
2432
import org.chromium.chrome.browser.tab.Tab;
2533
import org.chromium.chrome.browser.tabmodel.AsyncTabParamsManager;
2634
import org.chromium.chrome.browser.tabmodel.ChromeTabCreator;
2735
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
36+
import org.chromium.chrome.browser.theme.TopUiThemeColorProvider;
2837
import org.chromium.chrome.browser.toolbar.ToolbarManager;
38+
import org.chromium.chrome.browser.toolbar.top.ToolbarActionModeCallback;
39+
import org.chromium.chrome.browser.toolbar.top.ToolbarControlContainer;
40+
import org.chromium.chrome.browser.ui.TabObscuringHandler;
2941
import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate;
42+
import org.chromium.chrome.browser.ui.system.StatusBarColorController;
3043
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
44+
import org.chromium.components.browser_ui.widget.scrim.ScrimCoordinator;
3145
import org.chromium.ui.base.WindowAndroid;
3246
import org.chromium.ui.modaldialog.ModalDialogManager;
3347

3448
import java.lang.reflect.Constructor;
3549
import java.lang.reflect.Field;
3650
import java.lang.reflect.Method;
51+
import java.util.List;
3752

3853
/**
3954
* Tests to check whether classes, methods and fields exist for bytecode manipulation.
@@ -63,6 +78,7 @@ public void testClassesExist() throws Exception {
6378
Assert.assertTrue(classExists(
6479
"org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator"));
6580
Assert.assertTrue(classExists("org/chromium/chrome/browser/toolbar/ToolbarManager"));
81+
Assert.assertTrue(classExists("org/chromium/chrome/browser/toolbar/BraveToolbarManager"));
6682
Assert.assertTrue(
6783
classExists("org/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator"));
6884
Assert.assertTrue(classExists(
@@ -180,6 +196,19 @@ public void testConstructorsExistAndMatch() throws Exception {
180196
"org/chromium/chrome/browser/tabmodel/BraveTabCreator", ChromeActivity.class,
181197
WindowAndroid.class, StartupTabPreloader.class, Supplier.class, boolean.class,
182198
ChromeTabCreator.OverviewNTPCreator.class, AsyncTabParamsManager.class));
199+
Assert.assertTrue(constructorsMatch("org/chromium/chrome/browser/toolbar/ToolbarManager",
200+
"org/chromium/chrome/browser/toolbar/BraveToolbarManager", AppCompatActivity.class,
201+
BrowserControlsSizer.class, FullscreenManager.class, ToolbarControlContainer.class,
202+
CompositorViewHolder.class, Callback.class, TopUiThemeColorProvider.class,
203+
TabObscuringHandler.class, ObservableSupplier.class, IdentityDiscController.class,
204+
List.class, ActivityTabProvider.class, ScrimCoordinator.class,
205+
ToolbarActionModeCallback.class, FindToolbarManager.class, ObservableSupplier.class,
206+
ObservableSupplier.class, Supplier.class, OneshotSupplier.class,
207+
OneshotSupplier.class, boolean.class, ObservableSupplier.class,
208+
OneshotSupplier.class, ObservableSupplier.class, OneshotSupplier.class,
209+
OneshotSupplier.class, WindowAndroid.class, Supplier.class, boolean.class,
210+
Supplier.class, StatusBarColorController.class, AppMenuDelegate.class,
211+
ActivityLifecycleDispatcher.class, Supplier.class));
183212
}
184213

185214
@Test

build/android/bytecode/java/org/brave/bytecode/BraveToolbarManagerClassAdapter.java

+2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ public class BraveToolbarManagerClassAdapter extends BraveClassVisitor {
1515
public BraveToolbarManagerClassAdapter(ClassVisitor visitor) {
1616
super(visitor);
1717

18+
redirectConstructor(sToolbarManagerClassName, sBraveToolbarManagerClassName);
19+
1820
deleteField(sBraveToolbarManagerClassName, "mBottomControlsCoordinatorSupplier");
1921
makeProtectedField(sToolbarManagerClassName, "mBottomControlsCoordinatorSupplier");
2022

patches/chrome-android-java-src-org-chromium-chrome-browser-ui-RootUiCoordinator.java.patch

-13
This file was deleted.

test/BUILD.gn

+6
Original file line numberDiff line numberDiff line change
@@ -876,13 +876,19 @@ if (is_android) {
876876
"//base:base_java_test_support",
877877
"//chrome/android:chrome_apk_pak_assets",
878878
"//chrome/android:chrome_public_base_module_java_for_test",
879+
"//chrome/browser/android/lifecycle:java",
880+
"//chrome/browser/browser_controls/android:java",
881+
"//chrome/browser/fullscreen/android:java",
879882
"//chrome/browser/preferences:java",
880883
"//chrome/browser/tab:java",
881884
"//chrome/browser/tabmodel:java",
882885
"//chrome/browser/ui/android/appmenu:java",
886+
"//chrome/browser/ui/android/theme:java",
883887
"//chrome/test/android:chrome_java_test_support",
888+
"//components/browser_ui/widget/android:java",
884889
"//components/search_engines/android:java",
885890
"//components/sync/android:sync_java",
891+
"//third_party/android_deps:androidx_appcompat_appcompat_java",
886892
"//third_party/android_support_test_runner:runner_java",
887893
"//third_party/junit",
888894
"//ui/android:ui_no_recycler_view_java",

0 commit comments

Comments
 (0)