Example #1
0
void LayoutObjectChildList::invalidatePaintOnRemoval(LayoutObject& oldChild)
{
    if (!oldChild.isRooted())
        return;
    if (oldChild.isBody()) {
        oldChild.view()->setShouldDoFullPaintInvalidation();
        return;
    }
    oldChild.invalidatePaintOfPreviousPaintInvalidationRect(oldChild.containerForPaintInvalidation(), PaintInvalidationLayoutObjectRemoval);
}
void LayoutObjectChildList::invalidatePaintOnRemoval(LayoutObject& oldChild) {
    if (!oldChild.isRooted())
        return;
    if (oldChild.isBody())
        oldChild.view()->setShouldDoFullPaintInvalidation();
    ObjectPaintInvalidator paintInvalidator(oldChild);
    paintInvalidator.slowSetPaintingLayerNeedsRepaint();
    paintInvalidator.invalidatePaintOfPreviousVisualRect(
        oldChild.containerForPaintInvalidation(),
        PaintInvalidationLayoutObjectRemoval);
}
void LayoutObjectChildList::invalidatePaintOnRemoval(const LayoutObject& oldChild)
{
    if (!oldChild.isRooted())
        return;
    if (oldChild.isBody()) {
        oldChild.view()->setShouldDoFullPaintInvalidation();
        return;
    }

    DisableCompositingQueryAsserts disabler;
    // FIXME: We should not allow paint invalidation out of paint invalidation state. crbug.com/457415
    DisablePaintInvalidationStateAsserts paintInvalidationAssertDisabler;
    const LayoutBoxModelObject& paintInvalidationContainer = *oldChild.containerForPaintInvalidation();
    oldChild.invalidatePaintUsingContainer(paintInvalidationContainer, oldChild.previousPaintInvalidationRect(), PaintInvalidationLayoutObjectRemoval);
    if (RuntimeEnabledFeatures::slimmingPaintEnabled())
        oldChild.invalidateDisplayItemClients(paintInvalidationContainer);
}