<!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>[198583] trunk/Source/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/198583">198583</a></dd>
<dt>Author</dt> <dd>gyuyoung.kim@webkit.org</dd>
<dt>Date</dt> <dd>2016-03-23 07:05:54 -0700 (Wed, 23 Mar 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Reduce PassRefPtr uses in editing
https://bugs.webkit.org/show_bug.cgi?id=155743

Reviewed by Darin Adler.

Use RefPtr&lt;&gt;&amp;&amp;, raw pointer, or reference in arugments instead of PassRefPtr.
Besides RefPtr is used if function may be able to return nullptr.

* dom/Element.cpp:
(WebCore::Element::setOuterHTML):
(WebCore::Element::setInnerHTML):
* dom/Range.cpp:
(WebCore::Range::createContextualFragment):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::setInnerHTML):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::wrapContentsInDummySpan):
* editing/CompositeEditCommand.h:
* editing/DictationCommand.cpp:
(WebCore::DictationCommand::insertText):
* editing/SplitTextNodeContainingElementCommand.cpp:
(WebCore::SplitTextNodeContainingElementCommand::doApply):
* editing/TextInsertionBaseCommand.cpp:
(WebCore::TextInsertionBaseCommand::applyTextInsertionCommand):
* editing/TextInsertionBaseCommand.h:
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::deleteSelection):
(WebCore::TypingCommand::deleteKeyPressed):
(WebCore::TypingCommand::forwardDeleteKeyPressed):
(WebCore::TypingCommand::insertText):
(WebCore::TypingCommand::insertLineBreak):
(WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent):
(WebCore::TypingCommand::insertParagraphSeparator):
(WebCore::TypingCommand::lastTypingCommandIfStillOpenForTyping):
(WebCore::TypingCommand::closeTyping):
(WebCore::TypingCommand::ensureLastEditCommandHasCurrentSelectionIfOpenForMoreTyping):
* editing/TypingCommand.h:
* editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::firstRange):
(WebCore::makeSearchRange):
* editing/VisibleSelection.h:
* editing/WrapContentsInDummySpanCommand.cpp:
(WebCore::WrapContentsInDummySpanCommand::WrapContentsInDummySpanCommand):
* editing/WrapContentsInDummySpanCommand.h:
(WebCore::WrapContentsInDummySpanCommand::create):
* editing/atk/FrameSelectionAtk.cpp:
(WebCore::maybeEmitTextFocusChange):
(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
* editing/htmlediting.cpp:
(WebCore::createOrderedListElement):
(WebCore::createUnorderedListElement):
(WebCore::createListItemElement):
(WebCore::createTabSpanElement):
* editing/htmlediting.h:
* editing/markup.cpp:
(WebCore::AttributeChange::AttributeChange):
(WebCore::ancestorToRetainStructureAndAppearanceForBlock):
(WebCore::styleFromMatchedRulesAndInlineDecl):
(WebCore::createFragmentForInnerOuterHTML):
(WebCore::createFragmentForTransformToFragment):
(WebCore::createContextualFragment):
* editing/markup.h:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::insertAdjacentHTML):
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::transformToFragment):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomRangecpp">trunk/Source/WebCore/dom/Range.cpp</a></li>
<li><a href="#trunkSourceWebCoredomShadowRootcpp">trunk/Source/WebCore/dom/ShadowRoot.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingCompositeEditCommandcpp">trunk/Source/WebCore/editing/CompositeEditCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingCompositeEditCommandh">trunk/Source/WebCore/editing/CompositeEditCommand.h</a></li>
<li><a href="#trunkSourceWebCoreeditingDictationCommandcpp">trunk/Source/WebCore/editing/DictationCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingSplitTextNodeContainingElementCommandcpp">trunk/Source/WebCore/editing/SplitTextNodeContainingElementCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingTextInsertionBaseCommandcpp">trunk/Source/WebCore/editing/TextInsertionBaseCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingTextInsertionBaseCommandh">trunk/Source/WebCore/editing/TextInsertionBaseCommand.h</a></li>
<li><a href="#trunkSourceWebCoreeditingTypingCommandcpp">trunk/Source/WebCore/editing/TypingCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingTypingCommandh">trunk/Source/WebCore/editing/TypingCommand.h</a></li>
<li><a href="#trunkSourceWebCoreeditingVisibleSelectioncpp">trunk/Source/WebCore/editing/VisibleSelection.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingVisibleSelectionh">trunk/Source/WebCore/editing/VisibleSelection.h</a></li>
<li><a href="#trunkSourceWebCoreeditingWrapContentsInDummySpanCommandcpp">trunk/Source/WebCore/editing/WrapContentsInDummySpanCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingWrapContentsInDummySpanCommandh">trunk/Source/WebCore/editing/WrapContentsInDummySpanCommand.h</a></li>
<li><a href="#trunkSourceWebCoreeditingatkFrameSelectionAtkcpp">trunk/Source/WebCore/editing/atk/FrameSelectionAtk.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditinghtmleditingcpp">trunk/Source/WebCore/editing/htmlediting.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditinghtmleditingh">trunk/Source/WebCore/editing/htmlediting.h</a></li>
<li><a href="#trunkSourceWebCoreeditingmarkupcpp">trunk/Source/WebCore/editing/markup.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingmarkuph">trunk/Source/WebCore/editing/markup.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLElementcpp">trunk/Source/WebCore/html/HTMLElement.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlXSLTProcessorcpp">trunk/Source/WebCore/xml/XSLTProcessor.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/ChangeLog        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -1,3 +1,72 @@
</span><ins>+2016-03-23  Gyuyoung Kim  &lt;gyuyoung.kim@webkit.org&gt;
+
+        Reduce PassRefPtr uses in editing
+        https://bugs.webkit.org/show_bug.cgi?id=155743
+
+        Reviewed by Darin Adler.
+
+        Use RefPtr&lt;&gt;&amp;&amp;, raw pointer, or reference in arugments instead of PassRefPtr.
+        Besides RefPtr is used if function may be able to return nullptr.
+
+        * dom/Element.cpp:
+        (WebCore::Element::setOuterHTML):
+        (WebCore::Element::setInnerHTML):
+        * dom/Range.cpp:
+        (WebCore::Range::createContextualFragment):
+        * dom/ShadowRoot.cpp:
+        (WebCore::ShadowRoot::setInnerHTML):
+        * editing/CompositeEditCommand.cpp:
+        (WebCore::CompositeEditCommand::wrapContentsInDummySpan):
+        * editing/CompositeEditCommand.h:
+        * editing/DictationCommand.cpp:
+        (WebCore::DictationCommand::insertText):
+        * editing/SplitTextNodeContainingElementCommand.cpp:
+        (WebCore::SplitTextNodeContainingElementCommand::doApply):
+        * editing/TextInsertionBaseCommand.cpp:
+        (WebCore::TextInsertionBaseCommand::applyTextInsertionCommand):
+        * editing/TextInsertionBaseCommand.h:
+        * editing/TypingCommand.cpp:
+        (WebCore::TypingCommand::deleteSelection):
+        (WebCore::TypingCommand::deleteKeyPressed):
+        (WebCore::TypingCommand::forwardDeleteKeyPressed):
+        (WebCore::TypingCommand::insertText):
+        (WebCore::TypingCommand::insertLineBreak):
+        (WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent):
+        (WebCore::TypingCommand::insertParagraphSeparator):
+        (WebCore::TypingCommand::lastTypingCommandIfStillOpenForTyping):
+        (WebCore::TypingCommand::closeTyping):
+        (WebCore::TypingCommand::ensureLastEditCommandHasCurrentSelectionIfOpenForMoreTyping):
+        * editing/TypingCommand.h:
+        * editing/VisibleSelection.cpp:
+        (WebCore::VisibleSelection::firstRange):
+        (WebCore::makeSearchRange):
+        * editing/VisibleSelection.h:
+        * editing/WrapContentsInDummySpanCommand.cpp:
+        (WebCore::WrapContentsInDummySpanCommand::WrapContentsInDummySpanCommand):
+        * editing/WrapContentsInDummySpanCommand.h:
+        (WebCore::WrapContentsInDummySpanCommand::create):
+        * editing/atk/FrameSelectionAtk.cpp:
+        (WebCore::maybeEmitTextFocusChange):
+        (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
+        * editing/htmlediting.cpp:
+        (WebCore::createOrderedListElement):
+        (WebCore::createUnorderedListElement):
+        (WebCore::createListItemElement):
+        (WebCore::createTabSpanElement):
+        * editing/htmlediting.h:
+        * editing/markup.cpp:
+        (WebCore::AttributeChange::AttributeChange):
+        (WebCore::ancestorToRetainStructureAndAppearanceForBlock):
+        (WebCore::styleFromMatchedRulesAndInlineDecl):
+        (WebCore::createFragmentForInnerOuterHTML):
+        (WebCore::createFragmentForTransformToFragment):
+        (WebCore::createContextualFragment):
+        * editing/markup.h:
+        * html/HTMLElement.cpp:
+        (WebCore::HTMLElement::insertAdjacentHTML):
+        * xml/XSLTProcessor.cpp:
+        (WebCore::XSLTProcessor::transformToFragment):
+
</ins><span class="cx"> 2016-03-23  Carlos Garcia Campos  &lt;cgarcia@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Use Region instead of IntRect in PageClient and WebPageProxy setViewNeedsDisplay method
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/dom/Element.cpp        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -2368,7 +2368,7 @@
</span><span class="cx">     RefPtr&lt;Node&gt; prev = previousSibling();
</span><span class="cx">     RefPtr&lt;Node&gt; next = nextSibling();
</span><span class="cx"> 
</span><del>-    RefPtr&lt;DocumentFragment&gt; fragment = createFragmentForInnerOuterHTML(html, parent.get(), AllowScriptingContent, ec);
</del><ins>+    RefPtr&lt;DocumentFragment&gt; fragment = createFragmentForInnerOuterHTML(*parent, html, AllowScriptingContent, ec);
</ins><span class="cx">     if (ec)
</span><span class="cx">         return;
</span><span class="cx">     
</span><span class="lines">@@ -2383,7 +2383,7 @@
</span><span class="cx"> 
</span><span class="cx"> void Element::setInnerHTML(const String&amp; html, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><del>-    if (RefPtr&lt;DocumentFragment&gt; fragment = createFragmentForInnerOuterHTML(html, this, AllowScriptingContent, ec)) {
</del><ins>+    if (RefPtr&lt;DocumentFragment&gt; fragment = createFragmentForInnerOuterHTML(*this, html, AllowScriptingContent, ec)) {
</ins><span class="cx">         ContainerNode* container = this;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span></span></pre></div>
<a id="trunkSourceWebCoredomRangecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Range.cpp (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Range.cpp        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/dom/Range.cpp        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -941,7 +941,7 @@
</span><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return WebCore::createContextualFragment(markup, downcast&lt;HTMLElement&gt;(element.get()), AllowScriptingContentAndDoNotMarkAlreadyStarted, ec);
</del><ins>+    return WebCore::createContextualFragment(downcast&lt;HTMLElement&gt;(*element), markup, AllowScriptingContentAndDoNotMarkAlreadyStarted, ec);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomShadowRootcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ShadowRoot.cpp (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ShadowRoot.cpp        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/dom/ShadowRoot.cpp        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (RefPtr&lt;DocumentFragment&gt; fragment = createFragmentForInnerOuterHTML(markup, host(), AllowScriptingContent, ec))
</del><ins>+    if (RefPtr&lt;DocumentFragment&gt; fragment = createFragmentForInnerOuterHTML(*host(), markup, AllowScriptingContent, ec))
</ins><span class="cx">         replaceChildrenWithFragment(*this, fragment.releaseNonNull(), ec);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingCompositeEditCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/CompositeEditCommand.cpp (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/CompositeEditCommand.cpp        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/editing/CompositeEditCommand.cpp        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -493,7 +493,7 @@
</span><span class="cx">     applyCommandToComposite(MergeIdenticalElementsCommand::create(first, second));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void CompositeEditCommand::wrapContentsInDummySpan(PassRefPtr&lt;Element&gt; element)
</del><ins>+void CompositeEditCommand::wrapContentsInDummySpan(Element&amp; element)
</ins><span class="cx"> {
</span><span class="cx">     applyCommandToComposite(WrapContentsInDummySpanCommand::create(element));
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingCompositeEditCommandh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/CompositeEditCommand.h (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/CompositeEditCommand.h        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/editing/CompositeEditCommand.h        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -140,7 +140,7 @@
</span><span class="cx">     void splitElement(PassRefPtr&lt;Element&gt;, PassRefPtr&lt;Node&gt; atChild);
</span><span class="cx">     void splitTextNode(PassRefPtr&lt;Text&gt;, unsigned offset);
</span><span class="cx">     void splitTextNodeContainingElement(PassRefPtr&lt;Text&gt;, unsigned offset);
</span><del>-    void wrapContentsInDummySpan(PassRefPtr&lt;Element&gt;);
</del><ins>+    void wrapContentsInDummySpan(Element&amp;);
</ins><span class="cx"> 
</span><span class="cx">     void deleteInsignificantText(PassRefPtr&lt;Text&gt;, unsigned start, unsigned end);
</span><span class="cx">     void deleteInsignificantText(const Position&amp; start, const Position&amp; end);
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingDictationCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/DictationCommand.cpp (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/DictationCommand.cpp        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/editing/DictationCommand.cpp        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -101,7 +101,7 @@
</span><span class="cx">         // If the text was modified before insertion, the location of dictation alternatives
</span><span class="cx">         // will not be valid anymore. We will just drop the alternatives.
</span><span class="cx">         cmd = DictationCommand::create(document, newText, Vector&lt;DictationAlternative&gt;());
</span><del>-    applyTextInsertionCommand(frame.get(), cmd, selectionForInsertion, currentSelection);
</del><ins>+    applyTextInsertionCommand(frame.get(), *cmd, selectionForInsertion, currentSelection);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DictationCommand::doApply()
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingSplitTextNodeContainingElementCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/SplitTextNodeContainingElementCommand.cpp (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/SplitTextNodeContainingElementCommand.cpp        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/editing/SplitTextNodeContainingElementCommand.cpp        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx"> 
</span><span class="cx">     RenderElement* parentRenderer = parent-&gt;renderer();
</span><span class="cx">     if (!parentRenderer || !parentRenderer-&gt;isInline()) {
</span><del>-        wrapContentsInDummySpan(parent);
</del><ins>+        wrapContentsInDummySpan(*parent);
</ins><span class="cx">         Node* firstChild = parent-&gt;firstChild();
</span><span class="cx">         if (!is&lt;Element&gt;(firstChild))
</span><span class="cx">             return;
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingTextInsertionBaseCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/TextInsertionBaseCommand.cpp (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/TextInsertionBaseCommand.cpp        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/editing/TextInsertionBaseCommand.cpp        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -40,16 +40,16 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void TextInsertionBaseCommand::applyTextInsertionCommand(Frame* frame, PassRefPtr&lt;TextInsertionBaseCommand&gt; command, const VisibleSelection&amp; selectionForInsertion, const VisibleSelection&amp; endingSelection)
</del><ins>+void TextInsertionBaseCommand::applyTextInsertionCommand(Frame* frame, TextInsertionBaseCommand&amp; command, const VisibleSelection&amp; selectionForInsertion, const VisibleSelection&amp; endingSelection)
</ins><span class="cx"> {
</span><span class="cx">     bool changeSelection = selectionForInsertion != endingSelection;
</span><span class="cx">     if (changeSelection) {
</span><del>-        command-&gt;setStartingSelection(selectionForInsertion);
-        command-&gt;setEndingSelection(selectionForInsertion);
</del><ins>+        command.setStartingSelection(selectionForInsertion);
+        command.setEndingSelection(selectionForInsertion);
</ins><span class="cx">     }
</span><del>-    applyCommand(command);
</del><ins>+    applyCommand(&amp;command);
</ins><span class="cx">     if (changeSelection) {
</span><del>-        command-&gt;setEndingSelection(endingSelection);
</del><ins>+        command.setEndingSelection(endingSelection);
</ins><span class="cx">         frame-&gt;selection().setSelection(endingSelection);
</span><span class="cx">     }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingTextInsertionBaseCommandh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/TextInsertionBaseCommand.h (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/TextInsertionBaseCommand.h        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/editing/TextInsertionBaseCommand.h        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx">     explicit TextInsertionBaseCommand(Document&amp;);
</span><del>-    static void applyTextInsertionCommand(Frame*, PassRefPtr&lt;TextInsertionBaseCommand&gt;, const VisibleSelection&amp; selectionForInsertion, const VisibleSelection&amp; endingSelection);
</del><ins>+    static void applyTextInsertionCommand(Frame*, TextInsertionBaseCommand&amp;, const VisibleSelection&amp; selectionForInsertion, const VisibleSelection&amp; endingSelection);
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> String dispatchBeforeTextInsertedEvent(const String&amp; text, const VisibleSelection&amp; selectionForInsertion, bool insertionIsForUpdatingComposition);
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingTypingCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/TypingCommand.cpp (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/TypingCommand.cpp        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/editing/TypingCommand.cpp        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -99,7 +99,7 @@
</span><span class="cx">     if (!frame-&gt;selection().isRange())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(frame)) {
</del><ins>+    if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(*frame)) {
</ins><span class="cx">         lastTypingCommand-&gt;setShouldPreventSpellChecking(options &amp; PreventSpellChecking);
</span><span class="cx">         lastTypingCommand-&gt;deleteSelection(options &amp; SmartDelete);
</span><span class="cx">         return;
</span><span class="lines">@@ -111,7 +111,7 @@
</span><span class="cx"> void TypingCommand::deleteKeyPressed(Document&amp; document, Options options, TextGranularity granularity)
</span><span class="cx"> {
</span><span class="cx">     if (granularity == CharacterGranularity) {
</span><del>-        if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(document.frame())) {
</del><ins>+        if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(*document.frame())) {
</ins><span class="cx">             updateSelectionIfDifferentFromCurrentSelection(lastTypingCommand.get(), document.frame());
</span><span class="cx">             lastTypingCommand-&gt;setShouldPreventSpellChecking(options &amp; PreventSpellChecking);
</span><span class="cx">             lastTypingCommand-&gt;deleteKeyPressed(granularity, options &amp; AddsToKillRing);
</span><span class="lines">@@ -127,7 +127,7 @@
</span><span class="cx">     // FIXME: Forward delete in TextEdit appears to open and close a new typing command.
</span><span class="cx">     Frame* frame = document.frame();
</span><span class="cx">     if (granularity == CharacterGranularity) {
</span><del>-        if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(frame)) {
</del><ins>+        if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(*frame)) {
</ins><span class="cx">             updateSelectionIfDifferentFromCurrentSelection(lastTypingCommand.get(), frame);
</span><span class="cx">             lastTypingCommand-&gt;setShouldPreventSpellChecking(options &amp; PreventSpellChecking);
</span><span class="cx">             lastTypingCommand-&gt;forwardDeleteKeyPressed(granularity, options &amp; AddsToKillRing);
</span><span class="lines">@@ -173,7 +173,7 @@
</span><span class="cx">     // Set the starting and ending selection appropriately if we are using a selection
</span><span class="cx">     // that is different from the current selection.  In the future, we should change EditCommand
</span><span class="cx">     // to deal with custom selections in a general way that can be used by all of the commands.
</span><del>-    if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(frame.get())) {
</del><ins>+    if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(*frame)) {
</ins><span class="cx">         if (lastTypingCommand-&gt;endingSelection() != selectionForInsertion) {
</span><span class="cx">             lastTypingCommand-&gt;setStartingSelection(selectionForInsertion);
</span><span class="cx">             lastTypingCommand-&gt;setEndingSelection(selectionForInsertion);
</span><span class="lines">@@ -187,12 +187,12 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;TypingCommand&gt; cmd = TypingCommand::create(document, InsertText, newText, options, compositionType);
</span><del>-    applyTextInsertionCommand(frame.get(), cmd, selectionForInsertion, currentSelection);
</del><ins>+    applyTextInsertionCommand(frame.get(), *cmd, selectionForInsertion, currentSelection);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void TypingCommand::insertLineBreak(Document&amp; document, Options options)
</span><span class="cx"> {
</span><del>-    if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(document.frame())) {
</del><ins>+    if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(*document.frame())) {
</ins><span class="cx">         lastTypingCommand-&gt;setShouldRetainAutocorrectionIndicator(options &amp; RetainAutocorrectionIndicator);
</span><span class="cx">         lastTypingCommand-&gt;insertLineBreak();
</span><span class="cx">         return;
</span><span class="lines">@@ -203,7 +203,7 @@
</span><span class="cx"> 
</span><span class="cx"> void TypingCommand::insertParagraphSeparatorInQuotedContent(Document&amp; document)
</span><span class="cx"> {
</span><del>-    if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(document.frame())) {
</del><ins>+    if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(*document.frame())) {
</ins><span class="cx">         lastTypingCommand-&gt;insertParagraphSeparatorInQuotedContent();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -213,7 +213,7 @@
</span><span class="cx"> 
</span><span class="cx"> void TypingCommand::insertParagraphSeparator(Document&amp; document, Options options)
</span><span class="cx"> {
</span><del>-    if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(document.frame())) {
</del><ins>+    if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(*document.frame())) {
</ins><span class="cx">         lastTypingCommand-&gt;setShouldRetainAutocorrectionIndicator(options &amp; RetainAutocorrectionIndicator);
</span><span class="cx">         lastTypingCommand-&gt;insertParagraphSeparator();
</span><span class="cx">         return;
</span><span class="lines">@@ -222,27 +222,25 @@
</span><span class="cx">     applyCommand(TypingCommand::create(document, InsertParagraphSeparator, &quot;&quot;, options));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;TypingCommand&gt; TypingCommand::lastTypingCommandIfStillOpenForTyping(Frame* frame)
</del><ins>+RefPtr&lt;TypingCommand&gt; TypingCommand::lastTypingCommandIfStillOpenForTyping(Frame&amp; frame)
</ins><span class="cx"> {
</span><del>-    ASSERT(frame);
-
-    RefPtr&lt;CompositeEditCommand&gt; lastEditCommand = frame-&gt;editor().lastEditCommand();
</del><ins>+    RefPtr&lt;CompositeEditCommand&gt; lastEditCommand = frame.editor().lastEditCommand();
</ins><span class="cx">     if (!lastEditCommand || !lastEditCommand-&gt;isTypingCommand() || !static_cast&lt;TypingCommand*&gt;(lastEditCommand.get())-&gt;isOpenForMoreTyping())
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     return static_cast&lt;TypingCommand*&gt;(lastEditCommand.get());
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void TypingCommand::closeTyping(Frame* frame)
</span><span class="cx"> {
</span><del>-    if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(frame))
</del><ins>+    if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(*frame))
</ins><span class="cx">         lastTypingCommand-&gt;closeTyping();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> void TypingCommand::ensureLastEditCommandHasCurrentSelectionIfOpenForMoreTyping(Frame* frame, const VisibleSelection&amp; newSelection)
</span><span class="cx"> {
</span><del>-    if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(frame)) {
</del><ins>+    if (RefPtr&lt;TypingCommand&gt; lastTypingCommand = lastTypingCommandIfStillOpenForTyping(*frame)) {
</ins><span class="cx">         lastTypingCommand-&gt;setEndingSelection(newSelection);
</span><span class="cx">         lastTypingCommand-&gt;setEndingSelectionOnLastInsertCommand(newSelection);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingTypingCommandh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/TypingCommand.h (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/TypingCommand.h        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/editing/TypingCommand.h        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx">     bool isOpenForMoreTyping() const { return m_openForMoreTyping; }
</span><span class="cx">     void closeTyping() { m_openForMoreTyping = false; }
</span><span class="cx"> 
</span><del>-    static PassRefPtr&lt;TypingCommand&gt; lastTypingCommandIfStillOpenForTyping(Frame*);
</del><ins>+    static RefPtr&lt;TypingCommand&gt; lastTypingCommandIfStillOpenForTyping(Frame&amp;);
</ins><span class="cx"> 
</span><span class="cx">     virtual void doApply();
</span><span class="cx">     virtual EditAction editingAction() const;
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingVisibleSelectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/VisibleSelection.cpp (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/VisibleSelection.cpp        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/editing/VisibleSelection.cpp        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -123,10 +123,10 @@
</span><span class="cx">     validate();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;Range&gt; VisibleSelection::firstRange() const
</del><ins>+RefPtr&lt;Range&gt; VisibleSelection::firstRange() const
</ins><span class="cx"> {
</span><span class="cx">     if (isNone())
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     Position start = m_start.parentAnchoredEquivalent();
</span><span class="cx">     Position end = m_end.parentAnchoredEquivalent();
</span><span class="cx">     return Range::create(start.anchorNode()-&gt;document(), start, end);
</span><span class="lines">@@ -197,17 +197,17 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static PassRefPtr&lt;Range&gt; makeSearchRange(const Position&amp; pos)
</del><ins>+static RefPtr&lt;Range&gt; makeSearchRange(const Position&amp; pos)
</ins><span class="cx"> {
</span><span class="cx">     Node* n = pos.deprecatedNode();
</span><span class="cx">     if (!n)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     Node* de = n-&gt;document().documentElement();
</span><span class="cx">     if (!de)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     Element* boundary = deprecatedEnclosingBlockFlowElement(n);
</span><span class="cx">     if (!boundary)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;Range&gt; searchRange(Range::create(n-&gt;document()));
</span><span class="cx">     ExceptionCode ec = 0;
</span><span class="lines">@@ -218,9 +218,9 @@
</span><span class="cx"> 
</span><span class="cx">     ASSERT(!ec);
</span><span class="cx">     if (ec)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><del>-    return searchRange.release();
</del><ins>+    return WTFMove(searchRange);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool VisibleSelection::isAll(EditingBoundaryCrossingRule rule) const
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingVisibleSelectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/VisibleSelection.h (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/VisibleSelection.h        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/editing/VisibleSelection.h        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx">     WEBCORE_EXPORT bool expandUsingGranularity(TextGranularity granularity);
</span><span class="cx">     
</span><span class="cx">     // We don't yet support multi-range selections, so we only ever have one range to return.
</span><del>-    WEBCORE_EXPORT PassRefPtr&lt;Range&gt; firstRange() const;
</del><ins>+    WEBCORE_EXPORT RefPtr&lt;Range&gt; firstRange() const;
</ins><span class="cx"> 
</span><span class="cx">     // FIXME: Most callers probably don't want this function, but are using it
</span><span class="cx">     // for historical reasons.  toNormalizedRange contracts the range around
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingWrapContentsInDummySpanCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/WrapContentsInDummySpanCommand.cpp (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/WrapContentsInDummySpanCommand.cpp        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/editing/WrapContentsInDummySpanCommand.cpp        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -31,11 +31,10 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-WrapContentsInDummySpanCommand::WrapContentsInDummySpanCommand(PassRefPtr&lt;Element&gt; element)
-    : SimpleEditCommand(element-&gt;document())
</del><ins>+WrapContentsInDummySpanCommand::WrapContentsInDummySpanCommand(Element&amp; element)
+    : SimpleEditCommand(element.document())
</ins><span class="cx">     , m_element(element)
</span><span class="cx"> {
</span><del>-    ASSERT(m_element);
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WrapContentsInDummySpanCommand::executeApply()
</span><span class="lines">@@ -59,8 +58,6 @@
</span><span class="cx">     
</span><span class="cx"> void WrapContentsInDummySpanCommand::doUnapply()
</span><span class="cx"> {
</span><del>-    ASSERT(m_element);
-
</del><span class="cx">     if (!m_dummySpan || !m_element-&gt;hasEditableStyle())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -75,9 +72,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WrapContentsInDummySpanCommand::doReapply()
</span><del>-{
-    ASSERT(m_element);
-    
</del><ins>+{    
</ins><span class="cx">     if (!m_dummySpan || !m_element-&gt;hasEditableStyle())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="lines">@@ -87,7 +82,7 @@
</span><span class="cx"> #ifndef NDEBUG
</span><span class="cx"> void WrapContentsInDummySpanCommand::getNodesInCommand(HashSet&lt;Node*&gt;&amp; nodes)
</span><span class="cx"> {
</span><del>-    addNodeAndDescendants(m_element.get(), nodes);
</del><ins>+    addNodeAndDescendants(m_element.ptr(), nodes);
</ins><span class="cx">     addNodeAndDescendants(m_dummySpan.get(), nodes);
</span><span class="cx"> }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingWrapContentsInDummySpanCommandh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/WrapContentsInDummySpanCommand.h (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/WrapContentsInDummySpanCommand.h        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/editing/WrapContentsInDummySpanCommand.h        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -34,13 +34,13 @@
</span><span class="cx"> 
</span><span class="cx"> class WrapContentsInDummySpanCommand : public SimpleEditCommand {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;WrapContentsInDummySpanCommand&gt; create(PassRefPtr&lt;Element&gt; element)
</del><ins>+    static Ref&lt;WrapContentsInDummySpanCommand&gt; create(Element&amp; element)
</ins><span class="cx">     {
</span><span class="cx">         return adoptRef(*new WrapContentsInDummySpanCommand(element));
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    explicit WrapContentsInDummySpanCommand(PassRefPtr&lt;Element&gt;);
</del><ins>+    explicit WrapContentsInDummySpanCommand(Element&amp;);
</ins><span class="cx"> 
</span><span class="cx">     void doApply() override;
</span><span class="cx">     void doUnapply() override;
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx">     void getNodesInCommand(HashSet&lt;Node*&gt;&amp;) override;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    RefPtr&lt;Element&gt; m_element;
</del><ins>+    Ref&lt;Element&gt; m_element;
</ins><span class="cx">     RefPtr&lt;HTMLElement&gt; m_dummySpan;
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingatkFrameSelectionAtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/atk/FrameSelectionAtk.cpp (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/atk/FrameSelectionAtk.cpp        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/editing/atk/FrameSelectionAtk.cpp        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -43,15 +43,13 @@
</span><span class="cx">         g_signal_emit_by_name(axObject, &quot;text-selection-changed&quot;);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static void maybeEmitTextFocusChange(PassRefPtr&lt;AccessibilityObject&gt; prpObject)
</del><ins>+static void maybeEmitTextFocusChange(RefPtr&lt;AccessibilityObject&gt;&amp;&amp; object)
</ins><span class="cx"> {
</span><span class="cx">     // This static variable is needed to keep track of the old object
</span><span class="cx">     // as per previous calls to this function, in order to properly
</span><span class="cx">     // decide whether to emit some signals or not.
</span><span class="cx">     static NeverDestroyed&lt;RefPtr&lt;AccessibilityObject&gt;&gt; oldObject;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;AccessibilityObject&gt; object = prpObject;
-
</del><span class="cx">     // Ensure the oldObject belongs to the same document that the
</span><span class="cx">     // current object so further comparisons make sense. Otherwise,
</span><span class="cx">     // just reset oldObject to 0 so it won't be taken into account in
</span><span class="lines">@@ -74,7 +72,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Update pointer to last focused object.
</span><del>-    oldObject.get() = object;
</del><ins>+    oldObject.get() = WTFMove(object);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -101,7 +99,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     emitTextSelectionChange(object.get(), m_selection, offset);
</span><del>-    maybeEmitTextFocusChange(object.release());
</del><ins>+    maybeEmitTextFocusChange(WTFMove(object));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreeditinghtmleditingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/htmlediting.cpp (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/htmlediting.cpp        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/editing/htmlediting.cpp        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -912,17 +912,17 @@
</span><span class="cx">     return HTMLBRElement::create(document);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;HTMLElement&gt; createOrderedListElement(Document&amp; document)
</del><ins>+Ref&lt;HTMLElement&gt; createOrderedListElement(Document&amp; document)
</ins><span class="cx"> {
</span><span class="cx">     return HTMLOListElement::create(document);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;HTMLElement&gt; createUnorderedListElement(Document&amp; document)
</del><ins>+Ref&lt;HTMLElement&gt; createUnorderedListElement(Document&amp; document)
</ins><span class="cx"> {
</span><span class="cx">     return HTMLUListElement::create(document);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;HTMLElement&gt; createListItemElement(Document&amp; document)
</del><ins>+Ref&lt;HTMLElement&gt; createListItemElement(Document&amp; document)
</ins><span class="cx"> {
</span><span class="cx">     return HTMLLIElement::create(document);
</span><span class="cx"> }
</span><span class="lines">@@ -966,12 +966,10 @@
</span><span class="cx">     return positionInParentBeforeNode(node);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;Element&gt; createTabSpanElement(Document&amp; document, PassRefPtr&lt;Node&gt; prpTabTextNode)
</del><ins>+Ref&lt;Element&gt; createTabSpanElement(Document&amp; document, RefPtr&lt;Node&gt;&amp;&amp; tabTextNode)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;Node&gt; tabTextNode = prpTabTextNode;
-
</del><span class="cx">     // Make the span to hold the tab.
</span><del>-    RefPtr&lt;Element&gt; spanElement = document.createElement(spanTag, false);
</del><ins>+    Ref&lt;Element&gt; spanElement = document.createElement(spanTag, false);
</ins><span class="cx">     spanElement-&gt;setAttribute(classAttr, AppleTabSpanClass);
</span><span class="cx">     spanElement-&gt;setAttribute(styleAttr, &quot;white-space:pre&quot;);
</span><span class="cx"> 
</span><span class="lines">@@ -981,7 +979,7 @@
</span><span class="cx"> 
</span><span class="cx">     spanElement-&gt;appendChild(tabTextNode.releaseNonNull(), ASSERT_NO_EXCEPTION);
</span><span class="cx"> 
</span><del>-    return spanElement.releaseNonNull();
</del><ins>+    return spanElement;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Ref&lt;Element&gt; createTabSpanElement(Document&amp; document, const String&amp; tabText)
</span><span class="lines">@@ -991,7 +989,7 @@
</span><span class="cx"> 
</span><span class="cx"> Ref&lt;Element&gt; createTabSpanElement(Document&amp; document)
</span><span class="cx"> {
</span><del>-    return createTabSpanElement(document, PassRefPtr&lt;Node&gt;());
</del><ins>+    return createTabSpanElement(document, RefPtr&lt;Node&gt;());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool isNodeRendered(const Node* node)
</span></span></pre></div>
<a id="trunkSourceWebCoreeditinghtmleditingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/htmlediting.h (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/htmlediting.h        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/editing/htmlediting.h        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -208,9 +208,9 @@
</span><span class="cx">     
</span><span class="cx"> WEBCORE_EXPORT Ref&lt;HTMLElement&gt; createDefaultParagraphElement(Document&amp;);
</span><span class="cx"> Ref&lt;HTMLElement&gt; createBreakElement(Document&amp;);
</span><del>-PassRefPtr&lt;HTMLElement&gt; createOrderedListElement(Document&amp;);
-PassRefPtr&lt;HTMLElement&gt; createUnorderedListElement(Document&amp;);
-PassRefPtr&lt;HTMLElement&gt; createListItemElement(Document&amp;);
</del><ins>+Ref&lt;HTMLElement&gt; createOrderedListElement(Document&amp;);
+Ref&lt;HTMLElement&gt; createUnorderedListElement(Document&amp;);
+Ref&lt;HTMLElement&gt; createListItemElement(Document&amp;);
</ins><span class="cx"> Ref&lt;HTMLElement&gt; createHTMLElement(Document&amp;, const QualifiedName&amp;);
</span><span class="cx"> Ref&lt;HTMLElement&gt; createHTMLElement(Document&amp;, const AtomicString&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -223,7 +223,7 @@
</span><span class="cx"> // -------------------------------------------------------------------------
</span><span class="cx"> 
</span><span class="cx"> Ref&lt;Element&gt; createTabSpanElement(Document&amp;);
</span><del>-Ref&lt;Element&gt; createTabSpanElement(Document&amp;, PassRefPtr&lt;Node&gt; tabTextNode);
</del><ins>+Ref&lt;Element&gt; createTabSpanElement(Document&amp;, RefPtr&lt;Node&gt;&amp;&amp; tabTextNode);
</ins><span class="cx"> Ref&lt;Element&gt; createTabSpanElement(Document&amp;, const String&amp; tabText);
</span><span class="cx"> Ref&lt;Element&gt; createBlockPlaceholderElement(Document&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingmarkupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/markup.cpp (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/markup.cpp        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/editing/markup.cpp        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    AttributeChange(PassRefPtr&lt;Element&gt; element, const QualifiedName&amp; name, const String&amp; value)
</del><ins>+    AttributeChange(Element* element, const QualifiedName&amp; name, const String&amp; value)
</ins><span class="cx">         : m_element(element), m_name(name), m_value(value)
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="lines">@@ -466,7 +466,7 @@
</span><span class="cx"> static Node* ancestorToRetainStructureAndAppearanceForBlock(Node* commonAncestorBlock)
</span><span class="cx"> {
</span><span class="cx">     if (!commonAncestorBlock)
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     if (commonAncestorBlock-&gt;hasTagName(tbodyTag) || commonAncestorBlock-&gt;hasTagName(trTag)) {
</span><span class="cx">         ContainerNode* table = commonAncestorBlock-&gt;parentNode();
</span><span class="lines">@@ -479,7 +479,7 @@
</span><span class="cx">     if (isNonTableCellHTMLBlockElement(commonAncestorBlock))
</span><span class="cx">         return commonAncestorBlock;
</span><span class="cx"> 
</span><del>-    return 0;
</del><ins>+    return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static inline Node* ancestorToRetainStructureAndAppearance(Node* commonAncestor)
</span><span class="lines">@@ -508,17 +508,17 @@
</span><span class="cx">     return isEndOfParagraph(v) &amp;&amp; isStartOfParagraph(next) &amp;&amp; !(upstreamNode-&gt;hasTagName(brTag) &amp;&amp; upstreamNode == downstreamNode);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static PassRefPtr&lt;EditingStyle&gt; styleFromMatchedRulesAndInlineDecl(const Node* node)
</del><ins>+static RefPtr&lt;EditingStyle&gt; styleFromMatchedRulesAndInlineDecl(const Node* node)
</ins><span class="cx"> {
</span><span class="cx">     if (!node-&gt;isHTMLElement())
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx"> 
</span><span class="cx">     // FIXME: Having to const_cast here is ugly, but it is quite a bit of work to untangle
</span><span class="cx">     // the non-const-ness of styleFromMatchedRulesForElement.
</span><span class="cx">     HTMLElement* element = const_cast&lt;HTMLElement*&gt;(static_cast&lt;const HTMLElement*&gt;(node));
</span><span class="cx">     RefPtr&lt;EditingStyle&gt; style = EditingStyle::create(element-&gt;inlineStyle());
</span><span class="cx">     style-&gt;mergeStyleFromRules(element);
</span><del>-    return style.release();
</del><ins>+    return style;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool isElementPresentational(const Node* node)
</span><span class="lines">@@ -878,50 +878,50 @@
</span><span class="cx">     return markup.toString();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;DocumentFragment&gt; createFragmentForInnerOuterHTML(const String&amp; markup, Element* contextElement, ParserContentPolicy parserContentPolicy, ExceptionCode&amp; ec)
</del><ins>+RefPtr&lt;DocumentFragment&gt; createFragmentForInnerOuterHTML(Element&amp; contextElement, const String&amp; markup, ParserContentPolicy parserContentPolicy, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><del>-    Document* document = &amp;contextElement-&gt;document();
</del><ins>+    Document* document = &amp;contextElement.document();
</ins><span class="cx"> #if ENABLE(TEMPLATE_ELEMENT)
</span><del>-    if (contextElement-&gt;hasTagName(templateTag))
</del><ins>+    if (contextElement.hasTagName(templateTag))
</ins><span class="cx">         document = &amp;document-&gt;ensureTemplateDocument();
</span><span class="cx"> #endif
</span><span class="cx">     RefPtr&lt;DocumentFragment&gt; fragment = DocumentFragment::create(*document);
</span><span class="cx"> 
</span><span class="cx">     if (document-&gt;isHTMLDocument()) {
</span><del>-        fragment-&gt;parseHTML(markup, contextElement, parserContentPolicy);
</del><ins>+        fragment-&gt;parseHTML(markup, &amp;contextElement, parserContentPolicy);
</ins><span class="cx">         return fragment;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    bool wasValid = fragment-&gt;parseXML(markup, contextElement, parserContentPolicy);
</del><ins>+    bool wasValid = fragment-&gt;parseXML(markup, &amp;contextElement, parserContentPolicy);
</ins><span class="cx">     if (!wasValid) {
</span><span class="cx">         ec = SYNTAX_ERR;
</span><del>-        return 0;
</del><ins>+        return nullptr;
</ins><span class="cx">     }
</span><del>-    return fragment.release();
</del><ins>+    return fragment;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;DocumentFragment&gt; createFragmentForTransformToFragment(const String&amp; sourceString, const String&amp; sourceMIMEType, Document* outputDoc)
</del><ins>+RefPtr&lt;DocumentFragment&gt; createFragmentForTransformToFragment(Document&amp; outputDoc, const String&amp; sourceString, const String&amp; sourceMIMEType)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;DocumentFragment&gt; fragment = outputDoc-&gt;createDocumentFragment();
</del><ins>+    RefPtr&lt;DocumentFragment&gt; fragment = outputDoc.createDocumentFragment();
</ins><span class="cx">     
</span><span class="cx">     if (sourceMIMEType == &quot;text/html&quot;) {
</span><span class="cx">         // As far as I can tell, there isn't a spec for how transformToFragment is supposed to work.
</span><span class="cx">         // Based on the documentation I can find, it looks like we want to start parsing the fragment in the InBody insertion mode.
</span><span class="cx">         // Unfortunately, that's an implementation detail of the parser.
</span><span class="cx">         // We achieve that effect here by passing in a fake body element as context for the fragment.
</span><del>-        RefPtr&lt;HTMLBodyElement&gt; fakeBody = HTMLBodyElement::create(*outputDoc);
</del><ins>+        RefPtr&lt;HTMLBodyElement&gt; fakeBody = HTMLBodyElement::create(outputDoc);
</ins><span class="cx">         fragment-&gt;parseHTML(sourceString, fakeBody.get());
</span><span class="cx">     } else if (sourceMIMEType == &quot;text/plain&quot;)
</span><del>-        fragment-&gt;parserAppendChild(Text::create(*outputDoc, sourceString));
</del><ins>+        fragment-&gt;parserAppendChild(Text::create(outputDoc, sourceString));
</ins><span class="cx">     else {
</span><span class="cx">         bool successfulParse = fragment-&gt;parseXML(sourceString, 0);
</span><span class="cx">         if (!successfulParse)
</span><del>-            return 0;
</del><ins>+            return nullptr;
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     // FIXME: Do we need to mess with URLs here?
</span><span class="cx">     
</span><del>-    return fragment.release();
</del><ins>+    return fragment;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static Vector&lt;Ref&lt;HTMLElement&gt;&gt; collectElementsToRemoveFromFragment(ContainerNode&amp; container)
</span><span class="lines">@@ -950,21 +950,20 @@
</span><span class="cx">     fragment.removeChild(element, ASSERT_NO_EXCEPTION);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;DocumentFragment&gt; createContextualFragment(const String&amp; markup, HTMLElement* element, ParserContentPolicy parserContentPolicy, ExceptionCode&amp; ec)
</del><ins>+RefPtr&lt;DocumentFragment&gt; createContextualFragment(HTMLElement&amp; element, const String&amp; markup, ParserContentPolicy parserContentPolicy, ExceptionCode&amp; ec)
</ins><span class="cx"> {
</span><del>-    ASSERT(element);
-    if (element-&gt;ieForbidsInsertHTML()) {
</del><ins>+    if (element.ieForbidsInsertHTML()) {
</ins><span class="cx">         ec = NOT_SUPPORTED_ERR;
</span><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (element-&gt;hasTagName(colTag) || element-&gt;hasTagName(colgroupTag) || element-&gt;hasTagName(framesetTag)
-        || element-&gt;hasTagName(headTag) || element-&gt;hasTagName(styleTag) || element-&gt;hasTagName(titleTag)) {
</del><ins>+    if (element.hasTagName(colTag) || element.hasTagName(colgroupTag) || element.hasTagName(framesetTag)
+        || element.hasTagName(headTag) || element.hasTagName(styleTag) || element.hasTagName(titleTag)) {
</ins><span class="cx">         ec = NOT_SUPPORTED_ERR;
</span><span class="cx">         return nullptr;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    RefPtr&lt;DocumentFragment&gt; fragment = createFragmentForInnerOuterHTML(markup, element, parserContentPolicy, ec);
</del><ins>+    RefPtr&lt;DocumentFragment&gt; fragment = createFragmentForInnerOuterHTML(element, markup, parserContentPolicy, ec);
</ins><span class="cx">     if (!fragment)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="lines">@@ -975,7 +974,7 @@
</span><span class="cx">     for (auto&amp; element : toRemove)
</span><span class="cx">         removeElementFromFragmentPreservingChildren(*fragment, element);
</span><span class="cx"> 
</span><del>-    return fragment.release();
</del><ins>+    return fragment;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static inline bool hasOneChild(ContainerNode&amp; node)
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingmarkuph"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/markup.h (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/markup.h        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/editing/markup.h        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -51,9 +51,9 @@
</span><span class="cx"> 
</span><span class="cx"> WEBCORE_EXPORT Ref&lt;DocumentFragment&gt; createFragmentFromText(Range&amp; context, const String&amp; text);
</span><span class="cx"> WEBCORE_EXPORT Ref&lt;DocumentFragment&gt; createFragmentFromMarkup(Document&amp;, const String&amp; markup, const String&amp; baseURL, ParserContentPolicy = AllowScriptingContent);
</span><del>-PassRefPtr&lt;DocumentFragment&gt; createFragmentForInnerOuterHTML(const String&amp;, Element*, ParserContentPolicy, ExceptionCode&amp;);
-PassRefPtr&lt;DocumentFragment&gt; createFragmentForTransformToFragment(const String&amp;, const String&amp; sourceMIMEType, Document* outputDoc);
-PassRefPtr&lt;DocumentFragment&gt; createContextualFragment(const String&amp;, HTMLElement*, ParserContentPolicy, ExceptionCode&amp;);
</del><ins>+RefPtr&lt;DocumentFragment&gt; createFragmentForInnerOuterHTML(Element&amp;, const String&amp; markup, ParserContentPolicy, ExceptionCode&amp;);
+RefPtr&lt;DocumentFragment&gt; createFragmentForTransformToFragment(Document&amp;, const String&amp; sourceString, const String&amp; sourceMIMEType);
+RefPtr&lt;DocumentFragment&gt; createContextualFragment(HTMLElement&amp;, const String&amp; markup, ParserContentPolicy, ExceptionCode&amp;);
</ins><span class="cx"> 
</span><span class="cx"> bool isPlainTextMarkup(Node*);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLElement.cpp (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLElement.cpp        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/html/HTMLElement.cpp        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -696,7 +696,7 @@
</span><span class="cx">     Element* contextElement = contextElementForInsertion(where, this, ec);
</span><span class="cx">     if (!contextElement)
</span><span class="cx">         return;
</span><del>-    RefPtr&lt;DocumentFragment&gt; fragment = createFragmentForInnerOuterHTML(markup, contextElement, AllowScriptingContent, ec);
</del><ins>+    RefPtr&lt;DocumentFragment&gt; fragment = createFragmentForInnerOuterHTML(*contextElement, markup, AllowScriptingContent, ec);
</ins><span class="cx">     if (!fragment)
</span><span class="cx">         return;
</span><span class="cx">     insertAdjacent(where, fragment.releaseNonNull(), ec);
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXSLTProcessorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XSLTProcessor.cpp (198582 => 198583)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XSLTProcessor.cpp        2016-03-23 09:15:43 UTC (rev 198582)
+++ trunk/Source/WebCore/xml/XSLTProcessor.cpp        2016-03-23 14:05:54 UTC (rev 198583)
</span><span class="lines">@@ -138,7 +138,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (!transformToString(*sourceNode, resultMIMEType, resultString, resultEncoding))
</span><span class="cx">         return nullptr;
</span><del>-    return createFragmentForTransformToFragment(resultString, resultMIMEType, outputDoc);
</del><ins>+    return createFragmentForTransformToFragment(*outputDoc, resultString, resultMIMEType);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void XSLTProcessor::setParameter(const String&amp; /*namespaceURI*/, const String&amp; localName, const String&amp; value)
</span></span></pre>
</div>
</div>

</body>
</html>