Chromium Code Reviews| Index: Source/core/rendering/RenderObject.h |
| diff --git a/Source/core/rendering/RenderObject.h b/Source/core/rendering/RenderObject.h |
| index 1cbb6445c83fdb3cde4465053662e57f248e38bf..23aade146b60a7739dc7bb1ec335f60deecbee64 100644 |
| --- a/Source/core/rendering/RenderObject.h |
| +++ b/Source/core/rendering/RenderObject.h |
| @@ -33,6 +33,7 @@ |
| #include "core/fetch/ImageResourceClient.h" |
| #include "core/html/HTMLElement.h" |
| #include "core/rendering/HitTestRequest.h" |
| +#include "core/rendering/PaintInvalidationState.h" |
| #include "core/rendering/PaintPhase.h" |
| #include "core/rendering/RenderObjectChildList.h" |
| #include "core/rendering/ScrollAlignment.h" |
| @@ -55,7 +56,6 @@ class HitTestLocation; |
| class HitTestResult; |
| class InlineBox; |
| class InlineFlowBox; |
| -class PaintInvalidationState; |
| class Position; |
| class PositionWithAffinity; |
| class PseudoStyleRequest; |
| @@ -1036,7 +1036,7 @@ public: |
| bool onlyNeededPositionedMovementLayout() const { return m_bitfields.onlyNeededPositionedMovementLayout(); } |
| void setOnlyNeededPositionedMovementLayout(bool b) { m_bitfields.setOnlyNeededPositionedMovementLayout(b); } |
| - void clearPaintInvalidationState(); |
| + void clearPaintInvalidationState(const PaintInvalidationState&); |
| // layoutDidGetCalled indicates whether this render object was re-laid-out |
| // since the last call to setLayoutDidGetCalled(false) on this object. |
| @@ -1056,9 +1056,9 @@ public: |
| bool neededLayoutBecauseOfChildren() const { return m_bitfields.neededLayoutBecauseOfChildren(); } |
| void setNeededLayoutBecauseOfChildren(bool b) { m_bitfields.setNeededLayoutBecauseOfChildren(b); } |
| - bool shouldCheckForPaintInvalidation() |
| + bool shouldCheckForPaintInvalidation(const PaintInvalidationState& paintInvalidationState) |
| { |
| - return layoutDidGetCalled() || mayNeedPaintInvalidation() || shouldDoFullPaintInvalidation() || shouldDoFullPaintInvalidationIfSelfPaintingLayer(); |
| + return paintInvalidationState.forceCheckForPaintInvalidation() || layoutDidGetCalled() || mayNeedPaintInvalidation() || shouldDoFullPaintInvalidation() || shouldDoFullPaintInvalidationIfSelfPaintingLayer(); |
| } |
| bool supportsLayoutStateCachedOffsets() const { return !hasColumns() && !hasTransform() && !hasReflection() && !style()->isFlippedBlocksWritingMode(); } |
| @@ -1155,7 +1155,7 @@ private: |
| void markContainingBlockChainForPaintInvalidation() |
| { |
| - for (RenderObject* container = this->container(); container && !container->shouldCheckForPaintInvalidation(); container = container->container()) |
| + for (RenderObject* container = this->container(); container && !container->mayNeedPaintInvalidation() && !container->layoutDidGetCalled(); container = container->container()) |
|
Julien - ping for review
2014/08/01 21:20:01
Won't this make us over-mark as we used to break e
abarth-chromium
2014/08/01 21:22:52
Sure. I'll undo this part of the change. The dow
|
| container->setMayNeedPaintInvalidation(true); |
| } |