Index: Source/core/layout/LayoutBlock.cpp |
diff --git a/Source/core/layout/LayoutBlock.cpp b/Source/core/layout/LayoutBlock.cpp |
index 8a8a501728446a671a73c27a1a25ac612f4120a5..1c2874ee97b8a81c3959a41400aee7fe6dfe3e22 100644 |
--- a/Source/core/layout/LayoutBlock.cpp |
+++ b/Source/core/layout/LayoutBlock.cpp |
@@ -720,9 +720,9 @@ void LayoutBlock::splitFlow(LayoutObject* beforeChild, LayoutBlock* newBlockBox, |
// Always just do a full layout in order to ensure that line boxes (especially wrappers for images) |
// get deleted properly. Because objects moves from the pre block into the post block, we want to |
// make new line boxes instead of leaving the old line boxes around. |
- pre->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
- block->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
- post->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
+ pre->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(LayoutInvalidationReason::ColumnsChanged); |
+ block->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(LayoutInvalidationReason::ColumnsChanged); |
+ post->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(LayoutInvalidationReason::ColumnsChanged); |
} |
void LayoutBlock::makeChildrenAnonymousColumnBlocks(LayoutObject* beforeChild, LayoutBlockFlow* newBlockBox, LayoutObject* newChild) |
@@ -770,10 +770,10 @@ void LayoutBlock::makeChildrenAnonymousColumnBlocks(LayoutObject* beforeChild, L |
// get deleted properly. Because objects moved from the pre block into the post block, we want to |
// make new line boxes instead of leaving the old line boxes around. |
if (pre) |
- pre->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
- block->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
+ pre->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(LayoutInvalidationReason::ColumnsChanged); |
+ block->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(LayoutInvalidationReason::ColumnsChanged); |
if (post) |
- post->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
+ post->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(LayoutInvalidationReason::ColumnsChanged); |
} |
LayoutBlockFlow* LayoutBlock::columnsBlockForSpanningElement(LayoutObject* newChild) |
@@ -1124,7 +1124,7 @@ void LayoutBlock::collapseAnonymousBlockChild(LayoutBlock* parent, LayoutBlock* |
// destroyed. See crbug.com/282088 |
if (child->beingDestroyed()) |
return; |
- parent->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
+ parent->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(LayoutInvalidationReason::ChildAnonymousBlockChanged); |
parent->setChildrenInline(child->childrenInline()); |
LayoutObject* nextSibling = child->nextSibling(); |
@@ -1164,7 +1164,7 @@ void LayoutBlock::removeChild(LayoutObject* oldChild) |
LayoutObject* next = oldChild->nextSibling(); |
bool canMergeAnonymousBlocks = canMergeContiguousAnonymousBlocks(oldChild, prev, next); |
if (canMergeAnonymousBlocks && prev && next) { |
- prev->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
+ prev->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(LayoutInvalidationReason::AnonymousBlockChange); |
LayoutBlockFlow* nextBlock = toLayoutBlockFlow(next); |
LayoutBlockFlow* prevBlock = toLayoutBlockFlow(prev); |
@@ -1186,7 +1186,7 @@ void LayoutBlock::removeChild(LayoutObject* oldChild) |
// Now just put the inlineChildrenBlock inside the blockChildrenBlock. |
blockChildrenBlock->children()->insertChildNode(blockChildrenBlock, inlineChildrenBlock, prev == inlineChildrenBlock ? blockChildrenBlock->firstChild() : 0, |
inlineChildrenBlockHasLayer || blockChildrenBlock->hasLayer()); |
- next->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(); |
+ next->setNeedsLayoutAndPrefWidthsRecalcAndFullPaintInvalidation(LayoutInvalidationReason::AnonymousBlockChange); |
// inlineChildrenBlock got reparented to blockChildrenBlock, so it is no longer a child |
// of "this". we null out prev or next so that is not used later in the function. |
@@ -1738,7 +1738,7 @@ void LayoutBlock::layoutPositionedObjects(bool relayoutChildren, PositionedLayou |
// FIXME: We should be able to do a r->setNeedsPositionedMovementLayout() here instead of a full layout. Need |
// to investigate why it does not trigger the correct invalidations in that case. crbug.com/350756 |
if (info == ForcedLayoutAfterContainingBlockMoved) |
- r->setNeedsLayout(MarkOnlyThis); |
+ r->setNeedsLayout(LayoutInvalidationReason::AncestorMoved, MarkOnlyThis); |
r->layoutIfNeeded(); |