Skip to content

Commit

Permalink
Fix text color of inactive tabs
Browse files Browse the repository at this point in the history
Fixes brave/brave-browser#22027

This regression, which caused inactive tabs under certain dark/light
mode conditions on Windows to have very low contrast, was cause by
the Chromium 100 change below. This fix was modelled after 5c145e9.

https://chromium.googlesource.com/chromium/src/+/23a6ae6a05ef9407f56c29cbbbb133463c734099

Remove use of HasCustomColor in TabStrip and use ColorProvider.

Systematized all the ChromeColorIds used for the tab strip.

Bug: 1292176
Change-Id: I9dbed732cd977a184c59e45d53b918774a44799d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3425646
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Thomas Lukaszewicz <tluk@chromium.org>
Commit-Queue: Allen Bauer <kylixrd@chromium.org>
Cr-Commit-Position: refs/heads/main@{#967904}
  • Loading branch information
gurnec committed Apr 6, 2022
1 parent bb75916 commit d54e804
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 8 deletions.
8 changes: 0 additions & 8 deletions browser/themes/theme_properties.cc
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,8 @@ absl::optional<SkColor> MaybeGetDefaultColorForBraveLightUi(int id) {
case ThemeProperties::COLOR_TAB_BACKGROUND_ACTIVE_FRAME_ACTIVE:
case ThemeProperties::COLOR_TAB_BACKGROUND_ACTIVE_FRAME_INACTIVE:
return kLightToolbar;
case ThemeProperties::COLOR_TAB_FOREGROUND_ACTIVE_FRAME_ACTIVE:
case ThemeProperties::COLOR_BOOKMARK_TEXT:
case BraveThemeProperties::COLOR_BOOKMARK_BAR_INSTRUCTIONS_TEXT:
case ThemeProperties::COLOR_TAB_FOREGROUND_INACTIVE_FRAME_ACTIVE:
case ThemeProperties::COLOR_TOOLBAR_BUTTON_ICON:
return kLightToolbarIcon;
case ThemeProperties::COLOR_TOOLBAR_BUTTON_ICON_INACTIVE:
Expand Down Expand Up @@ -130,11 +128,8 @@ absl::optional<SkColor> MaybeGetDefaultColorForBraveDarkUi(int id) {
case ThemeProperties::COLOR_TAB_BACKGROUND_ACTIVE_FRAME_ACTIVE:
case ThemeProperties::COLOR_TAB_BACKGROUND_ACTIVE_FRAME_INACTIVE:
return kDarkToolbar;
case ThemeProperties::COLOR_TAB_FOREGROUND_ACTIVE_FRAME_ACTIVE:
return SkColorSetRGB(0xF3, 0xF3, 0xF3);
case ThemeProperties::COLOR_BOOKMARK_TEXT:
case BraveThemeProperties::COLOR_BOOKMARK_BAR_INSTRUCTIONS_TEXT:
case ThemeProperties::COLOR_TAB_FOREGROUND_INACTIVE_FRAME_ACTIVE:
return SkColorSetRGB(0xFF, 0xFF, 0xFF);
case ThemeProperties::COLOR_TOOLBAR_BUTTON_ICON:
return kDarkToolbarIcon;
Expand Down Expand Up @@ -223,11 +218,8 @@ absl::optional<SkColor> MaybeGetDefaultColorForPrivateUi(int id) {
case ThemeProperties::COLOR_TAB_BACKGROUND_ACTIVE_FRAME_ACTIVE:
case ThemeProperties::COLOR_TAB_BACKGROUND_ACTIVE_FRAME_INACTIVE:
return kPrivateToolbar;
case ThemeProperties::COLOR_TAB_FOREGROUND_ACTIVE_FRAME_ACTIVE:
return SkColorSetRGB(0xF3, 0xF3, 0xF3);
case ThemeProperties::COLOR_BOOKMARK_TEXT:
case BraveThemeProperties::COLOR_BOOKMARK_BAR_INSTRUCTIONS_TEXT:
case ThemeProperties::COLOR_TAB_FOREGROUND_INACTIVE_FRAME_ACTIVE:
return SkColorSetRGB(0xFF, 0xFF, 0xFF);
case ThemeProperties::COLOR_TOOLBAR_BUTTON_ICON:
return kDarkToolbarIcon;
Expand Down
36 changes: 36 additions & 0 deletions chromium_src/chrome/browser/ui/color/tab_strip_color_mixer.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/* 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 "chrome/browser/ui/color/tab_strip_color_mixer.h"

#define AddTabStripColorMixer AddTabStripColorMixer_ChromiumImpl
#include "src/chrome/browser/ui/color/tab_strip_color_mixer.cc"
#undef AddTabStripColorMixer

namespace {

const SkColor kLightToolbarIcon = SkColorSetRGB(0x42, 0x42, 0x42);

void AddBraveTabStripColorMixer(ui::ColorProvider* provider,
const ui::ColorProviderManager::Key& key) {
ui::ColorMixer& mixer = provider->AddMixer();

// Tab text colors.
if (key.color_mode == ui::ColorProviderManager::ColorMode::kDark) {
mixer[kColorTabForegroundInactiveFrameActive] = {SK_ColorWHITE};
mixer[kColorTabForegroundInactiveFrameInactive] = {SK_ColorWHITE};
} else {
mixer[kColorTabForegroundInactiveFrameActive] = {kLightToolbarIcon};
mixer[kColorTabForegroundInactiveFrameInactive] = {kLightToolbarIcon};
}
}

} // namespace

void AddTabStripColorMixer(ui::ColorProvider* provider,
const ui::ColorProviderManager::Key& key) {
AddTabStripColorMixer_ChromiumImpl(provider, key);
AddBraveTabStripColorMixer(provider, key);
}

0 comments on commit d54e804

Please sign in to comment.