Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / editing / RemoveNodePreservingChildrenCommand.cpp
index e5c9921..162c4a8 100644 (file)
@@ -29,7 +29,7 @@
 #include "core/dom/Node.h"
 #include "wtf/Assertions.h"
 
-namespace WebCore {
+namespace blink {
 
 RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand(PassRefPtrWillBeRawPtr<Node> node, ShouldAssumeContentIsAlwaysEditable shouldAssumeContentIsAlwaysEditable)
     : CompositeEditCommand(node->document())
@@ -41,15 +41,15 @@ RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand(PassRef
 
 void RemoveNodePreservingChildrenCommand::doApply()
 {
-    WillBeHeapVector<RefPtrWillBeMember<Node> > children;
-    for (Node* child = m_node->firstChild(); child; child = child->nextSibling())
-        children.append(child);
-
-    size_t size = children.size();
-    for (size_t i = 0; i < size; ++i) {
-        RefPtrWillBeRawPtr<Node> child = children[i].release();
-        removeNode(child, m_shouldAssumeContentIsAlwaysEditable);
-        insertNodeBefore(child.release(), m_node, m_shouldAssumeContentIsAlwaysEditable);
+    if (m_node->isContainerNode()) {
+        NodeVector children;
+        getChildNodes(toContainerNode(*m_node), children);
+
+        for (auto& currentChild : children) {
+            RefPtrWillBeRawPtr<Node> child = currentChild.release();
+            removeNode(child, m_shouldAssumeContentIsAlwaysEditable);
+            insertNodeBefore(child.release(), m_node, m_shouldAssumeContentIsAlwaysEditable);
+        }
     }
     removeNode(m_node, m_shouldAssumeContentIsAlwaysEditable);
 }