Index: third_party/WebKit/Source/core/layout/LayoutBoxModelObject.h |
diff --git a/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.h b/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.h |
index 9e70e1aaf10714c69aa0332abc9d0148bac6fe8b..f9a3b61e1d516842597ecf9ab7cd987eb005761c 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.h |
+++ b/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.h |
@@ -62,6 +62,7 @@ enum ContentChangeType { |
}; |
class InlineFlowBox; |
+class StickyPositionViewportConstraints; |
// This class is the base class for all CSS objects. |
// |
@@ -137,6 +138,10 @@ public: |
LayoutSize relativePositionOffset() const; |
LayoutSize relativePositionLogicalOffset() const { return style()->isHorizontalWritingMode() ? relativePositionOffset() : relativePositionOffset().transposedSize(); } |
+ void computeStickyPositionConstraints(StickyPositionViewportConstraints&, const LayoutRect& constrainingRect) const; |
+ LayoutRect computeStickyConstrainingRect() const; |
+ LayoutSize stickyPositionOffset() const; |
+ |
LayoutSize offsetForInFlowPosition() const; |
// IE extensions. Used to calculate offsetWidth/Height. Overridden by inlines (LayoutFlow) |
@@ -335,6 +340,10 @@ private: |
LayoutUnit computedCSSPadding(const Length&) const; |
bool isBoxModelObject() const final { return true; } |
+ // Returns the bounding rectangle to be used when determining sticky positioning offset. This is the frame rect |
+ // for box objects and the lines bounding box for inline objects. |
+ virtual LayoutRect frameRectForStickyPositioning() const = 0; |
+ |
// The DeprecatedPaintLayer associated with this object. |
// |m_layer| can be nullptr depending on the return value of layerTypeRequired(). |
OwnPtr<DeprecatedPaintLayer> m_layer; |