| Index: Source/core/dom/ContainerNode.cpp
 | 
| diff --git a/Source/core/dom/ContainerNode.cpp b/Source/core/dom/ContainerNode.cpp
 | 
| index 4a4ed7ed5617ce2f1c189894bac066a478c5e6ff..f0738fc165cdf7f905fa6d2bcd6e5570881f80db 100644
 | 
| --- a/Source/core/dom/ContainerNode.cpp
 | 
| +++ b/Source/core/dom/ContainerNode.cpp
 | 
| @@ -794,14 +794,14 @@ void ContainerNode::notifyNodeInsertedInternal(Node& root, NodeVector& postInser
 | 
|      EventDispatchForbiddenScope assertNoEventDispatch;
 | 
|      ScriptForbiddenScope forbidScript;
 | 
|  
 | 
| -    for (Node* node = &root; node; node = NodeTraversal::next(*node, &root)) {
 | 
| +    for (Node& node : NodeTraversal::inclusiveDescendantsOf(root)) {
 | 
|          // As an optimization we don't notify leaf nodes when when inserting
 | 
|          // into detached subtrees.
 | 
| -        if (!inDocument() && !node->isContainerNode())
 | 
| +        if (!inDocument() && !node.isContainerNode())
 | 
|              continue;
 | 
| -        if (Node::InsertionShouldCallDidNotifySubtreeInsertions == node->insertedInto(this))
 | 
| -            postInsertionNotificationTargets.append(node);
 | 
| -        for (ShadowRoot* shadowRoot = node->youngestShadowRoot(); shadowRoot; shadowRoot = shadowRoot->olderShadowRoot())
 | 
| +        if (Node::InsertionShouldCallDidNotifySubtreeInsertions == node.insertedInto(this))
 | 
| +            postInsertionNotificationTargets.append(&node);
 | 
| +        for (ShadowRoot* shadowRoot = node.youngestShadowRoot(); shadowRoot; shadowRoot = shadowRoot->olderShadowRoot())
 | 
|              notifyNodeInsertedInternal(*shadowRoot, postInsertionNotificationTargets);
 | 
|      }
 | 
|  }
 | 
| @@ -812,16 +812,16 @@ void ContainerNode::notifyNodeRemoved(Node& root)
 | 
|      EventDispatchForbiddenScope assertNoEventDispatch;
 | 
|  
 | 
|      Document& document = root.document();
 | 
| -    for (Node* node = &root; node; node = NodeTraversal::next(*node, &root)) {
 | 
| +    for (Node& node : NodeTraversal::inclusiveDescendantsOf(root)) {
 | 
|          // As an optimization we skip notifying Text nodes and other leaf nodes
 | 
|          // of removal when they're not in the Document tree since the virtual
 | 
|          // call to removedFrom is not needed.
 | 
| -        if (!node->inDocument() && !node->isContainerNode())
 | 
| +        if (!node.inDocument() && !node.isContainerNode())
 | 
|              continue;
 | 
|          if (document.cssTarget() == node)
 | 
|              document.setCSSTarget(nullptr);
 | 
| -        node->removedFrom(this);
 | 
| -        for (ShadowRoot* shadowRoot = node->youngestShadowRoot(); shadowRoot; shadowRoot = shadowRoot->olderShadowRoot())
 | 
| +        node.removedFrom(this);
 | 
| +        for (ShadowRoot* shadowRoot = node.youngestShadowRoot(); shadowRoot; shadowRoot = shadowRoot->olderShadowRoot())
 | 
|              notifyNodeRemoved(*shadowRoot);
 | 
|      }
 | 
|  }
 | 
| 
 |