#include "core/dom/Node.h"
#include "wtf/Assertions.h"
-namespace WebCore {
+namespace blink {
RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand(PassRefPtrWillBeRawPtr<Node> node, ShouldAssumeContentIsAlwaysEditable shouldAssumeContentIsAlwaysEditable)
: CompositeEditCommand(node->document())
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);
}