Index: Source/core/layout/LayoutObjectChildList.cpp |
diff --git a/Source/core/layout/LayoutObjectChildList.cpp b/Source/core/layout/LayoutObjectChildList.cpp |
index bcccbc081c0f36bbca307764c7ef40b7d8fcc7f2..6bd46f3c096e8e467be1ff853105527b62196d2a 100644 |
--- a/Source/core/layout/LayoutObjectChildList.cpp |
+++ b/Source/core/layout/LayoutObjectChildList.cpp |
@@ -28,6 +28,7 @@ |
#include "core/layout/LayoutObjectChildList.h" |
#include "core/dom/AXObjectCache.h" |
+#include "core/dom/MarkerPseudoElement.h" |
#include "core/layout/LayoutCounter.h" |
#include "core/layout/LayoutObject.h" |
#include "core/layout/LayoutView.h" |
@@ -39,6 +40,9 @@ namespace blink { |
void LayoutObjectChildList::destroyLeftoverChildren() |
{ |
while (firstChild()) { |
+ // RuntimeEnabledFeatures::listMarkerPseudoElementEnabled |
+ // List markers are owned by the list marker pseudo element and so don't get destroyed by this container. |
+ // else |
// List markers are owned by their enclosing list and so don't get destroyed by this container. |
if (firstChild()->isListMarker()) { |
firstChild()->remove(); |
@@ -156,6 +160,9 @@ void LayoutObjectChildList::insertChildNode(LayoutObject* owner, LayoutObject* n |
LayoutCounter::layoutObjectSubtreeAttached(newChild); |
} |
+ if (RuntimeEnabledFeatures::listMarkerPseudoElementEnabled() && owner->isListItem()) |
+ newChild->setAncestorNeedsSubtreeChangeNotification(true); |
+ |
newChild->setNeedsLayoutAndPrefWidthsRecalc(LayoutInvalidationReason::AddedToLayout); |
newChild->setShouldDoFullPaintInvalidation(PaintInvalidationRendererInsertion); |
if (!owner->normalChildNeedsLayout()) |