| 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 87dd24a0fc8f655055b21fc360ebbc36a5a4dcf9..dd79e0cdef4c902bdf7c37feb8ef3552e837620f 100644
|
| --- a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
|
| +++ b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
|
| @@ -638,13 +638,13 @@ void PaintLayerScrollableArea::computeScrollDimensions()
|
| setScrollOrigin(IntPoint(-scrollableLeftOverflow, -scrollableTopOverflow));
|
| }
|
|
|
| -void PaintLayerScrollableArea::scrollToPosition(const DoublePoint& scrollPosition, ScrollOffsetClamping clamp, ScrollBehavior scrollBehavior)
|
| +void PaintLayerScrollableArea::scrollToPosition(const DoublePoint& scrollPosition, ScrollOffsetClamping clamp, ScrollBehavior scrollBehavior, ScrollType scrollType)
|
| {
|
| cancelProgrammaticScrollAnimation();
|
|
|
| DoublePoint newScrollPosition = clamp == ScrollOffsetClamped ? clampScrollPosition(scrollPosition) : scrollPosition;
|
| if (newScrollPosition != scrollPositionDouble())
|
| - ScrollableArea::setScrollPosition(newScrollPosition, ProgrammaticScroll, scrollBehavior);
|
| + ScrollableArea::setScrollPosition(newScrollPosition, scrollType, scrollBehavior);
|
| }
|
|
|
| void PaintLayerScrollableArea::updateScrollDimensions(DoubleSize& scrollOffset, bool& autoHorizontalScrollBarChanged, bool& autoVerticalScrollBarChanged)
|
| @@ -1001,6 +1001,10 @@ static inline const LayoutObject& layoutObjectForScrollbar(const LayoutObject& l
|
| if (frameLayoutObject && frameLayoutObject->style()->hasPseudoStyle(SCROLLBAR))
|
| return *frameLayoutObject;
|
| }
|
| +
|
| + if (layoutObject.styleRef().hasPseudoStyle(SCROLLBAR))
|
| + return layoutObject;
|
| +
|
| if (ShadowRoot* shadowRoot = node->containingShadowRoot()) {
|
| if (shadowRoot->type() == ShadowRootType::UserAgent)
|
| return *shadowRoot->host()->layoutObject();
|
| @@ -1351,7 +1355,7 @@ void PaintLayerScrollableArea::resize(const PlatformEvent& evt, const LayoutSize
|
| // FIXME (Radar 4118564): We should also autoscroll the window as necessary to keep the point under the cursor in view.
|
| }
|
|
|
| -LayoutRect PaintLayerScrollableArea::scrollIntoView(const LayoutRect& rect, const ScrollAlignment& alignX, const ScrollAlignment& alignY)
|
| +LayoutRect PaintLayerScrollableArea::scrollIntoView(const LayoutRect& rect, const ScrollAlignment& alignX, const ScrollAlignment& alignY, ScrollType scrollType)
|
| {
|
| LayoutRect localExposeRect(box().absoluteToLocalQuad(FloatQuad(FloatRect(rect)), UseTransforms).boundingBox());
|
| localExposeRect.move(-box().borderLeft(), -box().borderTop());
|
| @@ -1363,7 +1367,7 @@ LayoutRect PaintLayerScrollableArea::scrollIntoView(const LayoutRect& rect, cons
|
| return rect;
|
|
|
| DoubleSize oldScrollOffset = adjustedScrollOffset();
|
| - scrollToPosition(clampedScrollPosition);
|
| + scrollToPosition(clampedScrollPosition, ScrollOffsetUnclamped, ScrollBehaviorInstant, scrollType);
|
| DoubleSize scrollOffsetDifference = adjustedScrollOffset() - oldScrollOffset;
|
| localExposeRect.move(-LayoutSize(scrollOffsetDifference));
|
| return LayoutRect(box().localToAbsoluteQuad(FloatQuad(FloatRect(localExposeRect)), UseTransforms).boundingBox());
|
|
|