Index: third_party/WebKit/Source/core/layout/LayoutObject.h |
diff --git a/third_party/WebKit/Source/core/layout/LayoutObject.h b/third_party/WebKit/Source/core/layout/LayoutObject.h |
index de88310f5786ba342e80b7a2ff454b9945d4e90e..855f7c743f0420b38e66630138c53670735b9493 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutObject.h |
+++ b/third_party/WebKit/Source/core/layout/LayoutObject.h |
@@ -269,7 +269,7 @@ public: |
LayoutObject* lastLeafChild() const; |
- // The following six functions are used when the layout tree hierarchy changes to make sure layers get |
+ // The following functions are used when the layout tree hierarchy changes to make sure layers get |
// properly added and removed. Since containership can be implemented by any subclass, and since a hierarchy |
// can contain a mixture of boxes and other object types, these functions need to be in the base class. |
PaintLayer* enclosingLayer() const; |
@@ -278,6 +278,10 @@ public: |
void moveLayers(PaintLayer* oldParent, PaintLayer* newParent); |
PaintLayer* findNextLayer(PaintLayer* parentLayer, LayoutObject* startPoint, bool checkParent = true); |
+ // Returns the layer that will paint this object. |
+ // If possible, use the faster PaintInvalidationState::paintingLayer() instead. |
+ PaintLayer* paintingLayer() const; |
+ |
// Scrolling is a LayoutBox concept, however some code just cares about recursively scrolling our enclosing ScrollableArea(s). |
bool scrollRectToVisible( |
const LayoutRect&, |
@@ -1557,9 +1561,12 @@ protected: |
// owned by this object, including the object itself, LayoutText/LayoutInline line boxes, etc., |
// not including children which will be invalidated normally during invalidateTreeIfNeeded() and |
// parts which are invalidated separately (e.g. scrollbars). |
- // The caller should ensure the enclosing layer has been setNeedsRepaint before calling this function. |
+ // The caller should ensure the painting layer has been setNeedsRepaint before calling this function. |
virtual void invalidateDisplayItemClients(const LayoutBoxModelObject& paintInvalidationContainer, PaintInvalidationReason) const; |
+ // If possible, use the faster paintInvalidationState.paintingLayer().setNeedsRepaint(). |
+ void setPaintingLayerNeedsRepaint() const; |
+ |
// Sets enclosing layer needsRepaint, then calls invalidateDisplayItemClients(). |
// Should use this version when PaintInvalidationState is available. |
void invalidateDisplayItemClientsWithPaintInvalidationState(const LayoutBoxModelObject& paintInvalidationContainer, const PaintInvalidationState&, PaintInvalidationReason) const; |
@@ -1616,7 +1623,7 @@ private: |
void invalidatePaintIncludingNonSelfPaintingLayerDescendantsInternal(const LayoutBoxModelObject& paintInvalidationContainer); |
- // The caller should ensure the enclosing layer has been setNeedsRepaint before calling this function. |
+ // The caller should ensure the painting layer has been setNeedsRepaint before calling this function. |
void invalidatePaintOfPreviousPaintInvalidationRect(const LayoutBoxModelObject& paintInvalidationContainer, PaintInvalidationReason); |
LayoutRect previousSelectionRectForPaintInvalidation() const; |