| Index: third_party/WebKit/Source/core/paint/PaintLayer.h
|
| diff --git a/third_party/WebKit/Source/core/paint/PaintLayer.h b/third_party/WebKit/Source/core/paint/PaintLayer.h
|
| index 7f508d5ba7db7c72d317ef847a465280d15535a9..39f0d7e6aef4e0bcdbf4253d7c23862ce3378b96 100644
|
| --- a/third_party/WebKit/Source/core/paint/PaintLayer.h
|
| +++ b/third_party/WebKit/Source/core/paint/PaintLayer.h
|
| @@ -269,6 +269,8 @@ public:
|
| // Allows updates of layer content without invalidating paint.
|
| void contentChanged(ContentChangeType);
|
|
|
| + void updateLayerPosition();
|
| +
|
| void updateLayerPositionsAfterLayout();
|
| void updateLayerPositionsAfterOverflowScroll(const DoubleSize& scrollDelta);
|
|
|
| @@ -544,6 +546,10 @@ public:
|
| const PaintLayer* opacityAncestor;
|
| const PaintLayer* transformAncestor;
|
| const PaintLayer* filterAncestor;
|
| +
|
| + // The fist ancestor which can scroll. This is a subset of the
|
| + // ancestorOverflowLayer chain where the scrolling layer is visible and
|
| + // has a larger scroll content than its bounds.
|
| const PaintLayer* ancestorScrollingLayer;
|
| const PaintLayer* nearestFixedPositionLayer;
|
|
|
| @@ -573,6 +579,7 @@ public:
|
| return m_needsDescendantDependentCompositingInputsUpdate;
|
| }
|
|
|
| + void updateAncestorOverflowLayer(const PaintLayer* ancestorOverflowLayer) { m_ancestorOverflowLayer = ancestorOverflowLayer; }
|
| void updateAncestorDependentCompositingInputs(const AncestorDependentCompositingInputs&, const RareAncestorDependentCompositingInputs&, bool hasAncestorWithClipPath);
|
| void updateDescendantDependentCompositingInputs(bool hasDescendantWithClipPath, bool hasNonIsolatedDescendantWithBlendMode);
|
| void didUpdateCompositingInputs();
|
| @@ -582,6 +589,7 @@ public:
|
| const PaintLayer* transformAncestor() const { ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); return m_rareAncestorDependentCompositingInputs ? m_rareAncestorDependentCompositingInputs->transformAncestor : nullptr; }
|
| const PaintLayer* filterAncestor() const { ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); return m_rareAncestorDependentCompositingInputs ? m_rareAncestorDependentCompositingInputs->filterAncestor : nullptr; }
|
| const LayoutObject* clippingContainer() const { ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); return m_ancestorDependentCompositingInputs.clippingContainer; }
|
| + const PaintLayer* ancestorOverflowLayer() const { return m_ancestorOverflowLayer; }
|
| const PaintLayer* ancestorScrollingLayer() const { ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); return m_rareAncestorDependentCompositingInputs ? m_rareAncestorDependentCompositingInputs->ancestorScrollingLayer : nullptr; }
|
| const PaintLayer* nearestFixedPositionLayer() const { ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); return m_rareAncestorDependentCompositingInputs ? m_rareAncestorDependentCompositingInputs->nearestFixedPositionLayer : nullptr; }
|
| const PaintLayer* scrollParent() const { ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); return m_rareAncestorDependentCompositingInputs ? m_rareAncestorDependentCompositingInputs->scrollParent : nullptr; }
|
| @@ -699,9 +707,6 @@ private:
|
|
|
| void dirtyAncestorChainHasSelfPaintingLayerDescendantStatus();
|
|
|
| - // Returns true if the position changed.
|
| - bool updateLayerPosition();
|
| -
|
| void updateLayerPositionRecursive();
|
| void updateLayerPositionsAfterScrollRecursive(const DoubleSize& scrollDelta, bool paintInvalidationContainerWasScrolled);
|
|
|
| @@ -856,6 +861,9 @@ private:
|
| LayoutUnit m_staticInlinePosition;
|
| LayoutUnit m_staticBlockPosition;
|
|
|
| + // The first ancestor having a non visible overflow.
|
| + const PaintLayer* m_ancestorOverflowLayer;
|
| +
|
| AncestorDependentCompositingInputs m_ancestorDependentCompositingInputs;
|
| OwnPtr<RareAncestorDependentCompositingInputs> m_rareAncestorDependentCompositingInputs;
|
|
|
|
|