summaryrefslogtreecommitdiff
path: root/Source/WebCore/editing/RemoveNodeCommand.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/editing/RemoveNodeCommand.cpp')
-rw-r--r--Source/WebCore/editing/RemoveNodeCommand.cpp28
1 files changed, 13 insertions, 15 deletions
diff --git a/Source/WebCore/editing/RemoveNodeCommand.cpp b/Source/WebCore/editing/RemoveNodeCommand.cpp
index 67d9c56d6..916a4f8c3 100644
--- a/Source/WebCore/editing/RemoveNodeCommand.cpp
+++ b/Source/WebCore/editing/RemoveNodeCommand.cpp
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
@@ -26,19 +26,17 @@
#include "config.h"
#include "RemoveNodeCommand.h"
-#include "ExceptionCodePlaceholder.h"
-#include "Node.h"
#include "RenderElement.h"
+#include "htmlediting.h"
#include <wtf/Assertions.h>
namespace WebCore {
-RemoveNodeCommand::RemoveNodeCommand(PassRefPtr<Node> node, ShouldAssumeContentIsAlwaysEditable shouldAssumeContentIsAlwaysEditable)
- : SimpleEditCommand(node->document())
- , m_node(node)
+RemoveNodeCommand::RemoveNodeCommand(Ref<Node>&& node, ShouldAssumeContentIsAlwaysEditable shouldAssumeContentIsAlwaysEditable, EditAction editingAction)
+ : SimpleEditCommand(node->document(), editingAction)
+ , m_node(WTFMove(node))
, m_shouldAssumeContentIsAlwaysEditable(shouldAssumeContentIsAlwaysEditable)
{
- ASSERT(m_node);
ASSERT(m_node->parentNode());
}
@@ -46,24 +44,24 @@ void RemoveNodeCommand::doApply()
{
ContainerNode* parent = m_node->parentNode();
if (!parent || (m_shouldAssumeContentIsAlwaysEditable == DoNotAssumeContentIsAlwaysEditable
- && !parent->isContentEditable(Node::UserSelectAllIsAlwaysNonEditable) && parent->renderer()))
+ && !isEditableNode(*parent) && parent->renderer()))
return;
- ASSERT(parent->isContentEditable(Node::UserSelectAllIsAlwaysNonEditable) || !parent->renderer());
+ ASSERT(isEditableNode(*parent) || !parent->renderer());
m_parent = parent;
m_refChild = m_node->nextSibling();
- m_node->remove(IGNORE_EXCEPTION);
+ m_node->remove();
}
void RemoveNodeCommand::doUnapply()
{
- RefPtr<ContainerNode> parent = m_parent.release();
- RefPtr<Node> refChild = m_refChild.release();
+ RefPtr<ContainerNode> parent = WTFMove(m_parent);
+ RefPtr<Node> refChild = WTFMove(m_refChild);
if (!parent || !parent->hasEditableStyle())
return;
- parent->insertBefore(m_node.get(), refChild.get(), IGNORE_EXCEPTION);
+ parent->insertBefore(m_node, refChild.get());
}
#ifndef NDEBUG
@@ -71,7 +69,7 @@ void RemoveNodeCommand::getNodesInCommand(HashSet<Node*>& nodes)
{
addNodeAndDescendants(m_parent.get(), nodes);
addNodeAndDescendants(m_refChild.get(), nodes);
- addNodeAndDescendants(m_node.get(), nodes);
+ addNodeAndDescendants(m_node.ptr(), nodes);
}
#endif