Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(314)

Unified Diff: Source/core/dom/Node.cpp

Issue 1234813003: Revert of Implement DOM: prepend, append, before, after & replaceWith (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/dom/Node.h ('k') | Source/core/dom/ParentNode.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/dom/Node.cpp
diff --git a/Source/core/dom/Node.cpp b/Source/core/dom/Node.cpp
index 2c443dc0795ffecdf65b9dc9902c959f7a24f873..dfee760fd905f2cde64bdb6ee4a6dc522b2d4f39 100644
--- a/Source/core/dom/Node.cpp
+++ b/Source/core/dom/Node.cpp
@@ -492,96 +492,6 @@
return nullptr;
}
-static bool isNodeInNodes(const Node& node, const HeapVector<NodeOrString>& nodes)
-{
- for (const NodeOrString& nodeOrString : nodes) {
- if (nodeOrString.isNode() && nodeOrString.getAsNode() == &node)
- return true;
- }
- return false;
-}
-
-static Node* findViablePreviousSibling(const Node& node, const HeapVector<NodeOrString>& nodes)
-{
- for (Node* sibling = node.previousSibling(); sibling; sibling = sibling->previousSibling()) {
- if (!isNodeInNodes(*sibling, nodes))
- return sibling;
- }
- return nullptr;
-}
-
-static Node* findViableNextSibling(const Node& node, const HeapVector<NodeOrString>& nodes)
-{
- for (Node* sibling = node.nextSibling(); sibling; sibling = sibling->nextSibling()) {
- if (!isNodeInNodes(*sibling, nodes))
- return sibling;
- }
- return nullptr;
-}
-
-static PassRefPtrWillBeRawPtr<Node> nodeOrStringToNode(const NodeOrString& nodeOrString, Document& document)
-{
- if (nodeOrString.isNode())
- return nodeOrString.getAsNode();
- return Text::create(document, nodeOrString.getAsString());
-}
-
-static PassRefPtrWillBeRawPtr<Node> convertNodesIntoNode(const HeapVector<NodeOrString>& nodes, Document& document)
-{
- if (nodes.size() == 1)
- return nodeOrStringToNode(nodes[0], document);
-
- RefPtrWillBeRawPtr<Node> fragment = DocumentFragment::create(document);
- for (const NodeOrString& nodeOrString : nodes)
- fragment->appendChild(nodeOrStringToNode(nodeOrString, document), ASSERT_NO_EXCEPTION);
- return fragment.release();
-}
-
-void Node::prepend(const HeapVector<NodeOrString>& nodes, ExceptionState& exceptionState)
-{
- RefPtrWillBeRawPtr<Node> node = convertNodesIntoNode(nodes, document());
- insertBefore(node, firstChild(), exceptionState);
-}
-
-void Node::append(const HeapVector<NodeOrString>& nodes, ExceptionState& exceptionState)
-{
- RefPtrWillBeRawPtr<Node> node = convertNodesIntoNode(nodes, document());
- appendChild(node, exceptionState);
-}
-
-void Node::before(const HeapVector<NodeOrString>& nodes, ExceptionState& exceptionState)
-{
- Node* parent = parentNode();
- if (!parent)
- return;
- Node* viablePreviousSibling = findViablePreviousSibling(*this, nodes);
- RefPtrWillBeRawPtr<Node> node = convertNodesIntoNode(nodes, document());
- parent->insertBefore(node, viablePreviousSibling ? viablePreviousSibling->nextSibling() : parent->firstChild(), exceptionState);
-}
-
-void Node::after(const HeapVector<NodeOrString>& nodes, ExceptionState& exceptionState)
-{
- Node* parent = parentNode();
- if (!parent)
- return;
- Node* viableNextSibling = findViableNextSibling(*this, nodes);
- RefPtrWillBeRawPtr<Node> node = convertNodesIntoNode(nodes, document());
- parent->insertBefore(node, viableNextSibling, exceptionState);
-}
-
-void Node::replaceWith(const HeapVector<NodeOrString>& nodes, ExceptionState& exceptionState)
-{
- Node* parent = parentNode();
- if (!parent)
- return;
- Node* viableNextSibling = findViableNextSibling(*this, nodes);
- RefPtrWillBeRawPtr<Node> node = convertNodesIntoNode(nodes, document());
- if (parent == parentNode())
- parent->replaceChild(node, this, exceptionState);
- else
- parent->insertBefore(node, viableNextSibling, exceptionState);
-}
-
void Node::remove(ExceptionState& exceptionState)
{
if (ContainerNode* parent = parentNode())
« no previous file with comments | « Source/core/dom/Node.h ('k') | Source/core/dom/ParentNode.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698