Commit c6246ceb authored by Sam Sebree's avatar Sam Sebree Committed by Commit Bot

[Controls Refresh] Adds dark mode styling for scrollbars

This change uses the native_theme and scrollbar_theme properties to set
correct dark mode styling for scrollbars.

Bug: 929098
Change-Id: Ia06047ca3ec8571cf25acaf8de4731f1ccc16459
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2148283Reviewed-by: default avatarKent Tamura <tkent@chromium.org>
Reviewed-by: default avatarElly Fong-Jones <ellyjones@chromium.org>
Reviewed-by: default avatarMason Freed <masonfreed@chromium.org>
Commit-Queue: Sam Sebree <sasebree@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#760579}
parent f51c71fd
...@@ -236,8 +236,8 @@ CocoaScrollbarPainter::Params GetPaintParams(const Scrollbar& scrollbar, ...@@ -236,8 +236,8 @@ CocoaScrollbarPainter::Params GetPaintParams(const Scrollbar& scrollbar,
if (scrollbar.IsLeftSideVerticalScrollbar()) if (scrollbar.IsLeftSideVerticalScrollbar())
params.orientation = CocoaScrollbarPainter::Orientation::kVerticalOnLeft; params.orientation = CocoaScrollbarPainter::Orientation::kVerticalOnLeft;
params.dark_mode = scrollbar.UsedColorScheme() == WebColorScheme::kDark;
params.overlay = overlay; params.overlay = overlay;
// Only enable dark mode for overlay scrollbars (for now).
if (overlay) if (overlay)
params.dark_mode = scrollbar.GetScrollbarOverlayColorTheme() == params.dark_mode = scrollbar.GetScrollbarOverlayColorTheme() ==
kScrollbarOverlayColorThemeLight; kScrollbarOverlayColorThemeLight;
......
<!DOCTYPE html>
<meta name="color-scheme" content="dark">
<body>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<script>
window.scrollBy(0, 100);
</script>
</body>
\ No newline at end of file
<!DOCTYPE html>
<meta name="color-scheme" content="dark">
<body>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
<br><br><br><br><br>
</body>
\ No newline at end of file
...@@ -144,7 +144,9 @@ void NativeThemeAura::PaintArrowButton( ...@@ -144,7 +144,9 @@ void NativeThemeAura::PaintArrowButton(
State state, State state,
ColorScheme color_scheme, ColorScheme color_scheme,
const ScrollbarArrowExtraParams& arrow) const { const ScrollbarArrowExtraParams& arrow) const {
SkColor bg_color = kTrackColor; SkColor bg_color = color_scheme == ui::NativeTheme::ColorScheme::kDark
? SkColorSetRGB(0x42, 0x42, 0x42)
: kTrackColor;
// Aura-win uses slightly different arrow colors. // Aura-win uses slightly different arrow colors.
SkColor arrow_color = gfx::kPlaceholderColor; SkColor arrow_color = gfx::kPlaceholderColor;
switch (state) { switch (state) {
...@@ -152,14 +154,22 @@ void NativeThemeAura::PaintArrowButton( ...@@ -152,14 +154,22 @@ void NativeThemeAura::PaintArrowButton(
arrow_color = GetArrowColor(state, color_scheme); arrow_color = GetArrowColor(state, color_scheme);
break; break;
case kHovered: case kHovered:
bg_color = SkColorSetRGB(0xD2, 0xD2, 0xD2); bg_color = color_scheme == ui::NativeTheme::ColorScheme::kDark
? SkColorSetRGB(0x4F, 0x4F, 0x4F)
: SkColorSetRGB(0xD2, 0xD2, 0xD2);
FALLTHROUGH; FALLTHROUGH;
case kNormal: case kNormal:
arrow_color = SkColorSetRGB(0x50, 0x50, 0x50); arrow_color = color_scheme == ui::NativeTheme::ColorScheme::kDark
? SK_ColorWHITE
: SkColorSetRGB(0x50, 0x50, 0x50);
break; break;
case kPressed: case kPressed:
bg_color = SkColorSetRGB(0x78, 0x78, 0x78); bg_color = color_scheme == ui::NativeTheme::ColorScheme::kDark
arrow_color = SK_ColorWHITE; ? SkColorSetRGB(0xB1, 0xB1, 0xB1)
: SkColorSetRGB(0x78, 0x78, 0x78);
arrow_color = color_scheme == ui::NativeTheme::ColorScheme::kDark
? SK_ColorBLACK
: SK_ColorWHITE;
break; break;
case kNumStates: case kNumStates:
break; break;
...@@ -209,7 +219,10 @@ void NativeThemeAura::PaintScrollbarTrack( ...@@ -209,7 +219,10 @@ void NativeThemeAura::PaintScrollbarTrack(
// Overlay Scrollbar should never paint a scrollbar track. // Overlay Scrollbar should never paint a scrollbar track.
DCHECK(!use_overlay_scrollbars_); DCHECK(!use_overlay_scrollbars_);
cc::PaintFlags flags; cc::PaintFlags flags;
flags.setColor(kTrackColor); SkColor track_color = color_scheme == ui::NativeTheme::ColorScheme::kDark
? SkColorSetRGB(0x42, 0x42, 0x42)
: kTrackColor;
flags.setColor(track_color);
canvas->drawIRect(gfx::RectToSkIRect(rect), flags); canvas->drawIRect(gfx::RectToSkIRect(rect), flags);
} }
...@@ -313,7 +326,9 @@ void NativeThemeAura::PaintScrollbarThumb(cc::PaintCanvas* canvas, ...@@ -313,7 +326,9 @@ void NativeThemeAura::PaintScrollbarThumb(cc::PaintCanvas* canvas,
else else
thumb_rect.Inset(extra_padding, kThumbPadding); thumb_rect.Inset(extra_padding, kThumbPadding);
thumb_color = SK_ColorBLACK; thumb_color = color_scheme == ui::NativeTheme::ColorScheme::kDark
? SK_ColorWHITE
: SK_ColorBLACK;
} }
cc::PaintFlags flags; cc::PaintFlags flags;
......
...@@ -43,7 +43,7 @@ const int kSliderThumbHeight = 21; ...@@ -43,7 +43,7 @@ const int kSliderThumbHeight = 21;
constexpr SkColor kThumbActiveColor[2] = {SkColorSetRGB(0xF4, 0xF4, 0xF4), constexpr SkColor kThumbActiveColor[2] = {SkColorSetRGB(0xF4, 0xF4, 0xF4),
gfx::kPlaceholderColor}; gfx::kPlaceholderColor};
constexpr SkColor kThumbInactiveColor[2] = {SkColorSetRGB(0xEA, 0xEA, 0xEA), constexpr SkColor kThumbInactiveColor[2] = {SkColorSetRGB(0xEA, 0xEA, 0xEA),
gfx::kPlaceholderColor}; SK_ColorWHITE};
constexpr SkColor kTrackColor[2] = {SkColorSetRGB(0xD3, 0xD3, 0xD3), constexpr SkColor kTrackColor[2] = {SkColorSetRGB(0xD3, 0xD3, 0xD3),
gfx::kPlaceholderColor}; gfx::kPlaceholderColor};
constexpr SkColor kSliderTrackBackgroundColor[2] = { constexpr SkColor kSliderTrackBackgroundColor[2] = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment