Index: third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h |
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h |
index 38921fb6fea0b5796e5a0bbc80b01c473cd4abc7..7f1f1ea597075844a9a3a614a7a1dc63580c6326 100644 |
--- a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h |
+++ b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h |
@@ -310,29 +310,50 @@ |
ScrollBehavior scrollBehaviorStyle() const override; |
CompositorAnimationTimeline* compositorAnimationTimeline() const override; |
+ double scrollXOffset() const { |
+ return m_scrollOffset.width() + scrollOrigin().x(); |
+ } |
+ double scrollYOffset() const { |
+ return m_scrollOffset.height() + scrollOrigin().y(); |
+ } |
+ |
DoubleSize scrollOffset() const { return m_scrollOffset; } |
// FIXME: We shouldn't allow access to m_overflowRect outside this class. |
LayoutRect overflowRect() const { return m_overflowRect; } |
+ void scrollToPosition(const DoublePoint& scrollPosition, |
+ ScrollOffsetClamping = ScrollOffsetUnclamped, |
+ ScrollBehavior = ScrollBehaviorInstant, |
+ ScrollType = ProgrammaticScroll); |
+ |
void scrollToOffset(const DoubleSize& scrollOffset, |
+ ScrollOffsetClamping clamp = ScrollOffsetUnclamped, |
ScrollBehavior scrollBehavior = ScrollBehaviorInstant, |
ScrollType scrollType = ProgrammaticScroll) { |
- ScrollableArea::setScrollPosition(-scrollOrigin() + scrollOffset, |
- scrollType, scrollBehavior); |
+ scrollToPosition(-scrollOrigin() + scrollOffset, clamp, scrollBehavior, |
+ scrollType); |
+ } |
+ |
+ void scrollToXOffset(double x, |
+ ScrollOffsetClamping clamp = ScrollOffsetUnclamped, |
+ ScrollBehavior scrollBehavior = ScrollBehaviorInstant) { |
+ scrollToOffset(DoubleSize(x, scrollYOffset()), clamp, scrollBehavior); |
+ } |
+ |
+ void scrollToYOffset(double y, |
+ ScrollOffsetClamping clamp = ScrollOffsetUnclamped, |
+ ScrollBehavior scrollBehavior = ScrollBehaviorInstant) { |
+ scrollToOffset(DoubleSize(scrollXOffset(), y), clamp, scrollBehavior); |
} |
void setScrollPosition( |
const DoublePoint& position, |
ScrollType scrollType, |
ScrollBehavior scrollBehavior = ScrollBehaviorInstant) override { |
- scrollToOffset(toDoubleSize(position), scrollBehavior, scrollType); |
- } |
- |
- // This will set the scroll position without clamping, and it will do all |
- // post-update work even if the scroll position didn't change. |
- void setScrollPositionUnconditionally(const DoublePoint&, |
- ScrollType = ProgrammaticScroll); |
+ scrollToOffset(toDoubleSize(position), ScrollOffsetClamped, scrollBehavior, |
+ scrollType); |
+ } |
// TODO(szager): Actually run these after all of layout is finished. Currently, they |
// run at the end of box()'es layout (or after all flexbox layout has finished) but while |
@@ -375,7 +396,7 @@ |
OverlayScrollbarClipBehavior = IgnoreOverlayScrollbarSize) const; |
DoubleSize adjustedScrollOffset() const { |
- return toDoubleSize(DoublePoint(scrollOrigin()) + m_scrollOffset); |
+ return DoubleSize(scrollXOffset(), scrollYOffset()); |
} |
void positionOverflowControls(); |