| Index: third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
|
| diff --git a/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp b/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
|
| index 2ac8b8d635bc885ec1edbfb9a6d7dfb028c499dd..f41e8ea4226d540579760839c8304ca3fc9a4aed 100644
|
| --- a/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
|
| +++ b/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
|
| @@ -419,15 +419,32 @@ void ScrollableArea::setScrollbarOverlayStyle(ScrollbarOverlayStyle overlayStyle
|
|
|
| if (Scrollbar* scrollbar = horizontalScrollbar()) {
|
| ScrollbarTheme::theme().updateScrollbarOverlayStyle(*scrollbar);
|
| - setScrollbarNeedsPaintInvalidation(HorizontalScrollbar);
|
| + scrollbar->setNeedsPaintInvalidation(AllParts);
|
| }
|
|
|
| if (Scrollbar* scrollbar = verticalScrollbar()) {
|
| ScrollbarTheme::theme().updateScrollbarOverlayStyle(*scrollbar);
|
| - setScrollbarNeedsPaintInvalidation(VerticalScrollbar);
|
| + scrollbar->setNeedsPaintInvalidation(AllParts);
|
| }
|
| }
|
|
|
| +void ScrollableArea::recalculateScrollbarOverlayStyle(Color backgroundColor)
|
| +{
|
| + ScrollbarOverlayStyle oldOverlayStyle = getScrollbarOverlayStyle();
|
| + ScrollbarOverlayStyle overlayStyle = ScrollbarOverlayStyleDefault;
|
| +
|
| + // Reduce the background color from RGB to a lightness value
|
| + // and determine which scrollbar style to use based on a lightness
|
| + // heuristic.
|
| + double hue, saturation, lightness;
|
| + backgroundColor.getHSL(hue, saturation, lightness);
|
| + if (lightness <= .5)
|
| + overlayStyle = ScrollbarOverlayStyleLight;
|
| +
|
| + if (oldOverlayStyle != overlayStyle)
|
| + setScrollbarOverlayStyle(overlayStyle);
|
| +}
|
| +
|
| void ScrollableArea::setScrollbarNeedsPaintInvalidation(ScrollbarOrientation orientation)
|
| {
|
| if (orientation == HorizontalScrollbar) {
|
|
|