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 42981f29158d71e337b3ca41ac79525877ea5ebe..f9063fd1b9f93a1868512895e0876a4acd07d7ef 100644 |
--- a/third_party/WebKit/Source/core/paint/PaintLayer.h |
+++ b/third_party/WebKit/Source/core/paint/PaintLayer.h |
@@ -271,6 +271,8 @@ public: |
// Allows updates of layer content without invalidating paint. |
void contentChanged(ContentChangeType); |
+ void updateLayerPosition(); |
+ |
void updateLayerPositionsAfterLayout(); |
void updateLayerPositionsAfterOverflowScroll(const DoubleSize& scrollDelta); |
@@ -534,6 +536,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; |
@@ -563,6 +569,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(); |
@@ -572,6 +579,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; } |
@@ -689,9 +697,6 @@ private: |
void dirtyAncestorChainHasSelfPaintingLayerDescendantStatus(); |
- // Returns true if the position changed. |
- bool updateLayerPosition(); |
- |
void updateLayerPositionRecursive(); |
void updateLayerPositionsAfterScrollRecursive(const DoubleSize& scrollDelta, bool paintInvalidationContainerWasScrolled); |
@@ -748,6 +753,8 @@ private: |
// Both updates the status, and returns true if descendants of this have 3d. |
bool update3DTransformedDescendantStatus(); |
+ void removeAncestorOverflowLayer(const PaintLayer* removedLayer); |
+ |
void updateOrRemoveFilterClients(); |
void updatePaginationRecursive(bool needsPaginationUpdate = false); |
@@ -845,6 +852,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; |