Index: Source/core/rendering/RenderObjectChildList.cpp |
diff --git a/Source/core/rendering/RenderObjectChildList.cpp b/Source/core/rendering/RenderObjectChildList.cpp |
index 6369bdcd2a1e2f594e8cf63297a3cbb12a3514c1..bee520d00a8627032c23944cdc2bcf18466fb6a9 100644 |
--- a/Source/core/rendering/RenderObjectChildList.cpp |
+++ b/Source/core/rendering/RenderObjectChildList.cpp |
@@ -28,6 +28,7 @@ |
#include "core/rendering/RenderObjectChildList.h" |
#include "core/dom/AXObjectCache.h" |
+#include "core/dom/MarkerPseudoElement.h" |
#include "core/layout/LayoutCounter.h" |
#include "core/rendering/RenderLayer.h" |
#include "core/rendering/RenderObject.h" |
@@ -47,7 +48,16 @@ void RenderObjectChildList::destroyLeftoverChildren() |
while (firstChild()) { |
// List markers are owned by their enclosing list and so don't get destroyed by this container. |
if (firstChild()->isListMarker()) { |
- firstChild()->remove(); |
+ if (RuntimeEnabledFeatures::listMarkerPseudoElementEnabled()) { |
Julien - ping for review
2015/02/04 01:56:34
Adding a branch here is not a great idea. It would
dsinclair
2015/02/04 04:41:33
The problem is, MarkerPseudoElement isn't invoked.
|
+ if (firstChild()->node() && firstChild()->node()->isMarkerPseudoElement() && firstChild()->node()->parentNode()) { |
+ toMarkerPseudoElement(firstChild()->node())->removeListMarker(); |
+ firstChild()->destroy(); |
+ } else { |
+ firstChild()->remove(); |
+ } |
+ } else { |
+ firstChild()->remove(); |
+ } |
continue; |
} |