Bug 1471866 - Ensure viewport scrollbar uses style from root element. r?spohl draft
authorXidorn Quan <me@upsuper.org>
Thu, 28 Jun 2018 22:03:33 +1000
changeset 811979 00137e38ea059282bbc99a5f3829374fbf7cf817
parent 811976 4a7b47cb3fb2b97e7c3d625e4a728c453d775116
push id114439
push userxquan@mozilla.com
push dateThu, 28 Jun 2018 12:04:14 +0000
reviewersspohl
bugs1471866
milestone62.0a1
Bug 1471866 - Ensure viewport scrollbar uses style from root element. r?spohl MozReview-Commit-ID: 1rIJFJHN0vf
widget/cocoa/nsNativeThemeCocoa.mm
--- a/widget/cocoa/nsNativeThemeCocoa.mm
+++ b/widget/cocoa/nsNativeThemeCocoa.mm
@@ -2740,22 +2740,25 @@ nsNativeThemeCocoa::ComputeScrollbarPara
   params.small =
     (scrollbarFrame &&
      scrollbarFrame->StyleDisplay()->mAppearance == NS_THEME_SCROLLBAR_SMALL);
   params.rtl = IsFrameRTL(aFrame);
   params.horizontal = aIsHorizontal;
   params.onDarkBackground = IsDarkBackground(aFrame);
   // Don't use custom scrollbars for overlay scrollbars since they are
   // generally good enough for use cases of custom scrollbars.
-  if (!params.overlay &&
-      aFrame->StyleUserInterface()->HasCustomScrollbars()) {
-    ComputedStyle* cs = aFrame->Style();
-    params.custom = true;
-    params.trackColor = GetScrollbarTrackColor(cs, &GetAutoScrollbarTrackColor);
-    params.faceColor = GetScrollbarFaceColor(cs, &GetAutoScrollbarFaceColor);
+  if (!params.overlay) {
+    ComputedStyle* style = nsLayoutUtils::StyleForScrollbar(aFrame);
+    if (style->StyleUserInterface()->HasCustomScrollbars()) {
+      params.custom = true;
+      params.trackColor =
+        GetScrollbarTrackColor(style, &GetAutoScrollbarTrackColor);
+      params.faceColor =
+        GetScrollbarFaceColor(style, &GetAutoScrollbarFaceColor);
+    }
   }
   return params;
 }
 
 void
 nsNativeThemeCocoa::DrawScrollbarThumb(CGContextRef cgContext,
                                        const CGRect& inBoxRect,
                                        ScrollbarParams aParams)