Migrated colors that used in theme_properties to color provider pipeline
https://github.com/brave/brave-browser/issues/23423 Introduced for color mixers for light/dark/private/tor window for using our theme colors from color provider. With this PR, brave's background color of new tab button/tab search button is used.
This commit is contained in:
@@ -33,6 +33,7 @@ source_set("themes") {
|
||||
"//brave/components/sidebar/buildflags",
|
||||
"//brave/components/speedreader:buildflags",
|
||||
"//chrome/browser:theme_properties",
|
||||
"//chrome/browser/ui/color:mixers",
|
||||
"//skia:skia",
|
||||
"//ui/gfx:color_utils",
|
||||
"//ui/native_theme:native_theme",
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
/* Copyright (c) 2022 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/. */
|
||||
|
||||
#include "brave/browser/themes/brave_private_window_theme_supplier.h"
|
||||
|
||||
#include "brave/browser/ui/color/brave_color_mixer.h"
|
||||
#include "ui/color/color_provider_manager.h"
|
||||
|
||||
BravePrivateWindowThemeSupplier::BravePrivateWindowThemeSupplier(
|
||||
bool private_window)
|
||||
: CustomThemeSupplier(ThemeType::kAutogenerated),
|
||||
for_private_window_(private_window) {}
|
||||
|
||||
BravePrivateWindowThemeSupplier::~BravePrivateWindowThemeSupplier() = default;
|
||||
|
||||
void BravePrivateWindowThemeSupplier::AddColorMixers(
|
||||
ui::ColorProvider* provider,
|
||||
const ui::ColorProviderManager::Key& key) const {
|
||||
for_private_window_ ? AddBravePrivateThemeColorMixer(provider, key)
|
||||
: AddBraveTorThemeColorMixer(provider, key);
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
/* Copyright (c) 2022 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/. */
|
||||
|
||||
#ifndef BRAVE_BROWSER_THEMES_BRAVE_PRIVATE_WINDOW_THEME_SUPPLIER_H_
|
||||
#define BRAVE_BROWSER_THEMES_BRAVE_PRIVATE_WINDOW_THEME_SUPPLIER_H_
|
||||
|
||||
#include "chrome/browser/themes/custom_theme_supplier.h"
|
||||
|
||||
// A theme supplier for private (or tor) window.
|
||||
class BravePrivateWindowThemeSupplier : public CustomThemeSupplier {
|
||||
public:
|
||||
explicit BravePrivateWindowThemeSupplier(bool private_window);
|
||||
|
||||
BravePrivateWindowThemeSupplier(const BravePrivateWindowThemeSupplier&) =
|
||||
delete;
|
||||
BravePrivateWindowThemeSupplier& operator=(
|
||||
const BravePrivateWindowThemeSupplier&) = delete;
|
||||
|
||||
protected:
|
||||
~BravePrivateWindowThemeSupplier() override;
|
||||
|
||||
void AddColorMixers(ui::ColorProvider* provider,
|
||||
const ui::ColorProviderManager::Key& key) const override;
|
||||
|
||||
// false if this is for tor window.
|
||||
bool for_private_window_ = true;
|
||||
};
|
||||
|
||||
#endif // BRAVE_BROWSER_THEMES_BRAVE_PRIVATE_WINDOW_THEME_SUPPLIER_H_
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "brave/browser/themes/brave_dark_mode_utils.h"
|
||||
#include "brave/browser/themes/brave_theme_helper_utils.h"
|
||||
#include "brave/browser/themes/theme_properties.h"
|
||||
#include "brave/browser/ui/color/color_palette.h"
|
||||
#include "brave/components/brave_vpn/buildflags/buildflags.h"
|
||||
#include "brave/components/sidebar/buildflags/buildflags.h"
|
||||
#include "build/build_config.h"
|
||||
@@ -23,11 +24,6 @@
|
||||
|
||||
namespace {
|
||||
|
||||
// TODO(simonhong): Get colors from brave's palette.
|
||||
// Omnibox text colors
|
||||
const SkColor kDarkOmniboxText = SkColorSetRGB(0xff, 0xff, 0xff);
|
||||
const SkColor kLightOmniboxText = SkColorSetRGB(0x42, 0x42, 0x42);
|
||||
|
||||
#if BUILDFLAG(IS_LINUX)
|
||||
bool IsUsingSystemTheme(const CustomThemeSupplier* theme_supplier) {
|
||||
return theme_supplier &&
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "brave/browser/themes/brave_dark_mode_utils.h"
|
||||
#include "brave/browser/themes/brave_theme_helper_utils.h"
|
||||
#include "brave/browser/themes/theme_properties.h"
|
||||
#include "brave/browser/ui/color/color_palette.h"
|
||||
#include "brave/components/constants/pref_names.h"
|
||||
#include "build/build_config.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
@@ -20,6 +21,7 @@
|
||||
#include "content/public/test/browser_test.h"
|
||||
#include "testing/gmock/include/gmock/gmock.h"
|
||||
#include "testing/gtest/include/gtest/gtest-spi.h"
|
||||
#include "ui/color/color_provider.h"
|
||||
#include "ui/native_theme/native_theme.h"
|
||||
#include "ui/native_theme/native_theme_observer.h"
|
||||
|
||||
@@ -188,6 +190,21 @@ IN_PROC_BROWSER_TEST_F(BraveThemeServiceTest, OmniboxColorTest) {
|
||||
tp->GetColor(ThemeProperties::COLOR_OMNIBOX_RESULTS_BG));
|
||||
}
|
||||
|
||||
// Check some colors from color provider pipeline.
|
||||
IN_PROC_BROWSER_TEST_F(BraveThemeServiceTest, ColorProviderTest) {
|
||||
auto* browser_view = BrowserView::GetBrowserViewForBrowser(browser());
|
||||
auto* cp = browser_view->GetColorProvider();
|
||||
SkColor frame_active_color = cp->GetColor(ui::kColorFrameActive);
|
||||
EXPECT_TRUE(frame_active_color == kLightFrame ||
|
||||
frame_active_color == kDarkFrame);
|
||||
|
||||
auto* private_browser = CreateIncognitoBrowser();
|
||||
browser_view = BrowserView::GetBrowserViewForBrowser(private_browser);
|
||||
cp = browser_view->GetColorProvider();
|
||||
frame_active_color = cp->GetColor(ui::kColorFrameActive);
|
||||
EXPECT_EQ(kPrivateFrame, frame_active_color);
|
||||
}
|
||||
|
||||
// Some tests are failing for Windows x86 CI,
|
||||
// See https://github.com/brave/brave-browser/issues/22767
|
||||
#if BUILDFLAG(IS_WIN) && defined(ARCH_CPU_X86)
|
||||
|
||||
@@ -10,6 +10,8 @@ brave_browser_themes_deps = []
|
||||
if (!is_android) {
|
||||
brave_browser_themes_sources += [
|
||||
"//brave/browser/themes/brave_dark_mode_utils.cc",
|
||||
"//brave/browser/themes/brave_private_window_theme_supplier.cc",
|
||||
"//brave/browser/themes/brave_private_window_theme_supplier.h",
|
||||
"//brave/browser/themes/brave_theme_helper.cc",
|
||||
"//brave/browser/themes/brave_theme_helper.h",
|
||||
"//brave/browser/themes/brave_theme_helper_utils.cc",
|
||||
@@ -31,9 +33,12 @@ if (!is_android) {
|
||||
"//brave/components/brave_vpn/buildflags",
|
||||
"//brave/components/constants",
|
||||
"//brave/components/sidebar/buildflags",
|
||||
"//chrome/browser/ui",
|
||||
"//chrome/browser/ui/color:color_headers",
|
||||
"//chrome/common",
|
||||
"//components/pref_registry",
|
||||
"//components/prefs",
|
||||
"//ui/color",
|
||||
"//ui/gfx",
|
||||
"//ui/native_theme",
|
||||
]
|
||||
|
||||
@@ -6,15 +6,12 @@
|
||||
#include "brave/browser/themes/theme_properties.h"
|
||||
|
||||
#include "base/notreached.h"
|
||||
#include "brave/browser/ui/color/color_palette.h"
|
||||
#include "chrome/browser/themes/theme_properties.h"
|
||||
#include "ui/gfx/color_palette.h"
|
||||
|
||||
namespace {
|
||||
|
||||
const SkColor kLightToolbar = SkColorSetRGB(0xf3, 0xf3, 0xf3);
|
||||
const SkColor kLightFrame = SkColorSetRGB(0xd5, 0xd9, 0xdc);
|
||||
const SkColor kLightToolbarIcon = SkColorSetRGB(0x42, 0x42, 0x42);
|
||||
|
||||
absl::optional<SkColor> MaybeGetDefaultColorForBraveLightUi(int id) {
|
||||
switch (id) {
|
||||
// Applies when the window is active, tabs and also tab bar everywhere
|
||||
@@ -27,7 +24,7 @@ absl::optional<SkColor> MaybeGetDefaultColorForBraveLightUi(int id) {
|
||||
// except active tab
|
||||
case ThemeProperties::COLOR_FRAME_INACTIVE:
|
||||
case ThemeProperties::COLOR_TAB_BACKGROUND_INACTIVE_FRAME_INACTIVE:
|
||||
return color_utils::HSLShift(kLightFrame, { -1, -1, 0.6 });
|
||||
return color_utils::HSLShift(kLightFrame, {-1, -1, 0.6});
|
||||
// Active tab and also the URL toolbar
|
||||
// Parts of this color show up as you hover over innactive tabs too
|
||||
case ThemeProperties::COLOR_TOOLBAR:
|
||||
@@ -131,10 +128,6 @@ absl::optional<SkColor> MaybeGetDefaultColorForBraveLightUi(int id) {
|
||||
}
|
||||
}
|
||||
|
||||
const SkColor kDarkToolbar = SkColorSetRGB(0x30, 0x34, 0x43);
|
||||
const SkColor kDarkFrame = SkColorSetRGB(0x0C, 0x0C, 0x17);
|
||||
const SkColor kDarkToolbarIcon = SkColorSetRGB(0xed, 0xed, 0xed);
|
||||
|
||||
absl::optional<SkColor> MaybeGetDefaultColorForBraveDarkUi(int id) {
|
||||
switch (id) {
|
||||
// Applies when the window is active, tabs and also tab bar everywhere
|
||||
@@ -146,7 +139,7 @@ absl::optional<SkColor> MaybeGetDefaultColorForBraveDarkUi(int id) {
|
||||
// except active tab
|
||||
case ThemeProperties::COLOR_FRAME_INACTIVE:
|
||||
case ThemeProperties::COLOR_TAB_BACKGROUND_INACTIVE_FRAME_INACTIVE:
|
||||
return color_utils::HSLShift(kDarkFrame, { -1, -1, 0.6 });
|
||||
return color_utils::HSLShift(kDarkFrame, {-1, -1, 0.6});
|
||||
// Active tab and also the URL toolbar
|
||||
// Parts of this color show up as you hover over innactive tabs too
|
||||
case ThemeProperties::COLOR_TOOLBAR:
|
||||
@@ -253,9 +246,6 @@ absl::optional<SkColor> MaybeGetDefaultColorForBraveDarkUi(int id) {
|
||||
}
|
||||
}
|
||||
|
||||
const SkColor kPrivateFrame = SkColorSetRGB(0x19, 0x16, 0x2F);
|
||||
const SkColor kPrivateToolbar = SkColorSetRGB(0x32, 0x25, 0x60);
|
||||
|
||||
absl::optional<SkColor> MaybeGetDefaultColorForPrivateUi(int id) {
|
||||
switch (id) {
|
||||
// Applies when the window is active, tabs and also tab bar everywhere
|
||||
@@ -267,7 +257,7 @@ absl::optional<SkColor> MaybeGetDefaultColorForPrivateUi(int id) {
|
||||
// except active tab
|
||||
case ThemeProperties::COLOR_FRAME_INACTIVE:
|
||||
case ThemeProperties::COLOR_TAB_BACKGROUND_INACTIVE_FRAME_INACTIVE:
|
||||
return color_utils::HSLShift(kPrivateFrame, { -1, -1, 0.55 });
|
||||
return color_utils::HSLShift(kPrivateFrame, {-1, -1, 0.55});
|
||||
// Active tab and also the URL toolbar
|
||||
// Parts of this color show up as you hover over innactive tabs too
|
||||
case ThemeProperties::COLOR_TOOLBAR:
|
||||
@@ -293,8 +283,6 @@ absl::optional<SkColor> MaybeGetDefaultColorForPrivateUi(int id) {
|
||||
}
|
||||
}
|
||||
|
||||
const SkColor kPrivateTorFrame = SkColorSetRGB(0x19, 0x0E, 0x2A);
|
||||
const SkColor kPrivateTorToolbar = SkColorSetRGB(0x49, 0x2D, 0x58);
|
||||
absl::optional<SkColor> MaybeGetDefaultColorForPrivateTorUi(int id) {
|
||||
switch (id) {
|
||||
// Applies when the window is active, tabs and also tab bar everywhere
|
||||
@@ -306,7 +294,7 @@ absl::optional<SkColor> MaybeGetDefaultColorForPrivateTorUi(int id) {
|
||||
// except active tab
|
||||
case ThemeProperties::COLOR_FRAME_INACTIVE:
|
||||
case ThemeProperties::COLOR_TAB_BACKGROUND_INACTIVE_FRAME_INACTIVE:
|
||||
return color_utils::HSLShift(kPrivateTorFrame, { -1, -1, 0.55 });
|
||||
return color_utils::HSLShift(kPrivateTorFrame, {-1, -1, 0.55});
|
||||
// Active tab and also the URL toolbar
|
||||
// Parts of this color show up as you hover over innactive tabs too
|
||||
case ThemeProperties::COLOR_TOOLBAR:
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
/* Copyright (c) 2022 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/. */
|
||||
|
||||
#include "brave/browser/ui/color/brave_color_mixer.h"
|
||||
|
||||
#include "brave/browser/ui/color/color_palette.h"
|
||||
#include "chrome/browser/ui/color/chrome_color_id.h"
|
||||
#include "ui/color/color_id.h"
|
||||
#include "ui/color/color_provider.h"
|
||||
#include "ui/color/color_recipe.h"
|
||||
#include "ui/gfx/color_palette.h"
|
||||
#include "ui/gfx/color_utils.h"
|
||||
|
||||
void AddBraveLightThemeColorMixer(ui::ColorProvider* provider,
|
||||
const ui::ColorProviderManager::Key& key) {
|
||||
ui::ColorMixer& mixer = provider->AddMixer();
|
||||
|
||||
mixer[kColorDownloadShelfButtonText] = {gfx::kBraveGrey800};
|
||||
|
||||
mixer[ui::kColorFrameActive] = {kLightFrame};
|
||||
mixer[kColorTabBackgroundInactiveFrameActive] = {ui::kColorFrameActive};
|
||||
mixer[kColorNewTabButtonBackgroundFrameActive] = {ui::kColorFrameActive};
|
||||
mixer[kColorToolbarContentAreaSeparator] = {ui::kColorFrameActive};
|
||||
|
||||
mixer[ui::kColorFrameInactive] = {
|
||||
color_utils::HSLShift(kLightFrame, {-1, -1, 0.6})};
|
||||
mixer[kColorTabBackgroundInactiveFrameInactive] = {ui::kColorFrameInactive};
|
||||
mixer[kColorNewTabButtonBackgroundFrameInactive] = {ui::kColorFrameInactive};
|
||||
|
||||
mixer[kColorToolbar] = {kLightToolbar};
|
||||
mixer[kColorToolbarTopSeparatorFrameActive] = {kColorToolbar};
|
||||
mixer[kColorToolbarTopSeparatorFrameInactive] = {kColorToolbar};
|
||||
mixer[kColorTabBackgroundActiveFrameActive] = {kColorToolbar};
|
||||
mixer[kColorTabBackgroundActiveFrameInactive] = {kColorToolbar};
|
||||
|
||||
mixer[kColorTabForegroundActiveFrameActive] = {kLightToolbarIcon};
|
||||
mixer[kColorTabForegroundInactiveFrameActive] = {
|
||||
kColorTabForegroundActiveFrameActive};
|
||||
mixer[kColorBookmarkBarForeground] = {kColorTabForegroundActiveFrameActive};
|
||||
mixer[kColorToolbarButtonIcon] = {kColorTabForegroundActiveFrameActive};
|
||||
|
||||
mixer[kColorToolbarButtonIconInactive] = {
|
||||
color_utils::AlphaBlend(kLightToolbarIcon, kLightToolbar, 0.3f)};
|
||||
}
|
||||
|
||||
void AddBraveDarkThemeColorMixer(ui::ColorProvider* provider,
|
||||
const ui::ColorProviderManager::Key& key) {
|
||||
ui::ColorMixer& mixer = provider->AddMixer();
|
||||
|
||||
mixer[kColorDownloadShelfButtonText] = {SK_ColorWHITE};
|
||||
|
||||
mixer[ui::kColorFrameActive] = {kDarkFrame};
|
||||
mixer[kColorTabBackgroundInactiveFrameActive] = {ui::kColorFrameActive};
|
||||
mixer[kColorNewTabButtonBackgroundFrameActive] = {ui::kColorFrameActive};
|
||||
|
||||
mixer[ui::kColorFrameInactive] = {
|
||||
color_utils::HSLShift(kDarkFrame, {-1, -1, 0.6})};
|
||||
mixer[kColorTabBackgroundInactiveFrameInactive] = {ui::kColorFrameInactive};
|
||||
mixer[kColorNewTabButtonBackgroundFrameInactive] = {ui::kColorFrameInactive};
|
||||
|
||||
mixer[kColorToolbar] = {kDarkToolbar};
|
||||
mixer[kColorToolbarTopSeparatorFrameActive] = {kColorToolbar};
|
||||
mixer[kColorToolbarTopSeparatorFrameInactive] = {kColorToolbar};
|
||||
mixer[kColorToolbarContentAreaSeparator] = {kColorToolbar};
|
||||
mixer[kColorTabStrokeFrameActive] = {kColorToolbar};
|
||||
mixer[kColorTabStrokeFrameInactive] = {kColorToolbar};
|
||||
mixer[kColorTabBackgroundActiveFrameActive] = {kColorToolbar};
|
||||
mixer[kColorTabBackgroundActiveFrameInactive] = {kColorToolbar};
|
||||
|
||||
mixer[kColorTabForegroundActiveFrameActive] = {
|
||||
SkColorSetRGB(0xF3, 0xF3, 0xF3)};
|
||||
mixer[kColorBookmarkBarForeground] = {kColorTabForegroundActiveFrameActive};
|
||||
mixer[kColorTabForegroundInactiveFrameActive] = {
|
||||
kColorTabForegroundActiveFrameActive};
|
||||
mixer[kColorToolbarButtonIcon] = {kDarkToolbarIcon};
|
||||
|
||||
mixer[kColorToolbarButtonIconInactive] = {
|
||||
color_utils::AlphaBlend(kDarkToolbarIcon, kDarkToolbar, 0.3f)};
|
||||
}
|
||||
|
||||
void AddBravePrivateThemeColorMixer(ui::ColorProvider* provider,
|
||||
const ui::ColorProviderManager::Key& key) {
|
||||
AddBraveDarkThemeColorMixer(provider, key);
|
||||
|
||||
ui::ColorMixer& mixer = provider->AddMixer();
|
||||
|
||||
mixer[ui::kColorFrameActive] = {kPrivateFrame};
|
||||
mixer[kColorTabBackgroundInactiveFrameActive] = {ui::kColorFrameActive};
|
||||
mixer[kColorNewTabButtonBackgroundFrameActive] = {ui::kColorFrameActive};
|
||||
|
||||
mixer[ui::kColorFrameInactive] = {
|
||||
color_utils::HSLShift(kPrivateFrame, {-1, -1, 0.55})};
|
||||
mixer[kColorTabBackgroundInactiveFrameInactive] = {ui::kColorFrameInactive};
|
||||
mixer[kColorNewTabButtonBackgroundFrameInactive] = {ui::kColorFrameInactive};
|
||||
|
||||
mixer[kColorToolbar] = {kPrivateToolbar};
|
||||
mixer[kColorToolbarContentAreaSeparator] = {kColorToolbar};
|
||||
mixer[kColorTabBackgroundActiveFrameActive] = {kColorToolbar};
|
||||
mixer[kColorTabBackgroundActiveFrameInactive] = {kColorToolbar};
|
||||
|
||||
mixer[kColorTabForegroundActiveFrameActive] = {
|
||||
SkColorSetRGB(0xF3, 0xF3, 0xF3)};
|
||||
|
||||
mixer[kColorBookmarkBarForeground] = {SkColorSetRGB(0xFF, 0xFF, 0xFF)};
|
||||
mixer[kColorTabForegroundInactiveFrameActive] = {
|
||||
SkColorSetRGB(0xFF, 0xFF, 0xFF)};
|
||||
|
||||
mixer[kColorToolbarButtonIcon] = {kDarkToolbarIcon};
|
||||
mixer[kColorToolbarButtonIconInactive] = {
|
||||
color_utils::AlphaBlend(kDarkToolbarIcon, kPrivateToolbar, 0.3f)};
|
||||
}
|
||||
|
||||
void AddBraveTorThemeColorMixer(ui::ColorProvider* provider,
|
||||
const ui::ColorProviderManager::Key& key) {
|
||||
AddBravePrivateThemeColorMixer(provider, key);
|
||||
|
||||
ui::ColorMixer& mixer = provider->AddMixer();
|
||||
|
||||
mixer[ui::kColorFrameActive] = {kPrivateTorFrame};
|
||||
mixer[kColorTabBackgroundInactiveFrameActive] = {ui::kColorFrameActive};
|
||||
mixer[kColorNewTabButtonBackgroundFrameActive] = {ui::kColorFrameActive};
|
||||
|
||||
mixer[ui::kColorFrameInactive] = {
|
||||
color_utils::HSLShift(kPrivateTorFrame, {-1, -1, 0.55})};
|
||||
mixer[kColorTabBackgroundInactiveFrameInactive] = {ui::kColorFrameInactive};
|
||||
mixer[kColorNewTabButtonBackgroundFrameInactive] = {ui::kColorFrameInactive};
|
||||
|
||||
mixer[kColorToolbar] = {kPrivateTorToolbar};
|
||||
mixer[kColorToolbarContentAreaSeparator] = {kColorToolbar};
|
||||
mixer[kColorTabBackgroundActiveFrameActive] = {kColorToolbar};
|
||||
mixer[kColorTabBackgroundActiveFrameInactive] = {kColorToolbar};
|
||||
|
||||
mixer[kColorToolbarButtonIconInactive] = {
|
||||
color_utils::AlphaBlend(kDarkToolbarIcon, kPrivateTorToolbar, 0.3f)};
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
/* Copyright (c) 2022 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/. */
|
||||
|
||||
#ifndef BRAVE_BROWSER_UI_COLOR_BRAVE_COLOR_MIXER_H_
|
||||
#define BRAVE_BROWSER_UI_COLOR_BRAVE_COLOR_MIXER_H_
|
||||
|
||||
#include "ui/color/color_provider_manager.h"
|
||||
|
||||
namespace ui {
|
||||
class ColorProvider;
|
||||
} // namespace ui
|
||||
|
||||
void AddBraveLightThemeColorMixer(ui::ColorProvider* provider,
|
||||
const ui::ColorProviderManager::Key& key);
|
||||
void AddBraveDarkThemeColorMixer(ui::ColorProvider* provider,
|
||||
const ui::ColorProviderManager::Key& key);
|
||||
void AddBravePrivateThemeColorMixer(ui::ColorProvider* provider,
|
||||
const ui::ColorProviderManager::Key& key);
|
||||
void AddBraveTorThemeColorMixer(ui::ColorProvider* provider,
|
||||
const ui::ColorProviderManager::Key& key);
|
||||
|
||||
#endif // BRAVE_BROWSER_UI_COLOR_BRAVE_COLOR_MIXER_H_
|
||||
@@ -0,0 +1,28 @@
|
||||
/* Copyright (c) 2022 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/. */
|
||||
|
||||
#ifndef BRAVE_BROWSER_UI_COLOR_COLOR_PALETTE_H_
|
||||
#define BRAVE_BROWSER_UI_COLOR_COLOR_PALETTE_H_
|
||||
|
||||
#include "third_party/skia/include/core/SkColor.h"
|
||||
|
||||
// TODO(simonhong): Move all below colors to brave_color_mixer.cc.
|
||||
// Originally this colors were defined in BraveThemeProperties but
|
||||
// they are used from mixers also. When color fetching from theme
|
||||
// provider is deprecated, only mixer will use these colors.
|
||||
constexpr SkColor kLightToolbar = SkColorSetRGB(0xf3, 0xf3, 0xf3);
|
||||
constexpr SkColor kLightFrame = SkColorSetRGB(0xd5, 0xd9, 0xdc);
|
||||
constexpr SkColor kLightToolbarIcon = SkColorSetRGB(0x42, 0x42, 0x42);
|
||||
constexpr SkColor kDarkOmniboxText = SkColorSetRGB(0xff, 0xff, 0xff);
|
||||
constexpr SkColor kLightOmniboxText = SkColorSetRGB(0x42, 0x42, 0x42);
|
||||
constexpr SkColor kDarkToolbar = SkColorSetRGB(0x30, 0x34, 0x43);
|
||||
constexpr SkColor kDarkFrame = SkColorSetRGB(0x0C, 0x0C, 0x17);
|
||||
constexpr SkColor kDarkToolbarIcon = SkColorSetRGB(0xed, 0xed, 0xed);
|
||||
constexpr SkColor kPrivateFrame = SkColorSetRGB(0x19, 0x16, 0x2F);
|
||||
constexpr SkColor kPrivateToolbar = SkColorSetRGB(0x32, 0x25, 0x60);
|
||||
constexpr SkColor kPrivateTorFrame = SkColorSetRGB(0x19, 0x0E, 0x2A);
|
||||
constexpr SkColor kPrivateTorToolbar = SkColorSetRGB(0x49, 0x2D, 0x58);
|
||||
|
||||
#endif // BRAVE_BROWSER_UI_COLOR_COLOR_PALETTE_H_
|
||||
@@ -0,0 +1,16 @@
|
||||
# Copyright (c) 2022 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/.
|
||||
|
||||
brave_browser_ui_color_mixers_sources = [
|
||||
"//brave/browser/ui/color/brave_color_mixer.cc",
|
||||
"//brave/browser/ui/color/brave_color_mixer.h",
|
||||
"//brave/browser/ui/color/color_palette.h",
|
||||
]
|
||||
|
||||
brave_browser_ui_color_mixers_deps = [
|
||||
"//skia",
|
||||
"//ui/color",
|
||||
"//ui/gfx",
|
||||
]
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "brave/browser/ui/views/frame/brave_browser_frame.h"
|
||||
|
||||
#include "brave/browser/profiles/profile_util.h"
|
||||
#include "brave/browser/themes/brave_private_window_theme_supplier.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
#include "chrome/browser/themes/theme_service.h"
|
||||
#include "chrome/browser/themes/theme_service_factory.h"
|
||||
@@ -13,8 +14,16 @@
|
||||
#include "chrome/browser/ui/views/frame/browser_view.h"
|
||||
|
||||
BraveBrowserFrame::BraveBrowserFrame(BrowserView* browser_view)
|
||||
: BrowserFrame(browser_view),
|
||||
view_(browser_view) {}
|
||||
: BrowserFrame(browser_view), view_(browser_view) {
|
||||
if (view_->browser()->profile()->IsIncognitoProfile() ||
|
||||
view_->browser()->profile()->IsTor() ||
|
||||
view_->browser()->profile()->IsGuestSession()) {
|
||||
theme_supplier_ = base::MakeRefCounted<BravePrivateWindowThemeSupplier>(
|
||||
!view_->browser()->profile()->IsTor());
|
||||
}
|
||||
}
|
||||
|
||||
BraveBrowserFrame::~BraveBrowserFrame() = default;
|
||||
|
||||
// Tor/Guest profile should use DarkAura. If not, their native ui is affected by
|
||||
// normal windows theme change.
|
||||
@@ -28,3 +37,15 @@ const ui::NativeTheme* BraveBrowserFrame::GetNativeTheme() const {
|
||||
}
|
||||
return views::Widget::GetNativeTheme();
|
||||
}
|
||||
|
||||
ui::ColorProviderManager::ThemeInitializerSupplier*
|
||||
BraveBrowserFrame::GetCustomTheme() const {
|
||||
// To provider private(tor) windows's theme color via color provider,
|
||||
// we use |theme_supplier_| for both as upstream doesn't use separated
|
||||
// mix for private window.
|
||||
if (theme_supplier_) {
|
||||
return theme_supplier_.get();
|
||||
}
|
||||
|
||||
return BrowserFrame::GetCustomTheme();
|
||||
}
|
||||
|
||||
@@ -7,19 +7,26 @@
|
||||
#define BRAVE_BROWSER_UI_VIEWS_FRAME_BRAVE_BROWSER_FRAME_H_
|
||||
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "base/memory/scoped_refptr.h"
|
||||
#include "chrome/browser/ui/views/frame/browser_frame.h"
|
||||
|
||||
class CustomThemeSupplier;
|
||||
|
||||
class BraveBrowserFrame : public BrowserFrame {
|
||||
public:
|
||||
explicit BraveBrowserFrame(BrowserView* browser_view);
|
||||
BraveBrowserFrame(const BraveBrowserFrame&) = delete;
|
||||
BraveBrowserFrame& operator=(const BraveBrowserFrame&) = delete;
|
||||
~BraveBrowserFrame() override;
|
||||
|
||||
// BrowserFrame overrides:
|
||||
const ui::NativeTheme* GetNativeTheme() const override;
|
||||
ui::ColorProviderManager::ThemeInitializerSupplier* GetCustomTheme()
|
||||
const override;
|
||||
|
||||
private:
|
||||
raw_ptr<BrowserView> view_ = nullptr;
|
||||
scoped_refptr<CustomThemeSupplier> theme_supplier_;
|
||||
};
|
||||
|
||||
#endif // BRAVE_BROWSER_UI_VIEWS_FRAME_BRAVE_BROWSER_FRAME_H_
|
||||
|
||||
@@ -8,6 +8,7 @@ import("//brave/browser/resources/bookmarks/sources.gni")
|
||||
import("//brave/browser/resources/extensions/sources.gni")
|
||||
import("//brave/browser/resources/history/sources.gni")
|
||||
import("//brave/browser/resources/settings/sources.gni")
|
||||
import("//brave/browser/ui/color/sources.gni")
|
||||
import("//brave/build/config/compiler.gni")
|
||||
import("//brave/build/mac/config.gni")
|
||||
import("//brave/components/content_settings/core/browser/sources.gni")
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
|
||||
#include "chrome/browser/ui/color/chrome_color_mixer.h"
|
||||
|
||||
#include "brave/browser/ui/color/brave_color_mixer.h"
|
||||
|
||||
#define AddChromeColorMixer AddChromeColorMixer_ChromiumImpl
|
||||
#include "src/chrome/browser/ui/color/chrome_color_mixer.cc"
|
||||
#undef AddChromeColorMixer
|
||||
@@ -13,13 +15,13 @@ namespace {
|
||||
|
||||
void AddBraveColorMixer(ui::ColorProvider* provider,
|
||||
const ui::ColorProviderManager::Key& key) {
|
||||
const bool dark_mode =
|
||||
key.color_mode == ui::ColorProviderManager::ColorMode::kDark;
|
||||
ui::ColorMixer& mixer = provider->AddMixer();
|
||||
// Apply brave theme when there is no custom theme.
|
||||
if (key.custom_theme)
|
||||
return;
|
||||
|
||||
// Download shelf colors.
|
||||
mixer[kColorDownloadShelfButtonText] = {dark_mode ? SK_ColorWHITE
|
||||
: gfx::kBraveGrey800};
|
||||
key.color_mode == ui::ColorProviderManager::ColorMode::kDark
|
||||
? AddBraveDarkThemeColorMixer(provider, key)
|
||||
: AddBraveLightThemeColorMixer(provider, key);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
diff --git a/chrome/browser/ui/color/BUILD.gn b/chrome/browser/ui/color/BUILD.gn
|
||||
index ebc0b2e5886804820c7f5f594c68e80f85c002cb..a925b384c5359cd8ed5f8907a80df3639fbc60fb 100644
|
||||
--- a/chrome/browser/ui/color/BUILD.gn
|
||||
+++ b/chrome/browser/ui/color/BUILD.gn
|
||||
@@ -35,6 +35,7 @@ source_set("mixers") {
|
||||
"//ui/color:color",
|
||||
"//ui/color:mixers",
|
||||
]
|
||||
+ sources += brave_browser_ui_color_mixers_sources deps += brave_browser_ui_color_mixers_deps
|
||||
|
||||
if (is_chromeos) {
|
||||
sources += [ "chromeos/native_chrome_color_mixer_chromeos.cc" ]
|
||||
@@ -808,6 +808,7 @@ if (!is_android) {
|
||||
"//brave/vendor/bat-native-ledger",
|
||||
"//brave/vendor/bat-native-ledger:publishers_proto",
|
||||
"//chrome/browser",
|
||||
"//chrome/browser/ui/color:mixers",
|
||||
"//components/commerce/core:feature_list",
|
||||
"//components/gcm_driver:gcm_buildflags",
|
||||
"//components/history_clusters/core",
|
||||
|
||||
Reference in New Issue
Block a user