| 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();
|
| }
|
|
|
|
|