Index: third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp |
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp |
index 1196067e9c6eb6914d57bbe11334d570bd5d9d6b..61f8dc43cdd717225dc6e5f145a83518d1726f71 100644 |
--- a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp |
+++ b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp |
@@ -691,14 +691,20 @@ void PaintLayerScrollableArea::updateAfterLayout() { |
// We need to layout again if scrollbars are added or removed by |
// overflow:auto, or by changing between native and custom. |
+ DCHECK(box().frame()->settings()); |
bool horizontalScrollbarShouldChange = |
- (box().hasAutoHorizontalScrollbar() && |
- (hasHorizontalScrollbar() != shouldHaveAutoHorizontalScrollbar)) || |
- (box().style()->overflowX() == OverflowScroll && !horizontalScrollbar()); |
+ ((box().hasAutoHorizontalScrollbar() && |
+ (hasHorizontalScrollbar() != shouldHaveAutoHorizontalScrollbar)) || |
+ (box().style()->overflowX() == OverflowScroll && |
+ !horizontalScrollbar())) && |
+ (!box().frame()->settings()->hideScrollbars() || |
+ hasHorizontalScrollbar()); |
bool verticalScrollbarShouldChange = |
- (box().hasAutoVerticalScrollbar() && |
- (hasVerticalScrollbar() != shouldHaveAutoVerticalScrollbar)) || |
- (box().style()->overflowY() == OverflowScroll && !verticalScrollbar()); |
+ ((box().hasAutoVerticalScrollbar() && |
+ (hasVerticalScrollbar() != shouldHaveAutoVerticalScrollbar)) || |
+ (box().style()->overflowY() == OverflowScroll && |
+ !verticalScrollbar())) && |
+ (!box().frame()->settings()->hideScrollbars() || hasVerticalScrollbar()); |
bool scrollbarsWillChange = |
!scrollbarsAreFrozen && !visualViewportSuppliesScrollbars() && |
(horizontalScrollbarShouldChange || verticalScrollbarShouldChange); |
@@ -938,15 +944,13 @@ void PaintLayerScrollableArea::updateAfterStyleChange( |
// With overflow: scroll, scrollbars are always visible but may be disabled. |
// When switching to another value, we need to re-enable them (see bug 11985). |
- if (needsHorizontalScrollbar && oldStyle && |
+ if (hasHorizontalScrollbar() && oldStyle && |
oldStyle->overflowX() == OverflowScroll && overflowX != OverflowScroll) { |
- ASSERT(hasHorizontalScrollbar()); |
horizontalScrollbar()->setEnabled(true); |
} |
- if (needsVerticalScrollbar && oldStyle && |
+ if (hasVerticalScrollbar() && oldStyle && |
oldStyle->overflowY() == OverflowScroll && overflowY != OverflowScroll) { |
- ASSERT(hasVerticalScrollbar()); |
verticalScrollbar()->setEnabled(true); |
} |