Index: Source/core/dom/ContainerNode.cpp |
diff --git a/Source/core/dom/ContainerNode.cpp b/Source/core/dom/ContainerNode.cpp |
index e9864bcd16ca9fb5d54ccd980cf004b0762e994c..75f7f4121ea9b502b41dbbcbd7bfe13b52734ce5 100644 |
--- a/Source/core/dom/ContainerNode.cpp |
+++ b/Source/core/dom/ContainerNode.cpp |
@@ -618,7 +618,7 @@ void ContainerNode::parserRemoveChild(Node& oldChild) |
// This differs from other remove functions because it forcibly removes all the children, |
// regardless of read-only status or event exceptions, e.g. |
-void ContainerNode::removeChildren() |
+void ContainerNode::removeChildren(SubtreeModificationAction action) |
{ |
if (!m_firstChild) |
return; |
@@ -671,10 +671,7 @@ void ContainerNode::removeChildren() |
childrenChanged(change); |
} |
- // We don't fire the DOMSubtreeModified event for Attr Nodes. This matches the behavior |
- // of IE and Firefox. This event is fired synchronously and is a source of trouble for |
- // attributes as the JS callback could alter the attributes and leave us in a bad state. |
- if (!isAttributeNode()) |
+ if (action == DispatchSubtreeModifiedEvent) |
dispatchSubtreeModifiedEvent(); |
} |