<!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>[200696] trunk</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/200696">200696</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2016-05-11 12:02:09 -0700 (Wed, 11 May 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Update Node::appendChild() / replaceChild() / removeChild() / insertBefore() to take references instead of pointers
https://bugs.webkit.org/show_bug.cgi?id=157556

Reviewed by Darin Adler.

Source/WebCore:

Update Node::appendChild() / replaceChild() / removeChild() / insertBefore()
to take references instead of pointers. Do the parameter null checks in the
bindings instead of doing it in the implementation on Node.

Also update the ContainerNode::appendChild() / replaceChild() /
insertBefore() to take C++ references instead of Ref&lt;&gt;&amp;&amp; to avoid
unnecessarily causing ref counting churns at some call sites (including
in the bindings since they are a raw pointer to the nodes). The
implementation on ContainerNode was not actually using WTFMove() on the
Ref&lt;&gt;&amp;&amp; anyway.

* Modules/plugins/YouTubePluginReplacement.cpp:
(WebCore::YouTubePluginReplacement::installReplacement):
* bindings/js/JSNodeCustom.cpp:
(WebCore::JSNode::insertBefore):
(WebCore::JSNode::replaceChild):
(WebCore::JSNode::removeChild):
(WebCore::JSNode::appendChild):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::appendChild):
(WebCore::ContainerNode::parserAppendChild):
(WebCore::ContainerNode::cloneChildNodes):
(WebCore::ContainerNode::append):
(WebCore::ContainerNode::prepend):
* dom/ContainerNode.h:
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
(WebCore::DOMImplementation::createHTMLDocument):
* dom/Document.cpp:
(WebCore::Document::setBodyOrFrameset):
* dom/Element.cpp:
(WebCore::Element::setOuterHTML):
* dom/Node.cpp:
(WebCore::Node::insertBefore):
(WebCore::Node::replaceChild):
(WebCore::Node::removeChild):
(WebCore::Node::appendChild):
(WebCore::Node::before):
(WebCore::Node::after):
(WebCore::Node::replaceWith):
(WebCore::nodeSetPreTransformedFromNodeOrStringVector): Deleted.
(WebCore::Node::normalize): Deleted.
* dom/Node.h:
* dom/Node.idl:
* dom/NodeOrString.cpp:
(WebCore::convertNodesOrStringsIntoNode):
* dom/Range.cpp:
(WebCore::Range::processContents):
(WebCore::Range::processContentsBetweenOffsets):
(WebCore::Range::processNodes):
(WebCore::Range::processAncestorsAndTheirSiblings):
(WebCore::Range::insertNode):
(WebCore::Range::surroundContents):
* dom/Range.h:
* dom/Text.cpp:
(WebCore::Text::splitText):
* editing/AppendNodeCommand.cpp:
(WebCore::AppendNodeCommand::doApply):
* editing/Editor.cpp:
(WebCore::Editor::setTextAsChildOfElement):
* editing/EditorCommand.cpp:
(WebCore::executeInsertNode):
* editing/MergeIdenticalElementsCommand.cpp:
(WebCore::MergeIdenticalElementsCommand::doApply):
(WebCore::MergeIdenticalElementsCommand::doUnapply):
* editing/RemoveNodeCommand.cpp:
(WebCore::RemoveNodeCommand::doUnapply):
* editing/ReplaceNodeWithSpanCommand.cpp:
(WebCore::swapInNodePreservingAttributesAndChildren):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::insertFragmentForTestRendering):
* editing/SplitElementCommand.cpp:
(WebCore::SplitElementCommand::executeApply):
(WebCore::SplitElementCommand::doUnapply):
* editing/WrapContentsInDummySpanCommand.cpp:
(WebCore::WrapContentsInDummySpanCommand::executeApply):
(WebCore::WrapContentsInDummySpanCommand::doUnapply):
* editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::styleForSelectionStart):
* editing/htmlediting.cpp:
(WebCore::createTabSpanElement):
* editing/ios/EditorIOS.mm:
(WebCore::Editor::WebContentReader::readURL):
(WebCore::Editor::createFragmentForImageResourceAndAddResource):
* editing/mac/EditorMac.mm:
(WebCore::Editor::WebContentReader::readFilenames):
(WebCore::Editor::WebContentReader::readURL):
(WebCore::Editor::createFragmentForImageResourceAndAddResource):
* editing/markup.cpp:
(WebCore::fillContainerFromString):
(WebCore::createFragmentFromText):
(WebCore::replaceChildrenWithFragment):
(WebCore::replaceChildrenWithText):
* html/BaseChooserOnlyDateAndTimeInputType.cpp:
(WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):
* html/ColorInputType.cpp:
(WebCore::ColorInputType::createShadowSubtree):
* html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::appendEntry):
(WebCore::FTPDirectoryDocumentParser::createTDForFilename):
(WebCore::FTPDirectoryDocumentParser::createBasicDocument):
* html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::setOuterText):
(WebCore::HTMLElement::insertAdjacent):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::tryCreateImageControls):
* html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::HTMLKeygenElement):
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::didAddUserAgentShadowRoot):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::createForJSConstructor):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::didAddUserAgentShadowRoot):
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::createTBody):
(WebCore::HTMLTableElement::insertRow):
* html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::insertCell):
* html/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure):
* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::createShadowSubtree):
* html/SearchInputType.cpp:
(WebCore::SearchInputType::createShadowSubtree):
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::buildBubbleTree):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::createTextTrackDisplay):
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::tryCreateControls):
* html/shadow/mac/ImageControlsRootElementMac.cpp:
(WebCore::ImageControlsRootElement::tryCreate):
* html/track/VTTCue.cpp:
(WebCore::VTTCue::updateDisplayTree):
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTTreeBuilder::constructTreeFromToken):
* inspector/DOMEditor.cpp:
(WebCore::DOMEditor::RemoveChildAction::RemoveChildAction):
(WebCore::DOMEditor::InsertBeforeAction::InsertBeforeAction):
(WebCore::DOMEditor::ReplaceChildNodeAction::ReplaceChildNodeAction):
(WebCore::DOMEditor::insertBefore):
(WebCore::DOMEditor::removeChild):
(WebCore::DOMEditor::replaceChild):
* inspector/DOMEditor.h:
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::patchNode):
(WebCore::DOMPatchSupport::innerPatchNode):
(WebCore::DOMPatchSupport::innerPatchChildren):
(WebCore::DOMPatchSupport::insertBeforeAndMarkAsUsed):
(WebCore::DOMPatchSupport::removeChildAndMoveToNew):
* inspector/DOMPatchSupport.h:
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::removeNode):
(WebCore::InspectorDOMAgent::setNodeName):
(WebCore::InspectorDOMAgent::moveTo):
* page/DragController.cpp:
(WebCore::documentFragmentFromDragData):
* page/ios/FrameIOS.mm:
(WebCore::Frame::initWithSimpleHTMLDocument):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::cloneTarget):
(WebCore::SVGUseElement::expandUseElementsInShadowTree):
(WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
* xml/XMLErrors.cpp:
(WebCore::createXHTMLParserErrorHeader):
(WebCore::XMLErrors::insertErrorMessageBlock):
* xml/XMLTreeViewer.cpp:
(WebCore::XMLTreeViewer::transformDocumentToTreeView):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::startElementNs):
(WebCore::XMLDocumentParser::processingInstruction):
(WebCore::XMLDocumentParser::cdataBlock):
(WebCore::XMLDocumentParser::comment):

Source/WebKit/mac:

* WebView/WebFrame.mm:
(-[WebFrame _documentFragmentWithNodesAsParagraphs:]):

Source/WebKit/win:

* DOMCoreClasses.cpp:
(DOMNode::insertBefore):
(DOMNode::removeChild):

Source/WebKit2:

* WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
(-[WKDOMNode insertNode:before:]):
(-[WKDOMNode appendChild:]):
(-[WKDOMNode removeChild:]):
* WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
(WebKit::PDFPlugin::PDFPlugin):
* WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
(WebKit::PDFPluginChoiceAnnotation::createAnnotationElement):

LayoutTests:

Rebaseline several tests now that the Node API provides more useful
exception messages.

