Index: third_party/WebKit/Source/core/frame/VisualViewport.h |
diff --git a/third_party/WebKit/Source/core/frame/VisualViewport.h b/third_party/WebKit/Source/core/frame/VisualViewport.h |
index 295c52a5ef9f2c88d69bd495aa220c02a8b0a980..e0bd6a0babd2bc7f5becadce5fcdb82a47ee40aa 100644 |
--- a/third_party/WebKit/Source/core/frame/VisualViewport.h |
+++ b/third_party/WebKit/Source/core/frame/VisualViewport.h |
@@ -55,6 +55,7 @@ class GraphicsLayer; |
class IntRect; |
class IntSize; |
class LocalFrame; |
+class ScrollAndScaleEmulator; |
// Represents the visual viewport the user is currently seeing the page through. This |
// class corresponds to the InnerViewport on the compositor. It is a ScrollableArea; it's |
@@ -100,6 +101,9 @@ public: |
void move(const FloatSize&); |
FloatPoint location() const { return m_offset; } |
+ // Override the scroll location and scale with values from the emulator. Passing |nullptr| clears override. |
+ void setScrollAndScaleEmulator(const RefPtr<ScrollAndScaleEmulator>&); |
+ |
// Sets the size of the inner viewport when unscaled in CSS pixels. |
void setSize(const IntSize&); |
IntSize size() const { return m_size; } |
@@ -181,6 +185,7 @@ public: |
IntPoint scrollPosition() const override { return flooredIntPoint(m_offset); } |
DoublePoint scrollPositionDouble() const override { return m_offset; } |
IntPoint minimumScrollPosition() const override; |
+ DoublePoint minimumScrollPositionDouble() const override; |
IntPoint maximumScrollPosition() const override; |
DoublePoint maximumScrollPositionDouble() const override; |
int visibleHeight() const override { return visibleRect().height(); } |
@@ -235,6 +240,10 @@ private: |
void setupScrollbar(WebScrollbar::Orientation); |
FloatPoint clampOffsetToBoundaries(const FloatPoint&); |
+ // Calculate the physical minimum/maximum scroll positions without any overrides applied. |
+ DoublePoint calculateMinimumScrollPositionDouble() const; |
+ DoublePoint calculateMaximumScrollPositionDouble() const; |
+ |
LocalFrame* mainFrame() const; |
FrameHost& frameHost() const |
@@ -261,6 +270,8 @@ private: |
float m_topControlsAdjustment; |
float m_maxPageScale; |
bool m_trackPinchZoomStatsForPage; |
+ |
+ RefPtr<ScrollAndScaleEmulator> m_scrollAndScaleEmulator; |
}; |
} // namespace blink |