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 406c8637b200c0261f950ebfcc626b5878ec486e..a5bbaeccefaf781bf65d478ececd027bd3442bd2 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 |
@@ -108,6 +109,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(ScrollAndScaleEmulator*); |
+ |
// Sets the size of the inner viewport when unscaled in CSS pixels. |
void setSize(const IntSize&); |
IntSize size() const { return m_size; } |
@@ -189,6 +193,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(); } |
@@ -247,6 +252,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 |
@@ -273,6 +282,8 @@ private: |
float m_topControlsAdjustment; |
float m_maxPageScale; |
bool m_trackPinchZoomStatsForPage; |
+ |
+ Member<ScrollAndScaleEmulator> m_scrollAndScaleEmulator; |
}; |
} // namespace blink |