* fast/dom/Document/replaceChild-null-oldChild-expected.txt:
* fast/dom/Document/script-tests/replaceChild-null-oldChild.js:
* fast/dom/incompatible-operations-expected.txt:
* fast/dom/incompatible-operations.html:
* fast/dom/processing-instruction-appendChild-exceptions-expected.txt:
* fast/dom/processing-instruction-appendChild-exceptions.xhtml:
* fast/dom/timer-clear-interval-in-handler-and-generate-error-expected.txt:
* js/dom/dot-node-base-exception-expected.txt:
* js/dom/script-tests/dot-node-base-exception.js:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastdomDocumentreplaceChildnulloldChildexpectedtxt">trunk/LayoutTests/fast/dom/Document/replaceChild-null-oldChild-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomDocumentscripttestsreplaceChildnulloldChildjs">trunk/LayoutTests/fast/dom/Document/script-tests/replaceChild-null-oldChild.js</a></li>
<li><a href="#trunkLayoutTestsfastdomincompatibleoperationsexpectedtxt">trunk/LayoutTests/fast/dom/incompatible-operations-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomincompatibleoperationshtml">trunk/LayoutTests/fast/dom/incompatible-operations.html</a></li>
<li><a href="#trunkLayoutTestsfastdomprocessinginstructionappendChildexceptionsexpectedtxt">trunk/LayoutTests/fast/dom/processing-instruction-appendChild-exceptions-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastdomprocessinginstructionappendChildexceptionsxhtml">trunk/LayoutTests/fast/dom/processing-instruction-appendChild-exceptions.xhtml</a></li>
<li><a href="#trunkLayoutTestsfastdomtimerclearintervalinhandlerandgenerateerrorexpectedtxt">trunk/LayoutTests/fast/dom/timer-clear-interval-in-handler-and-generate-error-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfasteventsremovetargetwithshadowindragexpectedtxt">trunk/LayoutTests/fast/events/remove-target-with-shadow-in-drag-expected.txt</a></li>
<li><a href="#trunkLayoutTestsjsdomdotnodebaseexceptionexpectedtxt">trunk/LayoutTests/js/dom/dot-node-base-exception-expected.txt</a></li>
<li><a href="#trunkLayoutTestsjsdomscripttestsdotnodebaseexceptionjs">trunk/LayoutTests/js/dom/script-tests/dot-node-base-exception.js</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulespluginsYouTubePluginReplacementcpp">trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSNodeCustomcpp">trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp</a></li>
<li><a href="#trunkSourceWebCoredomContainerNodecpp">trunk/Source/WebCore/dom/ContainerNode.cpp</a></li>
<li><a href="#trunkSourceWebCoredomContainerNodeh">trunk/Source/WebCore/dom/ContainerNode.h</a></li>
<li><a href="#trunkSourceWebCoredomDOMImplementationcpp">trunk/Source/WebCore/dom/DOMImplementation.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</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="#trunkSourceWebCoredomNodeidl">trunk/Source/WebCore/dom/Node.idl</a></li>
<li><a href="#trunkSourceWebCoredomNodeOrStringcpp">trunk/Source/WebCore/dom/NodeOrString.cpp</a></li>
<li><a href="#trunkSourceWebCoredomRangecpp">trunk/Source/WebCore/dom/Range.cpp</a></li>
<li><a href="#trunkSourceWebCoredomRangeh">trunk/Source/WebCore/dom/Range.h</a></li>
<li><a href="#trunkSourceWebCoredomTextcpp">trunk/Source/WebCore/dom/Text.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingAppendNodeCommandcpp">trunk/Source/WebCore/editing/AppendNodeCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingEditorcpp">trunk/Source/WebCore/editing/Editor.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingEditorh">trunk/Source/WebCore/editing/Editor.h</a></li>
<li><a href="#trunkSourceWebCoreeditingEditorCommandcpp">trunk/Source/WebCore/editing/EditorCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingMergeIdenticalElementsCommandcpp">trunk/Source/WebCore/editing/MergeIdenticalElementsCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingRemoveNodeCommandcpp">trunk/Source/WebCore/editing/RemoveNodeCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingReplaceNodeWithSpanCommandcpp">trunk/Source/WebCore/editing/ReplaceNodeWithSpanCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingReplaceSelectionCommandcpp">trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingSplitElementCommandcpp">trunk/Source/WebCore/editing/SplitElementCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingWrapContentsInDummySpanCommandcpp">trunk/Source/WebCore/editing/WrapContentsInDummySpanCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingcocoaEditorCocoamm">trunk/Source/WebCore/editing/cocoa/EditorCocoa.mm</a></li>
<li><a href="#trunkSourceWebCoreeditinghtmleditingcpp">trunk/Source/WebCore/editing/htmlediting.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingiosEditorIOSmm">trunk/Source/WebCore/editing/ios/EditorIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreeditingmacEditorMacmm">trunk/Source/WebCore/editing/mac/EditorMac.mm</a></li>
<li><a href="#trunkSourceWebCoreeditingmarkupcpp">trunk/Source/WebCore/editing/markup.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlBaseChooserOnlyDateAndTimeInputTypecpp">trunk/Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlColorInputTypecpp">trunk/Source/WebCore/html/ColorInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlFTPDirectoryDocumentcpp">trunk/Source/WebCore/html/FTPDirectoryDocument.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLDetailsElementcpp">trunk/Source/WebCore/html/HTMLDetailsElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLElementcpp">trunk/Source/WebCore/html/HTMLElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLImageElementcpp">trunk/Source/WebCore/html/HTMLImageElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLKeygenElementcpp">trunk/Source/WebCore/html/HTMLKeygenElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMeterElementcpp">trunk/Source/WebCore/html/HTMLMeterElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLOptionElementcpp">trunk/Source/WebCore/html/HTMLOptionElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLProgressElementcpp">trunk/Source/WebCore/html/HTMLProgressElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTableElementcpp">trunk/Source/WebCore/html/HTMLTableElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTableRowElementcpp">trunk/Source/WebCore/html/HTMLTableRowElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlImageDocumentcpp">trunk/Source/WebCore/html/ImageDocument.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlMediaDocumentcpp">trunk/Source/WebCore/html/MediaDocument.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlPluginDocumentcpp">trunk/Source/WebCore/html/PluginDocument.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlRangeInputTypecpp">trunk/Source/WebCore/html/RangeInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlSearchInputTypecpp">trunk/Source/WebCore/html/SearchInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlValidationMessagecpp">trunk/Source/WebCore/html/ValidationMessage.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMediaControlElementscpp">trunk/Source/WebCore/html/shadow/MediaControlElements.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMediaControlscpp">trunk/Source/WebCore/html/shadow/MediaControls.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMediaControlsApplecpp">trunk/Source/WebCore/html/shadow/MediaControlsApple.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowmacImageControlsRootElementMaccpp">trunk/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmltrackVTTCuecpp">trunk/Source/WebCore/html/track/VTTCue.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmltrackWebVTTParsercpp">trunk/Source/WebCore/html/track/WebVTTParser.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorDOMEditorcpp">trunk/Source/WebCore/inspector/DOMEditor.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorDOMEditorh">trunk/Source/WebCore/inspector/DOMEditor.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorDOMPatchSupportcpp">trunk/Source/WebCore/inspector/DOMPatchSupport.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorDOMPatchSupporth">trunk/Source/WebCore/inspector/DOMPatchSupport.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorCSSAgentcpp">trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDOMAgentcpp">trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDragControllercpp">trunk/Source/WebCore/page/DragController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageiosFrameIOSmm">trunk/Source/WebCore/page/ios/FrameIOS.mm</a></li>
<li><a href="#trunkSourceWebCoresvgSVGUseElementcpp">trunk/Source/WebCore/svg/SVGUseElement.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlXMLErrorscpp">trunk/Source/WebCore/xml/XMLErrors.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlXMLTreeViewercpp">trunk/Source/WebCore/xml/XMLTreeViewer.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlparserXMLDocumentParserLibxml2cpp">trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebFramemm">trunk/Source/WebKit/mac/WebView/WebFrame.mm</a></li>
<li><a href="#trunkSourceWebKitwinChangeLog">trunk/Source/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinDOMCoreClassescpp">trunk/Source/WebKit/win/DOMCoreClasses.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPImacWKDOMNodemm">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMNode.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPDFDeprecatedPDFPluginmm">trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPDFPDFPluginChoiceAnnotationmm">trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/LayoutTests/ChangeLog        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2016-05-11  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Update Node::appendChild() / replaceChild() / removeChild() / insertBefore() to take references instead of pointers
+        https://bugs.webkit.org/show_bug.cgi?id=157556
+
+        Reviewed by Darin Adler.
+
+        Rebaseline several tests now that the Node API provides more useful
+        exception messages.
+
+        * fast/dom/Document/replaceChild-null-oldChild-expected.txt:
+        * fast/dom/Document/script-tests/replaceChild-null-oldChild.js:
+        * fast/dom/incompatible-operations-expected.txt:
+        * fast/dom/incompatible-operations.html:
+        * fast/dom/processing-instruction-appendChild-exceptions-expected.txt:
+        * fast/dom/processing-instruction-appendChild-exceptions.xhtml:
+        * fast/dom/timer-clear-interval-in-handler-and-generate-error-expected.txt:
+        * js/dom/dot-node-base-exception-expected.txt:
+        * js/dom/script-tests/dot-node-base-exception.js:
+
</ins><span class="cx"> 2016-05-11  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Modern IDB: IDBOpenDBRequests that are stop()'ed don't notify the IDBServer of that fact.
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomDocumentreplaceChildnulloldChildexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Document/replaceChild-null-oldChild-expected.txt (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Document/replaceChild-null-oldChild-expected.txt        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/LayoutTests/fast/dom/Document/replaceChild-null-oldChild-expected.txt        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-PASS document.replaceChild(document.firstChild, null) threw exception TypeError: Type error.
</del><ins>+PASS document.replaceChild(document.firstChild, null) threw exception TypeError: Argument 2 ('child') to Node.replaceChild must be an instance of Node.
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomDocumentscripttestsreplaceChildnulloldChildjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/Document/script-tests/replaceChild-null-oldChild.js (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Document/script-tests/replaceChild-null-oldChild.js        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/LayoutTests/fast/dom/Document/script-tests/replaceChild-null-oldChild.js        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> description('Test behavior of Document.replaceChild() when oldChild is null.');
</span><span class="cx"> 
</span><del>-shouldThrow('document.replaceChild(document.firstChild, null)', '&quot;TypeError: Type error&quot;');
</del><ins>+shouldThrow('document.replaceChild(document.firstChild, null)');
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomincompatibleoperationsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/incompatible-operations-expected.txt (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/incompatible-operations-expected.txt        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/LayoutTests/fast/dom/incompatible-operations-expected.txt        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -3,9 +3,9 @@
</span><span class="cx"> On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-PASS aNode.appendChild(aDOMImplementation) threw exception TypeError: Type error.
-PASS aNode.appendChild('knort') threw exception TypeError: Type error.
-PASS aNode.appendChild(void 0) threw exception TypeError: Type error.
</del><ins>+PASS aNode.appendChild(aDOMImplementation) threw exception TypeError: Argument 1 ('node') to Node.appendChild must be an instance of Node.
+PASS aNode.appendChild('knort') threw exception TypeError: Argument 1 ('node') to Node.appendChild must be an instance of Node.
+PASS aNode.appendChild(void 0) threw exception TypeError: Argument 1 ('node') to Node.appendChild must be an instance of Node.
</ins><span class="cx"> PASS aNode.isSameNode(aDOMImplementation) is false
</span><span class="cx"> PASS aNode.isSameNode('foo') is false
</span><span class="cx"> PASS aNode.isSameNode(void 0) is false
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomincompatibleoperationshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/incompatible-operations.html (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/incompatible-operations.html        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/LayoutTests/fast/dom/incompatible-operations.html        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -28,11 +28,11 @@
</span><span class="cx"> var aSecondNode = document.createElement(&quot;div&quot;);
</span><span class="cx"> aNode.appendChild(aSecondNode);
</span><span class="cx"> 
</span><del>-shouldThrow(&quot;aNode.appendChild(aDOMImplementation)&quot;, &quot;'TypeError: Type error'&quot;);
</del><ins>+shouldThrow(&quot;aNode.appendChild(aDOMImplementation)&quot;);
</ins><span class="cx"> 
</span><del>-shouldThrow(&quot;aNode.appendChild('knort')&quot;, &quot;'TypeError: Type error'&quot;);
</del><ins>+shouldThrow(&quot;aNode.appendChild('knort')&quot;);
</ins><span class="cx"> 
</span><del>-shouldThrow(&quot;aNode.appendChild(void 0)&quot;, &quot;'TypeError: Type error'&quot;);
</del><ins>+shouldThrow(&quot;aNode.appendChild(void 0)&quot;);
</ins><span class="cx"> 
</span><span class="cx"> shouldBeFalse(&quot;aNode.isSameNode(aDOMImplementation)&quot;);
</span><span class="cx"> shouldBeFalse(&quot;aNode.isSameNode('foo')&quot;);
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomprocessinginstructionappendChildexceptionsexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/processing-instruction-appendChild-exceptions-expected.txt (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/processing-instruction-appendChild-exceptions-expected.txt        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/LayoutTests/fast/dom/processing-instruction-appendChild-exceptions-expected.txt        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-PASS pi.appendChild(null) threw exception TypeError: Type error.
</del><ins>+PASS pi.appendChild(null) threw exception TypeError: Argument 1 ('node') to Node.appendChild must be an instance of Node.
</ins><span class="cx"> PASS pi.appendChild(div) threw exception Error: HierarchyRequestError: DOM Exception 3.
</span><span class="cx"> PASS pi.appendChild(textNode) threw exception Error: HierarchyRequestError: DOM Exception 3.
</span><span class="cx"> PASS successfullyParsed is true
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomprocessinginstructionappendChildexceptionsxhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/processing-instruction-appendChild-exceptions.xhtml (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/processing-instruction-appendChild-exceptions.xhtml        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/LayoutTests/fast/dom/processing-instruction-appendChild-exceptions.xhtml        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -5,7 +5,7 @@
</span><span class="cx"> &lt;![CDATA[
</span><span class="cx"> description(&quot;Test that appropriate exceptions are thrown when adding children to a ProcessingInstruction.&quot;);
</span><span class="cx"> var pi = document.createProcessingInstruction('target', 'data');
</span><del>-shouldThrow(&quot;pi.appendChild(null)&quot;, &quot;'TypeError: Type error'&quot;);
</del><ins>+shouldThrow(&quot;pi.appendChild(null)&quot;);
</ins><span class="cx"> var div = document.createElement('div');
</span><span class="cx"> shouldThrow(&quot;pi.appendChild(div)&quot;, &quot;'Error: HierarchyRequestError: DOM Exception 3'&quot;);
</span><span class="cx"> var textNode = document.createTextNode('sometext');
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomtimerclearintervalinhandlerandgenerateerrorexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/timer-clear-interval-in-handler-and-generate-error-expected.txt (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/timer-clear-interval-in-handler-and-generate-error-expected.txt        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/LayoutTests/fast/dom/timer-clear-interval-in-handler-and-generate-error-expected.txt        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -1,2 +1,2 @@
</span><del>-CONSOLE MESSAGE: line 10: TypeError: Type error
</del><ins>+CONSOLE MESSAGE: line 10: TypeError: Argument 1 ('node') to Node.appendChild must be an instance of Node
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfasteventsremovetargetwithshadowindragexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/events/remove-target-with-shadow-in-drag-expected.txt (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/remove-target-with-shadow-in-drag-expected.txt        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/LayoutTests/fast/events/remove-target-with-shadow-in-drag-expected.txt        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><del>-CONSOLE MESSAGE: line 34: TypeError: Type error
-CONSOLE MESSAGE: line 34: TypeError: Type error
</del><ins>+CONSOLE MESSAGE: line 34: TypeError: Argument 1 ('child') to Node.removeChild must be an instance of Node
+CONSOLE MESSAGE: line 34: TypeError: Argument 1 ('child') to Node.removeChild must be an instance of Node
</ins><span class="cx"> PASS. DRT didn't crash.
</span></span></pre></div>
<a id="trunkLayoutTestsjsdomdotnodebaseexceptionexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/dot-node-base-exception-expected.txt (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/dot-node-base-exception-expected.txt        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/LayoutTests/js/dom/dot-node-base-exception-expected.txt        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-PASS (document.appendChild()).foobar() threw exception TypeError: Type error.
</del><ins>+PASS (document.appendChild()).foobar() threw exception TypeError: Argument 1 ('node') to Node.appendChild must be an instance of Node.
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsjsdomscripttestsdotnodebaseexceptionjs"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/js/dom/script-tests/dot-node-base-exception.js (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/dom/script-tests/dot-node-base-exception.js        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/LayoutTests/js/dom/script-tests/dot-node-base-exception.js        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -3,4 +3,4 @@
</span><span class="cx"> );
</span><span class="cx"> 
</span><span class="cx"> // Should be a DOM exception, not just some &quot;TypeError: Null value&quot;.
</span><del>-shouldThrow('(document.appendChild()).foobar()', '&quot;TypeError: Type error&quot;');
</del><ins>+shouldThrow('(document.appendChild()).foobar()');
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/ChangeLog        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -1,3 +1,198 @@
</span><ins>+2016-05-11  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Update Node::appendChild() / replaceChild() / removeChild() / insertBefore() to take references instead of pointers
+        https://bugs.webkit.org/show_bug.cgi?id=157556
+
+        Reviewed by Darin Adler.
+
+        Update Node::appendChild() / replaceChild() / removeChild() / insertBefore()
+        to take references instead of pointers. Do the parameter null checks in the
+        bindings instead of doing it in the implementation on Node.
+
+        Also update the ContainerNode::appendChild() / replaceChild() /
+        insertBefore() to take C++ references instead of Ref&lt;&gt;&amp;&amp; to avoid
+        unnecessarily causing ref counting churns at some call sites (including
+        in the bindings since they are a raw pointer to the nodes). The
+        implementation on ContainerNode was not actually using WTFMove() on the
+        Ref&lt;&gt;&amp;&amp; anyway.
+
+        * Modules/plugins/YouTubePluginReplacement.cpp:
+        (WebCore::YouTubePluginReplacement::installReplacement):
+        * bindings/js/JSNodeCustom.cpp:
+        (WebCore::JSNode::insertBefore):
+        (WebCore::JSNode::replaceChild):
+        (WebCore::JSNode::removeChild):
+        (WebCore::JSNode::appendChild):
+        * dom/ContainerNode.cpp:
+        (WebCore::ContainerNode::insertBefore):
+        (WebCore::ContainerNode::parserInsertBefore):
+        (WebCore::ContainerNode::replaceChild):
+        (WebCore::ContainerNode::appendChild):
+        (WebCore::ContainerNode::parserAppendChild):
+        (WebCore::ContainerNode::cloneChildNodes):
+        (WebCore::ContainerNode::append):
+        (WebCore::ContainerNode::prepend):
+        * dom/ContainerNode.h:
+        * dom/DOMImplementation.cpp:
+        (WebCore::DOMImplementation::createDocument):
+        (WebCore::DOMImplementation::createHTMLDocument):
+        * dom/Document.cpp:
+        (WebCore::Document::setBodyOrFrameset):
+        * dom/Element.cpp:
+        (WebCore::Element::setOuterHTML):
+        * dom/Node.cpp:
+        (WebCore::Node::insertBefore):
+        (WebCore::Node::replaceChild):
+        (WebCore::Node::removeChild):
+        (WebCore::Node::appendChild):
+        (WebCore::Node::before):
+        (WebCore::Node::after):
+        (WebCore::Node::replaceWith):
+        (WebCore::nodeSetPreTransformedFromNodeOrStringVector): Deleted.
+        (WebCore::Node::normalize): Deleted.
+        * dom/Node.h:
+        * dom/Node.idl:
+        * dom/NodeOrString.cpp:
+        (WebCore::convertNodesOrStringsIntoNode):
+        * dom/Range.cpp:
+        (WebCore::Range::processContents):
+        (WebCore::Range::processContentsBetweenOffsets):
+        (WebCore::Range::processNodes):
+        (WebCore::Range::processAncestorsAndTheirSiblings):
+        (WebCore::Range::insertNode):
+        (WebCore::Range::surroundContents):
+        * dom/Range.h:
+        * dom/Text.cpp:
+        (WebCore::Text::splitText):
+        * editing/AppendNodeCommand.cpp:
+        (WebCore::AppendNodeCommand::doApply):
+        * editing/Editor.cpp:
+        (WebCore::Editor::setTextAsChildOfElement):
+        * editing/EditorCommand.cpp:
+        (WebCore::executeInsertNode):
+        * editing/MergeIdenticalElementsCommand.cpp:
+        (WebCore::MergeIdenticalElementsCommand::doApply):
+        (WebCore::MergeIdenticalElementsCommand::doUnapply):
+        * editing/RemoveNodeCommand.cpp:
+        (WebCore::RemoveNodeCommand::doUnapply):
+        * editing/ReplaceNodeWithSpanCommand.cpp:
+        (WebCore::swapInNodePreservingAttributesAndChildren):
+        * editing/ReplaceSelectionCommand.cpp:
+        (WebCore::ReplacementFragment::insertFragmentForTestRendering):
+        * editing/SplitElementCommand.cpp:
+        (WebCore::SplitElementCommand::executeApply):
+        (WebCore::SplitElementCommand::doUnapply):
+        * editing/WrapContentsInDummySpanCommand.cpp:
+        (WebCore::WrapContentsInDummySpanCommand::executeApply):
+        (WebCore::WrapContentsInDummySpanCommand::doUnapply):
+        * editing/cocoa/EditorCocoa.mm:
+        (WebCore::Editor::styleForSelectionStart):
+        * editing/htmlediting.cpp:
+        (WebCore::createTabSpanElement):
+        * editing/ios/EditorIOS.mm:
+        (WebCore::Editor::WebContentReader::readURL):
+        (WebCore::Editor::createFragmentForImageResourceAndAddResource):
+        * editing/mac/EditorMac.mm:
+        (WebCore::Editor::WebContentReader::readFilenames):
+        (WebCore::Editor::WebContentReader::readURL):
+        (WebCore::Editor::createFragmentForImageResourceAndAddResource):
+        * editing/markup.cpp:
+        (WebCore::fillContainerFromString):
+        (WebCore::createFragmentFromText):
+        (WebCore::replaceChildrenWithFragment):
+        (WebCore::replaceChildrenWithText):
+        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
+        (WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):
+        * html/ColorInputType.cpp:
+        (WebCore::ColorInputType::createShadowSubtree):
+        * html/FTPDirectoryDocument.cpp:
+        (WebCore::FTPDirectoryDocumentParser::appendEntry):
+        (WebCore::FTPDirectoryDocumentParser::createTDForFilename):
+        (WebCore::FTPDirectoryDocumentParser::createBasicDocument):
+        * html/HTMLDetailsElement.cpp:
+        (WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot):
+        * html/HTMLElement.cpp:
+        (WebCore::HTMLElement::setOuterText):
+        (WebCore::HTMLElement::insertAdjacent):
+        * html/HTMLImageElement.cpp:
+        (WebCore::HTMLImageElement::tryCreateImageControls):
+        * html/HTMLKeygenElement.cpp:
+        (WebCore::HTMLKeygenElement::HTMLKeygenElement):
+        * html/HTMLMeterElement.cpp:
+        (WebCore::HTMLMeterElement::didAddUserAgentShadowRoot):
+        * html/HTMLOptionElement.cpp:
+        (WebCore::HTMLOptionElement::createForJSConstructor):
+        * html/HTMLProgressElement.cpp:
+        (WebCore::HTMLProgressElement::didAddUserAgentShadowRoot):
+        * html/HTMLTableElement.cpp:
+        (WebCore::HTMLTableElement::createTBody):
+        (WebCore::HTMLTableElement::insertRow):
+        * html/HTMLTableRowElement.cpp:
+        (WebCore::HTMLTableRowElement::insertCell):
+        * html/ImageDocument.cpp:
+        (WebCore::ImageDocument::createDocumentStructure):
+        * html/MediaDocument.cpp:
+        (WebCore::MediaDocumentParser::createDocumentStructure):
+        * html/PluginDocument.cpp:
+        (WebCore::PluginDocumentParser::createDocumentStructure):
+        * html/RangeInputType.cpp:
+        (WebCore::RangeInputType::createShadowSubtree):
+        * html/SearchInputType.cpp:
+        (WebCore::SearchInputType::createShadowSubtree):
+        * html/ValidationMessage.cpp:
+        (WebCore::ValidationMessage::buildBubbleTree):
+        * html/shadow/MediaControlElements.cpp:
+        (WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
+        * html/shadow/MediaControls.cpp:
+        (WebCore::MediaControls::createTextTrackDisplay):
+        * html/shadow/MediaControlsApple.cpp:
+        (WebCore::MediaControlsApple::tryCreateControls):
+        * html/shadow/mac/ImageControlsRootElementMac.cpp:
+        (WebCore::ImageControlsRootElement::tryCreate):
+        * html/track/VTTCue.cpp:
+        (WebCore::VTTCue::updateDisplayTree):
+        * html/track/WebVTTParser.cpp:
+        (WebCore::WebVTTTreeBuilder::constructTreeFromToken):
+        * inspector/DOMEditor.cpp:
+        (WebCore::DOMEditor::RemoveChildAction::RemoveChildAction):
+        (WebCore::DOMEditor::InsertBeforeAction::InsertBeforeAction):
+        (WebCore::DOMEditor::ReplaceChildNodeAction::ReplaceChildNodeAction):
+        (WebCore::DOMEditor::insertBefore):
+        (WebCore::DOMEditor::removeChild):
+        (WebCore::DOMEditor::replaceChild):
+        * inspector/DOMEditor.h:
+        * inspector/DOMPatchSupport.cpp:
+        (WebCore::DOMPatchSupport::patchNode):
+        (WebCore::DOMPatchSupport::innerPatchNode):
+        (WebCore::DOMPatchSupport::innerPatchChildren):
+        (WebCore::DOMPatchSupport::insertBeforeAndMarkAsUsed):
+        (WebCore::DOMPatchSupport::removeChildAndMoveToNew):
+        * inspector/DOMPatchSupport.h:
+        * inspector/InspectorCSSAgent.cpp:
+        (WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument):
+        * inspector/InspectorDOMAgent.cpp:
+        (WebCore::InspectorDOMAgent::removeNode):
+        (WebCore::InspectorDOMAgent::setNodeName):
+        (WebCore::InspectorDOMAgent::moveTo):
+        * page/DragController.cpp:
+        (WebCore::documentFragmentFromDragData):
+        * page/ios/FrameIOS.mm:
+        (WebCore::Frame::initWithSimpleHTMLDocument):
+        * svg/SVGUseElement.cpp:
+        (WebCore::SVGUseElement::cloneTarget):
+        (WebCore::SVGUseElement::expandUseElementsInShadowTree):
+        (WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
+        * xml/XMLErrors.cpp:
+        (WebCore::createXHTMLParserErrorHeader):
+        (WebCore::XMLErrors::insertErrorMessageBlock):
+        * xml/XMLTreeViewer.cpp:
+        (WebCore::XMLTreeViewer::transformDocumentToTreeView):
+        * xml/parser/XMLDocumentParserLibxml2.cpp:
+        (WebCore::XMLDocumentParser::startElementNs):
+        (WebCore::XMLDocumentParser::processingInstruction):
+        (WebCore::XMLDocumentParser::cdataBlock):
+        (WebCore::XMLDocumentParser::comment):
+
</ins><span class="cx"> 2016-05-11  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Modern IDB: IDBOpenDBRequests that are stop()'ed don't notify the IDBServer of that fact.
</span></span></pre></div>
<a id="trunkSourceWebCoreModulespluginsYouTubePluginReplacementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx"> 
</span><span class="cx">     root.appendChild(*m_embedShadowElement);
</span><span class="cx"> 
</span><del>-    Ref&lt;HTMLIFrameElement&gt; iframeElement = HTMLIFrameElement::create(HTMLNames::iframeTag, m_parentElement-&gt;document());
</del><ins>+    auto iframeElement = HTMLIFrameElement::create(HTMLNames::iframeTag, m_parentElement-&gt;document());
</ins><span class="cx">     if (m_attributes.contains(&quot;width&quot;))
</span><span class="cx">         iframeElement-&gt;setAttribute(HTMLNames::widthAttr, AtomicString(&quot;100%&quot;, AtomicString::ConstructFromLiteral));
</span><span class="cx">     
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx">     
</span><span class="cx">     // Disable frame flattening for this iframe.
</span><span class="cx">     iframeElement-&gt;setAttribute(HTMLNames::scrollingAttr, AtomicString(&quot;no&quot;, AtomicString::ConstructFromLiteral));
</span><del>-    m_embedShadowElement-&gt;appendChild(WTFMove(iframeElement));
</del><ins>+    m_embedShadowElement-&gt;appendChild(iframeElement);
</ins><span class="cx"> 
</span><span class="cx">     return true;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSNodeCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -114,42 +114,74 @@
</span><span class="cx"> 
</span><span class="cx"> JSValue JSNode::insertBefore(ExecState&amp; state)
</span><span class="cx"> {
</span><ins>+    JSValue newChildValue = state.argument(0);
+    auto* newChild = JSNode::toWrapped(newChildValue);
+    if (UNLIKELY(!newChild))
+        return JSValue::decode(throwArgumentTypeError(state, 0, &quot;node&quot;, &quot;Node&quot;, &quot;insertBefore&quot;, &quot;Node&quot;));
+
</ins><span class="cx">     ExceptionCode ec = 0;
</span><del>-    bool ok = wrapped().insertBefore(JSNode::toWrapped(state.argument(0)), JSNode::toWrapped(state.argument(1)), ec);
-    setDOMException(&amp;state, ec);
-    if (ok)
-        return state.argument(0);
-    return jsNull();
</del><ins>+    if (UNLIKELY(!wrapped().insertBefore(*newChild, JSNode::toWrapped(state.argument(1)), ec))) {
+        setDOMException(&amp;state, ec);
+        return jsUndefined();
+    }
+
+    ASSERT(!ec);
+    return newChildValue;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue JSNode::replaceChild(ExecState&amp; state)
</span><span class="cx"> {
</span><ins>+    auto* newChild = JSNode::toWrapped(state.argument(0));
+    JSValue oldChildValue = state.argument(1);
+    auto* oldChild = JSNode::toWrapped(oldChildValue);
+    if (UNLIKELY(!newChild || !oldChild)) {
+        if (!newChild)
+            return JSValue::decode(throwArgumentTypeError(state, 0, &quot;node&quot;, &quot;Node&quot;, &quot;replaceChild&quot;, &quot;Node&quot;));
+        return JSValue::decode(throwArgumentTypeError(state, 1, &quot;child&quot;, &quot;Node&quot;, &quot;replaceChild&quot;, &quot;Node&quot;));
+    }
+
</ins><span class="cx">     ExceptionCode ec = 0;
</span><del>-    bool ok = wrapped().replaceChild(JSNode::toWrapped(state.argument(0)), JSNode::toWrapped(state.argument(1)), ec);
-    setDOMException(&amp;state, ec);
-    if (ok)
-        return state.argument(1);
-    return jsNull();
</del><ins>+    if (UNLIKELY(!wrapped().replaceChild(*newChild, *oldChild, ec))) {
+        setDOMException(&amp;state, ec);
+        return jsUndefined();
+    }
+
+    ASSERT(!ec);
+    return oldChildValue;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue JSNode::removeChild(ExecState&amp; state)
</span><span class="cx"> {
</span><ins>+    JSValue childValue = state.argument(0);
+    auto* child = JSNode::toWrapped(childValue);
+    if (UNLIKELY(!child))
+        return JSValue::decode(throwArgumentTypeError(state, 0, &quot;child&quot;, &quot;Node&quot;, &quot;removeChild&quot;, &quot;Node&quot;));
+
</ins><span class="cx">     ExceptionCode ec = 0;
</span><del>-    bool ok = wrapped().removeChild(JSNode::toWrapped(state.argument(0)), ec);
-    setDOMException(&amp;state, ec);
-    if (ok)
-        return state.argument(0);
-    return jsNull();
</del><ins>+    if (UNLIKELY(!wrapped().removeChild(*child, ec))) {
+        setDOMException(&amp;state, ec);
+        return jsUndefined();
+    }
+
+    ASSERT(!ec);
+    return childValue;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValue JSNode::appendChild(ExecState&amp; state)
</span><span class="cx"> {
</span><ins>+    JSValue newChildValue = state.argument(0);
+    auto newChild = JSNode::toWrapped(newChildValue);
+    if (UNLIKELY(!newChild))
+        return JSValue::decode(throwArgumentTypeError(state, 0, &quot;node&quot;, &quot;Node&quot;, &quot;appendChild&quot;, &quot;Node&quot;));
+
</ins><span class="cx">     ExceptionCode ec = 0;
</span><del>-    bool ok = wrapped().appendChild(JSNode::toWrapped(state.argument(0)), ec);
-    setDOMException(&amp;state, ec);
-    if (ok)
-        return state.argument(0);
-    return jsNull();
</del><ins>+    if (UNLIKELY(!wrapped().appendChild(*newChild, ec))) {
+        setDOMException(&amp;state, ec);
+        return jsUndefined();
+    }
+
+    ASSERT(!ec);
+    return newChildValue;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSScope* JSNode::pushEventHandlerScope(ExecState* exec, JSScope* node) const
</span></span></pre></div>
<a id="trunkSourceWebCoredomContainerNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ContainerNode.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ContainerNode.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/dom/ContainerNode.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -225,7 +225,7 @@
</span><span class="cx">     return !ec;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool ContainerNode::insertBefore(Ref&lt;Node&gt;&amp;&amp; newChild, Node* refChild, ExceptionCode&amp; ec)
</del><ins>+bool ContainerNode::insertBefore(Node&amp; newChild, Node* refChild, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><span class="cx">     // Check that this node is not &quot;floating&quot;.
</span><span class="cx">     // If it is, it can be deleted as a side effect of sending mutation events.
</span><span class="lines">@@ -237,7 +237,7 @@
</span><span class="cx"> 
</span><span class="cx">     // insertBefore(node, 0) is equivalent to appendChild(node)
</span><span class="cx">     if (!refChild)
</span><del>-        return appendChild(WTFMove(newChild), ec);
</del><ins>+        return appendChild(newChild, ec);
</ins><span class="cx"> 
</span><span class="cx">     // Make sure adding the new child is OK.
</span><span class="cx">     if (!ensurePreInsertionValidity(newChild, refChild, ec))
</span><span class="lines">@@ -249,7 +249,7 @@
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (refChild-&gt;previousSibling() == newChild.ptr() || refChild == newChild.ptr()) // nothing to do
</del><ins>+    if (refChild-&gt;previousSibling() == &amp;newChild || refChild == &amp;newChild) // nothing to do
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     Ref&lt;Node&gt; next(*refChild);
</span><span class="lines">@@ -359,28 +359,28 @@
</span><span class="cx">     childrenChanged(change);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ContainerNode::parserInsertBefore(Ref&lt;Node&gt;&amp;&amp; newChild, Node&amp; nextChild)
</del><ins>+void ContainerNode::parserInsertBefore(Node&amp; newChild, Node&amp; nextChild)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(nextChild.parentNode() == this);
</span><del>-    ASSERT(!newChild-&gt;isDocumentFragment());
</del><ins>+    ASSERT(!newChild.isDocumentFragment());
</ins><span class="cx">     ASSERT(!hasTagName(HTMLNames::templateTag));
</span><span class="cx"> 
</span><del>-    if (nextChild.previousSibling() == newChild.ptr() || &amp;nextChild == newChild.ptr()) // nothing to do
</del><ins>+    if (nextChild.previousSibling() == &amp;newChild || &amp;nextChild == &amp;newChild) // nothing to do
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (&amp;document() != &amp;newChild-&gt;document())
</del><ins>+    if (&amp;document() != &amp;newChild.document())
</ins><span class="cx">         document().adoptNode(newChild, ASSERT_NO_EXCEPTION);
</span><span class="cx"> 
</span><span class="cx">     insertBeforeCommon(nextChild, newChild);
</span><span class="cx"> 
</span><del>-    newChild-&gt;updateAncestorConnectedSubframeCountForInsertion();
</del><ins>+    newChild.updateAncestorConnectedSubframeCountForInsertion();
</ins><span class="cx"> 
</span><span class="cx">     notifyChildInserted(newChild, ChildChangeSourceParser);
</span><span class="cx"> 
</span><del>-    newChild-&gt;setNeedsStyleRecalc(ReconstructRenderTree);
</del><ins>+    newChild.setNeedsStyleRecalc(ReconstructRenderTree);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool ContainerNode::replaceChild(Ref&lt;Node&gt;&amp;&amp; newChild, Node&amp; oldChild, ExceptionCode&amp; ec)
</del><ins>+bool ContainerNode::replaceChild(Node&amp; newChild, Node&amp; oldChild, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><span class="cx">     // Check that this node is not &quot;floating&quot;.
</span><span class="cx">     // If it is, it can be deleted as a side effect of sending mutation events.
</span><span class="lines">@@ -390,7 +390,7 @@
</span><span class="cx"> 
</span><span class="cx">     ec = 0;
</span><span class="cx"> 
</span><del>-    if (&amp;oldChild == newChild.ptr()) // nothing to do
</del><ins>+    if (&amp;oldChild == &amp;newChild) // nothing to do
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     // Make sure replacing the old child with the new is ok
</span><span class="lines">@@ -406,7 +406,7 @@
</span><span class="cx">     ChildListMutationScope mutation(*this);
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Node&gt; refChild = oldChild.nextSibling();
</span><del>-    if (refChild.get() == newChild.ptr())
</del><ins>+    if (refChild.get() == &amp;newChild)
</ins><span class="cx">         refChild = refChild-&gt;nextSibling();
</span><span class="cx"> 
</span><span class="cx">     NodeVector targets;
</span><span class="lines">@@ -647,7 +647,7 @@
</span><span class="cx">     dispatchSubtreeModifiedEvent();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool ContainerNode::appendChild(Ref&lt;Node&gt;&amp;&amp; newChild, ExceptionCode&amp; ec)
</del><ins>+bool ContainerNode::appendChild(Node&amp; newChild, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><span class="cx">     Ref&lt;ContainerNode&gt; protect(*this);
</span><span class="cx"> 
</span><span class="lines">@@ -661,7 +661,7 @@
</span><span class="cx">     if (!ensurePreInsertionValidity(newChild, nullptr, ec))
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (newChild.ptr() == m_lastChild) // nothing to do
</del><ins>+    if (&amp;newChild == m_lastChild) // nothing to do
</ins><span class="cx">         return true;
</span><span class="cx"> 
</span><span class="cx">     NodeVector targets;
</span><span class="lines">@@ -702,27 +702,27 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void ContainerNode::parserAppendChild(Ref&lt;Node&gt;&amp;&amp; newChild)
</del><ins>+void ContainerNode::parserAppendChild(Node&amp; newChild)
</ins><span class="cx"> {
</span><del>-    ASSERT(!newChild-&gt;parentNode()); // Use appendChild if you need to handle reparenting (and want DOM mutation events).
-    ASSERT(!newChild-&gt;isDocumentFragment());
</del><ins>+    ASSERT(!newChild.parentNode()); // Use appendChild if you need to handle reparenting (and want DOM mutation events).
+    ASSERT(!newChild.isDocumentFragment());
</ins><span class="cx">     ASSERT(!hasTagName(HTMLNames::templateTag));
</span><span class="cx"> 
</span><del>-    if (&amp;document() != &amp;newChild-&gt;document())
</del><ins>+    if (&amp;document() != &amp;newChild.document())
</ins><span class="cx">         document().adoptNode(newChild, ASSERT_NO_EXCEPTION);
</span><span class="cx"> 
</span><span class="cx">     {
</span><span class="cx">         NoEventDispatchAssertion assertNoEventDispatch;
</span><span class="cx">         // FIXME: This method should take a PassRefPtr.
</span><span class="cx">         appendChildCommon(newChild);
</span><del>-        treeScope().adoptIfNeeded(newChild.ptr());
</del><ins>+        treeScope().adoptIfNeeded(&amp;newChild);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    newChild-&gt;updateAncestorConnectedSubframeCountForInsertion();
</del><ins>+    newChild.updateAncestorConnectedSubframeCountForInsertion();
</ins><span class="cx"> 
</span><span class="cx">     notifyChildInserted(newChild, ChildChangeSourceParser);
</span><span class="cx"> 
</span><del>-    newChild-&gt;setNeedsStyleRecalc(ReconstructRenderTree);
</del><ins>+    newChild.setNeedsStyleRecalc(ReconstructRenderTree);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ContainerNode::childrenChanged(const ChildChange&amp; change)
</span><span class="lines">@@ -739,7 +739,7 @@
</span><span class="cx">     Document&amp; targetDocument = clone.document();
</span><span class="cx">     for (Node* child = firstChild(); child &amp;&amp; !ec; child = child-&gt;nextSibling()) {
</span><span class="cx">         Ref&lt;Node&gt; clonedChild = child-&gt;cloneNodeInternal(targetDocument, CloningOperation::SelfWithTemplateContent);
</span><del>-        clone.appendChild(clonedChild.copyRef(), ec);
</del><ins>+        clone.appendChild(clonedChild, ec);
</ins><span class="cx"> 
</span><span class="cx">         if (!ec &amp;&amp; is&lt;ContainerNode&gt;(*child))
</span><span class="cx">             downcast&lt;ContainerNode&gt;(*child).cloneChildNodes(downcast&lt;ContainerNode&gt;(clonedChild.get()));
</span><span class="lines">@@ -916,7 +916,7 @@
</span><span class="cx">     if (ec || !node)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    appendChild(node.releaseNonNull(), ec);
</del><ins>+    appendChild(*node, ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ContainerNode::prepend(Vector&lt;NodeOrString&gt;&amp;&amp; nodeOrStringVector, ExceptionCode&amp; ec)
</span><span class="lines">@@ -925,7 +925,7 @@
</span><span class="cx">     if (ec || !node)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    insertBefore(node.releaseNonNull(), firstChild(), ec);
</del><ins>+    insertBefore(*node, firstChild(), ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> HTMLCollection* ContainerNode::cachedHTMLCollection(CollectionType type)
</span></span></pre></div>
<a id="trunkSourceWebCoredomContainerNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ContainerNode.h (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ContainerNode.h        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/dom/ContainerNode.h        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -50,17 +50,17 @@
</span><span class="cx">     WEBCORE_EXPORT unsigned countChildNodes() const;
</span><span class="cx">     WEBCORE_EXPORT Node* traverseToChildAt(unsigned) const;
</span><span class="cx"> 
</span><del>-    bool insertBefore(Ref&lt;Node&gt;&amp;&amp; newChild, Node* refChild, ExceptionCode&amp; = ASSERT_NO_EXCEPTION);
-    bool replaceChild(Ref&lt;Node&gt;&amp;&amp; newChild, Node&amp; oldChild, ExceptionCode&amp; = ASSERT_NO_EXCEPTION);
</del><ins>+    bool insertBefore(Node&amp; newChild, Node* refChild, ExceptionCode&amp; = ASSERT_NO_EXCEPTION);
+    bool replaceChild(Node&amp; newChild, Node&amp; oldChild, ExceptionCode&amp; = ASSERT_NO_EXCEPTION);
</ins><span class="cx">     WEBCORE_EXPORT bool removeChild(Node&amp; child, ExceptionCode&amp; = ASSERT_NO_EXCEPTION);
</span><del>-    WEBCORE_EXPORT bool appendChild(Ref&lt;Node&gt;&amp;&amp; newChild, ExceptionCode&amp; = ASSERT_NO_EXCEPTION);
</del><ins>+    WEBCORE_EXPORT bool appendChild(Node&amp; newChild, ExceptionCode&amp; = ASSERT_NO_EXCEPTION);
</ins><span class="cx"> 
</span><span class="cx">     // These methods are only used during parsing.
</span><span class="cx">     // They don't send DOM mutation events or handle reparenting.
</span><span class="cx">     // However, arbitrary code may be run by beforeload handlers.
</span><del>-    void parserAppendChild(Ref&lt;Node&gt;&amp;&amp;);
</del><ins>+    void parserAppendChild(Node&amp;);
</ins><span class="cx">     void parserRemoveChild(Node&amp;);
</span><del>-    void parserInsertBefore(Ref&lt;Node&gt;&amp;&amp; newChild, Node&amp; refChild);
</del><ins>+    void parserInsertBefore(Node&amp; newChild, Node&amp; refChild);
</ins><span class="cx"> 
</span><span class="cx">     void removeChildren();
</span><span class="cx">     void takeAllChildrenFrom(ContainerNode*);
</span></span></pre></div>
<a id="trunkSourceWebCoredomDOMImplementationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DOMImplementation.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DOMImplementation.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/dom/DOMImplementation.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -238,13 +238,13 @@
</span><span class="cx">     if (!qualifiedName.isEmpty()) {
</span><span class="cx">         documentElement = doc-&gt;createElementNS(namespaceURI, qualifiedName, ec);
</span><span class="cx">         if (ec)
</span><del>-            return 0;
</del><ins>+            return nullptr;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (doctype)
</span><span class="cx">         doc-&gt;appendChild(*doctype);
</span><span class="cx">     if (documentElement)
</span><del>-        doc-&gt;appendChild(documentElement.releaseNonNull());
</del><ins>+        doc-&gt;appendChild(*documentElement);
</ins><span class="cx"> 
</span><span class="cx">     return doc;
</span><span class="cx"> }
</span><span class="lines">@@ -312,7 +312,7 @@
</span><span class="cx">         auto titleElement = HTMLTitleElement::create(titleTag, document);
</span><span class="cx">         titleElement-&gt;appendChild(document-&gt;createTextNode(title));
</span><span class="cx">         ASSERT(document-&gt;head());
</span><del>-        document-&gt;head()-&gt;appendChild(WTFMove(titleElement));
</del><ins>+        document-&gt;head()-&gt;appendChild(titleElement);
</ins><span class="cx">     }
</span><span class="cx">     document-&gt;setSecurityOriginPolicy(m_document.securityOriginPolicy());
</span><span class="cx">     return document;
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/dom/Document.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -2631,9 +2631,9 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (auto* body = bodyOrFrameset())
</span><del>-        documentElement()-&gt;replaceChild(newBody.releaseNonNull(), *body, ec);
</del><ins>+        documentElement()-&gt;replaceChild(*newBody, *body, ec);
</ins><span class="cx">     else
</span><del>-        documentElement()-&gt;appendChild(newBody.releaseNonNull(), ec);
</del><ins>+        documentElement()-&gt;appendChild(*newBody, ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Location* Document::location() const
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/dom/Element.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -2369,7 +2369,7 @@
</span><span class="cx">     if (ec)
</span><span class="cx">         return;
</span><span class="cx">     
</span><del>-    parent-&gt;replaceChild(fragment.releaseNonNull(), *this, ec);
</del><ins>+    parent-&gt;replaceChild(*fragment, *this, ec);
</ins><span class="cx">     RefPtr&lt;Node&gt; node = next ? next-&gt;previousSibling() : nullptr;
</span><span class="cx">     if (!ec &amp;&amp; is&lt;Text&gt;(node.get()))
</span><span class="cx">         mergeWithNextTextNode(downcast&lt;Text&gt;(*node), ec);
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/dom/Node.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -398,56 +398,40 @@
</span><span class="cx">     return ElementTraversal::nextSibling(*this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Node::insertBefore(PassRefPtr&lt;Node&gt; newChild, Node* refChild, ExceptionCode&amp; ec)
</del><ins>+bool Node::insertBefore(Node&amp; newChild, Node* refChild, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><del>-    if (!newChild) {
-        ec = TypeError;
-        return false;
-    }
</del><span class="cx">     if (!is&lt;ContainerNode&gt;(*this)) {
</span><span class="cx">         ec = HIERARCHY_REQUEST_ERR;
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><del>-    return downcast&lt;ContainerNode&gt;(*this).insertBefore(*newChild, refChild, ec);
</del><ins>+    return downcast&lt;ContainerNode&gt;(*this).insertBefore(newChild, refChild, ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Node::replaceChild(PassRefPtr&lt;Node&gt; newChild, Node* oldChild, ExceptionCode&amp; ec)
</del><ins>+bool Node::replaceChild(Node&amp; newChild, Node&amp; oldChild, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><del>-    if (!newChild || !oldChild) {
-        ec = TypeError;
-        return false;
-    }
</del><span class="cx">     if (!is&lt;ContainerNode&gt;(*this)) {
</span><span class="cx">         ec = HIERARCHY_REQUEST_ERR;
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><del>-    return downcast&lt;ContainerNode&gt;(*this).replaceChild(*newChild, *oldChild, ec);
</del><ins>+    return downcast&lt;ContainerNode&gt;(*this).replaceChild(newChild, oldChild, ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Node::removeChild(Node* oldChild, ExceptionCode&amp; ec)
</del><ins>+bool Node::removeChild(Node&amp; oldChild, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><del>-    if (!oldChild) {
-        ec = TypeError;
-        return false;
-    }
</del><span class="cx">     if (!is&lt;ContainerNode&gt;(*this)) {
</span><span class="cx">         ec = NOT_FOUND_ERR;
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><del>-    return downcast&lt;ContainerNode&gt;(*this).removeChild(*oldChild, ec);
</del><ins>+    return downcast&lt;ContainerNode&gt;(*this).removeChild(oldChild, ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Node::appendChild(PassRefPtr&lt;Node&gt; newChild, ExceptionCode&amp; ec)
</del><ins>+bool Node::appendChild(Node&amp; newChild, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><del>-    if (!newChild) {
-        ec = TypeError;
-        return false;
-    }
</del><span class="cx">     if (!is&lt;ContainerNode&gt;(*this)) {
</span><span class="cx">         ec = HIERARCHY_REQUEST_ERR;
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><del>-    return downcast&lt;ContainerNode&gt;(*this).appendChild(*newChild, ec);
</del><ins>+    return downcast&lt;ContainerNode&gt;(*this).appendChild(newChild, ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static HashSet&lt;RefPtr&lt;Node&gt;&gt; nodeSetPreTransformedFromNodeOrStringVector(const Vector&lt;NodeOrString&gt;&amp; nodeOrStringVector)
</span><span class="lines">@@ -502,7 +486,7 @@
</span><span class="cx">     else
</span><span class="cx">         viablePreviousSibling = parent-&gt;firstChild();
</span><span class="cx"> 
</span><del>-    parent-&gt;insertBefore(node.releaseNonNull(), viablePreviousSibling.get(), ec);
</del><ins>+    parent-&gt;insertBefore(*node, viablePreviousSibling.get(), ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Node::after(Vector&lt;NodeOrString&gt;&amp;&amp; nodeOrStringVector, ExceptionCode&amp; ec)
</span><span class="lines">@@ -518,7 +502,7 @@
</span><span class="cx">     if (ec || !node)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    parent-&gt;insertBefore(node.releaseNonNull(), viableNextSibling.get(), ec);
</del><ins>+    parent-&gt;insertBefore(*node, viableNextSibling.get(), ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Node::replaceWith(Vector&lt;NodeOrString&gt;&amp;&amp; nodeOrStringVector, ExceptionCode&amp; ec)
</span><span class="lines">@@ -536,11 +520,11 @@
</span><span class="cx"> 
</span><span class="cx">     if (parentNode() == parent) {
</span><span class="cx">         if (node)
</span><del>-            parent-&gt;replaceChild(node.releaseNonNull(), *this, ec);
</del><ins>+            parent-&gt;replaceChild(*node, *this, ec);
</ins><span class="cx">         else
</span><span class="cx">             parent-&gt;removeChild(*this);
</span><span class="cx">     } else if (node)
</span><del>-        parent-&gt;insertBefore(node.releaseNonNull(), viableNextSibling.get(), ec);
</del><ins>+        parent-&gt;insertBefore(*node, viableNextSibling.get(), ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void Node::remove(ExceptionCode&amp; ec)
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.h (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.h        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/dom/Node.h        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -167,10 +167,10 @@
</span><span class="cx">     // These should all actually return a node, but this is only important for language bindings,
</span><span class="cx">     // which will already know and hold a ref on the right node to return. Returning bool allows
</span><span class="cx">     // these methods to be more efficient since they don't need to return a ref
</span><del>-    WEBCORE_EXPORT bool insertBefore(PassRefPtr&lt;Node&gt; newChild, Node* refChild, ExceptionCode&amp;);
-    bool replaceChild(PassRefPtr&lt;Node&gt; newChild, Node* oldChild, ExceptionCode&amp;);
-    WEBCORE_EXPORT bool removeChild(Node* child, ExceptionCode&amp;);
-    WEBCORE_EXPORT bool appendChild(PassRefPtr&lt;Node&gt; newChild, ExceptionCode&amp;);
</del><ins>+    WEBCORE_EXPORT bool insertBefore(Node&amp; newChild, Node* refChild, ExceptionCode&amp;);
+    bool replaceChild(Node&amp; newChild, Node&amp; oldChild, ExceptionCode&amp;);
+    WEBCORE_EXPORT bool removeChild(Node&amp; child, ExceptionCode&amp;);
+    WEBCORE_EXPORT bool appendChild(Node&amp; newChild, ExceptionCode&amp;);
</ins><span class="cx"> 
</span><span class="cx">     bool hasChildNodes() const { return firstChild(); }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.idl (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.idl        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/dom/Node.idl        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -61,16 +61,10 @@
</span><span class="cx">     readonly attribute Node             nextSibling;
</span><span class="cx">     readonly attribute Document         ownerDocument;
</span><span class="cx"> 
</span><del>-    // FIXME: newChild should not be nullable.
-    [ObjCLegacyUnnamedParameters, Custom, RaisesException] Node insertBefore([CustomReturn] Node? newChild,
-                                                            Node? refChild);
-    // FIXME: newChild and oldChild should not be nullable.
-    [ObjCLegacyUnnamedParameters, Custom, RaisesException] Node replaceChild(Node? newChild,
-                                                            [CustomReturn] Node? oldChild);
-    // FIXME: oldChild should not be nullable.
-    [Custom, RaisesException] Node removeChild([CustomReturn] Node? oldChild);
-    // FIXME: newChild should not be nullable.
-    [Custom, RaisesException] Node appendChild([CustomReturn] Node? newChild);
</del><ins>+    [ObjCLegacyUnnamedParameters, Custom, RaisesException] Node insertBefore([CustomReturn] Node newChild, Node? refChild);
+    [ObjCLegacyUnnamedParameters, Custom, RaisesException] Node replaceChild(Node newChild, [CustomReturn] Node oldChild);
+    [Custom, RaisesException] Node removeChild([CustomReturn] Node oldChild);
+    [Custom, RaisesException] Node appendChild([CustomReturn] Node newChild);
</ins><span class="cx"> 
</span><span class="cx">     boolean            hasChildNodes();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeOrStringcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/NodeOrString.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/NodeOrString.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/dom/NodeOrString.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx">     if (nodeOrStringVector.isEmpty())
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    Vector&lt;RefPtr&lt;Node&gt;&gt; nodes;
</del><ins>+    Vector&lt;Ref&lt;Node&gt;&gt; nodes;
</ins><span class="cx">     nodes.reserveInitialCapacity(nodeOrStringVector.size());
</span><span class="cx">     for (auto&amp; nodeOrString : nodeOrStringVector) {
</span><span class="cx">         switch (nodeOrString.type()) {
</span><span class="lines">@@ -44,24 +44,20 @@
</span><span class="cx">             nodes.uncheckedAppend(Text::create(context.document(), nodeOrString.string()));
</span><span class="cx">             break;
</span><span class="cx">         case NodeOrString::Type::Node:
</span><del>-            nodes.uncheckedAppend(&amp;nodeOrString.node());
</del><ins>+            nodes.uncheckedAppend(nodeOrString.node());
</ins><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;Node&gt; nodeToReturn;
</del><span class="cx">     if (nodes.size() == 1)
</span><del>-        nodeToReturn = nodes.first();
-    else {
-        nodeToReturn = DocumentFragment::create(context.document());
-        for (auto&amp; node : nodes) {
-            nodeToReturn-&gt;appendChild(node, ec);
-            if (ec)
-                return nullptr;
-        }
</del><ins>+        return WTFMove(nodes.first());
+
+    auto nodeToReturn = DocumentFragment::create(context.document());
+    for (auto&amp; node : nodes) {
+        if (!nodeToReturn-&gt;appendChild(node, ec))
+            return nullptr;
</ins><span class="cx">     }
</span><del>-    
-    return nodeToReturn;
</del><ins>+    return WTFMove(nodeToReturn);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoredomRangecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Range.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Range.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/dom/Range.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -554,7 +554,7 @@
</span><span class="cx"> 
</span><span class="cx"> RefPtr&lt;DocumentFragment&gt; Range::processContents(ActionType action, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><del>-    typedef Vector&lt;RefPtr&lt;Node&gt;&gt; NodeVector;
</del><ins>+    typedef Vector&lt;Ref&lt;Node&gt;&gt; NodeVector;
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;DocumentFragment&gt; fragment;
</span><span class="cx">     if (action == Extract || action == Clone)
</span><span class="lines">@@ -602,13 +602,13 @@
</span><span class="cx">     RefPtr&lt;Node&gt; leftContents;
</span><span class="cx">     if (originalStart.container() != commonRoot &amp;&amp; commonRoot-&gt;contains(originalStart.container())) {
</span><span class="cx">         leftContents = processContentsBetweenOffsets(action, 0, originalStart.container(), originalStart.offset(), lengthOfContentsInNode(*originalStart.container()), ec);
</span><del>-        leftContents = processAncestorsAndTheirSiblings(action, originalStart.container(), ProcessContentsForward, leftContents, commonRoot.get(), ec);
</del><ins>+        leftContents = processAncestorsAndTheirSiblings(action, originalStart.container(), ProcessContentsForward, WTFMove(leftContents), commonRoot.get(), ec);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Node&gt; rightContents;
</span><span class="cx">     if (&amp;endContainer() != commonRoot &amp;&amp; commonRoot-&gt;contains(originalEnd.container())) {
</span><span class="cx">         rightContents = processContentsBetweenOffsets(action, 0, originalEnd.container(), 0, originalEnd.offset(), ec);
</span><del>-        rightContents = processAncestorsAndTheirSiblings(action, originalEnd.container(), ProcessContentsBackward, rightContents, commonRoot.get(), ec);
</del><ins>+        rightContents = processAncestorsAndTheirSiblings(action, originalEnd.container(), ProcessContentsBackward, WTFMove(rightContents), commonRoot.get(), ec);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // delete all children of commonRoot between the start and end container
</span><span class="lines">@@ -637,9 +637,9 @@
</span><span class="cx"> 
</span><span class="cx">     if (processStart) {
</span><span class="cx">         NodeVector nodes;
</span><del>-        for (Node* n = processStart.get(); n &amp;&amp; n != processEnd; n = n-&gt;nextSibling())
-            nodes.append(n);
-        processNodes(action, nodes, commonRoot, fragment, ec);
</del><ins>+        for (Node* node = processStart.get(); node &amp;&amp; node != processEnd; node = node-&gt;nextSibling())
+            nodes.append(*node);
+        processNodes(action, nodes, commonRoot.get(), fragment.get(), ec);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if ((action == Extract || action == Clone) &amp;&amp; rightContents)
</span><span class="lines">@@ -648,12 +648,12 @@
</span><span class="cx">     return fragment;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static inline void deleteCharacterData(PassRefPtr&lt;CharacterData&gt; data, unsigned startOffset, unsigned endOffset, ExceptionCode&amp; ec)
</del><ins>+static inline void deleteCharacterData(CharacterData&amp; data, unsigned startOffset, unsigned endOffset, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><del>-    if (data-&gt;length() - endOffset)
-        data-&gt;deleteData(endOffset, data-&gt;length() - endOffset, ec);
</del><ins>+    if (data.length() - endOffset)
+        data.deleteData(endOffset, data.length() - endOffset, ec);
</ins><span class="cx">     if (startOffset)
</span><del>-        data-&gt;deleteData(0, startOffset, ec);
</del><ins>+        data.deleteData(0, startOffset, ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RefPtr&lt;Node&gt; Range::processContentsBetweenOffsets(ActionType action, PassRefPtr&lt;DocumentFragment&gt; fragment, Node* container, unsigned startOffset, unsigned endOffset, ExceptionCode&amp; ec)
</span><span class="lines">@@ -670,11 +670,11 @@
</span><span class="cx">         endOffset = std::min(endOffset, static_cast&lt;CharacterData*&gt;(container)-&gt;length());
</span><span class="cx">         startOffset = std::min(startOffset, endOffset);
</span><span class="cx">         if (action == Extract || action == Clone) {
</span><del>-            RefPtr&lt;CharacterData&gt; characters = static_cast&lt;CharacterData*&gt;(container-&gt;cloneNode(true).ptr());
</del><ins>+            Ref&lt;CharacterData&gt; characters = static_cast&lt;CharacterData&amp;&gt;(container-&gt;cloneNode(true).get());
</ins><span class="cx">             deleteCharacterData(characters, startOffset, endOffset, ec);
</span><span class="cx">             if (fragment) {
</span><span class="cx">                 result = fragment;
</span><del>-                result-&gt;appendChild(characters.release(), ec);
</del><ins>+                result-&gt;appendChild(characters, ec);
</ins><span class="cx">             } else
</span><span class="cx">                 result = WTFMove(characters);
</span><span class="cx">         }
</span><span class="lines">@@ -685,11 +685,11 @@
</span><span class="cx">         endOffset = std::min(endOffset, static_cast&lt;ProcessingInstruction*&gt;(container)-&gt;data().length());
</span><span class="cx">         startOffset = std::min(startOffset, endOffset);
</span><span class="cx">         if (action == Extract || action == Clone) {
</span><del>-            RefPtr&lt;ProcessingInstruction&gt; processingInstruction = static_cast&lt;ProcessingInstruction*&gt;(container-&gt;cloneNode(true).ptr());
</del><ins>+            Ref&lt;ProcessingInstruction&gt; processingInstruction = static_cast&lt;ProcessingInstruction&amp;&gt;(container-&gt;cloneNode(true).get());
</ins><span class="cx">             processingInstruction-&gt;setData(processingInstruction-&gt;data().substring(startOffset, endOffset - startOffset));
</span><span class="cx">             if (fragment) {
</span><span class="cx">                 result = fragment;
</span><del>-                result-&gt;appendChild(processingInstruction.release(), ec);
</del><ins>+                result-&gt;appendChild(processingInstruction, ec);
</ins><span class="cx">             } else
</span><span class="cx">                 result = WTFMove(processingInstruction);
</span><span class="cx">         }
</span><span class="lines">@@ -714,7 +714,7 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         Node* n = container-&gt;firstChild();
</span><del>-        Vector&lt;RefPtr&lt;Node&gt;&gt; nodes;
</del><ins>+        Vector&lt;Ref&lt;Node&gt;&gt; nodes;
</ins><span class="cx">         for (unsigned i = startOffset; n &amp;&amp; i; i--)
</span><span class="cx">             n = n-&gt;nextSibling();
</span><span class="cx">         for (unsigned i = startOffset; n &amp;&amp; i &lt; endOffset; i++, n = n-&gt;nextSibling()) {
</span><span class="lines">@@ -722,25 +722,25 @@
</span><span class="cx">                 ec = HIERARCHY_REQUEST_ERR;
</span><span class="cx">                 return nullptr;
</span><span class="cx">             }
</span><del>-            nodes.append(n);
</del><ins>+            nodes.append(*n);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><del>-        processNodes(action, nodes, container, result, ec);
</del><ins>+        processNodes(action, nodes, container, result.get(), ec);
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Range::processNodes(ActionType action, Vector&lt;RefPtr&lt;Node&gt;&gt;&amp; nodes, PassRefPtr&lt;Node&gt; oldContainer, PassRefPtr&lt;Node&gt; newContainer, ExceptionCode&amp; ec)
</del><ins>+void Range::processNodes(ActionType action, Vector&lt;Ref&lt;Node&gt;&gt;&amp; nodes, Node* oldContainer, Node* newContainer, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><span class="cx">     for (auto&amp; node : nodes) {
</span><span class="cx">         switch (action) {
</span><span class="cx">         case Delete:
</span><del>-            oldContainer-&gt;removeChild(node.get(), ec);
</del><ins>+            oldContainer-&gt;removeChild(node, ec);
</ins><span class="cx">             break;
</span><span class="cx">         case Extract:
</span><del>-            newContainer-&gt;appendChild(node.release(), ec); // will remove n from its parent
</del><ins>+            newContainer-&gt;appendChild(node, ec); // will remove n from its parent
</ins><span class="cx">             break;
</span><span class="cx">         case Clone:
</span><span class="cx">             newContainer-&gt;appendChild(node-&gt;cloneNode(true), ec);
</span><span class="lines">@@ -749,44 +749,44 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;Node&gt; Range::processAncestorsAndTheirSiblings(ActionType action, Node* container, ContentsProcessDirection direction, PassRefPtr&lt;Node&gt; passedClonedContainer, Node* commonRoot, ExceptionCode&amp; ec)
</del><ins>+RefPtr&lt;Node&gt; Range::processAncestorsAndTheirSiblings(ActionType action, Node* container, ContentsProcessDirection direction, RefPtr&lt;Node&gt;&amp;&amp; passedClonedContainer, Node* commonRoot, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><del>-    typedef Vector&lt;RefPtr&lt;Node&gt;&gt; NodeVector;
</del><ins>+    typedef Vector&lt;Ref&lt;Node&gt;&gt; NodeVector;
</ins><span class="cx"> 
</span><del>-    RefPtr&lt;Node&gt; clonedContainer = passedClonedContainer;
-    Vector&lt;RefPtr&lt;Node&gt;&gt; ancestors;
-    for (ContainerNode* n = container-&gt;parentNode(); n &amp;&amp; n != commonRoot; n = n-&gt;parentNode())
-        ancestors.append(n);
</del><ins>+    RefPtr&lt;Node&gt; clonedContainer = WTFMove(passedClonedContainer);
+    Vector&lt;Ref&lt;ContainerNode&gt;&gt; ancestors;
+    for (ContainerNode* ancestor = container-&gt;parentNode(); ancestor &amp;&amp; ancestor != commonRoot; ancestor = ancestor-&gt;parentNode())
+        ancestors.append(*ancestor);
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Node&gt; firstChildInAncestorToProcess = direction == ProcessContentsForward ? container-&gt;nextSibling() : container-&gt;previousSibling();
</span><span class="cx">     for (auto&amp; ancestor : ancestors) {
</span><span class="cx">         if (action == Extract || action == Clone) {
</span><del>-            if (RefPtr&lt;Node&gt; clonedAncestor = ancestor-&gt;cloneNode(false)) { // Might have been removed already during mutation event.
-                clonedAncestor-&gt;appendChild(clonedContainer, ec);
-                clonedContainer = clonedAncestor;
-            }
</del><ins>+            auto clonedAncestor = ancestor-&gt;cloneNode(false); // Might have been removed already during mutation event.
+            if (clonedContainer)
+                clonedAncestor-&gt;appendChild(*clonedContainer, ec);
+            clonedContainer = WTFMove(clonedAncestor);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         // Copy siblings of an ancestor of start/end containers
</span><span class="cx">         // FIXME: This assertion may fail if DOM is modified during mutation event
</span><span class="cx">         // FIXME: Share code with Range::processNodes
</span><del>-        ASSERT(!firstChildInAncestorToProcess || firstChildInAncestorToProcess-&gt;parentNode() == ancestor);
</del><ins>+        ASSERT(!firstChildInAncestorToProcess || firstChildInAncestorToProcess-&gt;parentNode() == ancestor.ptr());
</ins><span class="cx">         
</span><span class="cx">         NodeVector nodes;
</span><span class="cx">         for (Node* child = firstChildInAncestorToProcess.get(); child;
</span><span class="cx">             child = (direction == ProcessContentsForward) ? child-&gt;nextSibling() : child-&gt;previousSibling())
</span><del>-            nodes.append(child);
</del><ins>+            nodes.append(*child);
</ins><span class="cx"> 
</span><span class="cx">         for (auto&amp; child : nodes) {
</span><span class="cx">             switch (action) {
</span><span class="cx">             case Delete:
</span><del>-                ancestor-&gt;removeChild(child.get(), ec);
</del><ins>+                ancestor-&gt;removeChild(child, ec);
</ins><span class="cx">                 break;
</span><span class="cx">             case Extract: // will remove child from ancestor
</span><span class="cx">                 if (direction == ProcessContentsForward)
</span><del>-                    clonedContainer-&gt;appendChild(child.get(), ec);
</del><ins>+                    clonedContainer-&gt;appendChild(child, ec);
</ins><span class="cx">                 else
</span><del>-                    clonedContainer-&gt;insertBefore(child.get(), clonedContainer-&gt;firstChild(), ec);
</del><ins>+                    clonedContainer-&gt;insertBefore(child, clonedContainer-&gt;firstChild(), ec);
</ins><span class="cx">                 break;
</span><span class="cx">             case Clone:
</span><span class="cx">                 if (direction == ProcessContentsForward)
</span><span class="lines">@@ -853,7 +853,7 @@
</span><span class="cx">     else
</span><span class="cx">         ++newOffset;
</span><span class="cx"> 
</span><del>-    parent-&gt;insertBefore(WTFMove(node), referenceNode.get(), ec);
</del><ins>+    parent-&gt;insertBefore(node, referenceNode.get(), ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -1084,7 +1084,7 @@
</span><span class="cx">     insertNode(newParent.copyRef(), ec);
</span><span class="cx">     if (ec)
</span><span class="cx">         return;
</span><del>-    newParent-&gt;appendChild(fragment.release(), ec);
</del><ins>+    newParent-&gt;appendChild(*fragment, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return;
</span><span class="cx">     selectNode(newParent, ec);
</span></span></pre></div>
<a id="trunkSourceWebCoredomRangeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Range.h (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Range.h        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/dom/Range.h        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -164,9 +164,9 @@
</span><span class="cx">     enum ActionType { Delete, Extract, Clone };
</span><span class="cx">     RefPtr&lt;DocumentFragment&gt; processContents(ActionType, ExceptionCode&amp;);
</span><span class="cx">     static RefPtr&lt;Node&gt; processContentsBetweenOffsets(ActionType, PassRefPtr&lt;DocumentFragment&gt;, Node*, unsigned startOffset, unsigned endOffset, ExceptionCode&amp;);
</span><del>-    static void processNodes(ActionType, Vector&lt;RefPtr&lt;Node&gt;&gt;&amp;, PassRefPtr&lt;Node&gt; oldContainer, PassRefPtr&lt;Node&gt; newContainer, ExceptionCode&amp;);
</del><ins>+    static void processNodes(ActionType, Vector&lt;Ref&lt;Node&gt;&gt;&amp;, Node* oldContainer, Node* newContainer, ExceptionCode&amp;);
</ins><span class="cx">     enum ContentsProcessDirection { ProcessContentsForward, ProcessContentsBackward };
</span><del>-    static RefPtr&lt;Node&gt; processAncestorsAndTheirSiblings(ActionType, Node* container, ContentsProcessDirection, PassRefPtr&lt;Node&gt; clonedContainer, Node* commonRoot, ExceptionCode&amp;);
</del><ins>+    static RefPtr&lt;Node&gt; processAncestorsAndTheirSiblings(ActionType, Node* container, ContentsProcessDirection, RefPtr&lt;Node&gt;&amp;&amp; clonedContainer, Node* commonRoot, ExceptionCode&amp;);
</ins><span class="cx"> 
</span><span class="cx">     enum class CoordinateSpace { Absolute, Client };
</span><span class="cx">     void getBorderAndTextQuads(Vector&lt;FloatQuad&gt;&amp;, CoordinateSpace) const;
</span></span></pre></div>
<a id="trunkSourceWebCoredomTextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Text.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Text.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/dom/Text.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx">     dispatchModifiedEvent(oldStr);
</span><span class="cx"> 
</span><span class="cx">     if (parentNode())
</span><del>-        parentNode()-&gt;insertBefore(newText.copyRef(), nextSibling(), ec);
</del><ins>+        parentNode()-&gt;insertBefore(newText, nextSibling(), ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingAppendNodeCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/AppendNodeCommand.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/AppendNodeCommand.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/editing/AppendNodeCommand.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx">     if (!m_parent-&gt;hasEditableStyle() &amp;&amp; m_parent-&gt;renderer())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_parent-&gt;appendChild(m_node.copyRef(), IGNORE_EXCEPTION);
</del><ins>+    m_parent-&gt;appendChild(m_node, IGNORE_EXCEPTION);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void AppendNodeCommand::doUnapply()
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingEditorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/Editor.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/Editor.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/editing/Editor.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -593,7 +593,7 @@
</span><span class="cx">         confirmComposition();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Editor::setTextAsChildOfElement(const String&amp; text, Element* elem)
</del><ins>+void Editor::setTextAsChildOfElement(const String&amp; text, Element&amp; element)
</ins><span class="cx"> {
</span><span class="cx">     // Clear the composition
</span><span class="cx">     clear();
</span><span class="lines">@@ -604,7 +604,7 @@
</span><span class="cx">     
</span><span class="cx">     // If the element is empty already and we're not adding text, we can early return and avoid clearing/setting
</span><span class="cx">     // a selection at [0, 0] and the expense involved in creation VisiblePositions.
</span><del>-    if (!elem-&gt;firstChild() &amp;&amp; text.isEmpty())
</del><ins>+    if (!element.firstChild() &amp;&amp; text.isEmpty())
</ins><span class="cx">         return;
</span><span class="cx">     
</span><span class="cx">     // As a side effect this function sets a caret selection after the inserted content.  Much of what 
</span><span class="lines">@@ -612,7 +612,7 @@
</span><span class="cx">     m_frame.selection().clear();
</span><span class="cx">     
</span><span class="cx">     // clear out all current children of element
</span><del>-    elem-&gt;removeChildren();
</del><ins>+    element.removeChildren();
</ins><span class="cx"> 
</span><span class="cx">     if (text.length()) {
</span><span class="cx">         // insert new text
</span><span class="lines">@@ -621,29 +621,28 @@
</span><span class="cx">         // (even if it is only temporary).  ReplaceSelectionCommand doesn't bother doing this when it inserts
</span><span class="cx">         // content, why should we here?
</span><span class="cx">         ExceptionCode ec;
</span><del>-        RefPtr&lt;Node&gt; parent = elem-&gt;parentNode();
-        RefPtr&lt;Node&gt; siblingAfter = elem-&gt;nextSibling();
</del><ins>+        RefPtr&lt;Node&gt; parent = element.parentNode();
+        RefPtr&lt;Node&gt; siblingAfter = element.nextSibling();
</ins><span class="cx">         if (parent)
</span><del>-            elem-&gt;remove(ec);    
</del><ins>+            element.remove(ec);
</ins><span class="cx">             
</span><del>-        RefPtr&lt;Range&gt; context = document().createRange();
-        context-&gt;selectNodeContents(*elem, ec);
-        Ref&lt;DocumentFragment&gt; fragment = createFragmentFromText(*context.get(), text);
-        elem-&gt;appendChild(WTFMove(fragment), ec);
</del><ins>+        auto context = document().createRange();
+        context-&gt;selectNodeContents(element, ec);
+        element.appendChild(createFragmentFromText(context, text), ec);
</ins><span class="cx">     
</span><span class="cx">         // restore element to document
</span><span class="cx">         if (parent) {
</span><span class="cx">             if (siblingAfter)
</span><del>-                parent-&gt;insertBefore(elem, siblingAfter.get(), ec);
</del><ins>+                parent-&gt;insertBefore(element, siblingAfter.get(), ec);
</ins><span class="cx">             else
</span><del>-                parent-&gt;appendChild(elem, ec);
</del><ins>+                parent-&gt;appendChild(element, ec);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // set the selection to the end
</span><span class="cx">     VisibleSelection selection;
</span><span class="cx"> 
</span><del>-    Position pos = createLegacyEditingPosition(elem, elem-&gt;countChildNodes());
</del><ins>+    Position pos = createLegacyEditingPosition(&amp;element, element.countChildNodes());
</ins><span class="cx"> 
</span><span class="cx">     VisiblePosition visiblePos(pos, VP_DEFAULT_AFFINITY);
</span><span class="cx">     if (visiblePos.isNull())
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingEditorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/Editor.h (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/Editor.h        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/editing/Editor.h        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -333,7 +333,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     WEBCORE_EXPORT void confirmMarkedText();
</span><del>-    WEBCORE_EXPORT void setTextAsChildOfElement(const String&amp;, Element*);
</del><ins>+    WEBCORE_EXPORT void setTextAsChildOfElement(const String&amp;, Element&amp;);
</ins><span class="cx">     WEBCORE_EXPORT void setTextAlignmentForChangedBaseWritingDirection(WritingDirection);
</span><span class="cx">     WEBCORE_EXPORT void insertDictationPhrases(Vector&lt;Vector&lt;String&gt;&gt;&amp;&amp; dictationPhrases, RetainPtr&lt;id&gt; metadata);
</span><span class="cx">     WEBCORE_EXPORT void setDictationPhrasesAsChildOfElement(const Vector&lt;Vector&lt;String&gt;&gt;&amp; dictationPhrases, RetainPtr&lt;id&gt; metadata, Element&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingEditorCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/EditorCommand.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/EditorCommand.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/editing/EditorCommand.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -167,7 +167,7 @@
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;DocumentFragment&gt; fragment = DocumentFragment::create(*frame.document());
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    fragment-&gt;appendChild(WTFMove(content), ec);
</del><ins>+    fragment-&gt;appendChild(content, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return false;
</span><span class="cx">     return executeInsertFragment(frame, fragment.release());
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingMergeIdenticalElementsCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/MergeIdenticalElementsCommand.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/MergeIdenticalElementsCommand.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/editing/MergeIdenticalElementsCommand.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -52,7 +52,7 @@
</span><span class="cx">         children.append(*child);
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; child : children)
</span><del>-        m_element2-&gt;insertBefore(WTFMove(child), m_atChild.get(), IGNORE_EXCEPTION);
</del><ins>+        m_element2-&gt;insertBefore(child, m_atChild.get(), IGNORE_EXCEPTION);
</ins><span class="cx"> 
</span><span class="cx">     m_element1-&gt;remove(IGNORE_EXCEPTION);
</span><span class="cx"> }
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx">         children.append(*child);
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; child : children)
</span><del>-        m_element1-&gt;appendChild(WTFMove(child), ec);
</del><ins>+        m_element1-&gt;appendChild(child, ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #ifndef NDEBUG
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingRemoveNodeCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/RemoveNodeCommand.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/RemoveNodeCommand.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/editing/RemoveNodeCommand.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx">     if (!parent || !parent-&gt;hasEditableStyle())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    parent-&gt;insertBefore(m_node.copyRef(), refChild.get(), IGNORE_EXCEPTION);
</del><ins>+    parent-&gt;insertBefore(m_node, refChild.get(), IGNORE_EXCEPTION);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #ifndef NDEBUG
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingReplaceNodeWithSpanCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ReplaceNodeWithSpanCommand.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ReplaceNodeWithSpanCommand.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/editing/ReplaceNodeWithSpanCommand.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx">     NodeVector children;
</span><span class="cx">     getChildNodes(nodeToReplace, children);
</span><span class="cx">     for (auto&amp; child : children)
</span><del>-        newNode.appendChild(WTFMove(child), ASSERT_NO_EXCEPTION);
</del><ins>+        newNode.appendChild(child, ASSERT_NO_EXCEPTION);
</ins><span class="cx"> 
</span><span class="cx">     parentNode-&gt;insertBefore(newNode, &amp;nodeToReplace, ASSERT_NO_EXCEPTION);
</span><span class="cx">     parentNode-&gt;removeChild(nodeToReplace, ASSERT_NO_EXCEPTION);
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingReplaceSelectionCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -257,7 +257,7 @@
</span><span class="cx">     auto holder = createDefaultParagraphElement(document());
</span><span class="cx"> 
</span><span class="cx">     holder-&gt;appendChild(*m_fragment, ASSERT_NO_EXCEPTION);
</span><del>-    rootEditableElement-&gt;appendChild(holder.ptr(), ASSERT_NO_EXCEPTION);
</del><ins>+    rootEditableElement-&gt;appendChild(holder, ASSERT_NO_EXCEPTION);
</ins><span class="cx">     document().updateLayoutIgnorePendingStylesheets();
</span><span class="cx"> 
</span><span class="cx">     return holder;
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingSplitElementCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/SplitElementCommand.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/SplitElementCommand.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/editing/SplitElementCommand.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx">     m_element2-&gt;removeAttribute(HTMLNames::idAttr);
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; child : children)
</span><del>-        m_element1-&gt;appendChild(WTFMove(child), ec);
</del><ins>+        m_element1-&gt;appendChild(child, ec);
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> void SplitElementCommand::doApply()
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx">     RefPtr&lt;Node&gt; refChild = m_element2-&gt;firstChild();
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; child : children)
</span><del>-        m_element2-&gt;insertBefore(WTFMove(child), refChild.get(), IGNORE_EXCEPTION);
</del><ins>+        m_element2-&gt;insertBefore(child, refChild.get(), IGNORE_EXCEPTION);
</ins><span class="cx"> 
</span><span class="cx">     // Recover the id attribute of the original element.
</span><span class="cx">     const AtomicString&amp; id = m_element1-&gt;getIdAttribute();
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingWrapContentsInDummySpanCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/WrapContentsInDummySpanCommand.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/WrapContentsInDummySpanCommand.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/editing/WrapContentsInDummySpanCommand.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx">         children.append(*child);
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; child : children)
</span><del>-        m_dummySpan-&gt;appendChild(WTFMove(child), IGNORE_EXCEPTION);
</del><ins>+        m_dummySpan-&gt;appendChild(child, IGNORE_EXCEPTION);
</ins><span class="cx"> 
</span><span class="cx">     m_element-&gt;appendChild(*m_dummySpan, IGNORE_EXCEPTION);
</span><span class="cx"> }
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx">         children.append(*child);
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; child : children)
</span><del>-        m_element-&gt;appendChild(WTFMove(child), IGNORE_EXCEPTION);
</del><ins>+        m_element-&gt;appendChild(child, IGNORE_EXCEPTION);
</ins><span class="cx"> 
</span><span class="cx">     m_dummySpan-&gt;remove(IGNORE_EXCEPTION);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingcocoaEditorCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/cocoa/EditorCocoa.mm (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/cocoa/EditorCocoa.mm        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/editing/cocoa/EditorCocoa.mm        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx">     if (!parentNode-&gt;ensurePreInsertionValidity(styleElement.copyRef(), nullptr, IGNORE_EXCEPTION))
</span><span class="cx">         return nullptr; 
</span><span class="cx"> 
</span><del>-    parentNode-&gt;appendChild(styleElement.copyRef(), ASSERT_NO_EXCEPTION);
</del><ins>+    parentNode-&gt;appendChild(styleElement, ASSERT_NO_EXCEPTION);
</ins><span class="cx"> 
</span><span class="cx">     nodeToRemove = styleElement.ptr();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditinghtmleditingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/htmlediting.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/htmlediting.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/editing/htmlediting.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -977,7 +977,7 @@
</span><span class="cx">     if (!tabTextNode)
</span><span class="cx">         tabTextNode = document.createEditingTextNode(&quot;\t&quot;);
</span><span class="cx"> 
</span><del>-    spanElement-&gt;appendChild(tabTextNode.releaseNonNull(), ASSERT_NO_EXCEPTION);
</del><ins>+    spanElement-&gt;appendChild(*tabTextNode, ASSERT_NO_EXCEPTION);
</ins><span class="cx"> 
</span><span class="cx">     return spanElement;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingiosEditorIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ios/EditorIOS.mm (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ios/EditorIOS.mm        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/editing/ios/EditorIOS.mm        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -493,7 +493,7 @@
</span><span class="cx">         anchor-&gt;appendChild(frame.document()-&gt;createTextNode([[(NSURL *)url absoluteString] precomposedStringWithCanonicalMapping]));
</span><span class="cx"> 
</span><span class="cx">         auto newFragment = frame.document()-&gt;createDocumentFragment();
</span><del>-        newFragment-&gt;appendChild(WTFMove(anchor));
</del><ins>+        newFragment-&gt;appendChild(anchor);
</ins><span class="cx">         addFragment(WTFMove(newFragment));
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="lines">@@ -589,7 +589,7 @@
</span><span class="cx">         loader-&gt;addArchiveResource(resource.releaseNonNull());
</span><span class="cx"> 
</span><span class="cx">     auto fragment = m_frame.document()-&gt;createDocumentFragment();
</span><del>-    fragment-&gt;appendChild(WTFMove(imageElement));
</del><ins>+    fragment-&gt;appendChild(imageElement);
</ins><span class="cx"> 
</span><span class="cx">     return WTFMove(fragment);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingmacEditorMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/mac/EditorMac.mm (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/mac/EditorMac.mm        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/editing/mac/EditorMac.mm        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -521,13 +521,13 @@
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; text : paths) {
</span><span class="cx"> #if ENABLE(ATTACHMENT_ELEMENT)
</span><del>-        Ref&lt;HTMLAttachmentElement&gt; attachment = HTMLAttachmentElement::create(attachmentTag, document);
</del><ins>+        auto attachment = HTMLAttachmentElement::create(attachmentTag, document);
</ins><span class="cx">         attachment-&gt;setFile(File::create([[NSURL fileURLWithPath:text] path]).ptr());
</span><del>-        fragment-&gt;appendChild(WTFMove(attachment));
</del><ins>+        fragment-&gt;appendChild(attachment);
</ins><span class="cx"> #else
</span><del>-        Ref&lt;HTMLElement&gt; paragraph = createDefaultParagraphElement(document);
</del><ins>+        auto paragraph = createDefaultParagraphElement(document);
</ins><span class="cx">         paragraph-&gt;appendChild(document.createTextNode(frame.editor().client()-&gt;userVisibleString([NSURL fileURLWithPath:text])));
</span><del>-        fragment-&gt;appendChild(WTFMove(paragraph));
</del><ins>+        fragment-&gt;appendChild(paragraph);
</ins><span class="cx"> #endif
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -591,7 +591,7 @@
</span><span class="cx">     anchor-&gt;appendChild(frame.document()-&gt;createTextNode([title precomposedStringWithCanonicalMapping]));
</span><span class="cx"> 
</span><span class="cx">     fragment = frame.document()-&gt;createDocumentFragment();
</span><del>-    fragment-&gt;appendChild(WTFMove(anchor));
</del><ins>+    fragment-&gt;appendChild(anchor);
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -631,7 +631,7 @@
</span><span class="cx">         loader-&gt;addArchiveResource(resource.releaseNonNull());
</span><span class="cx"> 
</span><span class="cx">     auto fragment = document().createDocumentFragment();
</span><del>-    fragment-&gt;appendChild(WTFMove(imageElement));
</del><ins>+    fragment-&gt;appendChild(imageElement);
</ins><span class="cx"> 
</span><span class="cx">     return WTFMove(fragment);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingmarkupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/markup.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/markup.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/editing/markup.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -729,7 +729,7 @@
</span><span class="cx">                 tabText = emptyString();
</span><span class="cx">             }
</span><span class="cx">             Ref&lt;Node&gt; textNode = document.createTextNode(stringWithRebalancedWhitespace(s, first, i + 1 == numEntries));
</span><del>-            paragraph.appendChild(WTFMove(textNode), ASSERT_NO_EXCEPTION);
</del><ins>+            paragraph.appendChild(textNode, ASSERT_NO_EXCEPTION);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         // there is a tab after every entry, except the last entry
</span><span class="lines">@@ -792,9 +792,9 @@
</span><span class="cx">     if (contextPreservesNewline(context)) {
</span><span class="cx">         fragment-&gt;appendChild(document.createTextNode(string), ASSERT_NO_EXCEPTION);
</span><span class="cx">         if (string.endsWith('\n')) {
</span><del>-            Ref&lt;Element&gt; element = createBreakElement(document);
</del><ins>+            auto element = createBreakElement(document);
</ins><span class="cx">             element-&gt;setAttribute(classAttr, AppleInterchangeNewline);            
</span><del>-            fragment-&gt;appendChild(WTFMove(element), ASSERT_NO_EXCEPTION);
</del><ins>+            fragment-&gt;appendChild(element, ASSERT_NO_EXCEPTION);
</ins><span class="cx">         }
</span><span class="cx">         return fragment;
</span><span class="cx">     }
</span><span class="lines">@@ -836,7 +836,7 @@
</span><span class="cx">                 element = createDefaultParagraphElement(document);
</span><span class="cx">             fillContainerFromString(*element, s);
</span><span class="cx">         }
</span><del>-        fragment-&gt;appendChild(element.releaseNonNull(), ASSERT_NO_EXCEPTION);
</del><ins>+        fragment-&gt;appendChild(*element, ASSERT_NO_EXCEPTION);
</ins><span class="cx">     }
</span><span class="cx">     return fragment;
</span><span class="cx"> }
</span><span class="lines">@@ -1020,12 +1020,12 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        containerNode-&gt;replaceChild(WTFMove(fragment), *containerChild, ec);
</del><ins>+        containerNode-&gt;replaceChild(fragment, *containerChild, ec);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     containerNode-&gt;removeChildren();
</span><del>-    containerNode-&gt;appendChild(WTFMove(fragment), ec);
</del><ins>+    containerNode-&gt;appendChild(fragment, ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void replaceChildrenWithText(ContainerNode&amp; container, const String&amp; text, ExceptionCode&amp; ec)
</span><span class="lines">@@ -1038,15 +1038,15 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Ref&lt;Text&gt; textNode = Text::create(containerNode-&gt;document(), text);
</del><ins>+    auto textNode = Text::create(containerNode-&gt;document(), text);
</ins><span class="cx"> 
</span><span class="cx">     if (hasOneChild(containerNode)) {
</span><del>-        containerNode-&gt;replaceChild(WTFMove(textNode), *containerNode-&gt;firstChild(), ec);
</del><ins>+        containerNode-&gt;replaceChild(textNode, *containerNode-&gt;firstChild(), ec);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     containerNode-&gt;removeChildren();
</span><del>-    containerNode-&gt;appendChild(WTFMove(textNode), ec);
</del><ins>+    containerNode-&gt;appendChild(textNode, ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlBaseChooserOnlyDateAndTimeInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -61,9 +61,9 @@
</span><span class="cx"> {
</span><span class="cx">     static NeverDestroyed&lt;AtomicString&gt; valueContainerPseudo(&quot;-webkit-date-and-time-value&quot;, AtomicString::ConstructFromLiteral);
</span><span class="cx"> 
</span><del>-    Ref&lt;HTMLDivElement&gt; valueContainer = HTMLDivElement::create(element().document());
</del><ins>+    auto valueContainer = HTMLDivElement::create(element().document());
</ins><span class="cx">     valueContainer-&gt;setPseudo(valueContainerPseudo);
</span><del>-    element().userAgentShadowRoot()-&gt;appendChild(WTFMove(valueContainer));
</del><ins>+    element().userAgentShadowRoot()-&gt;appendChild(valueContainer);
</ins><span class="cx">     updateAppearance();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlColorInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/ColorInputType.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/ColorInputType.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/ColorInputType.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -110,12 +110,12 @@
</span><span class="cx">     ASSERT(element().shadowRoot());
</span><span class="cx"> 
</span><span class="cx">     Document&amp; document = element().document();
</span><del>-    Ref&lt;HTMLDivElement&gt; wrapperElement = HTMLDivElement::create(document);
</del><ins>+    auto wrapperElement = HTMLDivElement::create(document);
</ins><span class="cx">     wrapperElement-&gt;setPseudo(AtomicString(&quot;-webkit-color-swatch-wrapper&quot;, AtomicString::ConstructFromLiteral));
</span><del>-    Ref&lt;HTMLDivElement&gt; colorSwatch = HTMLDivElement::create(document);
</del><ins>+    auto colorSwatch = HTMLDivElement::create(document);
</ins><span class="cx">     colorSwatch-&gt;setPseudo(AtomicString(&quot;-webkit-color-swatch&quot;, AtomicString::ConstructFromLiteral));
</span><del>-    wrapperElement-&gt;appendChild(WTFMove(colorSwatch), ASSERT_NO_EXCEPTION);
-    element().userAgentShadowRoot()-&gt;appendChild(WTFMove(wrapperElement), ASSERT_NO_EXCEPTION);
</del><ins>+    wrapperElement-&gt;appendChild(colorSwatch, ASSERT_NO_EXCEPTION);
+    element().userAgentShadowRoot()-&gt;appendChild(wrapperElement, ASSERT_NO_EXCEPTION);
</ins><span class="cx">     
</span><span class="cx">     updateColorSwatch();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlFTPDirectoryDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/FTPDirectoryDocument.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/FTPDirectoryDocument.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/FTPDirectoryDocument.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -104,27 +104,27 @@
</span><span class="cx">     RefPtr&lt;Element&gt; rowElement = m_tableElement-&gt;insertRow(-1, IGNORE_EXCEPTION);
</span><span class="cx">     rowElement-&gt;setAttribute(HTMLNames::classAttr, &quot;ftpDirectoryEntryRow&quot;);
</span><span class="cx"> 
</span><del>-    Ref&lt;Element&gt; typeElement = document()-&gt;createElement(tdTag, false);
</del><ins>+    auto typeElement = document()-&gt;createElement(tdTag, false);
</ins><span class="cx">     typeElement-&gt;appendChild(Text::create(*document(), String(&amp;noBreakSpace, 1)), IGNORE_EXCEPTION);
</span><span class="cx">     if (isDirectory)
</span><span class="cx">         typeElement-&gt;setAttribute(HTMLNames::classAttr, &quot;ftpDirectoryIcon ftpDirectoryTypeDirectory&quot;);
</span><span class="cx">     else
</span><span class="cx">         typeElement-&gt;setAttribute(HTMLNames::classAttr, &quot;ftpDirectoryIcon ftpDirectoryTypeFile&quot;);
</span><del>-    rowElement-&gt;appendChild(WTFMove(typeElement), IGNORE_EXCEPTION);
</del><ins>+    rowElement-&gt;appendChild(typeElement, IGNORE_EXCEPTION);
</ins><span class="cx"> 
</span><del>-    Ref&lt;Element&gt; nameElement = createTDForFilename(filename);
</del><ins>+    auto nameElement = createTDForFilename(filename);
</ins><span class="cx">     nameElement-&gt;setAttribute(HTMLNames::classAttr, &quot;ftpDirectoryFileName&quot;);
</span><del>-    rowElement-&gt;appendChild(WTFMove(nameElement), IGNORE_EXCEPTION);
</del><ins>+    rowElement-&gt;appendChild(nameElement, IGNORE_EXCEPTION);
</ins><span class="cx"> 
</span><del>-    Ref&lt;Element&gt; dateElement = document()-&gt;createElement(tdTag, false);
</del><ins>+    auto dateElement = document()-&gt;createElement(tdTag, false);
</ins><span class="cx">     dateElement-&gt;appendChild(Text::create(*document(), date), IGNORE_EXCEPTION);
</span><span class="cx">     dateElement-&gt;setAttribute(HTMLNames::classAttr, &quot;ftpDirectoryFileDate&quot;);
</span><del>-    rowElement-&gt;appendChild(WTFMove(dateElement), IGNORE_EXCEPTION);
</del><ins>+    rowElement-&gt;appendChild(dateElement, IGNORE_EXCEPTION);
</ins><span class="cx"> 
</span><del>-    Ref&lt;Element&gt; sizeElement = document()-&gt;createElement(tdTag, false);
</del><ins>+    auto sizeElement = document()-&gt;createElement(tdTag, false);
</ins><span class="cx">     sizeElement-&gt;appendChild(Text::create(*document(), size), IGNORE_EXCEPTION);
</span><span class="cx">     sizeElement-&gt;setAttribute(HTMLNames::classAttr, &quot;ftpDirectoryFileSize&quot;);
</span><del>-    rowElement-&gt;appendChild(WTFMove(sizeElement), IGNORE_EXCEPTION);
</del><ins>+    rowElement-&gt;appendChild(sizeElement, IGNORE_EXCEPTION);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Ref&lt;Element&gt; FTPDirectoryDocumentParser::createTDForFilename(const String&amp; filename)
</span><span class="lines">@@ -135,12 +135,12 @@
</span><span class="cx">     else
</span><span class="cx">         fullURL = fullURL + '/' + filename;
</span><span class="cx"> 
</span><del>-    Ref&lt;Element&gt; anchorElement = document()-&gt;createElement(aTag, false);
</del><ins>+    auto anchorElement = document()-&gt;createElement(aTag, false);
</ins><span class="cx">     anchorElement-&gt;setAttribute(HTMLNames::hrefAttr, fullURL);
</span><span class="cx">     anchorElement-&gt;appendChild(Text::create(*document(), filename), IGNORE_EXCEPTION);
</span><span class="cx"> 
</span><span class="cx">     Ref&lt;Element&gt; tdElement = document()-&gt;createElement(tdTag, false);
</span><del>-    tdElement-&gt;appendChild(WTFMove(anchorElement), IGNORE_EXCEPTION);
</del><ins>+    tdElement-&gt;appendChild(anchorElement, IGNORE_EXCEPTION);
</ins><span class="cx"> 
</span><span class="cx">     return tdElement;
</span><span class="cx"> }
</span><span class="lines">@@ -327,14 +327,14 @@
</span><span class="cx"> 
</span><span class="cx">     Ref&lt;Element&gt; bodyElement = document()-&gt;createElement(bodyTag, false);
</span><span class="cx"> 
</span><del>-    document()-&gt;appendChild(bodyElement.copyRef(), IGNORE_EXCEPTION);
</del><ins>+    document()-&gt;appendChild(bodyElement, IGNORE_EXCEPTION);
</ins><span class="cx"> 
</span><del>-    Ref&lt;Element&gt; tableElement = document()-&gt;createElement(tableTag, false);
</del><ins>+    auto tableElement = document()-&gt;createElement(tableTag, false);
</ins><span class="cx">     m_tableElement = downcast&lt;HTMLTableElement&gt;(tableElement.ptr());
</span><span class="cx">     m_tableElement-&gt;setAttribute(HTMLNames::idAttr, &quot;ftpDirectoryTable&quot;);
</span><span class="cx">     m_tableElement-&gt;setAttribute(HTMLNames::styleAttr, &quot;width:100%&quot;);
</span><span class="cx"> 
</span><del>-    bodyElement-&gt;appendChild(WTFMove(tableElement), IGNORE_EXCEPTION);
</del><ins>+    bodyElement-&gt;appendChild(tableElement, IGNORE_EXCEPTION);
</ins><span class="cx"> 
</span><span class="cx">     document()-&gt;processViewport(&quot;width=device-width&quot;, ViewportArguments::ViewportMeta);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLDetailsElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLDetailsElement.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLDetailsElement.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/HTMLDetailsElement.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -102,8 +102,8 @@
</span><span class="cx">     defaultSummary-&gt;appendChild(Text::create(document(), defaultDetailsSummaryText()), ASSERT_NO_EXCEPTION);
</span><span class="cx">     m_defaultSummary = defaultSummary.ptr();
</span><span class="cx"> 
</span><del>-    summarySlot-&gt;appendChild(WTFMove(defaultSummary));
-    root-&gt;appendChild(WTFMove(summarySlot));
</del><ins>+    summarySlot-&gt;appendChild(defaultSummary);
+    root-&gt;appendChild(summarySlot);
</ins><span class="cx"> 
</span><span class="cx">     m_defaultSlot = HTMLSlotElement::create(slotTag, document());
</span><span class="cx">     ASSERT(!m_isOpen);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLElement.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLElement.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/HTMLElement.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -621,7 +621,7 @@
</span><span class="cx">         ec = HIERARCHY_REQUEST_ERR;
</span><span class="cx">     if (ec)
</span><span class="cx">         return;
</span><del>-    parent-&gt;replaceChild(newChild.releaseNonNull(), *this, ec);
</del><ins>+    parent-&gt;replaceChild(*newChild, *this, ec);
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Node&gt; node = next ? next-&gt;previousSibling() : nullptr;
</span><span class="cx">     if (!ec &amp;&amp; is&lt;Text&gt;(node.get()))
</span><span class="lines">@@ -641,18 +641,18 @@
</span><span class="cx"> 
</span><span class="cx">     if (equalLettersIgnoringASCIICase(where, &quot;beforebegin&quot;)) {
</span><span class="cx">         ContainerNode* parent = this-&gt;parentNode();
</span><del>-        return (parent &amp;&amp; parent-&gt;insertBefore(newChild.copyRef(), this, ec)) ? newChild.ptr() : nullptr;
</del><ins>+        return (parent &amp;&amp; parent-&gt;insertBefore(newChild, this, ec)) ? newChild.ptr() : nullptr;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (equalLettersIgnoringASCIICase(where, &quot;afterbegin&quot;))
</span><del>-        return insertBefore(newChild.copyRef(), firstChild(), ec) ? newChild.ptr() : nullptr;
</del><ins>+        return insertBefore(newChild, firstChild(), ec) ? newChild.ptr() : nullptr;
</ins><span class="cx"> 
</span><span class="cx">     if (equalLettersIgnoringASCIICase(where, &quot;beforeend&quot;))
</span><del>-        return appendChild(newChild.copyRef(), ec) ? newChild.ptr() : nullptr;
</del><ins>+        return appendChild(newChild, ec) ? newChild.ptr() : nullptr;
</ins><span class="cx"> 
</span><span class="cx">     if (equalLettersIgnoringASCIICase(where, &quot;afterend&quot;)) {
</span><span class="cx">         ContainerNode* parent = this-&gt;parentNode();
</span><del>-        return (parent &amp;&amp; parent-&gt;insertBefore(newChild.copyRef(), nextSibling(), ec)) ? newChild.ptr() : nullptr;
</del><ins>+        return (parent &amp;&amp; parent-&gt;insertBefore(newChild, nextSibling(), ec)) ? newChild.ptr() : nullptr;
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     // IE throws COM Exception E_INVALIDARG; this is the best DOM exception alternative.
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLImageElement.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLImageElement.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/HTMLImageElement.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -604,7 +604,7 @@
</span><span class="cx">     if (!imageControls)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    ensureUserAgentShadowRoot().appendChild(imageControls.releaseNonNull());
</del><ins>+    ensureUserAgentShadowRoot().appendChild(*imageControls);
</ins><span class="cx"> 
</span><span class="cx">     auto* renderObject = renderer();
</span><span class="cx">     if (!renderObject)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLKeygenElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLKeygenElement.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLKeygenElement.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/HTMLKeygenElement.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -74,14 +74,14 @@
</span><span class="cx">     Vector&lt;String&gt; keys;
</span><span class="cx">     getSupportedKeySizes(keys);
</span><span class="cx"> 
</span><del>-    Ref&lt;HTMLSelectElement&gt; select = KeygenSelectElement::create(document);
</del><ins>+    auto select = KeygenSelectElement::create(document);
</ins><span class="cx">     for (auto&amp; key : keys) {
</span><del>-        Ref&lt;HTMLOptionElement&gt; option = HTMLOptionElement::create(document);
-        select-&gt;appendChild(option.copyRef(), IGNORE_EXCEPTION);
</del><ins>+        auto option = HTMLOptionElement::create(document);
+        select-&gt;appendChild(option, IGNORE_EXCEPTION);
</ins><span class="cx">         option-&gt;appendChild(Text::create(document, key), IGNORE_EXCEPTION);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    ensureUserAgentShadowRoot().appendChild(WTFMove(select), IGNORE_EXCEPTION);
</del><ins>+    ensureUserAgentShadowRoot().appendChild(select, IGNORE_EXCEPTION);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Ref&lt;HTMLKeygenElement&gt; HTMLKeygenElement::create(const QualifiedName&amp; tagName, Document&amp; document, HTMLFormElement* form)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMeterElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMeterElement.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMeterElement.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/HTMLMeterElement.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -229,16 +229,16 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(!m_value);
</span><span class="cx"> 
</span><del>-    Ref&lt;MeterInnerElement&gt; inner = MeterInnerElement::create(document());
-    root-&gt;appendChild(inner.copyRef());
</del><ins>+    auto inner = MeterInnerElement::create(document());
+    root-&gt;appendChild(inner);
</ins><span class="cx"> 
</span><del>-    Ref&lt;MeterBarElement&gt; bar = MeterBarElement::create(document());
</del><ins>+    auto bar = MeterBarElement::create(document());
</ins><span class="cx">     m_value = MeterValueElement::create(document());
</span><span class="cx">     m_value-&gt;setWidthPercentage(0);
</span><span class="cx">     m_value-&gt;updatePseudo();
</span><span class="cx">     bar-&gt;appendChild(*m_value, ASSERT_NO_EXCEPTION);
</span><span class="cx"> 
</span><del>-    inner-&gt;appendChild(WTFMove(bar), ASSERT_NO_EXCEPTION);
</del><ins>+    inner-&gt;appendChild(bar, ASSERT_NO_EXCEPTION);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLOptionElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLOptionElement.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLOptionElement.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/HTMLOptionElement.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -69,12 +69,12 @@
</span><span class="cx"> RefPtr&lt;HTMLOptionElement&gt; HTMLOptionElement::createForJSConstructor(Document&amp; document, const String&amp; data, const String&amp; value,
</span><span class="cx">         bool defaultSelected, bool selected, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><del>-    RefPtr&lt;HTMLOptionElement&gt; element = adoptRef(new HTMLOptionElement(optionTag, document));
</del><ins>+    Ref&lt;HTMLOptionElement&gt; element = adoptRef(*new HTMLOptionElement(optionTag, document));
</ins><span class="cx"> 
</span><del>-    Ref&lt;Text&gt; text = Text::create(document, data.isNull() ? &quot;&quot; : data);
</del><ins>+    auto text = Text::create(document, data.isNull() ? emptyString() : data);
</ins><span class="cx"> 
</span><span class="cx">     ec = 0;
</span><del>-    element-&gt;appendChild(WTFMove(text), ec);
</del><ins>+    element-&gt;appendChild(text, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="lines">@@ -84,7 +84,7 @@
</span><span class="cx">         element-&gt;setAttribute(selectedAttr, emptyAtom);
</span><span class="cx">     element-&gt;setSelected(selected);
</span><span class="cx"> 
</span><del>-    return element;
</del><ins>+    return WTFMove(element);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLOptionElement::isFocusable() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLProgressElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLProgressElement.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLProgressElement.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/HTMLProgressElement.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -149,16 +149,16 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(!m_value);
</span><span class="cx"> 
</span><del>-    Ref&lt;ProgressInnerElement&gt; inner = ProgressInnerElement::create(document());
-    root-&gt;appendChild(inner.copyRef());
</del><ins>+    auto inner = ProgressInnerElement::create(document());
+    root-&gt;appendChild(inner);
</ins><span class="cx"> 
</span><del>-    Ref&lt;ProgressBarElement&gt; bar = ProgressBarElement::create(document());
-    Ref&lt;ProgressValueElement&gt; value = ProgressValueElement::create(document());
</del><ins>+    auto bar = ProgressBarElement::create(document());
+    auto value = ProgressValueElement::create(document());
</ins><span class="cx">     m_value = value.ptr();
</span><span class="cx">     m_value-&gt;setWidthPercentage(HTMLProgressElement::IndeterminatePosition * 100);
</span><del>-    bar-&gt;appendChild(*m_value, ASSERT_NO_EXCEPTION);
</del><ins>+    bar-&gt;appendChild(value, ASSERT_NO_EXCEPTION);
</ins><span class="cx"> 
</span><del>-    inner-&gt;appendChild(WTFMove(bar), ASSERT_NO_EXCEPTION);
</del><ins>+    inner-&gt;appendChild(bar, ASSERT_NO_EXCEPTION);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool HTMLProgressElement::shouldAppearIndeterminate() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTableElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTableElement.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableElement.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/HTMLTableElement.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -176,7 +176,7 @@
</span><span class="cx"> {
</span><span class="cx">     Ref&lt;HTMLTableSectionElement&gt; body = HTMLTableSectionElement::create(tbodyTag, document());
</span><span class="cx">     Node* referenceElement = lastBody() ? lastBody()-&gt;nextSibling() : nullptr;
</span><del>-    insertBefore(body.copyRef(), referenceElement, ASSERT_NO_EXCEPTION);
</del><ins>+    insertBefore(body, referenceElement, ASSERT_NO_EXCEPTION);
</ins><span class="cx">     return body;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -237,16 +237,16 @@
</span><span class="cx">     else {
</span><span class="cx">         parent = lastBody();
</span><span class="cx">         if (!parent) {
</span><del>-            Ref&lt;HTMLTableSectionElement&gt; newBody = HTMLTableSectionElement::create(tbodyTag, document());
-            Ref&lt;HTMLTableRowElement&gt; newRow = HTMLTableRowElement::create(document());
-            newBody-&gt;appendChild(newRow.copyRef(), ec);
-            appendChild(WTFMove(newBody), ec);
</del><ins>+            auto newBody = HTMLTableSectionElement::create(tbodyTag, document());
+            auto newRow = HTMLTableRowElement::create(document());
+            newBody-&gt;appendChild(newRow, ec);
+            appendChild(newBody, ec);
</ins><span class="cx">             return WTFMove(newRow);
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Ref&lt;HTMLTableRowElement&gt; newRow = HTMLTableRowElement::create(document());
-    parent-&gt;insertBefore(newRow.copyRef(), row.get(), ec);
</del><ins>+    auto newRow = HTMLTableRowElement::create(document());
+    parent-&gt;insertBefore(newRow, row.get(), ec);
</ins><span class="cx">     return WTFMove(newRow);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTableRowElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTableRowElement.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTableRowElement.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/HTMLTableRowElement.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -114,14 +114,14 @@
</span><span class="cx"> 
</span><span class="cx">     auto cell = HTMLTableDataCellElement::create(document());
</span><span class="cx">     if (index &lt; 0 || index &gt;= numCells)
</span><del>-        appendChild(cell.copyRef(), ec);
</del><ins>+        appendChild(cell, ec);
</ins><span class="cx">     else {
</span><span class="cx">         Node* n;
</span><span class="cx">         if (index &lt; 1)
</span><span class="cx">             n = firstChild();
</span><span class="cx">         else
</span><span class="cx">             n = children-&gt;item(index);
</span><del>-        insertBefore(cell.copyRef(), n, ec);
</del><ins>+        insertBefore(cell, n, ec);
</ins><span class="cx">     }
</span><span class="cx">     return WTFMove(cell);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlImageDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/ImageDocument.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/ImageDocument.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/ImageDocument.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -210,19 +210,19 @@
</span><span class="cx"> 
</span><span class="cx"> void ImageDocument::createDocumentStructure()
</span><span class="cx"> {
</span><del>-    Ref&lt;Element&gt; rootElement = Document::createElement(htmlTag, false);
-    appendChild(rootElement.copyRef());
</del><ins>+    auto rootElement = Document::createElement(htmlTag, false);
+    appendChild(rootElement);
</ins><span class="cx">     downcast&lt;HTMLHtmlElement&gt;(rootElement.get()).insertedByParser();
</span><span class="cx"> 
</span><span class="cx">     frame()-&gt;injectUserScripts(InjectAtDocumentStart);
</span><span class="cx"> 
</span><del>-    Ref&lt;Element&gt; body = Document::createElement(bodyTag, false);
</del><ins>+    auto body = Document::createElement(bodyTag, false);
</ins><span class="cx">     body-&gt;setAttribute(styleAttr, &quot;margin: 0px&quot;);
</span><span class="cx">     if (MIMETypeRegistry::isPDFMIMEType(document().loader()-&gt;responseMIMEType()))
</span><span class="cx">         downcast&lt;HTMLBodyElement&gt;(body.get()).setInlineStyleProperty(CSSPropertyBackgroundColor, &quot;white&quot;, CSSPrimitiveValue::CSS_IDENT);
</span><del>-    rootElement-&gt;appendChild(body.copyRef());
</del><ins>+    rootElement-&gt;appendChild(body);
</ins><span class="cx">     
</span><del>-    Ref&lt;ImageDocumentElement&gt; imageElement = ImageDocumentElement::create(*this);
</del><ins>+    auto imageElement = ImageDocumentElement::create(*this);
</ins><span class="cx">     if (m_shouldShrinkImage)
</span><span class="cx">         imageElement-&gt;setAttribute(styleAttr, &quot;-webkit-user-select:none; display:block; margin:auto;&quot;);
</span><span class="cx">     else
</span><span class="lines">@@ -230,7 +230,7 @@
</span><span class="cx">     imageElement-&gt;setLoadManually(true);
</span><span class="cx">     imageElement-&gt;setSrc(url().string());
</span><span class="cx">     imageElement-&gt;cachedImage()-&gt;setResponse(loader()-&gt;response());
</span><del>-    body-&gt;appendChild(imageElement.copyRef());
</del><ins>+    body-&gt;appendChild(imageElement);
</ins><span class="cx">     
</span><span class="cx">     if (m_shouldShrinkImage) {
</span><span class="cx"> #if PLATFORM(IOS)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlMediaDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/MediaDocument.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/MediaDocument.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/MediaDocument.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -78,8 +78,8 @@
</span><span class="cx">     
</span><span class="cx"> void MediaDocumentParser::createDocumentStructure()
</span><span class="cx"> {
</span><del>-    Ref&lt;Element&gt; rootElement = document()-&gt;createElement(htmlTag, false);
-    document()-&gt;appendChild(rootElement.copyRef(), IGNORE_EXCEPTION);
</del><ins>+    auto rootElement = document()-&gt;createElement(htmlTag, false);
+    document()-&gt;appendChild(rootElement, IGNORE_EXCEPTION);
</ins><span class="cx">     document()-&gt;setCSSTarget(rootElement.ptr());
</span><span class="cx">     downcast&lt;HTMLHtmlElement&gt;(rootElement.get()).insertedByParser();
</span><span class="cx"> 
</span><span class="lines">@@ -87,19 +87,19 @@
</span><span class="cx">         document()-&gt;frame()-&gt;injectUserScripts(InjectAtDocumentStart);
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-    Ref&lt;Element&gt; headElement = document()-&gt;createElement(headTag, false);
-    rootElement-&gt;appendChild(headElement.copyRef(), IGNORE_EXCEPTION);
</del><ins>+    auto headElement = document()-&gt;createElement(headTag, false);
+    rootElement-&gt;appendChild(headElement, IGNORE_EXCEPTION);
</ins><span class="cx"> 
</span><del>-    Ref&lt;Element&gt; metaElement = document()-&gt;createElement(metaTag, false);
</del><ins>+    auto metaElement = document()-&gt;createElement(metaTag, false);
</ins><span class="cx">     metaElement-&gt;setAttribute(nameAttr, &quot;viewport&quot;);
</span><span class="cx">     metaElement-&gt;setAttribute(contentAttr, &quot;width=device-width,initial-scale=1,user-scalable=no&quot;);
</span><del>-    headElement-&gt;appendChild(WTFMove(metaElement), IGNORE_EXCEPTION);
</del><ins>+    headElement-&gt;appendChild(metaElement, IGNORE_EXCEPTION);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    Ref&lt;Element&gt; body = document()-&gt;createElement(bodyTag, false);
-    rootElement-&gt;appendChild(body.copyRef(), IGNORE_EXCEPTION);
</del><ins>+    auto body = document()-&gt;createElement(bodyTag, false);
+    rootElement-&gt;appendChild(body, IGNORE_EXCEPTION);
</ins><span class="cx"> 
</span><del>-    Ref&lt;Element&gt; mediaElement = document()-&gt;createElement(videoTag, false);
</del><ins>+    auto mediaElement = document()-&gt;createElement(videoTag, false);
</ins><span class="cx"> 
</span><span class="cx">     m_mediaElement = downcast&lt;HTMLVideoElement&gt;(mediaElement.ptr());
</span><span class="cx">     m_mediaElement-&gt;setAttribute(controlsAttr, emptyAtom);
</span><span class="lines">@@ -114,15 +114,15 @@
</span><span class="cx"> #endif
</span><span class="cx">     m_mediaElement-&gt;setAttribute(styleAttr, elementStyle.toString());
</span><span class="cx"> 
</span><del>-    Ref&lt;Element&gt; sourceElement = document()-&gt;createElement(sourceTag, false);
</del><ins>+    auto sourceElement = document()-&gt;createElement(sourceTag, false);
</ins><span class="cx">     HTMLSourceElement&amp; source = downcast&lt;HTMLSourceElement&gt;(sourceElement.get());
</span><span class="cx">     source.setSrc(document()-&gt;url());
</span><span class="cx"> 
</span><span class="cx">     if (DocumentLoader* loader = document()-&gt;loader())
</span><span class="cx">         source.setType(loader-&gt;responseMIMEType());
</span><span class="cx"> 
</span><del>-    m_mediaElement-&gt;appendChild(WTFMove(sourceElement), IGNORE_EXCEPTION);
-    body-&gt;appendChild(WTFMove(mediaElement), IGNORE_EXCEPTION);
</del><ins>+    m_mediaElement-&gt;appendChild(sourceElement, IGNORE_EXCEPTION);
+    body-&gt;appendChild(mediaElement, IGNORE_EXCEPTION);
</ins><span class="cx"> 
</span><span class="cx">     Frame* frame = document()-&gt;frame();
</span><span class="cx">     if (!frame)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlPluginDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/PluginDocument.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/PluginDocument.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/PluginDocument.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -67,8 +67,8 @@
</span><span class="cx"> 
</span><span class="cx"> void PluginDocumentParser::createDocumentStructure()
</span><span class="cx"> {
</span><del>-    Ref&lt;Element&gt; rootElement = document()-&gt;createElement(htmlTag, false);
-    document()-&gt;appendChild(rootElement.copyRef(), IGNORE_EXCEPTION);
</del><ins>+    auto rootElement = document()-&gt;createElement(htmlTag, false);
+    document()-&gt;appendChild(rootElement, IGNORE_EXCEPTION);
</ins><span class="cx">     downcast&lt;HTMLHtmlElement&gt;(rootElement.get()).insertedByParser();
</span><span class="cx"> 
</span><span class="cx">     if (document()-&gt;frame())
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx">     document()-&gt;processViewport(ASCIILiteral(&quot;user-scalable=no&quot;), ViewportArguments::PluginDocument);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    Ref&lt;Element&gt; body = document()-&gt;createElement(bodyTag, false);
</del><ins>+    auto body = document()-&gt;createElement(bodyTag, false);
</ins><span class="cx">     body-&gt;setAttribute(marginwidthAttr, AtomicString(&quot;0&quot;, AtomicString::ConstructFromLiteral));
</span><span class="cx">     body-&gt;setAttribute(marginheightAttr, AtomicString(&quot;0&quot;, AtomicString::ConstructFromLiteral));
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="lines">@@ -88,9 +88,9 @@
</span><span class="cx">     body-&gt;setAttribute(styleAttr, AtomicString(&quot;background-color: rgb(38,38,38)&quot;, AtomicString::ConstructFromLiteral));
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    rootElement-&gt;appendChild(body.copyRef(), IGNORE_EXCEPTION);
</del><ins>+    rootElement-&gt;appendChild(body, IGNORE_EXCEPTION);
</ins><span class="cx">         
</span><del>-    Ref&lt;Element&gt; embedElement = document()-&gt;createElement(embedTag, false);
</del><ins>+    auto embedElement = document()-&gt;createElement(embedTag, false);
</ins><span class="cx">         
</span><span class="cx">     m_embedElement = downcast&lt;HTMLEmbedElement&gt;(embedElement.ptr());
</span><span class="cx">     m_embedElement-&gt;setAttribute(widthAttr, &quot;100%&quot;);
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx"> 
</span><span class="cx">     downcast&lt;PluginDocument&gt;(*document()).setPluginElement(m_embedElement);
</span><span class="cx"> 
</span><del>-    body-&gt;appendChild(WTFMove(embedElement), IGNORE_EXCEPTION);
</del><ins>+    body-&gt;appendChild(embedElement, IGNORE_EXCEPTION);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void PluginDocumentParser::appendBytes(DocumentWriter&amp;, const char*, size_t)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlRangeInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/RangeInputType.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/RangeInputType.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/RangeInputType.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -254,12 +254,12 @@
</span><span class="cx">     ASSERT(element().userAgentShadowRoot());
</span><span class="cx"> 
</span><span class="cx">     Document&amp; document = element().document();
</span><del>-    Ref&lt;HTMLDivElement&gt; track = HTMLDivElement::create(document);
</del><ins>+    auto track = HTMLDivElement::create(document);
</ins><span class="cx">     track-&gt;setPseudo(AtomicString(&quot;-webkit-slider-runnable-track&quot;, AtomicString::ConstructFromLiteral));
</span><span class="cx">     track-&gt;appendChild(SliderThumbElement::create(document), IGNORE_EXCEPTION);
</span><del>-    Ref&lt;HTMLElement&gt; container = SliderContainerElement::create(document);
-    container-&gt;appendChild(WTFMove(track), IGNORE_EXCEPTION);
-    element().userAgentShadowRoot()-&gt;appendChild(WTFMove(container), IGNORE_EXCEPTION);
</del><ins>+    auto container = SliderContainerElement::create(document);
+    container-&gt;appendChild(track, IGNORE_EXCEPTION);
+    element().userAgentShadowRoot()-&gt;appendChild(container, IGNORE_EXCEPTION);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> HTMLElement* RangeInputType::sliderTrackElement() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlSearchInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/SearchInputType.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/SearchInputType.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/SearchInputType.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -107,14 +107,14 @@
</span><span class="cx">     ASSERT(container);
</span><span class="cx">     ASSERT(textWrapper);
</span><span class="cx"> 
</span><del>-    Ref&lt;SearchFieldResultsButtonElement&gt; resultsButton = SearchFieldResultsButtonElement::create(element().document());
</del><ins>+    auto resultsButton = SearchFieldResultsButtonElement::create(element().document());
</ins><span class="cx">     m_resultsButton = resultsButton.ptr();
</span><span class="cx">     updateResultButtonPseudoType(resultsButton.get(), element().maxResults());
</span><del>-    container-&gt;insertBefore(WTFMove(resultsButton), textWrapper, IGNORE_EXCEPTION);
</del><ins>+    container-&gt;insertBefore(resultsButton, textWrapper, IGNORE_EXCEPTION);
</ins><span class="cx"> 
</span><del>-    Ref&lt;SearchFieldCancelButtonElement&gt; cancelButton = SearchFieldCancelButtonElement::create(element().document());
</del><ins>+    auto cancelButton = SearchFieldCancelButtonElement::create(element().document());
</ins><span class="cx">     m_cancelButton = cancelButton.ptr();
</span><del>-    container-&gt;insertBefore(WTFMove(cancelButton), textWrapper-&gt;nextSibling(), IGNORE_EXCEPTION);
</del><ins>+    container-&gt;insertBefore(cancelButton, textWrapper-&gt;nextSibling(), IGNORE_EXCEPTION);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> HTMLElement* SearchInputType::resultsButtonElement() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlValidationMessagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/ValidationMessage.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/ValidationMessage.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/ValidationMessage.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -184,19 +184,19 @@
</span><span class="cx">     document.updateLayout();
</span><span class="cx">     adjustBubblePosition(m_element-&gt;renderer()-&gt;absoluteBoundingBoxRect(), m_bubble.get());
</span><span class="cx"> 
</span><del>-    Ref&lt;HTMLDivElement&gt; clipper = HTMLDivElement::create(document);
</del><ins>+    auto clipper = HTMLDivElement::create(document);
</ins><span class="cx">     clipper-&gt;setPseudo(AtomicString(&quot;-webkit-validation-bubble-arrow-clipper&quot;, AtomicString::ConstructFromLiteral));
</span><del>-    Ref&lt;HTMLDivElement&gt; bubbleArrow = HTMLDivElement::create(document);
</del><ins>+    auto bubbleArrow = HTMLDivElement::create(document);
</ins><span class="cx">     bubbleArrow-&gt;setPseudo(AtomicString(&quot;-webkit-validation-bubble-arrow&quot;, AtomicString::ConstructFromLiteral));
</span><del>-    clipper-&gt;appendChild(WTFMove(bubbleArrow), ASSERT_NO_EXCEPTION);
-    m_bubble-&gt;appendChild(WTFMove(clipper), ASSERT_NO_EXCEPTION);
</del><ins>+    clipper-&gt;appendChild(bubbleArrow, ASSERT_NO_EXCEPTION);
+    m_bubble-&gt;appendChild(clipper, ASSERT_NO_EXCEPTION);
</ins><span class="cx"> 
</span><del>-    Ref&lt;HTMLElement&gt; message = HTMLDivElement::create(document);
</del><ins>+    auto message = HTMLDivElement::create(document);
</ins><span class="cx">     message-&gt;setPseudo(AtomicString(&quot;-webkit-validation-bubble-message&quot;, AtomicString::ConstructFromLiteral));
</span><del>-    Ref&lt;HTMLElement&gt; icon = HTMLDivElement::create(document);
</del><ins>+    auto icon = HTMLDivElement::create(document);
</ins><span class="cx">     icon-&gt;setPseudo(AtomicString(&quot;-webkit-validation-bubble-icon&quot;, AtomicString::ConstructFromLiteral));
</span><del>-    message-&gt;appendChild(WTFMove(icon), ASSERT_NO_EXCEPTION);
-    Ref&lt;HTMLElement&gt; textBlock = HTMLDivElement::create(document);
</del><ins>+    message-&gt;appendChild(icon, ASSERT_NO_EXCEPTION);
+    auto textBlock = HTMLDivElement::create(document);
</ins><span class="cx">     textBlock-&gt;setPseudo(AtomicString(&quot;-webkit-validation-bubble-text-block&quot;, AtomicString::ConstructFromLiteral));
</span><span class="cx">     m_messageHeading = HTMLDivElement::create(document);
</span><span class="cx">     m_messageHeading-&gt;setPseudo(AtomicString(&quot;-webkit-validation-bubble-heading&quot;, AtomicString::ConstructFromLiteral));
</span><span class="lines">@@ -204,8 +204,8 @@
</span><span class="cx">     m_messageBody = HTMLDivElement::create(document);
</span><span class="cx">     m_messageBody-&gt;setPseudo(AtomicString(&quot;-webkit-validation-bubble-body&quot;, AtomicString::ConstructFromLiteral));
</span><span class="cx">     textBlock-&gt;appendChild(*m_messageBody, ASSERT_NO_EXCEPTION);
</span><del>-    message-&gt;appendChild(WTFMove(textBlock), ASSERT_NO_EXCEPTION);
-    m_bubble-&gt;appendChild(WTFMove(message), ASSERT_NO_EXCEPTION);
</del><ins>+    message-&gt;appendChild(textBlock, ASSERT_NO_EXCEPTION);
+    m_bubble-&gt;appendChild(message, ASSERT_NO_EXCEPTION);
</ins><span class="cx"> 
</span><span class="cx">     setMessageDOMAndStartTimer();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMediaControlElementscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MediaControlElements.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MediaControlElements.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/shadow/MediaControlElements.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -805,20 +805,20 @@
</span><span class="cx">     auto&amp; captionPreferences = document().page()-&gt;group().captionPreferences();
</span><span class="cx">     Vector&lt;RefPtr&lt;TextTrack&gt;&gt; tracksForMenu = captionPreferences.sortedTrackListForMenu(trackList);
</span><span class="cx"> 
</span><del>-    Ref&lt;Element&gt; captionsHeader = document().createElement(h3Tag, ASSERT_NO_EXCEPTION);
</del><ins>+    auto captionsHeader = document().createElement(h3Tag, ASSERT_NO_EXCEPTION);
</ins><span class="cx">     captionsHeader-&gt;appendChild(document().createTextNode(textTrackSubtitlesText()));
</span><del>-    appendChild(WTFMove(captionsHeader));
-    Ref&lt;Element&gt; captionsMenuList = document().createElement(ulTag, ASSERT_NO_EXCEPTION);
</del><ins>+    appendChild(captionsHeader);
+    auto captionsMenuList = document().createElement(ulTag, ASSERT_NO_EXCEPTION);
</ins><span class="cx"> 
</span><span class="cx">     for (auto&amp; textTrack : tracksForMenu) {
</span><del>-        Ref&lt;Element&gt; menuItem = document().createElement(liTag, ASSERT_NO_EXCEPTION);
</del><ins>+        auto menuItem = document().createElement(liTag, ASSERT_NO_EXCEPTION);
</ins><span class="cx">         menuItem-&gt;appendChild(document().createTextNode(captionPreferences.displayNameForTrack(textTrack.get())));
</span><del>-        captionsMenuList-&gt;appendChild(menuItem.copyRef());
</del><ins>+        captionsMenuList-&gt;appendChild(menuItem);
</ins><span class="cx">         m_menuItems.append(menuItem.ptr());
</span><span class="cx">         m_menuToTrackMap.add(menuItem.ptr(), textTrack);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    appendChild(WTFMove(captionsMenuList));
</del><ins>+    appendChild(captionsMenuList);
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMediaControlscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MediaControls.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MediaControls.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/shadow/MediaControls.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -380,14 +380,14 @@
</span><span class="cx">     if (m_textDisplayContainer)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    Ref&lt;MediaControlTextTrackContainerElement&gt; textDisplayContainer = MediaControlTextTrackContainerElement::create(document());
</del><ins>+    auto textDisplayContainer = MediaControlTextTrackContainerElement::create(document());
</ins><span class="cx">     m_textDisplayContainer = textDisplayContainer.ptr();
</span><span class="cx"> 
</span><span class="cx">     if (m_mediaController)
</span><span class="cx">         m_textDisplayContainer-&gt;setMediaController(m_mediaController);
</span><span class="cx"> 
</span><span class="cx">     // Insert it before the first controller element so it always displays behind the controls.
</span><del>-    insertBefore(WTFMove(textDisplayContainer), m_panel, IGNORE_EXCEPTION);
</del><ins>+    insertBefore(textDisplayContainer, m_panel, IGNORE_EXCEPTION);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void MediaControls::showTextTrackDisplay()
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMediaControlsApplecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MediaControlsApple.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MediaControlsApple.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/shadow/MediaControlsApple.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -73,26 +73,26 @@
</span><span class="cx"> 
</span><span class="cx">     auto rewindButton = MediaControlRewindButtonElement::create(document);
</span><span class="cx">     controls-&gt;m_rewindButton = rewindButton.ptr();
</span><del>-    panel-&gt;appendChild(WTFMove(rewindButton), ec);
</del><ins>+    panel-&gt;appendChild(rewindButton, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     auto playButton = MediaControlPlayButtonElement::create(document);
</span><span class="cx">     controls-&gt;m_playButton = playButton.ptr();
</span><del>-    panel-&gt;appendChild(WTFMove(playButton), ec);
</del><ins>+    panel-&gt;appendChild(playButton, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     auto returnToRealtimeButton = MediaControlReturnToRealtimeButtonElement::create(document);
</span><span class="cx">     controls-&gt;m_returnToRealTimeButton = returnToRealtimeButton.ptr();
</span><del>-    panel-&gt;appendChild(WTFMove(returnToRealtimeButton), ec);
</del><ins>+    panel-&gt;appendChild(returnToRealtimeButton, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     if (document.page()-&gt;theme().usesMediaControlStatusDisplay()) {
</span><span class="cx">         auto statusDisplay = MediaControlStatusDisplayElement::create(document);
</span><span class="cx">         controls-&gt;m_statusDisplay = statusDisplay.ptr();
</span><del>-        panel-&gt;appendChild(WTFMove(statusDisplay), ec);
</del><ins>+        panel-&gt;appendChild(statusDisplay, ec);
</ins><span class="cx">         if (ec)
</span><span class="cx">             return nullptr;
</span><span class="cx">     }
</span><span class="lines">@@ -101,38 +101,38 @@
</span><span class="cx"> 
</span><span class="cx">     auto currentTimeDisplay = MediaControlCurrentTimeDisplayElement::create(document);
</span><span class="cx">     controls-&gt;m_currentTimeDisplay = currentTimeDisplay.ptr();
</span><del>-    timelineContainer-&gt;appendChild(WTFMove(currentTimeDisplay), ec);
</del><ins>+    timelineContainer-&gt;appendChild(currentTimeDisplay, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     auto timeline = MediaControlTimelineElement::create(document, controls.ptr());
</span><span class="cx">     controls-&gt;m_timeline = timeline.ptr();
</span><del>-    timelineContainer-&gt;appendChild(WTFMove(timeline), ec);
</del><ins>+    timelineContainer-&gt;appendChild(timeline, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     auto timeRemainingDisplay = MediaControlTimeRemainingDisplayElement::create(document);
</span><span class="cx">     controls-&gt;m_timeRemainingDisplay = timeRemainingDisplay.ptr();
</span><del>-    timelineContainer-&gt;appendChild(WTFMove(timeRemainingDisplay), ec);
</del><ins>+    timelineContainer-&gt;appendChild(timeRemainingDisplay, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     controls-&gt;m_timelineContainer = timelineContainer.ptr();
</span><del>-    panel-&gt;appendChild(WTFMove(timelineContainer), ec);
</del><ins>+    panel-&gt;appendChild(timelineContainer, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Only create when needed &lt;http://webkit.org/b/57163&gt;
</span><span class="cx">     auto seekBackButton = MediaControlSeekBackButtonElement::create(document);
</span><span class="cx">     controls-&gt;m_seekBackButton = seekBackButton.ptr();
</span><del>-    panel-&gt;appendChild(WTFMove(seekBackButton), ec);
</del><ins>+    panel-&gt;appendChild(seekBackButton, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Only create when needed &lt;http://webkit.org/b/57163&gt;
</span><span class="cx">     auto seekForwardButton = MediaControlSeekForwardButtonElement::create(document);
</span><span class="cx">     controls-&gt;m_seekForwardButton = seekForwardButton.ptr();
</span><del>-    panel-&gt;appendChild(WTFMove(seekForwardButton), ec);
</del><ins>+    panel-&gt;appendChild(seekForwardButton, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="lines">@@ -141,18 +141,18 @@
</span><span class="cx"> 
</span><span class="cx">         auto closedCaptionsTrackList = MediaControlClosedCaptionsTrackListElement::create(document, controls.ptr());
</span><span class="cx">         controls-&gt;m_closedCaptionsTrackList = closedCaptionsTrackList.ptr();
</span><del>-        closedCaptionsContainer-&gt;appendChild(WTFMove(closedCaptionsTrackList), ec);
</del><ins>+        closedCaptionsContainer-&gt;appendChild(closedCaptionsTrackList, ec);
</ins><span class="cx">         if (ec)
</span><span class="cx">             return nullptr;
</span><span class="cx"> 
</span><span class="cx">         auto toggleClosedCaptionsButton = MediaControlToggleClosedCaptionsButtonElement::create(document, controls.ptr());
</span><span class="cx">         controls-&gt;m_toggleClosedCaptionsButton = toggleClosedCaptionsButton.ptr();
</span><del>-        panel-&gt;appendChild(WTFMove(toggleClosedCaptionsButton), ec);
</del><ins>+        panel-&gt;appendChild(toggleClosedCaptionsButton, ec);
</ins><span class="cx">         if (ec)
</span><span class="cx">             return nullptr;
</span><span class="cx"> 
</span><span class="cx">         controls-&gt;m_closedCaptionsContainer = closedCaptionsContainer.ptr();
</span><del>-        controls-&gt;appendChild(WTFMove(closedCaptionsContainer), ec);
</del><ins>+        controls-&gt;appendChild(closedCaptionsContainer, ec);
</ins><span class="cx">         if (ec)
</span><span class="cx">             return nullptr;
</span><span class="cx">     }
</span><span class="lines">@@ -160,7 +160,7 @@
</span><span class="cx">     // FIXME: Only create when needed &lt;http://webkit.org/b/57163&gt;
</span><span class="cx">     auto fullScreenButton = MediaControlFullscreenButtonElement::create(document);
</span><span class="cx">     controls-&gt;m_fullScreenButton = fullScreenButton.ptr();
</span><del>-    panel-&gt;appendChild(WTFMove(fullScreenButton), ec);
</del><ins>+    panel-&gt;appendChild(fullScreenButton, ec);
</ins><span class="cx"> 
</span><span class="cx">     // The mute button and the slider element should be in the same div.
</span><span class="cx">     auto panelVolumeControlContainer = HTMLDivElement::create(document);
</span><span class="lines">@@ -170,7 +170,7 @@
</span><span class="cx"> 
</span><span class="cx">         auto slider = MediaControlPanelVolumeSliderElement::create(document);
</span><span class="cx">         controls-&gt;m_volumeSlider = slider.ptr();
</span><del>-        volumeSliderContainer-&gt;appendChild(WTFMove(slider), ec);
</del><ins>+        volumeSliderContainer-&gt;appendChild(slider, ec);
</ins><span class="cx">         if (ec)
</span><span class="cx">             return nullptr;
</span><span class="cx"> 
</span><span class="lines">@@ -178,48 +178,48 @@
</span><span class="cx">         // It's important only when the volume bar is displayed below the controls.
</span><span class="cx">         auto volumeSliderMuteButton = MediaControlVolumeSliderMuteButtonElement::create(document);
</span><span class="cx">         controls-&gt;m_volumeSliderMuteButton = volumeSliderMuteButton.ptr();
</span><del>-        volumeSliderContainer-&gt;appendChild(WTFMove(volumeSliderMuteButton), ec);
</del><ins>+        volumeSliderContainer-&gt;appendChild(volumeSliderMuteButton, ec);
</ins><span class="cx"> 
</span><span class="cx">         if (ec)
</span><span class="cx">             return nullptr;
</span><span class="cx"> 
</span><span class="cx">         controls-&gt;m_volumeSliderContainer = volumeSliderContainer.ptr();
</span><del>-        panelVolumeControlContainer-&gt;appendChild(WTFMove(volumeSliderContainer), ec);
</del><ins>+        panelVolumeControlContainer-&gt;appendChild(volumeSliderContainer, ec);
</ins><span class="cx">         if (ec)
</span><span class="cx">             return nullptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     auto panelMuteButton = MediaControlPanelMuteButtonElement::create(document, controls.ptr());
</span><span class="cx">     controls-&gt;m_panelMuteButton = panelMuteButton.ptr();
</span><del>-    panelVolumeControlContainer-&gt;appendChild(WTFMove(panelMuteButton), ec);
</del><ins>+    panelVolumeControlContainer-&gt;appendChild(panelMuteButton, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    panel-&gt;appendChild(WTFMove(panelVolumeControlContainer), ec);
</del><ins>+    panel-&gt;appendChild(panelVolumeControlContainer, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Only create when needed &lt;http://webkit.org/b/57163&gt;
</span><span class="cx">     auto fullScreenMinVolumeButton = MediaControlFullscreenVolumeMinButtonElement::create(document);
</span><span class="cx">     controls-&gt;m_fullScreenMinVolumeButton = fullScreenMinVolumeButton.ptr();
</span><del>-    panel-&gt;appendChild(WTFMove(fullScreenMinVolumeButton), ec);
</del><ins>+    panel-&gt;appendChild(fullScreenMinVolumeButton, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     auto fullScreenVolumeSlider = MediaControlFullscreenVolumeSliderElement::create(document);
</span><span class="cx">     controls-&gt;m_fullScreenVolumeSlider = fullScreenVolumeSlider.ptr();
</span><del>-    panel-&gt;appendChild(WTFMove(fullScreenVolumeSlider), ec);
</del><ins>+    panel-&gt;appendChild(fullScreenVolumeSlider, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     auto fullScreenMaxVolumeButton = MediaControlFullscreenVolumeMaxButtonElement::create(document);
</span><span class="cx">     controls-&gt;m_fullScreenMaxVolumeButton = fullScreenMaxVolumeButton.ptr();
</span><del>-    panel-&gt;appendChild(WTFMove(fullScreenMaxVolumeButton), ec);
</del><ins>+    panel-&gt;appendChild(fullScreenMaxVolumeButton, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     controls-&gt;m_panel = panel.ptr();
</span><del>-    controls-&gt;appendChild(WTFMove(panel), ec);
</del><ins>+    controls-&gt;appendChild(panel, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowmacImageControlsRootElementMaccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx">     controls-&gt;setAttribute(HTMLNames::classAttr, &quot;x-webkit-image-controls&quot;);
</span><span class="cx"> 
</span><span class="cx">     if (RefPtr&lt;ImageControlsButtonElementMac&gt; button = ImageControlsButtonElementMac::tryCreate(document))
</span><del>-        controls-&gt;appendChild(button.releaseNonNull());
</del><ins>+        controls-&gt;appendChild(*button);
</ins><span class="cx"> 
</span><span class="cx">     return WTFMove(controls);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackVTTCuecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/VTTCue.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/VTTCue.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/track/VTTCue.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -784,7 +784,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     markFutureAndPastNodes(referenceTree.get(), startMediaTime(), movieTime);
</span><del>-    m_cueHighlightBox-&gt;appendChild(referenceTree.releaseNonNull());
</del><ins>+    m_cueHighlightBox-&gt;appendChild(*referenceTree);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> VTTCueBox* VTTCue::getDisplayTree(const IntSize&amp; videoSize, int fontSize)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmltrackWebVTTParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/track/WebVTTParser.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/track/WebVTTParser.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/html/track/WebVTTParser.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -536,8 +536,7 @@
</span><span class="cx"> 
</span><span class="cx">     switch (m_token.type()) {
</span><span class="cx">     case WebVTTTokenTypes::Character: {
</span><del>-        auto child = Text::create(document, m_token.characters());
-        m_currentNode-&gt;parserAppendChild(WTFMove(child));
</del><ins>+        m_currentNode-&gt;parserAppendChild(Text::create(document, m_token.characters()));
</ins><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     case WebVTTTokenTypes::StartTag: {
</span><span class="lines">@@ -562,7 +561,7 @@
</span><span class="cx">         }
</span><span class="cx">         if (!m_languageStack.isEmpty())
</span><span class="cx">             child-&gt;setLanguage(m_languageStack.last());
</span><del>-        m_currentNode-&gt;parserAppendChild(child.copyRef());
</del><ins>+        m_currentNode-&gt;parserAppendChild(child);
</ins><span class="cx">         m_currentNode = WTFMove(child);
</span><span class="cx">         break;
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorDOMEditorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/DOMEditor.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/DOMEditor.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/inspector/DOMEditor.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx"> class DOMEditor::RemoveChildAction : public InspectorHistory::Action {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(RemoveChildAction);
</span><span class="cx"> public:
</span><del>-    RemoveChildAction(Node* parentNode, Node* node)
</del><ins>+    RemoveChildAction(Node&amp; parentNode, Node&amp; node)
</ins><span class="cx">         : InspectorHistory::Action(&quot;RemoveChild&quot;)
</span><span class="cx">         , m_parentNode(parentNode)
</span><span class="cx">         , m_node(node)
</span><span class="lines">@@ -62,24 +62,24 @@
</span><span class="cx"> 
</span><span class="cx">     bool undo(ExceptionCode&amp; ec) override
</span><span class="cx">     {
</span><del>-        return m_parentNode-&gt;insertBefore(m_node.get(), m_anchorNode.get(), ec);
</del><ins>+        return m_parentNode-&gt;insertBefore(m_node, m_anchorNode.get(), ec);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     bool redo(ExceptionCode&amp; ec) override
</span><span class="cx">     {
</span><del>-        return m_parentNode-&gt;removeChild(m_node.get(), ec);
</del><ins>+        return m_parentNode-&gt;removeChild(m_node, ec);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    RefPtr&lt;Node&gt; m_parentNode;
-    RefPtr&lt;Node&gt; m_node;
</del><ins>+    Ref&lt;Node&gt; m_parentNode;
+    Ref&lt;Node&gt; m_node;
</ins><span class="cx">     RefPtr&lt;Node&gt; m_anchorNode;
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class DOMEditor::InsertBeforeAction : public InspectorHistory::Action {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(InsertBeforeAction);
</span><span class="cx"> public:
</span><del>-    InsertBeforeAction(Node* parentNode, RefPtr&lt;Node&gt;&amp;&amp; node, Node* anchorNode)
</del><ins>+    InsertBeforeAction(Node&amp; parentNode, Ref&lt;Node&gt;&amp;&amp; node, Node* anchorNode)
</ins><span class="cx">         : InspectorHistory::Action(&quot;InsertBefore&quot;)
</span><span class="cx">         , m_parentNode(parentNode)
</span><span class="cx">         , m_node(WTFMove(node))
</span><span class="lines">@@ -90,16 +90,16 @@
</span><span class="cx">     bool perform(ExceptionCode&amp; ec) override
</span><span class="cx">     {
</span><span class="cx">         if (m_node-&gt;parentNode()) {
</span><del>-            m_removeChildAction = std::make_unique&lt;RemoveChildAction&gt;(m_node-&gt;parentNode(), m_node.get());
</del><ins>+            m_removeChildAction = std::make_unique&lt;RemoveChildAction&gt;(*m_node-&gt;parentNode(), m_node);
</ins><span class="cx">             if (!m_removeChildAction-&gt;perform(ec))
</span><span class="cx">                 return false;
</span><span class="cx">         }
</span><del>-        return m_parentNode-&gt;insertBefore(m_node.get(), m_anchorNode.get(), ec);
</del><ins>+        return m_parentNode-&gt;insertBefore(m_node, m_anchorNode.get(), ec);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     bool undo(ExceptionCode&amp; ec) override
</span><span class="cx">     {
</span><del>-        if (!m_parentNode-&gt;removeChild(m_node.get(), ec))
</del><ins>+        if (!m_parentNode-&gt;removeChild(m_node, ec))
</ins><span class="cx">             return false;
</span><span class="cx">         if (m_removeChildAction)
</span><span class="cx">             return m_removeChildAction-&gt;undo(ec);
</span><span class="lines">@@ -110,12 +110,12 @@
</span><span class="cx">     {
</span><span class="cx">         if (m_removeChildAction &amp;&amp; !m_removeChildAction-&gt;redo(ec))
</span><span class="cx">             return false;
</span><del>-        return m_parentNode-&gt;insertBefore(m_node.get(), m_anchorNode.get(), ec);
</del><ins>+        return m_parentNode-&gt;insertBefore(m_node, m_anchorNode.get(), ec);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    RefPtr&lt;Node&gt; m_parentNode;
-    RefPtr&lt;Node&gt; m_node;
</del><ins>+    Ref&lt;Node&gt; m_parentNode;
+    Ref&lt;Node&gt; m_node;
</ins><span class="cx">     RefPtr&lt;Node&gt; m_anchorNode;
</span><span class="cx">     std::unique_ptr&lt;RemoveChildAction&gt; m_removeChildAction;
</span><span class="cx"> };
</span><span class="lines">@@ -281,7 +281,7 @@
</span><span class="cx"> class DOMEditor::ReplaceChildNodeAction : public InspectorHistory::Action {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(ReplaceChildNodeAction);
</span><span class="cx"> public:
</span><del>-    ReplaceChildNodeAction(Node* parentNode, RefPtr&lt;Node&gt;&amp;&amp; newNode, Node* oldNode)
</del><ins>+    ReplaceChildNodeAction(Node&amp; parentNode, Ref&lt;Node&gt;&amp;&amp; newNode, Node&amp; oldNode)
</ins><span class="cx">         : InspectorHistory::Action(&quot;ReplaceChildNode&quot;)
</span><span class="cx">         , m_parentNode(parentNode)
</span><span class="cx">         , m_newNode(WTFMove(newNode))
</span><span class="lines">@@ -301,13 +301,13 @@
</span><span class="cx"> 
</span><span class="cx">     bool redo(ExceptionCode&amp; ec) override
</span><span class="cx">     {
</span><del>-        return m_parentNode-&gt;replaceChild(m_newNode, m_oldNode.get(), ec);
</del><ins>+        return m_parentNode-&gt;replaceChild(m_newNode, m_oldNode, ec);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    RefPtr&lt;Node&gt; m_parentNode;
-    RefPtr&lt;Node&gt; m_newNode;
-    RefPtr&lt;Node&gt; m_oldNode;
</del><ins>+    Ref&lt;Node&gt; m_parentNode;
+    Ref&lt;Node&gt; m_newNode;
+    Ref&lt;Node&gt; m_oldNode;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> class DOMEditor::SetNodeValueAction : public InspectorHistory::Action {
</span><span class="lines">@@ -348,12 +348,12 @@
</span><span class="cx"> 
</span><span class="cx"> DOMEditor::~DOMEditor() { }
</span><span class="cx"> 
</span><del>-bool DOMEditor::insertBefore(Node* parentNode, RefPtr&lt;Node&gt;&amp;&amp; node, Node* anchorNode, ExceptionCode&amp; ec)
</del><ins>+bool DOMEditor::insertBefore(Node&amp; parentNode, Ref&lt;Node&gt;&amp;&amp; node, Node* anchorNode, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><span class="cx">     return m_history-&gt;perform(std::make_unique&lt;InsertBeforeAction&gt;(parentNode, WTFMove(node), anchorNode), ec);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool DOMEditor::removeChild(Node* parentNode, Node* node, ExceptionCode&amp; ec)
</del><ins>+bool DOMEditor::removeChild(Node&amp; parentNode, Node&amp; node, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><span class="cx">     return m_history-&gt;perform(std::make_unique&lt;RemoveChildAction&gt;(parentNode, node), ec);
</span><span class="cx"> }
</span><span class="lines">@@ -383,7 +383,7 @@
</span><span class="cx">     return m_history-&gt;perform(std::make_unique&lt;ReplaceWholeTextAction&gt;(textNode, text), ec);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool DOMEditor::replaceChild(Node* parentNode, RefPtr&lt;Node&gt;&amp;&amp; newNode, Node* oldNode, ExceptionCode&amp; ec)
</del><ins>+bool DOMEditor::replaceChild(Node&amp; parentNode, Ref&lt;Node&gt;&amp;&amp; newNode, Node&amp; oldNode, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><span class="cx">     return m_history-&gt;perform(std::make_unique&lt;ReplaceChildNodeAction&gt;(parentNode, WTFMove(newNode), oldNode), ec);
</span><span class="cx"> }
</span><span class="lines">@@ -401,7 +401,7 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool DOMEditor::insertBefore(Node* parentNode, RefPtr&lt;Node&gt;&amp;&amp; node, Node* anchorNode, ErrorString&amp; errorString)
</del><ins>+bool DOMEditor::insertBefore(Node&amp; parentNode, Ref&lt;Node&gt;&amp;&amp; node, Node* anchorNode, ErrorString&amp; errorString)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     bool result = insertBefore(parentNode, WTFMove(node), anchorNode, ec);
</span><span class="lines">@@ -409,7 +409,7 @@
</span><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool DOMEditor::removeChild(Node* parentNode, Node* node, ErrorString&amp; errorString)
</del><ins>+bool DOMEditor::removeChild(Node&amp; parentNode, Node&amp; node, ErrorString&amp; errorString)
</ins><span class="cx"> {
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="cx">     bool result = removeChild(parentNode, node, ec);
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorDOMEditorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/DOMEditor.h (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/DOMEditor.h        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/inspector/DOMEditor.h        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -50,17 +50,17 @@
</span><span class="cx">     explicit DOMEditor(InspectorHistory*);
</span><span class="cx">     ~DOMEditor();
</span><span class="cx"> 
</span><del>-    bool insertBefore(Node* parentNode, RefPtr&lt;Node&gt;&amp;&amp;, Node* anchorNode, ExceptionCode&amp;);
-    bool removeChild(Node* parentNode, Node*, ExceptionCode&amp;);
</del><ins>+    bool insertBefore(Node&amp; parentNode, Ref&lt;Node&gt;&amp;&amp;, Node* anchorNode, ExceptionCode&amp;);
+    bool removeChild(Node&amp; parentNode, Node&amp;, ExceptionCode&amp;);
</ins><span class="cx">     bool setAttribute(Element*, const String&amp; name, const String&amp; value, ExceptionCode&amp;);
</span><span class="cx">     bool removeAttribute(Element*, const String&amp; name, ExceptionCode&amp;);
</span><span class="cx">     bool setOuterHTML(Node&amp;, const String&amp; html, Node** newNode, ExceptionCode&amp;);
</span><span class="cx">     bool replaceWholeText(Text*, const String&amp; text, ExceptionCode&amp;);
</span><del>-    bool replaceChild(Node* parentNode, RefPtr&lt;Node&gt;&amp;&amp; newNode, Node* oldNode, ExceptionCode&amp;);
</del><ins>+    bool replaceChild(Node&amp; parentNode, Ref&lt;Node&gt;&amp;&amp; newNode, Node&amp; oldNode, ExceptionCode&amp;);
</ins><span class="cx">     bool setNodeValue(Node* parentNode, const String&amp; value, ExceptionCode&amp;);
</span><span class="cx"> 
</span><del>-    bool insertBefore(Node* parentNode, RefPtr&lt;Node&gt;&amp;&amp;, Node* anchorNode, ErrorString&amp;);
-    bool removeChild(Node* parentNode, Node*, ErrorString&amp;);
</del><ins>+    bool insertBefore(Node&amp; parentNode, Ref&lt;Node&gt;&amp;&amp;, Node* anchorNode, ErrorString&amp;);
+    bool removeChild(Node&amp; parentNode, Node&amp;, ErrorString&amp;);
</ins><span class="cx">     bool setAttribute(Element*, const String&amp; name, const String&amp; value, ErrorString&amp;);
</span><span class="cx">     bool removeAttribute(Element*, const String&amp; name, ErrorString&amp;);
</span><span class="cx">     bool setOuterHTML(Node&amp;, const String&amp; html, Node** newNode, ErrorString&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorDOMPatchSupportcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/DOMPatchSupport.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/DOMPatchSupport.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/inspector/DOMPatchSupport.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -152,7 +152,7 @@
</span><span class="cx">     if (!innerPatchChildren(parentNode, oldList, newList, ec)) {
</span><span class="cx">         // Fall back to total replace.
</span><span class="cx">         ec = 0;
</span><del>-        if (!m_domEditor-&gt;replaceChild(parentNode, fragment.release(), &amp;node, ec))
</del><ins>+        if (!m_domEditor-&gt;replaceChild(*parentNode, *fragment, node, ec))
</ins><span class="cx">             return nullptr;
</span><span class="cx">     }
</span><span class="cx">     return previousSibling ? previousSibling-&gt;nextSibling() : parentNode-&gt;firstChild();
</span><span class="lines">@@ -167,7 +167,7 @@
</span><span class="cx">     Node* newNode = newDigest-&gt;m_node;
</span><span class="cx"> 
</span><span class="cx">     if (newNode-&gt;nodeType() != oldNode-&gt;nodeType() || newNode-&gt;nodeName() != oldNode-&gt;nodeName())
</span><del>-        return m_domEditor-&gt;replaceChild(oldNode-&gt;parentNode(), newNode, oldNode, ec);
</del><ins>+        return m_domEditor-&gt;replaceChild(*oldNode-&gt;parentNode(), *newNode, *oldNode, ec);
</ins><span class="cx"> 
</span><span class="cx">     if (oldNode-&gt;nodeValue() != newNode-&gt;nodeValue()) {
</span><span class="cx">         if (!m_domEditor-&gt;setNodeValue(oldNode, newNode-&gt;nodeValue(), ec))
</span><span class="lines">@@ -377,7 +377,7 @@
</span><span class="cx">     for (size_t i = 0; i &lt; newMap.size(); ++i) {
</span><span class="cx">         if (newMap[i].first || merges.contains(newList[i].get()))
</span><span class="cx">             continue;
</span><del>-        if (!insertBeforeAndMarkAsUsed(parentNode, newList[i].get(), parentNode-&gt;traverseToChildAt(i), ec))
</del><ins>+        if (!insertBeforeAndMarkAsUsed(*parentNode, *newList[i], parentNode-&gt;traverseToChildAt(i), ec))
</ins><span class="cx">             return false;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -392,7 +392,7 @@
</span><span class="cx">         if (node-&gt;hasTagName(bodyTag) || node-&gt;hasTagName(headTag))
</span><span class="cx">             continue; // Never move head or body, move the rest of the nodes around them.
</span><span class="cx"> 
</span><del>-        if (!m_domEditor-&gt;insertBefore(parentNode, node.release(), anchorNode, ec))
</del><ins>+        if (!m_domEditor-&gt;insertBefore(*parentNode, node.releaseNonNull(), anchorNode, ec))
</ins><span class="cx">             return false;
</span><span class="cx">     }
</span><span class="cx">     return true;
</span><span class="lines">@@ -446,17 +446,19 @@
</span><span class="cx">     return digest;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool DOMPatchSupport::insertBeforeAndMarkAsUsed(ContainerNode* parentNode, Digest* digest, Node* anchor, ExceptionCode&amp; ec)
</del><ins>+bool DOMPatchSupport::insertBeforeAndMarkAsUsed(ContainerNode&amp; parentNode, Digest&amp; digest, Node* anchor, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><del>-    bool result = m_domEditor-&gt;insertBefore(parentNode, digest-&gt;m_node, anchor, ec);
-    markNodeAsUsed(digest);
</del><ins>+    ASSERT(digest.m_node);
+    bool result = m_domEditor-&gt;insertBefore(parentNode, *digest.m_node, anchor, ec);
+    markNodeAsUsed(&amp;digest);
</ins><span class="cx">     return result;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool DOMPatchSupport::removeChildAndMoveToNew(Digest* oldDigest, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;Node&gt; oldNode = oldDigest-&gt;m_node;
</span><del>-    if (!m_domEditor-&gt;removeChild(oldNode-&gt;parentNode(), oldNode.get(), ec))
</del><ins>+    ASSERT(oldNode-&gt;parentNode());
+    if (!m_domEditor-&gt;removeChild(*oldNode-&gt;parentNode(), *oldNode, ec))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     // Diff works within levels. In order not to lose the node identity when user
</span><span class="lines">@@ -468,7 +470,7 @@
</span><span class="cx">     if (it != m_unusedNodesMap.end()) {
</span><span class="cx">         Digest* newDigest = it-&gt;value;
</span><span class="cx">         Node* newNode = newDigest-&gt;m_node;
</span><del>-        if (!m_domEditor-&gt;replaceChild(newNode-&gt;parentNode(), WTFMove(oldNode), newNode, ec))
</del><ins>+        if (!m_domEditor-&gt;replaceChild(*newNode-&gt;parentNode(), *oldNode, *newNode, ec))
</ins><span class="cx">             return false;
</span><span class="cx">         newDigest-&gt;m_node = oldNode.get();
</span><span class="cx">         markNodeAsUsed(newDigest);
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorDOMPatchSupporth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/DOMPatchSupport.h (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/DOMPatchSupport.h        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/inspector/DOMPatchSupport.h        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx">     std::pair&lt;ResultMap, ResultMap&gt; diff(const Vector&lt;std::unique_ptr&lt;Digest&gt;&gt;&amp; oldChildren, const Vector&lt;std::unique_ptr&lt;Digest&gt;&gt;&amp; newChildren);
</span><span class="cx">     bool innerPatchChildren(ContainerNode*, const Vector&lt;std::unique_ptr&lt;Digest&gt;&gt;&amp; oldChildren, const Vector&lt;std::unique_ptr&lt;Digest&gt;&gt;&amp; newChildren, ExceptionCode&amp;);
</span><span class="cx">     std::unique_ptr&lt;Digest&gt; createDigest(Node*, UnusedNodesMap*);
</span><del>-    bool insertBeforeAndMarkAsUsed(ContainerNode*, Digest*, Node* anchor, ExceptionCode&amp;);
</del><ins>+    bool insertBeforeAndMarkAsUsed(ContainerNode&amp;, Digest&amp;, Node* anchor, ExceptionCode&amp;);
</ins><span class="cx">     bool removeChildAndMoveToNew(Digest*, ExceptionCode&amp;);
</span><span class="cx">     void markNodeAsUsed(Digest*);
</span><span class="cx"> #ifdef DEBUG_DOM_PATCH_SUPPORT
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorCSSAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/inspector/InspectorCSSAgent.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -794,7 +794,7 @@
</span><span class="cx">     m_creatingViaInspectorStyleSheet = true;
</span><span class="cx">     InlineStyleOverrideScope overrideScope(document);
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    targetNode-&gt;appendChild(WTFMove(styleElement), ec);
</del><ins>+    targetNode-&gt;appendChild(styleElement, ec);
</ins><span class="cx">     m_creatingViaInspectorStyleSheet = false;
</span><span class="cx">     if (ec)
</span><span class="cx">         return nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDOMAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -712,7 +712,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_domEditor-&gt;removeChild(parentNode, node, errorString);
</del><ins>+    m_domEditor-&gt;removeChild(*parentNode, *node, errorString);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorDOMAgent::setNodeName(ErrorString&amp; errorString, int nodeId, const String&amp; tagName, int* newId)
</span><span class="lines">@@ -724,7 +724,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec = 0;
</span><del>-    RefPtr&lt;Element&gt; newElement = oldNode-&gt;document().createElementForBindings(tagName, ec);
</del><ins>+    auto newElement = oldNode-&gt;document().createElementForBindings(tagName, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -734,15 +734,15 @@
</span><span class="cx">     // Copy over the original node's children.
</span><span class="cx">     RefPtr&lt;Node&gt; child;
</span><span class="cx">     while ((child = oldNode-&gt;firstChild())) {
</span><del>-        if (!m_domEditor-&gt;insertBefore(newElement.get(), child.get(), 0, errorString))
</del><ins>+        if (!m_domEditor-&gt;insertBefore(*newElement, *child, 0, errorString))
</ins><span class="cx">             return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Replace the old node with the new node
</span><span class="cx">     RefPtr&lt;ContainerNode&gt; parent = oldNode-&gt;parentNode();
</span><del>-    if (!m_domEditor-&gt;insertBefore(parent.get(), newElement.get(), oldNode-&gt;nextSibling(), errorString))
</del><ins>+    if (!m_domEditor-&gt;insertBefore(*parent, *newElement, oldNode-&gt;nextSibling(), errorString))
</ins><span class="cx">         return;
</span><del>-    if (!m_domEditor-&gt;removeChild(parent.get(), oldNode.get(), errorString))
</del><ins>+    if (!m_domEditor-&gt;removeChild(*parent, *oldNode, errorString))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     *newId = pushNodePathToFrontend(newElement.get());
</span><span class="lines">@@ -1180,7 +1180,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!m_domEditor-&gt;insertBefore(targetElement, node, anchorNode, errorString))
</del><ins>+    if (!m_domEditor-&gt;insertBefore(*targetElement, *node, anchorNode, errorString))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     *newNodeId = pushNodePathToFrontend(node);
</span></span></pre></div>
<a id="trunkSourceWebCorepageDragControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DragController.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DragController.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/page/DragController.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -125,20 +125,20 @@
</span><span class="cx">     m_client.dragControllerDestroyed();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static PassRefPtr&lt;DocumentFragment&gt; documentFragmentFromDragData(DragData&amp; dragData, Frame&amp; frame, Range&amp; context, bool allowPlainText, bool&amp; chosePlainText)
</del><ins>+static RefPtr&lt;DocumentFragment&gt; documentFragmentFromDragData(DragData&amp; dragData, Frame&amp; frame, Range&amp; context, bool allowPlainText, bool&amp; chosePlainText)
</ins><span class="cx"> {
</span><span class="cx">     chosePlainText = false;
</span><span class="cx"> 
</span><span class="cx">     Document&amp; document = context.ownerDocument();
</span><span class="cx">     if (dragData.containsCompatibleContent()) {
</span><del>-        if (PassRefPtr&lt;DocumentFragment&gt; fragment = frame.editor().webContentFromPasteboard(*Pasteboard::createForDragAndDrop(dragData), context, allowPlainText, chosePlainText))
</del><ins>+        if (auto fragment = frame.editor().webContentFromPasteboard(*Pasteboard::createForDragAndDrop(dragData), context, allowPlainText, chosePlainText))
</ins><span class="cx">             return fragment;
</span><span class="cx"> 
</span><span class="cx">         if (dragData.containsURL(DragData::DoNotConvertFilenames)) {
</span><span class="cx">             String title;
</span><span class="cx">             String url = dragData.asURL(DragData::DoNotConvertFilenames, &amp;title);
</span><span class="cx">             if (!url.isEmpty()) {
</span><del>-                Ref&lt;HTMLAnchorElement&gt; anchor = HTMLAnchorElement::create(document);
</del><ins>+                auto anchor = HTMLAnchorElement::create(document);
</ins><span class="cx">                 anchor-&gt;setHref(url);
</span><span class="cx">                 if (title.isEmpty()) {
</span><span class="cx">                     // Try the plain text first because the url might be normalized or escaped.
</span><span class="lines">@@ -148,9 +148,9 @@
</span><span class="cx">                         title = url;
</span><span class="cx">                 }
</span><span class="cx">                 anchor-&gt;appendChild(document.createTextNode(title), IGNORE_EXCEPTION);
</span><del>-                Ref&lt;DocumentFragment&gt; fragment = document.createDocumentFragment();
-                fragment-&gt;appendChild(WTFMove(anchor), IGNORE_EXCEPTION);
-                return fragment.ptr();
</del><ins>+                auto fragment = document.createDocumentFragment();
+                fragment-&gt;appendChild(anchor, IGNORE_EXCEPTION);
+                return WTFMove(fragment);
</ins><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorepageiosFrameIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ios/FrameIOS.mm (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ios/FrameIOS.mm        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/page/ios/FrameIOS.mm        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -89,14 +89,14 @@
</span><span class="cx">     setDocument(document);
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec;
</span><del>-    RefPtr&lt;Element&gt; rootElement = document-&gt;createElementNS(xhtmlNamespaceURI, ASCIILiteral(&quot;html&quot;), ec);
</del><ins>+    auto rootElement = document-&gt;createElementNS(xhtmlNamespaceURI, ASCIILiteral(&quot;html&quot;), ec);
</ins><span class="cx"> 
</span><del>-    RefPtr&lt;Element&gt; body = document-&gt;createElementNS(xhtmlNamespaceURI, ASCIILiteral(&quot;body&quot;), ec);
</del><ins>+    auto body = document-&gt;createElementNS(xhtmlNamespaceURI, ASCIILiteral(&quot;body&quot;), ec);
</ins><span class="cx">     if (!style.isEmpty())
</span><span class="cx">         body-&gt;setAttribute(HTMLNames::styleAttr, style);
</span><span class="cx"> 
</span><del>-    rootElement-&gt;appendChild(body.releaseNonNull(), ec);
-    document-&gt;appendChild(rootElement.releaseNonNull(), ec);
</del><ins>+    rootElement-&gt;appendChild(*body, ec);
+    document-&gt;appendChild(*rootElement, ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> const ViewportArguments&amp; Frame::viewportArguments() const
</span></span></pre></div>
<a id="trunkSourceWebCoresvgSVGUseElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/svg/SVGUseElement.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/svg/SVGUseElement.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/svg/SVGUseElement.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -430,7 +430,7 @@
</span><span class="cx">     removeDisallowedElementsFromSubtree(targetClone.get());
</span><span class="cx">     removeSymbolElementsFromSubtree(targetClone.get());
</span><span class="cx">     transferSizeAttributesToTargetClone(targetClone.get());
</span><del>-    container.appendChild(WTFMove(targetClone));
</del><ins>+    container.appendChild(targetClone);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void cloneDataAndChildren(SVGElement&amp; replacementClone, SVGElement&amp; originalClone)
</span><span class="lines">@@ -469,7 +469,7 @@
</span><span class="cx">         if (target)
</span><span class="cx">             originalClone.cloneTarget(replacementClone.get(), *target);
</span><span class="cx"> 
</span><del>-        originalClone.parentNode()-&gt;replaceChild(replacementClone.copyRef(), originalClone);
</del><ins>+        originalClone.parentNode()-&gt;replaceChild(replacementClone, originalClone);
</ins><span class="cx"> 
</span><span class="cx">         // Resume iterating, starting just inside the replacement clone.
</span><span class="cx">         it = descendants.from(replacementClone.get());
</span><span class="lines">@@ -493,7 +493,7 @@
</span><span class="cx">         auto replacementClone = SVGSVGElement::create(document());
</span><span class="cx">         cloneDataAndChildren(replacementClone.get(), originalClone);
</span><span class="cx"> 
</span><del>-        originalClone.parentNode()-&gt;replaceChild(replacementClone.copyRef(), originalClone);
</del><ins>+        originalClone.parentNode()-&gt;replaceChild(replacementClone, originalClone);
</ins><span class="cx"> 
</span><span class="cx">         // Resume iterating, starting just inside the replacement clone.
</span><span class="cx">         it = descendants.from(replacementClone.get());
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLErrorscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLErrors.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLErrors.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/xml/XMLErrors.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -93,19 +93,19 @@
</span><span class="cx">     reportElement-&gt;parserSetAttributes(reportAttributes);
</span><span class="cx"> 
</span><span class="cx">     auto h3 = doc-&gt;createElement(h3Tag, true);
</span><del>-    reportElement-&gt;parserAppendChild(h3.copyRef());
</del><ins>+    reportElement-&gt;parserAppendChild(h3);
</ins><span class="cx">     h3-&gt;parserAppendChild(doc-&gt;createTextNode(&quot;This page contains the following errors:&quot;));
</span><span class="cx"> 
</span><span class="cx">     auto fixed = doc-&gt;createElement(divTag, true);
</span><span class="cx">     Vector&lt;Attribute&gt; fixedAttributes;
</span><span class="cx">     fixedAttributes.append(Attribute(styleAttr, &quot;font-family:monospace;font-size:12px&quot;));
</span><span class="cx">     fixed-&gt;parserSetAttributes(fixedAttributes);
</span><del>-    reportElement-&gt;parserAppendChild(fixed.copyRef());
</del><ins>+    reportElement-&gt;parserAppendChild(fixed);
</ins><span class="cx"> 
</span><span class="cx">     fixed-&gt;parserAppendChild(doc-&gt;createTextNode(errorMessages));
</span><span class="cx"> 
</span><span class="cx">     h3 = doc-&gt;createElement(h3Tag, true);
</span><del>-    reportElement-&gt;parserAppendChild(h3.get());
</del><ins>+    reportElement-&gt;parserAppendChild(h3);
</ins><span class="cx">     h3-&gt;parserAppendChild(doc-&gt;createTextNode(&quot;Below is a rendering of the page up to the first error.&quot;));
</span><span class="cx"> 
</span><span class="cx">     return reportElement;
</span><span class="lines">@@ -122,25 +122,25 @@
</span><span class="cx">     if (!documentElement) {
</span><span class="cx">         auto rootElement = m_document-&gt;createElement(htmlTag, true);
</span><span class="cx">         auto body = m_document-&gt;createElement(bodyTag, true);
</span><del>-        rootElement-&gt;parserAppendChild(body.copyRef());
-        m_document-&gt;parserAppendChild(rootElement.copyRef());
</del><ins>+        rootElement-&gt;parserAppendChild(body);
+        m_document-&gt;parserAppendChild(rootElement);
</ins><span class="cx">         documentElement = WTFMove(body);
</span><span class="cx">     }
</span><span class="cx">     else if (documentElement-&gt;namespaceURI() == SVGNames::svgNamespaceURI) {
</span><span class="cx">         auto rootElement = m_document-&gt;createElement(htmlTag, true);
</span><span class="cx">         auto head = m_document-&gt;createElement(headTag, true);
</span><span class="cx">         auto style = m_document-&gt;createElement(styleTag, true);
</span><del>-        head-&gt;parserAppendChild(style.copyRef());
</del><ins>+        head-&gt;parserAppendChild(style);
</ins><span class="cx">         style-&gt;parserAppendChild(m_document-&gt;createTextNode(&quot;html, body { height: 100% } parsererror + svg { width: 100%; height: 100% }&quot;));
</span><span class="cx">         style-&gt;finishParsingChildren();
</span><del>-        rootElement-&gt;parserAppendChild(head.copyRef());
</del><ins>+        rootElement-&gt;parserAppendChild(head);
</ins><span class="cx">         auto body = m_document-&gt;createElement(bodyTag, true);
</span><del>-        rootElement-&gt;parserAppendChild(body.copyRef());
</del><ins>+        rootElement-&gt;parserAppendChild(body);
</ins><span class="cx"> 
</span><span class="cx">         m_document-&gt;parserRemoveChild(*documentElement);
</span><span class="cx"> 
</span><span class="cx">         body-&gt;parserAppendChild(*documentElement);
</span><del>-        m_document-&gt;parserAppendChild(WTFMove(rootElement));
</del><ins>+        m_document-&gt;parserAppendChild(rootElement);
</ins><span class="cx"> 
</span><span class="cx">         documentElement = WTFMove(body);
</span><span class="cx">     }
</span><span class="lines">@@ -155,15 +155,15 @@
</span><span class="cx">         auto paragraph = m_document-&gt;createElement(pTag, true);
</span><span class="cx">         paragraph-&gt;parserSetAttributes(attributes);
</span><span class="cx">         paragraph-&gt;parserAppendChild(m_document-&gt;createTextNode(&quot;This document was created as the result of an XSL transformation. The line and column numbers given are from the transformed result.&quot;));
</span><del>-        reportElement-&gt;parserAppendChild(WTFMove(paragraph));
</del><ins>+        reportElement-&gt;parserAppendChild(paragraph);
</ins><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     Node* firstChild = documentElement-&gt;firstChild();
</span><span class="cx">     if (firstChild)
</span><del>-        documentElement-&gt;parserInsertBefore(WTFMove(reportElement), *firstChild);
</del><ins>+        documentElement-&gt;parserInsertBefore(reportElement, *firstChild);
</ins><span class="cx">     else
</span><del>-        documentElement-&gt;parserAppendChild(WTFMove(reportElement));
</del><ins>+        documentElement-&gt;parserAppendChild(reportElement);
</ins><span class="cx"> 
</span><span class="cx">     m_document-&gt;updateStyleIfNeeded();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLTreeViewercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLTreeViewer.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLTreeViewer.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/xml/XMLTreeViewer.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -61,8 +61,8 @@
</span><span class="cx">     m_document.frame()-&gt;script().evaluate(ScriptSourceCode(AtomicString(&quot;prepareWebKitXMLViewer('This XML file does not appear to have any style information associated with it. The document tree is shown below.');&quot;)));
</span><span class="cx"> 
</span><span class="cx">     String cssString = StringImpl::createWithoutCopying(XMLViewer_css, sizeof(XMLViewer_css));
</span><del>-    Ref&lt;Text&gt; text = m_document.createTextNode(cssString);
-    m_document.getElementById(String(ASCIILiteral(&quot;xml-viewer-style&quot;)))-&gt;appendChild(WTFMove(text), IGNORE_EXCEPTION);
</del><ins>+    auto text = m_document.createTextNode(cssString);
+    m_document.getElementById(String(ASCIILiteral(&quot;xml-viewer-style&quot;)))-&gt;appendChild(text, IGNORE_EXCEPTION);
</ins><span class="cx">     m_document.styleResolverChanged(RecalcStyleImmediately);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorexmlparserXMLDocumentParserLibxml2cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -844,7 +844,7 @@
</span><span class="cx">     if (scriptElement)
</span><span class="cx">         m_scriptStartPosition = textPosition();
</span><span class="cx"> 
</span><del>-    m_currentNode-&gt;parserAppendChild(newElement.copyRef());
</del><ins>+    m_currentNode-&gt;parserAppendChild(newElement);
</ins><span class="cx">     if (!m_currentNode) // Synchronous DOM events may have removed the current node.
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -1001,7 +1001,7 @@
</span><span class="cx"> 
</span><span class="cx">     pi-&gt;setCreatedByParser(true);
</span><span class="cx"> 
</span><del>-    m_currentNode-&gt;parserAppendChild(pi.copyRef());
</del><ins>+    m_currentNode-&gt;parserAppendChild(pi);
</ins><span class="cx"> 
</span><span class="cx">     pi-&gt;finishParsingChildren();
</span><span class="cx"> 
</span><span class="lines">@@ -1027,8 +1027,7 @@
</span><span class="cx">     if (!updateLeafTextNode())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    auto newNode = CDATASection::create(m_currentNode-&gt;document(), toString(s, len));
-    m_currentNode-&gt;parserAppendChild(WTFMove(newNode));
</del><ins>+    m_currentNode-&gt;parserAppendChild(CDATASection::create(m_currentNode-&gt;document(), toString(s, len)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void XMLDocumentParser::comment(const xmlChar* s)
</span><span class="lines">@@ -1044,8 +1043,7 @@
</span><span class="cx">     if (!updateLeafTextNode())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    auto newNode = Comment::create(m_currentNode-&gt;document(), toString(s));
-    m_currentNode-&gt;parserAppendChild(WTFMove(newNode));
</del><ins>+    m_currentNode-&gt;parserAppendChild(Comment::create(m_currentNode-&gt;document(), toString(s)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> enum StandaloneInfo {
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebKit/mac/ChangeLog        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2016-05-11  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Update Node::appendChild() / replaceChild() / removeChild() / insertBefore() to take references instead of pointers
+        https://bugs.webkit.org/show_bug.cgi?id=157556
+
+        Reviewed by Darin Adler.
+
+        * WebView/WebFrame.mm:
+        (-[WebFrame _documentFragmentWithNodesAsParagraphs:]):
+
</ins><span class="cx"> 2016-05-10  Shaw rich  &lt;richshaw@126.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [OS X] Compatible with gnu sed grammar due to compile error with gnu sed
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebFramemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebFrame.mm (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebFrame.mm        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebKit/mac/WebView/WebFrame.mm        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -914,9 +914,9 @@
</span><span class="cx">     RefPtr&lt;DocumentFragment&gt; fragment = document-&gt;createDocumentFragment();
</span><span class="cx"> 
</span><span class="cx">     for (auto* node : nodesVector) {
</span><del>-        Ref&lt;Element&gt; element = createDefaultParagraphElement(*document);
</del><ins>+        auto element = createDefaultParagraphElement(*document);
</ins><span class="cx">         element-&gt;appendChild(*node);
</span><del>-        fragment-&gt;appendChild(WTFMove(element));
</del><ins>+        fragment-&gt;appendChild(element);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return kit(fragment.release().get());
</span><span class="lines">@@ -1691,7 +1691,7 @@
</span><span class="cx">     if (!frame || !frame-&gt;document())
</span><span class="cx">         return;
</span><span class="cx">         
</span><del>-    frame-&gt;editor().setTextAsChildOfElement(text, core(element));
</del><ins>+    frame-&gt;editor().setTextAsChildOfElement(text, *core(element));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)setDictationPhrases:(NSArray *)dictationPhrases metadata:(id)metadata asChildOfElement:(DOMElement *)element
</span></span></pre></div>
<a id="trunkSourceWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/ChangeLog (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebKit/win/ChangeLog        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2016-05-11  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Update Node::appendChild() / replaceChild() / removeChild() / insertBefore() to take references instead of pointers
+        https://bugs.webkit.org/show_bug.cgi?id=157556
+
+        Reviewed by Darin Adler.
+
+        * DOMCoreClasses.cpp:
+        (DOMNode::insertBefore):
+        (DOMNode::removeChild):
+
</ins><span class="cx"> 2016-05-11  Joanmarie Diggs  &lt;jdiggs@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [GTK] accessibility/aria-readonly.html is failing
</span></span></pre></div>
<a id="trunkSourceWebKitwinDOMCoreClassescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/DOMCoreClasses.cpp (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/DOMCoreClasses.cpp        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebKit/win/DOMCoreClasses.cpp        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -250,7 +250,7 @@
</span><span class="cx">     COMPtr&lt;DOMNode&gt; refChildNode(Query, refChild);
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec;
</span><del>-    if (!m_node-&gt;insertBefore(newChildNode-&gt;node(), refChildNode ? refChildNode-&gt;node() : 0, ec))
</del><ins>+    if (!m_node-&gt;insertBefore(*newChildNode-&gt;node(), refChildNode ? refChildNode-&gt;node() : nullptr, ec))
</ins><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><span class="cx">     *result = newChild;
</span><span class="lines">@@ -282,7 +282,7 @@
</span><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><span class="cx">     ExceptionCode ec;
</span><del>-    if (!m_node-&gt;removeChild(oldChildNode-&gt;node(), ec))
</del><ins>+    if (!m_node-&gt;removeChild(*oldChildNode-&gt;node(), ec))
</ins><span class="cx">         return E_FAIL;
</span><span class="cx"> 
</span><span class="cx">     *result = oldChild;
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebKit2/ChangeLog        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2016-05-11  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Update Node::appendChild() / replaceChild() / removeChild() / insertBefore() to take references instead of pointers
+        https://bugs.webkit.org/show_bug.cgi?id=157556
+
+        Reviewed by Darin Adler.
+
+        * WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
+        (-[WKDOMNode insertNode:before:]):
+        (-[WKDOMNode appendChild:]):
+        (-[WKDOMNode removeChild:]):
+        * WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
+        (WebKit::PDFPlugin::PDFPlugin):
+        * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
+        (WebKit::PDFPluginChoiceAnnotation::createAnnotationElement):
+
</ins><span class="cx"> 2016-05-11  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Modern IDB: IDBOpenDBRequests that are stop()'ed don't notify the IDBServer of that fact.
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPImacWKDOMNodemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMNode.mm (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMNode.mm        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKDOMNode.mm        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -55,23 +55,32 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)insertNode:(WKDOMNode *)node before:(WKDOMNode *)refNode
</span><span class="cx"> {
</span><ins>+    if (!node)
+        return;
+
</ins><span class="cx">     // FIXME: Do something about the exception.
</span><span class="cx">     WebCore::ExceptionCode ec;
</span><del>-    _impl-&gt;insertBefore(WebKit::toWebCoreNode(node), WebKit::toWebCoreNode(refNode), ec);
</del><ins>+    _impl-&gt;insertBefore(*WebKit::toWebCoreNode(node), WebKit::toWebCoreNode(refNode), ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)appendChild:(WKDOMNode *)node
</span><span class="cx"> {
</span><ins>+    if (!node)
+        return;
+
</ins><span class="cx">     // FIXME: Do something about the exception.
</span><span class="cx">     WebCore::ExceptionCode ec;
</span><del>-    _impl-&gt;appendChild(WebKit::toWebCoreNode(node), ec);
</del><ins>+    _impl-&gt;appendChild(*WebKit::toWebCoreNode(node), ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)removeChild:(WKDOMNode *)node
</span><span class="cx"> {
</span><ins>+    if (!node)
+        return;
+
</ins><span class="cx">     // FIXME: Do something about the exception.
</span><span class="cx">     WebCore::ExceptionCode ec;
</span><del>-    _impl-&gt;removeChild(WebKit::toWebCoreNode(node), ec);
</del><ins>+    _impl-&gt;removeChild(*WebKit::toWebCoreNode(node), ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (WKDOMDocument *)document
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPDFDeprecatedPDFPluginmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -524,10 +524,10 @@
</span><span class="cx">         m_annotationContainer = document-&gt;createElement(divTag, false);
</span><span class="cx">         m_annotationContainer-&gt;setAttribute(idAttr, &quot;annotationContainer&quot;);
</span><span class="cx"> 
</span><del>-        Ref&lt;Element&gt; annotationStyleElement = document-&gt;createElement(styleTag, false);
</del><ins>+        auto annotationStyleElement = document-&gt;createElement(styleTag, false);
</ins><span class="cx">         annotationStyleElement-&gt;setTextContent(annotationStyle, ASSERT_NO_EXCEPTION);
</span><span class="cx"> 
</span><del>-        m_annotationContainer-&gt;appendChild(WTFMove(annotationStyleElement));
</del><ins>+        m_annotationContainer-&gt;appendChild(annotationStyleElement);
</ins><span class="cx">         document-&gt;bodyOrFrameset()-&gt;appendChild(*m_annotationContainer);
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPDFPDFPluginChoiceAnnotationmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm (200695 => 200696)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm        2016-05-11 18:42:03 UTC (rev 200695)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm        2016-05-11 19:02:09 UTC (rev 200696)
</span><span class="lines">@@ -83,14 +83,14 @@
</span><span class="cx">     NSString *selectedChoice = choiceAnnotation.stringValue;
</span><span class="cx"> 
</span><span class="cx">     for (NSString *choice in choices) {
</span><del>-        Ref&lt;Element&gt; choiceOption = document.createElement(optionTag, false);
</del><ins>+        auto choiceOption = document.createElement(optionTag, false);
</ins><span class="cx">         choiceOption-&gt;setAttribute(valueAttr, choice);
</span><span class="cx">         choiceOption-&gt;setTextContent(choice, ASSERT_NO_EXCEPTION);
</span><span class="cx"> 
</span><span class="cx">         if (choice == selectedChoice)
</span><span class="cx">             choiceOption-&gt;setAttribute(selectedAttr, &quot;selected&quot;);
</span><span class="cx"> 
</span><del>-        styledElement-&gt;appendChild(WTFMove(choiceOption));
</del><ins>+        styledElement-&gt;appendChild(choiceOption);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return element;
</span></span></pre>
</div>
</div>

</body>
</html>