| Index: Source/core/layout/LayoutObject.cpp
|
| diff --git a/Source/core/layout/LayoutObject.cpp b/Source/core/layout/LayoutObject.cpp
|
| index adccc386674f10835f452bac266ec018d934a3f3..87252ba212edd3f5e6cbbcee26b05c202460b985 100644
|
| --- a/Source/core/layout/LayoutObject.cpp
|
| +++ b/Source/core/layout/LayoutObject.cpp
|
| @@ -675,7 +675,7 @@ LayoutFlowThread* LayoutObject::locateFlowThreadContainingBlock() const
|
|
|
| bool LayoutObject::skipInvalidationWhenLaidOutChildren() const
|
| {
|
| - if (!neededLayoutBecauseOfChildren())
|
| + if (!m_bitfields.neededLayoutBecauseOfChildren())
|
| return false;
|
|
|
| // SVG layoutObjects need to be invalidated when their children are laid out.
|
| @@ -756,18 +756,18 @@ void LayoutObject::markContainerChainForLayout(bool scheduleRelayout, SubtreeLay
|
| return;
|
| if (willSkipRelativelyPositionedInlines)
|
| container = object->container();
|
| - object->setPosChildNeedsLayout(true);
|
| + object->m_bitfields.setPosChildNeedsLayout(true);
|
| simplifiedNormalFlowLayout = true;
|
| ASSERT(!object->isSetNeedsLayoutForbidden());
|
| } else if (simplifiedNormalFlowLayout) {
|
| if (object->needsSimplifiedNormalFlowLayout())
|
| return;
|
| - object->setNeedsSimplifiedNormalFlowLayout(true);
|
| + object->m_bitfields.setNeedsSimplifiedNormalFlowLayout(true);
|
| ASSERT(!object->isSetNeedsLayoutForbidden());
|
| } else {
|
| if (object->normalChildNeedsLayout())
|
| return;
|
| - object->setNormalChildNeedsLayout(true);
|
| + object->m_bitfields.setNormalChildNeedsLayout(true);
|
| ASSERT(!object->isSetNeedsLayoutForbidden());
|
| }
|
|
|
| @@ -1348,6 +1348,7 @@ void LayoutObject::setPreviousSelectionRectForPaintInvalidation(const LayoutRect
|
| selectionPaintInvalidationMap->set(this, selectionRect);
|
| }
|
|
|
| +// TODO: Remove this for slimming paint v2 because we don't care about paint invalidation rects.
|
| inline void LayoutObject::invalidateSelectionIfNeeded(const LayoutBoxModelObject& paintInvalidationContainer, PaintInvalidationReason invalidationReason)
|
| {
|
| // Update selection rect when we are doing full invalidation (in case that the object is moved, composite status changed, etc.)
|
| @@ -1828,13 +1829,13 @@ void LayoutObject::firstLineStyleDidChange(const ComputedStyle& oldStyle, const
|
| void LayoutObject::markContainingBlocksForOverflowRecalc()
|
| {
|
| for (LayoutBlock* container = containingBlock(); container && !container->childNeedsOverflowRecalcAfterStyleChange(); container = container->containingBlock())
|
| - container->setChildNeedsOverflowRecalcAfterStyleChange(true);
|
| + container->m_bitfields.setChildNeedsOverflowRecalcAfterStyleChange(true);
|
| }
|
|
|
| void LayoutObject::setNeedsOverflowRecalcAfterStyleChange()
|
| {
|
| bool neededRecalc = needsOverflowRecalcAfterStyleChange();
|
| - setSelfNeedsOverflowRecalcAfterStyleChange(true);
|
| + m_bitfields.setSelfNeedsOverflowRecalcAfterStyleChange(true);
|
| if (!neededRecalc)
|
| markContainingBlocksForOverflowRecalc();
|
| }
|
| @@ -2668,7 +2669,7 @@ PositionWithAffinity LayoutObject::positionForPoint(const LayoutPoint&)
|
| void LayoutObject::updateDragState(bool dragOn)
|
| {
|
| bool valueChanged = (dragOn != isDragging());
|
| - setIsDragging(dragOn);
|
| + m_bitfields.setIsDragging(dragOn);
|
| if (valueChanged && node()) {
|
| if (node()->isElementNode() && toElement(node())->childrenOrSiblingsAffectedByDrag())
|
| node()->setNeedsStyleRecalc(SubtreeStyleChange, StyleChangeReasonForTracing::create(StyleChangeReason::Drag));
|
| @@ -2753,7 +2754,7 @@ void LayoutObject::scheduleRelayout()
|
|
|
| void LayoutObject::forceLayout()
|
| {
|
| - setSelfNeedsLayout(true);
|
| + m_bitfields.setSelfNeedsLayout(true);
|
| setShouldDoFullPaintInvalidation();
|
| layout();
|
| }
|
| @@ -2762,7 +2763,7 @@ void LayoutObject::forceLayout()
|
| // the containing block chain. If not, we should change all callers to use forceLayout.
|
| void LayoutObject::forceChildLayout()
|
| {
|
| - setNormalChildNeedsLayout(true);
|
| + m_bitfields.setNormalChildNeedsLayout(true);
|
| layout();
|
| }
|
|
|
| @@ -3200,16 +3201,7 @@ static PaintInvalidationReason documentLifecycleBasedPaintInvalidationReason(con
|
| inline void LayoutObject::markContainerChainForPaintInvalidation()
|
| {
|
| for (LayoutObject* container = this->containerCrossingFrameBoundaries(); container && !container->shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState(); container = container->containerCrossingFrameBoundaries())
|
| - container->setSelfMayNeedPaintInvalidation();
|
| -}
|
| -
|
| -void LayoutObject::setLayoutDidGetCalledSinceLastFrame()
|
| -{
|
| - m_bitfields.setLayoutDidGetCalledSinceLastFrame(true);
|
| -
|
| - // Make sure our parent is marked as needing invalidation.
|
| - // This would be unneeded if we allowed sub-tree invalidation (akin to sub-tree layouts).
|
| - markContainerChainForPaintInvalidation();
|
| + container->m_bitfields.setChildShouldCheckForPaintInvalidation(true);
|
| }
|
|
|
| void LayoutObject::setShouldInvalidateSelection()
|
| @@ -3246,32 +3238,21 @@ void LayoutObject::setMayNeedPaintInvalidation()
|
| if (mayNeedPaintInvalidation())
|
| return;
|
| m_bitfields.setMayNeedPaintInvalidation(true);
|
| - // Make sure our parent is marked as needing invalidation.
|
| markContainerChainForPaintInvalidation();
|
| frame()->page()->animator().scheduleVisualUpdate(); // In case that this is called outside of FrameView::updateLayoutAndStyleForPainting().
|
| }
|
|
|
| -void LayoutObject::clearMayNeedPaintInvalidation()
|
| -{
|
| - m_bitfields.setMayNeedPaintInvalidation(false);
|
| -}
|
| -
|
| -void LayoutObject::setSelfMayNeedPaintInvalidation()
|
| -{
|
| - m_bitfields.setMayNeedPaintInvalidation(true);
|
| -}
|
| -
|
| void LayoutObject::clearPaintInvalidationState(const PaintInvalidationState& paintInvalidationState)
|
| {
|
| // paintInvalidationStateIsDirty should be kept in sync with the
|
| // booleans that are cleared below.
|
| ASSERT(paintInvalidationState.ancestorHadPaintInvalidationForLocationChange() || paintInvalidationStateIsDirty());
|
| clearShouldDoFullPaintInvalidation();
|
| - setNeededLayoutBecauseOfChildren(false);
|
| - setShouldInvalidateOverflowForPaint(false);
|
| - clearLayoutDidGetCalledSinceLastFrame();
|
| - clearMayNeedPaintInvalidation();
|
| - clearShouldInvalidateSelection();
|
| + m_bitfields.setChildShouldCheckForPaintInvalidation(false);
|
| + m_bitfields.setNeededLayoutBecauseOfChildren(false);
|
| + m_bitfields.setShouldInvalidateOverflowForPaint(false);
|
| + m_bitfields.setMayNeedPaintInvalidation(false);
|
| + m_bitfields.setShouldInvalidateSelection(false);
|
| }
|
|
|
| bool LayoutObject::isAllowedToModifyLayoutTreeStructure(Document& document)
|
|
|