Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(99)

Side by Side Diff: third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp

Issue 2426793002: Aura overlay scrollbars adjust color for dark backgrounds (Closed)
Patch Set: remove deadcode(WebThemeEngineImpl::paintStateTransition), remove ScrollbarOverlayColorThemeDefault Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
3 * reserved. 3 * reserved.
4 * 4 *
5 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 5 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
6 * 6 *
7 * Other contributors: 7 * Other contributors:
8 * Robert O'Callahan <roc+@cs.cmu.edu> 8 * Robert O'Callahan <roc+@cs.cmu.edu>
9 * David Baron <dbaron@fas.harvard.edu> 9 * David Baron <dbaron@fas.harvard.edu>
10 * Christian Biesinger <cbiesinger@gmail.com> 10 * Christian Biesinger <cbiesinger@gmail.com>
(...skipping 839 matching lines...) Expand 10 before | Expand all | Expand 10 after
850 } 850 }
851 851
852 void PaintLayerScrollableArea::updateAfterStyleChange( 852 void PaintLayerScrollableArea::updateAfterStyleChange(
853 const ComputedStyle* oldStyle) { 853 const ComputedStyle* oldStyle) {
854 // Don't do this on first style recalc, before layout has ever happened. 854 // Don't do this on first style recalc, before layout has ever happened.
855 if (!overflowRect().size().isZero()) { 855 if (!overflowRect().size().isZero()) {
856 updateScrollableAreaSet(hasScrollableHorizontalOverflow() || 856 updateScrollableAreaSet(hasScrollableHorizontalOverflow() ||
857 hasScrollableVerticalOverflow()); 857 hasScrollableVerticalOverflow());
858 } 858 }
859 859
860 // Whenever background changes on the scrollable element, the scroll bar
861 // overlay style might need to be changed to have contrast against the
862 // background.
863 // Skip the need scrollbar check, because we dont know do we need a scrollbar
864 // when this method get called.
865 Color oldBackground;
866 if (oldStyle) {
867 oldBackground = oldStyle->visitedDependentColor(CSSPropertyBackgroundColor);
868 }
869 Color newBackground =
870 box().style()->visitedDependentColor(CSSPropertyBackgroundColor);
871
872 if (newBackground != oldBackground) {
873 recalculateScrollbarOverlayColorTheme(newBackground);
874 }
875
860 bool needsHorizontalScrollbar; 876 bool needsHorizontalScrollbar;
861 bool needsVerticalScrollbar; 877 bool needsVerticalScrollbar;
862 // We add auto scrollbars only during layout to prevent spurious activations. 878 // We add auto scrollbars only during layout to prevent spurious activations.
863 computeScrollbarExistence(needsHorizontalScrollbar, needsVerticalScrollbar, 879 computeScrollbarExistence(needsHorizontalScrollbar, needsVerticalScrollbar,
864 ForbidAddingAutoBars); 880 ForbidAddingAutoBars);
865 881
866 // Avoid some unnecessary computation if there were and will be no scrollbars. 882 // Avoid some unnecessary computation if there were and will be no scrollbars.
867 if (!hasScrollbar() && !needsHorizontalScrollbar && !needsVerticalScrollbar) 883 if (!hasScrollbar() && !needsHorizontalScrollbar && !needsVerticalScrollbar)
868 return; 884 return;
869 885
(...skipping 17 matching lines...) Expand all
887 // FIXME: Need to detect a swap from custom to native scrollbars (and vice 903 // FIXME: Need to detect a swap from custom to native scrollbars (and vice
888 // versa). 904 // versa).
889 if (horizontalScrollbar()) 905 if (horizontalScrollbar())
890 horizontalScrollbar()->styleChanged(); 906 horizontalScrollbar()->styleChanged();
891 if (verticalScrollbar()) 907 if (verticalScrollbar())
892 verticalScrollbar()->styleChanged(); 908 verticalScrollbar()->styleChanged();
893 909
894 updateScrollCornerStyle(); 910 updateScrollCornerStyle();
895 updateResizerAreaSet(); 911 updateResizerAreaSet();
896 updateResizerStyle(); 912 updateResizerStyle();
897
898 // Whenever background changes on the scrollable element, the scroll bar
899 // overlay style might need to be changed to have contrast against the
900 // background.
901 Color oldBackground;
902 if (oldStyle) {
903 oldBackground = oldStyle->visitedDependentColor(CSSPropertyBackgroundColor);
904 }
905 Color newBackground =
906 box().style()->visitedDependentColor(CSSPropertyBackgroundColor);
907
908 if (newBackground != oldBackground) {
909 recalculateScrollbarOverlayStyle(newBackground);
910 }
911 } 913 }
912 914
913 bool PaintLayerScrollableArea::updateAfterCompositingChange() { 915 bool PaintLayerScrollableArea::updateAfterCompositingChange() {
914 layer()->updateScrollingStateAfterCompositingChange(); 916 layer()->updateScrollingStateAfterCompositingChange();
915 const bool layersChanged = m_topmostScrollChild != m_nextTopmostScrollChild; 917 const bool layersChanged = m_topmostScrollChild != m_nextTopmostScrollChild;
916 m_topmostScrollChild = m_nextTopmostScrollChild; 918 m_topmostScrollChild = m_nextTopmostScrollChild;
917 m_nextTopmostScrollChild = nullptr; 919 m_nextTopmostScrollChild = nullptr;
918 return layersChanged; 920 return layersChanged;
919 } 921 }
920 922
(...skipping 1030 matching lines...) Expand 10 before | Expand all | Expand 10 after
1951 1953
1952 void PaintLayerScrollableArea::DelayScrollOffsetClampScope:: 1954 void PaintLayerScrollableArea::DelayScrollOffsetClampScope::
1953 clampScrollableAreas() { 1955 clampScrollableAreas() {
1954 for (auto& scrollableArea : *s_needsClamp) 1956 for (auto& scrollableArea : *s_needsClamp)
1955 scrollableArea->clampScrollOffsetsAfterLayout(); 1957 scrollableArea->clampScrollOffsetsAfterLayout();
1956 delete s_needsClamp; 1958 delete s_needsClamp;
1957 s_needsClamp = nullptr; 1959 s_needsClamp = nullptr;
1958 } 1960 }
1959 1961
1960 } // namespace blink 1962 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698