<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[208828] trunk/Source/WebCore</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/208828">208828</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2016-11-16 16:39:55 -0800 (Wed, 16 Nov 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Use more references in TreeScope / TreeScopeAdopter
https://bugs.webkit.org/show_bug.cgi?id=164836
Reviewed by Ryosuke Niwa.
Use more references in TreeScope / TreeScopeAdopter and avoid some
unnecessary null checks.
No new tests, no Web-exposed behavior change.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::takeAllChildrenFrom):
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::removeBetween):
(WebCore::ContainerNode::appendChildWithoutPreInsertionValidityCheck):
(WebCore::ContainerNode::parserAppendChild):
* dom/ContainerNodeAlgorithms.cpp:
(WebCore::addChildNodesToDeletionQueue):
* dom/Document.cpp:
(WebCore::Document::adoptNode):
(WebCore::Document::moveNodeIteratorsToNewDocument):
* dom/Document.h:
* dom/Element.cpp:
(WebCore::Element::didMoveToNewDocument):
(WebCore::Element::addShadowRoot):
(WebCore::Element::removeShadowRoot):
(WebCore::Element::setAttributeNode):
(WebCore::Element::setAttributeNodeNS):
(WebCore::Element::ensureAttr):
* dom/Element.h:
* dom/Node.cpp:
(WebCore::Node::didMoveToNewDocument):
* dom/Node.h:
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::adoptDocument):
* dom/TreeScope.cpp:
(WebCore::TreeScope::TreeScope):
(WebCore::TreeScope::setParentTreeScope):
(WebCore::TreeScope::adoptIfNeeded):
* dom/TreeScope.h:
(WebCore::TreeScope::documentScope):
(WebCore::TreeScope::setDocumentScope):
* dom/TreeScopeAdopter.cpp:
(WebCore::TreeScopeAdopter::moveTreeToNewScope):
(WebCore::TreeScopeAdopter::moveShadowTreeToNewDocument):
(WebCore::TreeScopeAdopter::ensureDidMoveToNewDocumentWasCalled):
(WebCore::TreeScopeAdopter::updateTreeScope):
(WebCore::TreeScopeAdopter::moveNodeToNewDocument):
* dom/TreeScopeAdopter.h:
(WebCore::TreeScopeAdopter::ensureDidMoveToNewDocumentWasCalled):
(WebCore::TreeScopeAdopter::TreeScopeAdopter):
* html/FormAssociatedElement.cpp:
(WebCore::FormAssociatedElement::didMoveToNewDocument):
* html/FormAssociatedElement.h:
* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::didMoveToNewDocument):
* html/HTMLFieldSetElement.h:
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::didMoveToNewDocument):
* html/HTMLFormControlElement.h:
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::didMoveToNewDocument):
* html/HTMLFormElement.h:
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::didMoveToNewDocument):
* html/HTMLImageElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::didMoveToNewDocument):
* html/HTMLInputElement.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::didMoveToNewDocument):
* html/HTMLMediaElement.h:
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::didMoveToNewDocument):
* html/HTMLObjectElement.h:
* html/HTMLPictureElement.cpp:
(WebCore::HTMLPictureElement::didMoveToNewDocument):
* html/HTMLPictureElement.h:
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::didMoveToNewDocument):
* html/HTMLPlugInImageElement.h:
* html/HTMLTemplateElement.cpp:
(WebCore::HTMLTemplateElement::didMoveToNewDocument):
* html/HTMLTemplateElement.h:
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::didMoveToNewDocument):
* html/HTMLVideoElement.h:
* html/ImageDocument.cpp:
(WebCore::ImageDocumentElement::didMoveToNewDocument):
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::didMoveToNewDocument):
* svg/SVGImageElement.h:
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::didMoveToNewDocument):
* svg/SVGSVGElement.h:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoredomContainerNodecpp">trunk/Source/WebCore/dom/ContainerNode.cpp</a></li>
<li><a href="#trunkSourceWebCoredomContainerNodeAlgorithmscpp">trunk/Source/WebCore/dom/ContainerNodeAlgorithms.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumenth">trunk/Source/WebCore/dom/Document.h</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementh">trunk/Source/WebCore/dom/Element.h</a></li>
<li><a href="#trunkSourceWebCoredomNodecpp">trunk/Source/WebCore/dom/Node.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodeh">trunk/Source/WebCore/dom/Node.h</a></li>
<li><a href="#trunkSourceWebCoredomNodeRareDatah">trunk/Source/WebCore/dom/NodeRareData.h</a></li>
<li><a href="#trunkSourceWebCoredomTreeScopecpp">trunk/Source/WebCore/dom/TreeScope.cpp</a></li>
<li><a href="#trunkSourceWebCoredomTreeScopeh">trunk/Source/WebCore/dom/TreeScope.h</a></li>
<li><a href="#trunkSourceWebCoredomTreeScopeAdoptercpp">trunk/Source/WebCore/dom/TreeScopeAdopter.cpp</a></li>
<li><a href="#trunkSourceWebCoredomTreeScopeAdopterh">trunk/Source/WebCore/dom/TreeScopeAdopter.h</a></li>
<li><a href="#trunkSourceWebCorehtmlFormAssociatedElementcpp">trunk/Source/WebCore/html/FormAssociatedElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlFormAssociatedElementh">trunk/Source/WebCore/html/FormAssociatedElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFieldSetElementcpp">trunk/Source/WebCore/html/HTMLFieldSetElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFieldSetElementh">trunk/Source/WebCore/html/HTMLFieldSetElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFormControlElementcpp">trunk/Source/WebCore/html/HTMLFormControlElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFormControlElementh">trunk/Source/WebCore/html/HTMLFormControlElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFormElementcpp">trunk/Source/WebCore/html/HTMLFormElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLFormElementh">trunk/Source/WebCore/html/HTMLFormElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLImageElementcpp">trunk/Source/WebCore/html/HTMLImageElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLImageElementh">trunk/Source/WebCore/html/HTMLImageElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLInputElementcpp">trunk/Source/WebCore/html/HTMLInputElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLInputElementh">trunk/Source/WebCore/html/HTMLInputElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementcpp">trunk/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementh">trunk/Source/WebCore/html/HTMLMediaElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLObjectElementcpp">trunk/Source/WebCore/html/HTMLObjectElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLObjectElementh">trunk/Source/WebCore/html/HTMLObjectElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLPictureElementcpp">trunk/Source/WebCore/html/HTMLPictureElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLPictureElementh">trunk/Source/WebCore/html/HTMLPictureElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLPlugInImageElementcpp">trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLPlugInImageElementh">trunk/Source/WebCore/html/HTMLPlugInImageElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTemplateElementcpp">trunk/Source/WebCore/html/HTMLTemplateElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTemplateElementh">trunk/Source/WebCore/html/HTMLTemplateElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementcpp">trunk/Source/WebCore/html/HTMLVideoElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementh">trunk/Source/WebCore/html/HTMLVideoElement.h</a></li>
<li><a href="#trunkSourceWebCorehtmlImageDocumentcpp">trunk/Source/WebCore/html/ImageDocument.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGImageElementcpp">trunk/Source/WebCore/svg/SVGImageElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGImageElementh">trunk/Source/WebCore/svg/SVGImageElement.h</a></li>
<li><a href="#trunkSourceWebCoresvgSVGSVGElementcpp">trunk/Source/WebCore/svg/SVGSVGElement.cpp</a></li>
<li><a href="#trunkSourceWebCoresvgSVGSVGElementh">trunk/Source/WebCore/svg/SVGSVGElement.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/ChangeLog        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -1,3 +1,102 @@
</span><ins>+2016-11-16 Chris Dumez <cdumez@apple.com>
+
+ Use more references in TreeScope / TreeScopeAdopter
+ https://bugs.webkit.org/show_bug.cgi?id=164836
+
+ Reviewed by Ryosuke Niwa.
+
+ Use more references in TreeScope / TreeScopeAdopter and avoid some
+ unnecessary null checks.
+
+ No new tests, no Web-exposed behavior change.
+
+ * dom/ContainerNode.cpp:
+ (WebCore::ContainerNode::takeAllChildrenFrom):
+ (WebCore::ContainerNode::insertBefore):
+ (WebCore::ContainerNode::replaceChild):
+ (WebCore::ContainerNode::removeBetween):
+ (WebCore::ContainerNode::appendChildWithoutPreInsertionValidityCheck):
+ (WebCore::ContainerNode::parserAppendChild):
+ * dom/ContainerNodeAlgorithms.cpp:
+ (WebCore::addChildNodesToDeletionQueue):
+ * dom/Document.cpp:
+ (WebCore::Document::adoptNode):
+ (WebCore::Document::moveNodeIteratorsToNewDocument):
+ * dom/Document.h:
+ * dom/Element.cpp:
+ (WebCore::Element::didMoveToNewDocument):
+ (WebCore::Element::addShadowRoot):
+ (WebCore::Element::removeShadowRoot):
+ (WebCore::Element::setAttributeNode):
+ (WebCore::Element::setAttributeNodeNS):
+ (WebCore::Element::ensureAttr):
+ * dom/Element.h:
+ * dom/Node.cpp:
+ (WebCore::Node::didMoveToNewDocument):
+ * dom/Node.h:
+ * dom/NodeRareData.h:
+ (WebCore::NodeListsNodeData::adoptDocument):
+ * dom/TreeScope.cpp:
+ (WebCore::TreeScope::TreeScope):
+ (WebCore::TreeScope::setParentTreeScope):
+ (WebCore::TreeScope::adoptIfNeeded):
+ * dom/TreeScope.h:
+ (WebCore::TreeScope::documentScope):
+ (WebCore::TreeScope::setDocumentScope):
+ * dom/TreeScopeAdopter.cpp:
+ (WebCore::TreeScopeAdopter::moveTreeToNewScope):
+ (WebCore::TreeScopeAdopter::moveShadowTreeToNewDocument):
+ (WebCore::TreeScopeAdopter::ensureDidMoveToNewDocumentWasCalled):
+ (WebCore::TreeScopeAdopter::updateTreeScope):
+ (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
+ * dom/TreeScopeAdopter.h:
+ (WebCore::TreeScopeAdopter::ensureDidMoveToNewDocumentWasCalled):
+ (WebCore::TreeScopeAdopter::TreeScopeAdopter):
+ * html/FormAssociatedElement.cpp:
+ (WebCore::FormAssociatedElement::didMoveToNewDocument):
+ * html/FormAssociatedElement.h:
+ * html/HTMLFieldSetElement.cpp:
+ (WebCore::HTMLFieldSetElement::didMoveToNewDocument):
+ * html/HTMLFieldSetElement.h:
+ * html/HTMLFormControlElement.cpp:
+ (WebCore::HTMLFormControlElement::didMoveToNewDocument):
+ * html/HTMLFormControlElement.h:
+ * html/HTMLFormElement.cpp:
+ (WebCore::HTMLFormElement::didMoveToNewDocument):
+ * html/HTMLFormElement.h:
+ * html/HTMLImageElement.cpp:
+ (WebCore::HTMLImageElement::didMoveToNewDocument):
+ * html/HTMLImageElement.h:
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::didMoveToNewDocument):
+ * html/HTMLInputElement.h:
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::didMoveToNewDocument):
+ * html/HTMLMediaElement.h:
+ * html/HTMLObjectElement.cpp:
+ (WebCore::HTMLObjectElement::didMoveToNewDocument):
+ * html/HTMLObjectElement.h:
+ * html/HTMLPictureElement.cpp:
+ (WebCore::HTMLPictureElement::didMoveToNewDocument):
+ * html/HTMLPictureElement.h:
+ * html/HTMLPlugInImageElement.cpp:
+ (WebCore::HTMLPlugInImageElement::didMoveToNewDocument):
+ * html/HTMLPlugInImageElement.h:
+ * html/HTMLTemplateElement.cpp:
+ (WebCore::HTMLTemplateElement::didMoveToNewDocument):
+ * html/HTMLTemplateElement.h:
+ * html/HTMLVideoElement.cpp:
+ (WebCore::HTMLVideoElement::didMoveToNewDocument):
+ * html/HTMLVideoElement.h:
+ * html/ImageDocument.cpp:
+ (WebCore::ImageDocumentElement::didMoveToNewDocument):
+ * svg/SVGImageElement.cpp:
+ (WebCore::SVGImageElement::didMoveToNewDocument):
+ * svg/SVGImageElement.h:
+ * svg/SVGSVGElement.cpp:
+ (WebCore::SVGSVGElement::didMoveToNewDocument):
+ * svg/SVGSVGElement.h:
+
</ins><span class="cx"> 2016-11-16 Jon Davis <jond@apple.com>
</span><span class="cx">
</span><span class="cx"> Added Web App Manifest to the Feature Status page.
</span></span></pre></div>
<a id="trunkSourceWebCoredomContainerNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ContainerNode.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ContainerNode.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/dom/ContainerNode.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -139,12 +139,12 @@
</span><span class="cx"> destroyRenderTreeIfNeeded(child);
</span><span class="cx">
</span><span class="cx"> // FIXME: We need a no mutation event version of adoptNode.
</span><del>- RefPtr<Node> adoptedChild = document().adoptNode(child).releaseReturnValue();
- parserAppendChild(*adoptedChild);
</del><ins>+ auto adoptedChild = document().adoptNode(child).releaseReturnValue();
+ parserAppendChild(adoptedChild);
</ins><span class="cx"> // FIXME: Together with adoptNode above, the tree scope might get updated recursively twice
</span><span class="cx"> // (if the document changed or oldParent was in a shadow tree, AND *this is in a shadow tree).
</span><span class="cx"> // Can we do better?
</span><del>- treeScope().adoptIfNeeded(adoptedChild.get());
</del><ins>+ treeScope().adoptIfNeeded(adoptedChild);
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -280,7 +280,7 @@
</span><span class="cx"> if (child->parentNode())
</span><span class="cx"> break;
</span><span class="cx">
</span><del>- treeScope().adoptIfNeeded(child.ptr());
</del><ins>+ treeScope().adoptIfNeeded(child);
</ins><span class="cx">
</span><span class="cx"> insertBeforeCommon(next, child);
</span><span class="cx">
</span><span class="lines">@@ -444,7 +444,7 @@
</span><span class="cx"> if (child->parentNode())
</span><span class="cx"> break;
</span><span class="cx">
</span><del>- treeScope().adoptIfNeeded(child.ptr());
</del><ins>+ treeScope().adoptIfNeeded(child);
</ins><span class="cx">
</span><span class="cx"> {
</span><span class="cx"> NoEventDispatchAssertion assertNoEventDispatch;
</span><span class="lines">@@ -579,7 +579,7 @@
</span><span class="cx"> ASSERT(!oldChild.nextSibling());
</span><span class="cx"> oldChild.setParentNode(nullptr);
</span><span class="cx">
</span><del>- document().adoptIfNeeded(&oldChild);
</del><ins>+ document().adoptIfNeeded(oldChild);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void ContainerNode::parserRemoveChild(Node& oldChild)
</span><span class="lines">@@ -679,7 +679,7 @@
</span><span class="cx"> if (child->parentNode())
</span><span class="cx"> break;
</span><span class="cx">
</span><del>- treeScope().adoptIfNeeded(child.ptr());
</del><ins>+ treeScope().adoptIfNeeded(child);
</ins><span class="cx">
</span><span class="cx"> // Append child to the end of the list
</span><span class="cx"> {
</span><span class="lines">@@ -706,7 +706,7 @@
</span><span class="cx"> {
</span><span class="cx"> NoEventDispatchAssertion assertNoEventDispatch;
</span><span class="cx"> appendChildCommon(newChild);
</span><del>- treeScope().adoptIfNeeded(&newChild);
</del><ins>+ treeScope().adoptIfNeeded(newChild);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> newChild.updateAncestorConnectedSubframeCountForInsertion();
</span></span></pre></div>
<a id="trunkSourceWebCoredomContainerNodeAlgorithmscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ContainerNodeAlgorithms.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ContainerNodeAlgorithms.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/dom/ContainerNodeAlgorithms.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -190,7 +190,7 @@
</span><span class="cx"> } else {
</span><span class="cx"> Ref<Node> protect(*node); // removedFromDocument may remove remove all references to this node.
</span><span class="cx"> if (Document* containerDocument = container.ownerDocument())
</span><del>- containerDocument->adoptIfNeeded(node);
</del><ins>+ containerDocument->adoptIfNeeded(*node);
</ins><span class="cx"> if (node->isInTreeScope())
</span><span class="cx"> notifyChildNodeRemoved(container, *node);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/dom/Document.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -1024,7 +1024,7 @@
</span><span class="cx"> return result.releaseException();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- adoptIfNeeded(&source);
</del><ins>+ adoptIfNeeded(source);
</ins><span class="cx">
</span><span class="cx"> return Ref<Node> { source };
</span><span class="cx"> }
</span><span class="lines">@@ -3865,14 +3865,14 @@
</span><span class="cx"> m_nodeIterators.remove(ni);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void Document::moveNodeIteratorsToNewDocument(Node* node, Document* newDocument)
</del><ins>+void Document::moveNodeIteratorsToNewDocument(Node& node, Document& newDocument)
</ins><span class="cx"> {
</span><span class="cx"> Vector<NodeIterator*> nodeIterators;
</span><span class="cx"> copyToVector(m_nodeIterators, nodeIterators);
</span><span class="cx"> for (auto* it : nodeIterators) {
</span><del>- if (&it->root() == node) {
</del><ins>+ if (&it->root() == &node) {
</ins><span class="cx"> detachNodeIterator(it);
</span><del>- newDocument->attachNodeIterator(it);
</del><ins>+ newDocument.attachNodeIterator(it);
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/dom/Document.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -735,7 +735,7 @@
</span><span class="cx">
</span><span class="cx"> void attachNodeIterator(NodeIterator*);
</span><span class="cx"> void detachNodeIterator(NodeIterator*);
</span><del>- void moveNodeIteratorsToNewDocument(Node*, Document*);
</del><ins>+ void moveNodeIteratorsToNewDocument(Node&, Document&);
</ins><span class="cx">
</span><span class="cx"> void attachRange(Range*);
</span><span class="cx"> void detachRange(Range*);
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/dom/Element.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -1531,11 +1531,11 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void Element::didMoveToNewDocument(Document* oldDocument)
</del><ins>+void Element::didMoveToNewDocument(Document& oldDocument)
</ins><span class="cx"> {
</span><span class="cx"> Node::didMoveToNewDocument(oldDocument);
</span><span class="cx">
</span><del>- if (oldDocument->inQuirksMode() != document().inQuirksMode()) {
</del><ins>+ if (oldDocument.inQuirksMode() != document().inQuirksMode()) {
</ins><span class="cx"> // ElementData::m_classNames or ElementData::m_idForStyleResolution need to be updated with the right case.
</span><span class="cx"> if (hasID())
</span><span class="cx"> attributeChanged(idAttr, nullAtom, getIdAttribute());
</span><span class="lines">@@ -1544,7 +1544,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (UNLIKELY(isDefinedCustomElement()))
</span><del>- CustomElementReactionQueue::enqueueAdoptedCallbackIfNeeded(*this, *oldDocument, document());
</del><ins>+ CustomElementReactionQueue::enqueueAdoptedCallbackIfNeeded(*this, oldDocument, document());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool Element::hasAttributes() const
</span><span class="lines">@@ -1746,7 +1746,7 @@
</span><span class="cx"> ensureElementRareData().setShadowRoot(WTFMove(newShadowRoot));
</span><span class="cx">
</span><span class="cx"> shadowRoot.setHost(this);
</span><del>- shadowRoot.setParentTreeScope(&treeScope());
</del><ins>+ shadowRoot.setParentTreeScope(treeScope());
</ins><span class="cx">
</span><span class="cx"> NodeVector postInsertionNotificationTargets;
</span><span class="cx"> notifyChildNodeInserted(*this, shadowRoot, postInsertionNotificationTargets);
</span><span class="lines">@@ -1775,7 +1775,7 @@
</span><span class="cx"> elementRareData()->clearShadowRoot();
</span><span class="cx">
</span><span class="cx"> oldRoot->setHost(nullptr);
</span><del>- oldRoot->setParentTreeScope(&document());
</del><ins>+ oldRoot->setParentTreeScope(document());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static bool canAttachAuthorShadowRoot(const Element& element)
</span><span class="lines">@@ -2147,7 +2147,7 @@
</span><span class="cx"> }
</span><span class="cx"> if (attrNode.ownerElement() != this) {
</span><span class="cx"> attrNode.attachToElement(*this);
</span><del>- treeScope().adoptIfNeeded(&attrNode);
</del><ins>+ treeScope().adoptIfNeeded(attrNode);
</ins><span class="cx"> ensureAttrNodeListForElement(*this).append(&attrNode);
</span><span class="cx"> }
</span><span class="cx"> return WTFMove(oldAttrNode);
</span><span class="lines">@@ -2178,7 +2178,7 @@
</span><span class="cx"> setAttributeInternal(index, attrNode.qualifiedName(), attrNode.value(), NotInSynchronizationOfLazyAttribute);
</span><span class="cx">
</span><span class="cx"> attrNode.attachToElement(*this);
</span><del>- treeScope().adoptIfNeeded(&attrNode);
</del><ins>+ treeScope().adoptIfNeeded(attrNode);
</ins><span class="cx"> ensureAttrNodeListForElement(*this).append(&attrNode);
</span><span class="cx">
</span><span class="cx"> return WTFMove(oldAttrNode);
</span><span class="lines">@@ -3389,7 +3389,7 @@
</span><span class="cx"> RefPtr<Attr> attrNode = findAttrNodeInList(attrNodeList, name);
</span><span class="cx"> if (!attrNode) {
</span><span class="cx"> attrNode = Attr::create(*this, name);
</span><del>- treeScope().adoptIfNeeded(attrNode.get());
</del><ins>+ treeScope().adoptIfNeeded(*attrNode);
</ins><span class="cx"> attrNodeList.append(attrNode);
</span><span class="cx"> }
</span><span class="cx"> return attrNode.releaseNonNull();
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/dom/Element.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -586,7 +586,7 @@
</span><span class="cx"> void childrenChanged(const ChildChange&) override;
</span><span class="cx"> void removeAllEventListeners() final;
</span><span class="cx"> virtual void parserDidSetAttributes();
</span><del>- void didMoveToNewDocument(Document*) override;
</del><ins>+ void didMoveToNewDocument(Document&) override;
</ins><span class="cx">
</span><span class="cx"> void clearTabIndexExplicitlyIfNeeded();
</span><span class="cx"> void setTabIndexExplicitly(int);
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/dom/Node.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -1864,7 +1864,7 @@
</span><span class="cx"> return NodeEventTargetInterfaceType;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void Node::didMoveToNewDocument(Document* oldDocument)
</del><ins>+void Node::didMoveToNewDocument(Document& oldDocument)
</ins><span class="cx"> {
</span><span class="cx"> TreeScopeAdopter::ensureDidMoveToNewDocumentWasCalled(oldDocument);
</span><span class="cx">
</span><span class="lines">@@ -1875,14 +1875,14 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (AXObjectCache::accessibilityEnabled() && oldDocument) {
- if (auto* cache = oldDocument->existingAXObjectCache())
</del><ins>+ if (AXObjectCache::accessibilityEnabled()) {
+ if (auto* cache = oldDocument.existingAXObjectCache())
</ins><span class="cx"> cache->remove(this);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> unsigned numWheelEventHandlers = eventListeners(eventNames().mousewheelEvent).size() + eventListeners(eventNames().wheelEvent).size();
</span><span class="cx"> for (unsigned i = 0; i < numWheelEventHandlers; ++i) {
</span><del>- oldDocument->didRemoveWheelEventHandler(*this);
</del><ins>+ oldDocument.didRemoveWheelEventHandler(*this);
</ins><span class="cx"> document().didAddWheelEventHandler(*this);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1891,7 +1891,7 @@
</span><span class="cx"> numTouchEventHandlers += eventListeners(name).size();
</span><span class="cx">
</span><span class="cx"> for (unsigned i = 0; i < numTouchEventHandlers; ++i) {
</span><del>- oldDocument->didRemoveTouchEventHandler(*this);
</del><ins>+ oldDocument.didRemoveTouchEventHandler(*this);
</ins><span class="cx"> document().didAddTouchEventHandler(*this);
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/dom/Node.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -628,7 +628,7 @@
</span><span class="cx"> };
</span><span class="cx"> Node(Document&, ConstructionType);
</span><span class="cx">
</span><del>- virtual void didMoveToNewDocument(Document* oldDocument);
</del><ins>+ virtual void didMoveToNewDocument(Document& oldDocument);
</ins><span class="cx">
</span><span class="cx"> virtual void addSubresourceAttributeURLs(ListHashSet<URL>&) const { }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeRareDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/NodeRareData.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/NodeRareData.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/dom/NodeRareData.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -202,24 +202,23 @@
</span><span class="cx"> invalidateCaches();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- void adoptDocument(Document* oldDocument, Document* newDocument)
</del><ins>+ void adoptDocument(Document& oldDocument, Document& newDocument)
</ins><span class="cx"> {
</span><del>- ASSERT(oldDocument);
- if (oldDocument == newDocument) {
</del><ins>+ if (&oldDocument == &newDocument) {
</ins><span class="cx"> invalidateCaches();
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> for (auto& cache : m_atomicNameCaches.values())
</span><del>- cache->invalidateCache(*oldDocument);
</del><ins>+ cache->invalidateCache(oldDocument);
</ins><span class="cx">
</span><span class="cx"> for (auto& list : m_tagCollectionNSCache.values()) {
</span><span class="cx"> ASSERT(!list->isRootedAtDocument());
</span><del>- list->invalidateCache(*oldDocument);
</del><ins>+ list->invalidateCache(oldDocument);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> for (auto& collection : m_cachedCollections.values())
</span><del>- collection->invalidateCache(*oldDocument);
</del><ins>+ collection->invalidateCache(oldDocument);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private:
</span></span></pre></div>
<a id="trunkSourceWebCoredomTreeScopecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/TreeScope.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/TreeScope.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/dom/TreeScope.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx">
</span><span class="cx"> TreeScope::TreeScope(ShadowRoot& shadowRoot, Document& document)
</span><span class="cx"> : m_rootNode(shadowRoot)
</span><del>- , m_documentScope(&document)
</del><ins>+ , m_documentScope(document)
</ins><span class="cx"> , m_parentTreeScope(&document)
</span><span class="cx"> , m_idTargetObserverRegistry(std::make_unique<IdTargetObserverRegistry>())
</span><span class="cx"> {
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx">
</span><span class="cx"> TreeScope::TreeScope(Document& document)
</span><span class="cx"> : m_rootNode(document)
</span><del>- , m_documentScope(&document)
</del><ins>+ , m_documentScope(document)
</ins><span class="cx"> , m_parentTreeScope(nullptr)
</span><span class="cx"> , m_idTargetObserverRegistry(std::make_unique<IdTargetObserverRegistry>())
</span><span class="cx"> {
</span><span class="lines">@@ -84,15 +84,13 @@
</span><span class="cx"> m_labelsByForAttribute = nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void TreeScope::setParentTreeScope(TreeScope* newParentScope)
</del><ins>+void TreeScope::setParentTreeScope(TreeScope& newParentScope)
</ins><span class="cx"> {
</span><span class="cx"> // A document node cannot be re-parented.
</span><span class="cx"> ASSERT(!m_rootNode.isDocumentNode());
</span><del>- // Every scope other than document needs a parent scope.
- ASSERT(newParentScope);
</del><span class="cx">
</span><del>- m_parentTreeScope = newParentScope;
- setDocumentScope(&newParentScope->documentScope());
</del><ins>+ m_parentTreeScope = &newParentScope;
+ setDocumentScope(newParentScope.documentScope());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Element* TreeScope::getElementById(const AtomicString& elementId) const
</span><span class="lines">@@ -348,11 +346,10 @@
</span><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void TreeScope::adoptIfNeeded(Node* node)
</del><ins>+void TreeScope::adoptIfNeeded(Node& node)
</ins><span class="cx"> {
</span><del>- ASSERT(node);
- ASSERT(!node->isDocumentNode());
- ASSERT(!node->m_deletionHasBegun);
</del><ins>+ ASSERT(!node.isDocumentNode());
+ ASSERT(!node.m_deletionHasBegun);
</ins><span class="cx"> TreeScopeAdopter adopter(node, *this);
</span><span class="cx"> if (adopter.needsScopeChange())
</span><span class="cx"> adopter.execute();
</span></span></pre></div>
<a id="trunkSourceWebCoredomTreeScopeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/TreeScope.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/TreeScope.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/dom/TreeScope.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">
</span><span class="cx"> public:
</span><span class="cx"> TreeScope* parentTreeScope() const { return m_parentTreeScope; }
</span><del>- void setParentTreeScope(TreeScope*);
</del><ins>+ void setParentTreeScope(TreeScope&);
</ins><span class="cx">
</span><span class="cx"> Element* focusedElement();
</span><span class="cx"> WEBCORE_EXPORT Element* getElementById(const AtomicString&) const;
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx"> void addElementByName(const AtomicStringImpl&, Element&);
</span><span class="cx"> void removeElementByName(const AtomicStringImpl&, Element&);
</span><span class="cx">
</span><del>- Document& documentScope() const { return *m_documentScope; }
</del><ins>+ Document& documentScope() const { return m_documentScope.get(); }
</ins><span class="cx"> static ptrdiff_t documentScopeMemoryOffset() { return OBJECT_OFFSETOF(TreeScope, m_documentScope); }
</span><span class="cx">
</span><span class="cx"> // https://dom.spec.whatwg.org/#retarget
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx"> Element* findAnchor(const String& name);
</span><span class="cx">
</span><span class="cx"> // Used by the basic DOM mutation methods (e.g., appendChild()).
</span><del>- void adoptIfNeeded(Node*);
</del><ins>+ void adoptIfNeeded(Node&);
</ins><span class="cx">
</span><span class="cx"> ContainerNode& rootNode() const { return m_rootNode; }
</span><span class="cx">
</span><span class="lines">@@ -106,9 +106,8 @@
</span><span class="cx"> ~TreeScope();
</span><span class="cx">
</span><span class="cx"> void destroyTreeScopeData();
</span><del>- void setDocumentScope(Document* document)
</del><ins>+ void setDocumentScope(Document& document)
</ins><span class="cx"> {
</span><del>- ASSERT(document);
</del><span class="cx"> m_documentScope = document;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -116,7 +115,7 @@
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> ContainerNode& m_rootNode;
</span><del>- Document* m_documentScope;
</del><ins>+ std::reference_wrapper<Document> m_documentScope;
</ins><span class="cx"> TreeScope* m_parentTreeScope;
</span><span class="cx">
</span><span class="cx"> std::unique_ptr<DocumentOrderedMap> m_elementsById;
</span></span></pre></div>
<a id="trunkSourceWebCoredomTreeScopeAdoptercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/TreeScopeAdopter.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/TreeScopeAdopter.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/dom/TreeScopeAdopter.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -33,7 +33,7 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> // FIXME: Do we ever change tree scopes except between documents?
</span><del>-void TreeScopeAdopter::moveTreeToNewScope(Node* root) const
</del><ins>+void TreeScopeAdopter::moveTreeToNewScope(Node& root) const
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(needsScopeChange());
</span><span class="cx">
</span><span class="lines">@@ -49,11 +49,11 @@
</span><span class="cx"> oldDocument.incDOMTreeVersion();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- for (Node* node = root; node; node = NodeTraversal::next(*node, root)) {
- updateTreeScope(node);
</del><ins>+ for (Node* node = &root; node; node = NodeTraversal::next(*node, &root)) {
+ updateTreeScope(*node);
</ins><span class="cx">
</span><span class="cx"> if (willMoveToNewDocument)
</span><del>- moveNodeToNewDocument(node, &oldDocument, &newDocument);
</del><ins>+ moveNodeToNewDocument(*node, oldDocument, newDocument);
</ins><span class="cx"> else if (node->hasRareData()) {
</span><span class="cx"> NodeRareData* rareData = node->rareData();
</span><span class="cx"> if (rareData->nodeLists())
</span><span class="lines">@@ -65,13 +65,13 @@
</span><span class="cx">
</span><span class="cx"> if (node->hasSyntheticAttrChildNodes()) {
</span><span class="cx"> for (auto& attr : downcast<Element>(*node).attrNodeList())
</span><del>- moveTreeToNewScope(attr.get());
</del><ins>+ moveTreeToNewScope(*attr);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- if (ShadowRoot* shadow = node->shadowRoot()) {
- shadow->setParentTreeScope(&m_newScope);
</del><ins>+ if (auto* shadow = node->shadowRoot()) {
+ shadow->setParentTreeScope(m_newScope);
</ins><span class="cx"> if (willMoveToNewDocument)
</span><del>- moveShadowTreeToNewDocument(shadow, &oldDocument, &newDocument);
</del><ins>+ moveShadowTreeToNewDocument(*shadow, oldDocument, newDocument);
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -79,12 +79,12 @@
</span><span class="cx"> oldDocument.decrementReferencingNodeCount();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void TreeScopeAdopter::moveShadowTreeToNewDocument(ShadowRoot* shadowRoot, Document* oldDocument, Document* newDocument) const
</del><ins>+void TreeScopeAdopter::moveShadowTreeToNewDocument(ShadowRoot& shadowRoot, Document& oldDocument, Document& newDocument) const
</ins><span class="cx"> {
</span><del>- for (Node* node = shadowRoot; node; node = NodeTraversal::next(*node, shadowRoot)) {
- moveNodeToNewDocument(node, oldDocument, newDocument);
- if (ShadowRoot* shadow = node->shadowRoot())
- moveShadowTreeToNewDocument(shadow, oldDocument, newDocument);
</del><ins>+ for (Node* node = &shadowRoot; node; node = NodeTraversal::next(*node, &shadowRoot)) {
+ moveNodeToNewDocument(*node, oldDocument, newDocument);
+ if (auto* shadow = node->shadowRoot())
+ moveShadowTreeToNewDocument(*shadow, oldDocument, newDocument);
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -92,46 +92,45 @@
</span><span class="cx"> static bool didMoveToNewDocumentWasCalled = false;
</span><span class="cx"> static Document* oldDocumentDidMoveToNewDocumentWasCalledWith = nullptr;
</span><span class="cx">
</span><del>-void TreeScopeAdopter::ensureDidMoveToNewDocumentWasCalled(Document* oldDocument)
</del><ins>+void TreeScopeAdopter::ensureDidMoveToNewDocumentWasCalled(Document& oldDocument)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(!didMoveToNewDocumentWasCalled);
</span><del>- ASSERT_UNUSED(oldDocument, oldDocument == oldDocumentDidMoveToNewDocumentWasCalledWith);
</del><ins>+ ASSERT_UNUSED(oldDocument, &oldDocument == oldDocumentDidMoveToNewDocumentWasCalledWith);
</ins><span class="cx"> didMoveToNewDocumentWasCalled = true;
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-inline void TreeScopeAdopter::updateTreeScope(Node* node) const
</del><ins>+inline void TreeScopeAdopter::updateTreeScope(Node& node) const
</ins><span class="cx"> {
</span><del>- ASSERT(!node->isTreeScope());
- ASSERT(&node->treeScope() == &m_oldScope);
- node->setTreeScope(m_newScope);
</del><ins>+ ASSERT(!node.isTreeScope());
+ ASSERT(&node.treeScope() == &m_oldScope);
+ node.setTreeScope(m_newScope);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-inline void TreeScopeAdopter::moveNodeToNewDocument(Node* node, Document* oldDocument, Document* newDocument) const
</del><ins>+inline void TreeScopeAdopter::moveNodeToNewDocument(Node& node, Document& oldDocument, Document& newDocument) const
</ins><span class="cx"> {
</span><del>- ASSERT(!node->inDocument() || oldDocument != newDocument);
</del><ins>+ ASSERT(!node.inDocument() || &oldDocument != &newDocument);
</ins><span class="cx">
</span><del>- newDocument->incrementReferencingNodeCount();
- oldDocument->decrementReferencingNodeCount();
</del><ins>+ newDocument.incrementReferencingNodeCount();
+ oldDocument.decrementReferencingNodeCount();
</ins><span class="cx">
</span><del>- if (node->hasRareData()) {
- NodeRareData* rareData = node->rareData();
- if (rareData->nodeLists())
- rareData->nodeLists()->adoptDocument(oldDocument, newDocument);
</del><ins>+ if (node.hasRareData()) {
+ NodeRareData* rareData = node.rareData();
+ if (auto* nodeLists = rareData->nodeLists())
+ nodeLists->adoptDocument(oldDocument, newDocument);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- if (oldDocument)
- oldDocument->moveNodeIteratorsToNewDocument(node, newDocument);
</del><ins>+ oldDocument.moveNodeIteratorsToNewDocument(node, newDocument);
</ins><span class="cx">
</span><del>- if (is<ShadowRoot>(*node))
- downcast<ShadowRoot>(*node).setDocumentScope(newDocument);
</del><ins>+ if (is<ShadowRoot>(node))
+ downcast<ShadowRoot>(node).setDocumentScope(newDocument);
</ins><span class="cx">
</span><span class="cx"> #ifndef NDEBUG
</span><span class="cx"> didMoveToNewDocumentWasCalled = false;
</span><del>- oldDocumentDidMoveToNewDocumentWasCalledWith = oldDocument;
</del><ins>+ oldDocumentDidMoveToNewDocumentWasCalledWith = &oldDocument;
</ins><span class="cx"> #endif
</span><span class="cx">
</span><del>- node->didMoveToNewDocument(oldDocument);
</del><ins>+ node.didMoveToNewDocument(oldDocument);
</ins><span class="cx"> ASSERT(didMoveToNewDocumentWasCalled);
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoredomTreeScopeAdopterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/TreeScopeAdopter.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/TreeScopeAdopter.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/dom/TreeScopeAdopter.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -33,32 +33,32 @@
</span><span class="cx">
</span><span class="cx"> class TreeScopeAdopter {
</span><span class="cx"> public:
</span><del>- explicit TreeScopeAdopter(Node* toAdopt, TreeScope& newScope);
</del><ins>+ explicit TreeScopeAdopter(Node& toAdopt, TreeScope& newScope);
</ins><span class="cx">
</span><span class="cx"> void execute() const { moveTreeToNewScope(m_toAdopt); }
</span><span class="cx"> bool needsScopeChange() const { return &m_oldScope != &m_newScope; }
</span><span class="cx">
</span><span class="cx"> #ifdef NDEBUG
</span><del>- static void ensureDidMoveToNewDocumentWasCalled(Document*) { }
</del><ins>+ static void ensureDidMoveToNewDocumentWasCalled(Document&) { }
</ins><span class="cx"> #else
</span><del>- static void ensureDidMoveToNewDocumentWasCalled(Document*);
</del><ins>+ static void ensureDidMoveToNewDocumentWasCalled(Document&);
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- void updateTreeScope(Node*) const;
- void moveTreeToNewScope(Node*) const;
- void moveShadowTreeToNewDocument(ShadowRoot*, Document* oldDocument, Document* newDocument) const;
- void moveNodeToNewDocument(Node*, Document* oldDocument, Document* newDocument) const;
</del><ins>+ void updateTreeScope(Node&) const;
+ void moveTreeToNewScope(Node&) const;
+ void moveShadowTreeToNewDocument(ShadowRoot&, Document& oldDocument, Document& newDocument) const;
+ void moveNodeToNewDocument(Node&, Document& oldDocument, Document& newDocument) const;
</ins><span class="cx">
</span><del>- Node* m_toAdopt;
</del><ins>+ Node& m_toAdopt;
</ins><span class="cx"> TreeScope& m_newScope;
</span><span class="cx"> TreeScope& m_oldScope;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-inline TreeScopeAdopter::TreeScopeAdopter(Node* toAdopt, TreeScope& newScope)
</del><ins>+inline TreeScopeAdopter::TreeScopeAdopter(Node& toAdopt, TreeScope& newScope)
</ins><span class="cx"> : m_toAdopt(toAdopt)
</span><span class="cx"> , m_newScope(newScope)
</span><del>- , m_oldScope(toAdopt->treeScope())
</del><ins>+ , m_oldScope(toAdopt.treeScope())
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlFormAssociatedElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/FormAssociatedElement.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/FormAssociatedElement.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/FormAssociatedElement.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -60,10 +60,10 @@
</span><span class="cx"> setForm(nullptr);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void FormAssociatedElement::didMoveToNewDocument(Document* oldDocument)
</del><ins>+void FormAssociatedElement::didMoveToNewDocument(Document&)
</ins><span class="cx"> {
</span><span class="cx"> HTMLElement& element = asHTMLElement();
</span><del>- if (oldDocument && element.hasAttributeWithoutSynchronization(formAttr))
</del><ins>+ if (element.hasAttributeWithoutSynchronization(formAttr))
</ins><span class="cx"> resetFormAttributeTargetObserver();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlFormAssociatedElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/FormAssociatedElement.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/FormAssociatedElement.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/FormAssociatedElement.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx">
</span><span class="cx"> void insertedInto(ContainerNode&);
</span><span class="cx"> void removedFrom(ContainerNode&);
</span><del>- void didMoveToNewDocument(Document* oldDocument);
</del><ins>+ void didMoveToNewDocument(Document& oldDocument);
</ins><span class="cx">
</span><span class="cx"> void setForm(HTMLFormElement*);
</span><span class="cx"> void formAttributeChanged();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFieldSetElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFieldSetElement.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFieldSetElement.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLFieldSetElement.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -122,12 +122,11 @@
</span><span class="cx"> updateFromControlElementsAncestorDisabledStateUnder(*legend, true);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLFieldSetElement::didMoveToNewDocument(Document* oldDocument)
</del><ins>+void HTMLFieldSetElement::didMoveToNewDocument(Document& oldDocument)
</ins><span class="cx"> {
</span><span class="cx"> HTMLFormControlElement::didMoveToNewDocument(oldDocument);
</span><span class="cx"> if (m_hasDisabledAttribute) {
</span><del>- if (oldDocument)
- oldDocument->removeDisabledFieldsetElement();
</del><ins>+ oldDocument.removeDisabledFieldsetElement();
</ins><span class="cx"> document().addDisabledFieldsetElement();
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFieldSetElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFieldSetElement.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFieldSetElement.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLFieldSetElement.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx"> void disabledAttributeChanged() final;
</span><span class="cx"> void disabledStateChanged() final;
</span><span class="cx"> void childrenChanged(const ChildChange&) final;
</span><del>- void didMoveToNewDocument(Document* oldDocument) final;
</del><ins>+ void didMoveToNewDocument(Document& oldDocument) final;
</ins><span class="cx">
</span><span class="cx"> bool matchesValidPseudoClass() const final;
</span><span class="cx"> bool matchesInvalidPseudoClass() const final;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFormControlElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFormControlElement.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFormControlElement.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLFormControlElement.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -250,7 +250,7 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLFormControlElement::didMoveToNewDocument(Document* oldDocument)
</del><ins>+void HTMLFormControlElement::didMoveToNewDocument(Document& oldDocument)
</ins><span class="cx"> {
</span><span class="cx"> FormAssociatedElement::didMoveToNewDocument(oldDocument);
</span><span class="cx"> HTMLElement::didMoveToNewDocument(oldDocument);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFormControlElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFormControlElement.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFormControlElement.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLFormControlElement.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -138,7 +138,7 @@
</span><span class="cx"> InsertionNotificationRequest insertedInto(ContainerNode&) override;
</span><span class="cx"> void finishedInsertingSubtree() override;
</span><span class="cx"> void removedFrom(ContainerNode&) override;
</span><del>- void didMoveToNewDocument(Document* oldDocument) override;
</del><ins>+ void didMoveToNewDocument(Document& oldDocument) override;
</ins><span class="cx">
</span><span class="cx"> bool supportsFocus() const override;
</span><span class="cx"> bool isKeyboardFocusable(KeyboardEvent&) const override;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFormElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFormElement.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFormElement.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLFormElement.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -843,11 +843,10 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLFormElement::didMoveToNewDocument(Document* oldDocument)
</del><ins>+void HTMLFormElement::didMoveToNewDocument(Document& oldDocument)
</ins><span class="cx"> {
</span><span class="cx"> if (!shouldAutocomplete()) {
</span><del>- if (oldDocument)
- oldDocument->unregisterForDocumentSuspensionCallbacks(this);
</del><ins>+ oldDocument.unregisterForDocumentSuspensionCallbacks(this);
</ins><span class="cx"> document().registerForDocumentSuspensionCallbacks(this);
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLFormElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLFormElement.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLFormElement.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLFormElement.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -145,7 +145,7 @@
</span><span class="cx">
</span><span class="cx"> void resumeFromDocumentSuspension() final;
</span><span class="cx">
</span><del>- void didMoveToNewDocument(Document* oldDocument) final;
</del><ins>+ void didMoveToNewDocument(Document& oldDocument) final;
</ins><span class="cx">
</span><span class="cx"> void copyNonAttributePropertiesFromElement(const Element&) final;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLImageElement.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLImageElement.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLImageElement.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -555,7 +555,7 @@
</span><span class="cx"> addSubresourceURL(urls, document().completeURL(attributeWithoutSynchronization(usemapAttr)));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLImageElement::didMoveToNewDocument(Document* oldDocument)
</del><ins>+void HTMLImageElement::didMoveToNewDocument(Document& oldDocument)
</ins><span class="cx"> {
</span><span class="cx"> m_imageLoader.elementDidMoveToNewDocument();
</span><span class="cx"> HTMLElement::didMoveToNewDocument(oldDocument);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLImageElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLImageElement.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLImageElement.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLImageElement.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> HTMLImageElement(const QualifiedName&, Document&, HTMLFormElement* = 0);
</span><span class="cx">
</span><del>- void didMoveToNewDocument(Document* oldDocument) override;
</del><ins>+ void didMoveToNewDocument(Document& oldDocument) override;
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> void parseAttribute(const QualifiedName&, const AtomicString&) override;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLInputElement.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -1531,23 +1531,21 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLInputElement::didMoveToNewDocument(Document* oldDocument)
</del><ins>+void HTMLInputElement::didMoveToNewDocument(Document& oldDocument)
</ins><span class="cx"> {
</span><span class="cx"> if (imageLoader())
</span><span class="cx"> imageLoader()->elementDidMoveToNewDocument();
</span><span class="cx">
</span><span class="cx"> bool needsSuspensionCallback = this->needsSuspensionCallback();
</span><del>- if (oldDocument) {
- // Always unregister for cache callbacks when leaving a document, even if we would otherwise like to be registered
- if (needsSuspensionCallback)
- oldDocument->unregisterForDocumentSuspensionCallbacks(this);
- if (isRadioButton())
- oldDocument->formController().radioButtonGroups().removeButton(this);
</del><ins>+ // Always unregister for cache callbacks when leaving a document, even if we would otherwise like to be registered
+ if (needsSuspensionCallback)
+ oldDocument.unregisterForDocumentSuspensionCallbacks(this);
+ if (isRadioButton())
+ oldDocument.formController().radioButtonGroups().removeButton(this);
</ins><span class="cx"> #if ENABLE(TOUCH_EVENTS)
</span><del>- if (m_hasTouchEventHandler)
- oldDocument->didRemoveEventTargetNode(*this);
</del><ins>+ if (m_hasTouchEventHandler)
+ oldDocument.didRemoveEventTargetNode(*this);
</ins><span class="cx"> #endif
</span><del>- }
</del><span class="cx">
</span><span class="cx"> if (needsSuspensionCallback)
</span><span class="cx"> document().registerForDocumentSuspensionCallbacks(this);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLInputElement.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -337,7 +337,7 @@
</span><span class="cx"> InsertionNotificationRequest insertedInto(ContainerNode&) final;
</span><span class="cx"> void finishedInsertingSubtree() final;
</span><span class="cx"> void removedFrom(ContainerNode&) final;
</span><del>- void didMoveToNewDocument(Document* oldDocument) final;
</del><ins>+ void didMoveToNewDocument(Document& oldDocument) final;
</ins><span class="cx">
</span><span class="cx"> bool hasCustomFocusLogic() const final;
</span><span class="cx"> bool isKeyboardFocusable(KeyboardEvent&) const final;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -664,16 +664,14 @@
</span><span class="cx"> removeElementFromDocumentMap(*this, document);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLMediaElement::didMoveToNewDocument(Document* oldDocument)
</del><ins>+void HTMLMediaElement::didMoveToNewDocument(Document& oldDocument)
</ins><span class="cx"> {
</span><span class="cx"> if (m_shouldDelayLoadEvent) {
</span><del>- if (oldDocument)
- oldDocument->decrementLoadEventDelayCount();
</del><ins>+ oldDocument.decrementLoadEventDelayCount();
</ins><span class="cx"> document().incrementLoadEventDelayCount();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (oldDocument)
- unregisterWithDocument(*oldDocument);
</del><ins>+ unregisterWithDocument(oldDocument);
</ins><span class="cx">
</span><span class="cx"> registerWithDocument(document());
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLMediaElement.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -495,7 +495,7 @@
</span><span class="cx"> void willDetachRenderers() override;
</span><span class="cx"> void didDetachRenderers() override;
</span><span class="cx">
</span><del>- void didMoveToNewDocument(Document* oldDocument) override;
</del><ins>+ void didMoveToNewDocument(Document& oldDocument) override;
</ins><span class="cx">
</span><span class="cx"> enum DisplayMode { Unknown, None, Poster, PosterWaitingForVideo, Video };
</span><span class="cx"> DisplayMode displayMode() const { return m_displayMode; }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLObjectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLObjectElement.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLObjectElement.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLObjectElement.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -498,7 +498,7 @@
</span><span class="cx"> addSubresourceURL(urls, document().completeURL(useMap));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLObjectElement::didMoveToNewDocument(Document* oldDocument)
</del><ins>+void HTMLObjectElement::didMoveToNewDocument(Document& oldDocument)
</ins><span class="cx"> {
</span><span class="cx"> FormAssociatedElement::didMoveToNewDocument(oldDocument);
</span><span class="cx"> HTMLPlugInImageElement::didMoveToNewDocument(oldDocument);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLObjectElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLObjectElement.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLObjectElement.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLObjectElement.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx"> void finishedInsertingSubtree() final;
</span><span class="cx"> void removedFrom(ContainerNode&) final;
</span><span class="cx">
</span><del>- void didMoveToNewDocument(Document* oldDocument) final;
</del><ins>+ void didMoveToNewDocument(Document& oldDocument) final;
</ins><span class="cx">
</span><span class="cx"> void childrenChanged(const ChildChange&) final;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLPictureElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLPictureElement.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLPictureElement.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLPictureElement.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -42,10 +42,9 @@
</span><span class="cx"> document().removeViewportDependentPicture(*this);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLPictureElement::didMoveToNewDocument(Document* oldDocument)
</del><ins>+void HTMLPictureElement::didMoveToNewDocument(Document& oldDocument)
</ins><span class="cx"> {
</span><del>- if (oldDocument)
- oldDocument->removeViewportDependentPicture(*this);
</del><ins>+ oldDocument.removeViewportDependentPicture(*this);
</ins><span class="cx"> HTMLElement::didMoveToNewDocument(oldDocument);
</span><span class="cx"> sourcesChanged();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLPictureElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLPictureElement.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLPictureElement.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLPictureElement.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> private:
</span><span class="cx"> HTMLPictureElement(const QualifiedName&, Document&);
</span><span class="cx">
</span><del>- void didMoveToNewDocument(Document* oldDocument) final;
</del><ins>+ void didMoveToNewDocument(Document& oldDocument) final;
</ins><span class="cx">
</span><span class="cx"> WeakPtrFactory<HTMLPictureElement> m_weakFactory { this };
</span><span class="cx"> Vector<MediaQueryResult> m_viewportDependentMediaQueryResults;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLPlugInImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -309,10 +309,10 @@
</span><span class="cx"> invalidateStyleForSubtree();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLPlugInImageElement::didMoveToNewDocument(Document* oldDocument)
</del><ins>+void HTMLPlugInImageElement::didMoveToNewDocument(Document& oldDocument)
</ins><span class="cx"> {
</span><span class="cx"> if (m_needsDocumentActivationCallbacks) {
</span><del>- oldDocument->unregisterForDocumentSuspensionCallbacks(this);
</del><ins>+ oldDocument.unregisterForDocumentSuspensionCallbacks(this);
</ins><span class="cx"> document().registerForDocumentSuspensionCallbacks(this);
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLPlugInImageElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLPlugInImageElement.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLPlugInImageElement.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLPlugInImageElement.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx"> protected:
</span><span class="cx"> HTMLPlugInImageElement(const QualifiedName& tagName, Document&, bool createdByParser);
</span><span class="cx">
</span><del>- void didMoveToNewDocument(Document* oldDocument) override;
</del><ins>+ void didMoveToNewDocument(Document& oldDocument) override;
</ins><span class="cx"> bool requestObject(const String& url, const String& mimeType, const Vector<String>& paramNames, const Vector<String>& paramValues) final;
</span><span class="cx">
</span><span class="cx"> bool isImageType();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTemplateElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTemplateElement.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTemplateElement.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLTemplateElement.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -82,12 +82,12 @@
</span><span class="cx"> return clone.releaseNonNull();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void HTMLTemplateElement::didMoveToNewDocument(Document* oldDocument)
</del><ins>+void HTMLTemplateElement::didMoveToNewDocument(Document& oldDocument)
</ins><span class="cx"> {
</span><span class="cx"> HTMLElement::didMoveToNewDocument(oldDocument);
</span><span class="cx"> if (!m_content)
</span><span class="cx"> return;
</span><del>- document().ensureTemplateDocument().adoptIfNeeded(m_content.get());
</del><ins>+ document().ensureTemplateDocument().adoptIfNeeded(*m_content);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTemplateElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTemplateElement.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTemplateElement.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLTemplateElement.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> HTMLTemplateElement(const QualifiedName&, Document&);
</span><span class="cx">
</span><span class="cx"> Ref<Node> cloneNodeInternal(Document&, CloningOperation) final;
</span><del>- void didMoveToNewDocument(Document* oldDocument) final;
</del><ins>+ void didMoveToNewDocument(Document& oldDocument) final;
</ins><span class="cx">
</span><span class="cx"> mutable RefPtr<TemplateContentDocumentFragment> m_content;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -353,7 +353,7 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-void HTMLVideoElement::didMoveToNewDocument(Document* oldDocument)
</del><ins>+void HTMLVideoElement::didMoveToNewDocument(Document& oldDocument)
</ins><span class="cx"> {
</span><span class="cx"> if (m_imageLoader)
</span><span class="cx"> m_imageLoader->elementDidMoveToNewDocument();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/HTMLVideoElement.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -107,7 +107,7 @@
</span><span class="cx">
</span><span class="cx"> bool hasAvailableVideoFrame() const;
</span><span class="cx"> void updateDisplayState() final;
</span><del>- void didMoveToNewDocument(Document* oldDocument) final;
</del><ins>+ void didMoveToNewDocument(Document& oldDocument) final;
</ins><span class="cx"> void setDisplayMode(DisplayMode) final;
</span><span class="cx">
</span><span class="cx"> PlatformMediaSession::MediaType presentationType() const final { return PlatformMediaSession::Video; }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlImageDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/ImageDocument.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/ImageDocument.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/html/ImageDocument.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -101,7 +101,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> virtual ~ImageDocumentElement();
</span><del>- void didMoveToNewDocument(Document* oldDocument) override;
</del><ins>+ void didMoveToNewDocument(Document& oldDocument) override;
</ins><span class="cx">
</span><span class="cx"> ImageDocument* m_imageDocument;
</span><span class="cx"> };
</span><span class="lines">@@ -421,7 +421,7 @@
</span><span class="cx"> m_imageDocument->disconnectImageElement();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void ImageDocumentElement::didMoveToNewDocument(Document* oldDocument)
</del><ins>+void ImageDocumentElement::didMoveToNewDocument(Document& oldDocument)
</ins><span class="cx"> {
</span><span class="cx"> if (m_imageDocument) {
</span><span class="cx"> m_imageDocument->disconnectImageElement();
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGImageElement.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGImageElement.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/svg/SVGImageElement.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -212,7 +212,7 @@
</span><span class="cx"> addSubresourceURL(urls, document().completeURL(href()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void SVGImageElement::didMoveToNewDocument(Document* oldDocument)
</del><ins>+void SVGImageElement::didMoveToNewDocument(Document& oldDocument)
</ins><span class="cx"> {
</span><span class="cx"> m_imageLoader.elementDidMoveToNewDocument();
</span><span class="cx"> SVGGraphicsElement::didMoveToNewDocument(oldDocument);
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGImageElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGImageElement.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGImageElement.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/svg/SVGImageElement.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx"> bool haveLoadedRequiredResources() final;
</span><span class="cx">
</span><span class="cx"> bool selfHasRelativeLengths() const final { return true; }
</span><del>- void didMoveToNewDocument(Document* oldDocument) final;
</del><ins>+ void didMoveToNewDocument(Document& oldDocument) final;
</ins><span class="cx">
</span><span class="cx"> BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGImageElement)
</span><span class="cx"> DECLARE_ANIMATED_LENGTH(X, x)
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGSVGElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGSVGElement.cpp (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGSVGElement.cpp        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/svg/SVGSVGElement.cpp        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -98,10 +98,9 @@
</span><span class="cx"> document().accessSVGExtensions().removeTimeContainer(this);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void SVGSVGElement::didMoveToNewDocument(Document* oldDocument)
</del><ins>+void SVGSVGElement::didMoveToNewDocument(Document& oldDocument)
</ins><span class="cx"> {
</span><del>- if (oldDocument)
- oldDocument->unregisterForDocumentSuspensionCallbacks(this);
</del><ins>+ oldDocument.unregisterForDocumentSuspensionCallbacks(this);
</ins><span class="cx"> document().registerForDocumentSuspensionCallbacks(this);
</span><span class="cx"> SVGGraphicsElement::didMoveToNewDocument(oldDocument);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGSVGElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGSVGElement.h (208827 => 208828)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGSVGElement.h        2016-11-17 00:37:15 UTC (rev 208827)
+++ trunk/Source/WebCore/svg/SVGSVGElement.h        2016-11-17 00:39:55 UTC (rev 208828)
</span><span class="lines">@@ -138,7 +138,7 @@
</span><span class="cx"> virtual ~SVGSVGElement();
</span><span class="cx">
</span><span class="cx"> bool isValid() const override;
</span><del>- void didMoveToNewDocument(Document* oldDocument) override;
</del><ins>+ void didMoveToNewDocument(Document& oldDocument) override;
</ins><span class="cx"> void parseAttribute(const QualifiedName&, const AtomicString&) override;
</span><span class="cx"> bool rendererIsNeeded(const RenderStyle&) override;
</span><span class="cx"> RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
</span></span></pre>
</div>
</div>
</body>
</html>