<!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>[173684] 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/173684">173684</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2014-09-16 19:00:40 -0700 (Tue, 16 Sep 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Rename Node::childNode(index) to traverseToChildAt(index) for clarity
https://bugs.webkit.org/show_bug.cgi?id=136825

Reviewed by Benjamin Poulain.

Rename Node::childNode(index) to traverseToChildAt(index) to make it
clearer that the method is actually traversing the children and thus
potentially expensive.

This patch also avoids calling traverseToChildAt() in a couple of
easily avoidable cases.

No new tests, no behavior change.

* WebCore.exp.in:
* WebCore.order:
Remove symbol for ContainerNode::childNode() as it was renamed. It does
not seem we need to expose ContainerNode::traverseToChildAt().

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::stringForVisiblePositionRange):
(WebCore::AccessibilityObject::lengthForVisiblePositionRange):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]):
Mechanical renaming.

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::traverseToChildAt):
(WebCore::ContainerNode::childNode): Deleted.
* dom/ContainerNode.h:
(WebCore::Node::traverseToChildAt):
(WebCore::Node::childNode): Deleted.
* dom/Node.h:
- Rename Node / ContainerNode's childNode(index) to
  traverseToChildAt(index) to make it clear that it is actually
  traversing the children and thus potentially expensive.
- Clean up the implementation of ContainerNode::traverseToChildAt()
  to avoid the use of an extra |i| variable.

* dom/Position.cpp:
(WebCore::Position::computeNodeBeforePosition):
Avoid calling traverseToChildAt(-1). Relying on the unsigned argument
wrapping and the method returning null in this case is a bit obscure
and causes unnecessary traversal of all children.

(WebCore::Position::computeNodeAfterPosition):
(WebCore::Position::previous):
(WebCore::Position::next):
Mechanical renaming and update variable names to stop using
abbreviations as per coding style.

* dom/PositionIterator.h:
(WebCore::PositionIterator::PositionIterator):
* dom/Range.cpp:
(WebCore::Range::insertNode):
(WebCore::Range::checkNodeWOffset):
(WebCore::Range::firstNode):
(WebCore::Range::pastLastNode):
* dom/RangeBoundaryPoint.h:
(WebCore::RangeBoundaryPoint::set):
* editing/BreakBlockquoteCommand.cpp:
(WebCore::BreakBlockquoteCommand::doApply):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::removeChildrenInRange):
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::handleGeneralDelete):
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
* editing/TextIterator.cpp:
(WebCore::nextInPreOrderCrossingShadowBoundaries):
(WebCore::TextIterator::node):
(WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
* editing/VisibleUnits.cpp:
(WebCore::nextLinePosition):
* editing/cocoa/HTMLConverter.mm:
(WebCore::editingAttributedStringFromRange):
Mechanical renaming.

* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::innerPatchChildren):
Iterate over children while incrementing the |i| variable to avoid
calling traverseToChildAt(index) repeatedly and thus traversing the
children from the beginning every time.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCoreexpin">trunk/Source/WebCore/WebCore.exp.in</a></li>
<li><a href="#trunkSourceWebCoreWebCoreorder">trunk/Source/WebCore/WebCore.order</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityObjectcpp">trunk/Source/WebCore/accessibility/AccessibilityObject.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityiosWebAccessibilityObjectWrapperIOSmm">trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreaccessibilitymacWebAccessibilityObjectWrapperMacmm">trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm</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="#trunkSourceWebCoredomNodeh">trunk/Source/WebCore/dom/Node.h</a></li>
<li><a href="#trunkSourceWebCoredomPositioncpp">trunk/Source/WebCore/dom/Position.cpp</a></li>
<li><a href="#trunkSourceWebCoredomPositionIteratorh">trunk/Source/WebCore/dom/PositionIterator.h</a></li>
<li><a href="#trunkSourceWebCoredomRangecpp">trunk/Source/WebCore/dom/Range.cpp</a></li>
<li><a href="#trunkSourceWebCoredomRangeBoundaryPointh">trunk/Source/WebCore/dom/RangeBoundaryPoint.h</a></li>
<li><a href="#trunkSourceWebCoreeditingBreakBlockquoteCommandcpp">trunk/Source/WebCore/editing/BreakBlockquoteCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingCompositeEditCommandcpp">trunk/Source/WebCore/editing/CompositeEditCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingDeleteSelectionCommandcpp">trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingInsertParagraphSeparatorCommandcpp">trunk/Source/WebCore/editing/InsertParagraphSeparatorCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingTextIteratorcpp">trunk/Source/WebCore/editing/TextIterator.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingVisibleUnitscpp">trunk/Source/WebCore/editing/VisibleUnits.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingcocoaHTMLConvertermm">trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm</a></li>
<li><a href="#trunkSourceWebCoreinspectorDOMPatchSupportcpp">trunk/Source/WebCore/inspector/DOMPatchSupport.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/ChangeLog        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -1,3 +1,91 @@
</span><ins>+2014-09-16  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Rename Node::childNode(index) to traverseToChildAt(index) for clarity
+        https://bugs.webkit.org/show_bug.cgi?id=136825
+
+        Reviewed by Benjamin Poulain.
+
+        Rename Node::childNode(index) to traverseToChildAt(index) to make it
+        clearer that the method is actually traversing the children and thus
+        potentially expensive.
+
+        This patch also avoids calling traverseToChildAt() in a couple of
+        easily avoidable cases.
+
+        No new tests, no behavior change.
+
+        * WebCore.exp.in:
+        * WebCore.order:
+        Remove symbol for ContainerNode::childNode() as it was renamed. It does
+        not seem we need to expose ContainerNode::traverseToChildAt().
+
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::stringForVisiblePositionRange):
+        (WebCore::AccessibilityObject::lengthForVisiblePositionRange):
+        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+        (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
+        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+        (-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]):
+        Mechanical renaming.
+
+        * dom/ContainerNode.cpp:
+        (WebCore::ContainerNode::traverseToChildAt):
+        (WebCore::ContainerNode::childNode): Deleted.
+        * dom/ContainerNode.h:
+        (WebCore::Node::traverseToChildAt):
+        (WebCore::Node::childNode): Deleted.
+        * dom/Node.h:
+        - Rename Node / ContainerNode's childNode(index) to
+          traverseToChildAt(index) to make it clear that it is actually
+          traversing the children and thus potentially expensive.
+        - Clean up the implementation of ContainerNode::traverseToChildAt()
+          to avoid the use of an extra |i| variable.
+
+        * dom/Position.cpp:
+        (WebCore::Position::computeNodeBeforePosition):
+        Avoid calling traverseToChildAt(-1). Relying on the unsigned argument
+        wrapping and the method returning null in this case is a bit obscure
+        and causes unnecessary traversal of all children.
+
+        (WebCore::Position::computeNodeAfterPosition):
+        (WebCore::Position::previous):
+        (WebCore::Position::next):
+        Mechanical renaming and update variable names to stop using
+        abbreviations as per coding style.
+
+        * dom/PositionIterator.h:
+        (WebCore::PositionIterator::PositionIterator):
+        * dom/Range.cpp:
+        (WebCore::Range::insertNode):
+        (WebCore::Range::checkNodeWOffset):
+        (WebCore::Range::firstNode):
+        (WebCore::Range::pastLastNode):
+        * dom/RangeBoundaryPoint.h:
+        (WebCore::RangeBoundaryPoint::set):
+        * editing/BreakBlockquoteCommand.cpp:
+        (WebCore::BreakBlockquoteCommand::doApply):
+        * editing/CompositeEditCommand.cpp:
+        (WebCore::CompositeEditCommand::removeChildrenInRange):
+        * editing/DeleteSelectionCommand.cpp:
+        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
+        * editing/InsertParagraphSeparatorCommand.cpp:
+        (WebCore::InsertParagraphSeparatorCommand::doApply):
+        * editing/TextIterator.cpp:
+        (WebCore::nextInPreOrderCrossingShadowBoundaries):
+        (WebCore::TextIterator::node):
+        (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
+        * editing/VisibleUnits.cpp:
+        (WebCore::nextLinePosition):
+        * editing/cocoa/HTMLConverter.mm:
+        (WebCore::editingAttributedStringFromRange):
+        Mechanical renaming.
+
+        * inspector/DOMPatchSupport.cpp:
+        (WebCore::DOMPatchSupport::innerPatchChildren):
+        Iterate over children while incrementing the |i| variable to avoid
+        calling traverseToChildAt(index) repeatedly and thus traversing the
+        children from the beginning every time.
+
</ins><span class="cx"> 2014-09-16  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: Reduce a bit of churn setting initial remote inspection state
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCoreexpin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.exp.in (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.exp.in        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/WebCore.exp.in        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -1626,7 +1626,6 @@
</span><span class="cx"> __ZNK7WebCore12TextIterator4nodeEv
</span><span class="cx"> __ZNK7WebCore12TextIterator5rangeEv
</span><span class="cx"> __ZNK7WebCore13ContainerNode15countChildNodesEv
</span><del>-__ZNK7WebCore13ContainerNode9childNodeEj
</del><span class="cx"> __ZNK7WebCore13GraphicsLayer18accumulatedOpacityEv
</span><span class="cx"> __ZNK7WebCore13GraphicsLayer18getDebugBorderInfoERNS_5ColorERf
</span><span class="cx"> __ZNK7WebCore13GraphicsLayer26backingStoreMemoryEstimateEv
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCoreorder"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.order (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.order        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/WebCore.order        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -8133,7 +8133,6 @@
</span><span class="cx"> __ZN7WebCore5Range14setStartBeforeEPNS_4NodeERi
</span><span class="cx"> __ZNK7WebCore4Node16computeNodeIndexEv
</span><span class="cx"> __ZN7WebCore5Range8setStartEN3WTF10PassRefPtrINS_4NodeEEEiRi
</span><del>-__ZNK7WebCore13ContainerNode9childNodeEj
</del><span class="cx"> __ZN7WebCoreL30checkForDifferentRootContainerERKNS_18RangeBoundaryPointES2_
</span><span class="cx"> __ZN7WebCore5Range21compareBoundaryPointsEPNS_4NodeEiS2_iRi
</span><span class="cx"> __ZN7WebCore5Range8collapseEbRi
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.cpp (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityObject.cpp        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.cpp        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -1139,7 +1139,7 @@
</span><span class="cx">             Node* node = it.range()-&gt;startContainer();
</span><span class="cx">             ASSERT(node == it.range()-&gt;endContainer());
</span><span class="cx">             int offset = it.range()-&gt;startOffset();
</span><del>-            if (replacedNodeNeedsCharacter(node-&gt;childNode(offset)))
</del><ins>+            if (replacedNodeNeedsCharacter(node-&gt;traverseToChildAt(offset)))
</ins><span class="cx">                 builder.append(objectReplacementCharacter);
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -1166,7 +1166,7 @@
</span><span class="cx">             ASSERT(node == it.range()-&gt;endContainer(exception));
</span><span class="cx">             int offset = it.range()-&gt;startOffset(exception);
</span><span class="cx"> 
</span><del>-            if (replacedNodeNeedsCharacter(node-&gt;childNode(offset)))
</del><ins>+            if (replacedNodeNeedsCharacter(node-&gt;traverseToChildAt(offset)))
</ins><span class="cx">                 length++;
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityiosWebAccessibilityObjectWrapperIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -1844,7 +1844,7 @@
</span><span class="cx">                 [attrString release];
</span><span class="cx">             }
</span><span class="cx">         } else {
</span><del>-            Node* replacedNode = node-&gt;childNode(offset);
</del><ins>+            Node* replacedNode = node-&gt;traverseToChildAt(offset);
</ins><span class="cx">             if (replacedNode) {
</span><span class="cx">                 AccessibilityObject* obj = m_object-&gt;axObjectCache()-&gt;getOrCreate(replacedNode-&gt;renderer());
</span><span class="cx">                 if (obj &amp;&amp; !obj-&gt;accessibilityIsIgnored())
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilitymacWebAccessibilityObjectWrapperMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -1102,7 +1102,7 @@
</span><span class="cx">                 AXAttributedStringAppendText(attrString, node, listMarkerText);
</span><span class="cx">             AXAttributedStringAppendText(attrString, node, it.text());
</span><span class="cx">         } else {
</span><del>-            Node* replacedNode = node-&gt;childNode(offset);
</del><ins>+            Node* replacedNode = node-&gt;traverseToChildAt(offset);
</ins><span class="cx">             NSString *attachmentString = nsStringForReplacedNode(replacedNode);
</span><span class="cx">             if (attachmentString) {
</span><span class="cx">                 NSRange attrStringRange = NSMakeRange([attrString length], [attachmentString length]);
</span></span></pre></div>
<a id="trunkSourceWebCoredomContainerNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ContainerNode.cpp (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ContainerNode.cpp        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/dom/ContainerNode.cpp        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -939,13 +939,12 @@
</span><span class="cx">     return count;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Node *ContainerNode::childNode(unsigned index) const
</del><ins>+Node* ContainerNode::traverseToChildAt(unsigned index) const
</ins><span class="cx"> {
</span><del>-    unsigned i;
-    Node *n = firstChild();
-    for (i = 0; n != 0 &amp;&amp; i &lt; index; i++)
-        n = n-&gt;nextSibling();
-    return n;
</del><ins>+    Node* child = firstChild();
+    for (; child &amp;&amp; index &gt; 0; --index)
+        child = child-&gt;nextSibling();
+    return child;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void dispatchChildInsertionEvents(Node&amp; child)
</span></span></pre></div>
<a id="trunkSourceWebCoredomContainerNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ContainerNode.h (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ContainerNode.h        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/dom/ContainerNode.h        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -93,7 +93,7 @@
</span><span class="cx">     void setDirectChildNeedsStyleRecalc() { setFlag(DirectChildNeedsStyleRecalcFlag); }
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT unsigned countChildNodes() const;
</span><del>-    WEBCORE_EXPORT Node* childNode(unsigned index) const;
</del><ins>+    WEBCORE_EXPORT Node* traverseToChildAt(unsigned) const;
</ins><span class="cx"> 
</span><span class="cx">     bool insertBefore(PassRefPtr&lt;Node&gt; newChild, Node* refChild, ExceptionCode&amp; = ASSERT_NO_EXCEPTION);
</span><span class="cx">     bool replaceChild(PassRefPtr&lt;Node&gt; newChild, Node* oldChild, ExceptionCode&amp; = ASSERT_NO_EXCEPTION);
</span><span class="lines">@@ -192,11 +192,11 @@
</span><span class="cx">     return toContainerNode(this)-&gt;countChildNodes();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline Node* Node::childNode(unsigned index) const
</del><ins>+inline Node* Node::traverseToChildAt(unsigned index) const
</ins><span class="cx"> {
</span><span class="cx">     if (!isContainerNode())
</span><span class="cx">         return 0;
</span><del>-    return toContainerNode(this)-&gt;childNode(index);
</del><ins>+    return toContainerNode(this)-&gt;traverseToChildAt(index);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline Node* Node::firstChild() const
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.h (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.h        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/dom/Node.h        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -417,7 +417,7 @@
</span><span class="cx">     bool isDocumentTypeNode() const { return nodeType() == DOCUMENT_TYPE_NODE; }
</span><span class="cx">     virtual bool childTypeAllowed(NodeType) const { return false; }
</span><span class="cx">     unsigned countChildNodes() const;
</span><del>-    Node* childNode(unsigned index) const;
</del><ins>+    Node* traverseToChildAt(unsigned) const;
</ins><span class="cx"> 
</span><span class="cx">     void checkSetPrefix(const AtomicString&amp; prefix, ExceptionCode&amp;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomPositioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Position.cpp (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Position.cpp        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/dom/Position.cpp        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -246,7 +246,7 @@
</span><span class="cx">     case PositionIsAfterChildren:
</span><span class="cx">         return m_anchorNode-&gt;lastChild();
</span><span class="cx">     case PositionIsOffsetInAnchor:
</span><del>-        return m_anchorNode-&gt;childNode(m_offset - 1); // -1 converts to childNode((unsigned)-1) and returns null.
</del><ins>+        return m_offset ? m_anchorNode-&gt;traverseToChildAt(m_offset - 1) : nullptr;
</ins><span class="cx">     case PositionIsBeforeAnchor:
</span><span class="cx">         return m_anchorNode-&gt;previousSibling();
</span><span class="cx">     case PositionIsAfterAnchor:
</span><span class="lines">@@ -267,7 +267,7 @@
</span><span class="cx">     case PositionIsAfterChildren:
</span><span class="cx">         return 0;
</span><span class="cx">     case PositionIsOffsetInAnchor:
</span><del>-        return m_anchorNode-&gt;childNode(m_offset);
</del><ins>+        return m_anchorNode-&gt;traverseToChildAt(m_offset);
</ins><span class="cx">     case PositionIsBeforeAnchor:
</span><span class="cx">         return m_anchorNode.get();
</span><span class="cx">     case PositionIsAfterAnchor:
</span><span class="lines">@@ -298,17 +298,16 @@
</span><span class="cx"> 
</span><span class="cx"> Position Position::previous(PositionMoveType moveType) const
</span><span class="cx"> {
</span><del>-    Node* n = deprecatedNode();
-    if (!n)
</del><ins>+    Node* node = deprecatedNode();
+    if (!node)
</ins><span class="cx">         return *this;
</span><span class="cx"> 
</span><del>-    int o = deprecatedEditingOffset();
</del><ins>+    int offset = deprecatedEditingOffset();
</ins><span class="cx">     // FIXME: Negative offsets shouldn't be allowed. We should catch this earlier.
</span><del>-    ASSERT(o &gt;= 0);
</del><ins>+    ASSERT(offset &gt;= 0);
</ins><span class="cx"> 
</span><del>-    if (o &gt; 0) {
-        Node* child = n-&gt;childNode(o - 1);
-        if (child)
</del><ins>+    if (offset &gt; 0) {
+        if (Node* child = node-&gt;traverseToChildAt(offset - 1))
</ins><span class="cx">             return lastPositionInOrAfterNode(child);
</span><span class="cx"> 
</span><span class="cx">         // There are two reasons child might be 0:
</span><span class="lines">@@ -318,35 +317,35 @@
</span><span class="cx">         //      Going from 1 to 0 is correct.
</span><span class="cx">         switch (moveType) {
</span><span class="cx">         case CodePoint:
</span><del>-            return createLegacyEditingPosition(n, o - 1);
</del><ins>+            return createLegacyEditingPosition(node, offset - 1);
</ins><span class="cx">         case Character:
</span><del>-            return createLegacyEditingPosition(n, uncheckedPreviousOffset(n, o));
</del><ins>+            return createLegacyEditingPosition(node, uncheckedPreviousOffset(node, offset));
</ins><span class="cx">         case BackwardDeletion:
</span><del>-            return createLegacyEditingPosition(n, uncheckedPreviousOffsetForBackwardDeletion(n, o));
</del><ins>+            return createLegacyEditingPosition(node, uncheckedPreviousOffsetForBackwardDeletion(node, offset));
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    ContainerNode* parent = findParent(n);
</del><ins>+    ContainerNode* parent = findParent(node);
</ins><span class="cx">     if (!parent)
</span><span class="cx">         return *this;
</span><span class="cx"> 
</span><del>-    return createLegacyEditingPosition(parent, n-&gt;computeNodeIndex());
</del><ins>+    return createLegacyEditingPosition(parent, node-&gt;computeNodeIndex());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Position Position::next(PositionMoveType moveType) const
</span><span class="cx"> {
</span><span class="cx">     ASSERT(moveType != BackwardDeletion);
</span><span class="cx"> 
</span><del>-    Node* n = deprecatedNode();
-    if (!n)
</del><ins>+    Node* node = deprecatedNode();
+    if (!node)
</ins><span class="cx">         return *this;
</span><span class="cx"> 
</span><del>-    int o = deprecatedEditingOffset();
</del><ins>+    int offset = deprecatedEditingOffset();
</ins><span class="cx">     // FIXME: Negative offsets shouldn't be allowed. We should catch this earlier.
</span><del>-    ASSERT(o &gt;= 0);
</del><ins>+    ASSERT(offset &gt;= 0);
</ins><span class="cx"> 
</span><del>-    Node* child = n-&gt;childNode(o);
-    if (child || (!n-&gt;hasChildNodes() &amp;&amp; o &lt; lastOffsetForEditing(n))) {
</del><ins>+    Node* child = node-&gt;traverseToChildAt(offset);
+    if (child || (!node-&gt;hasChildNodes() &amp;&amp; offset &lt; lastOffsetForEditing(node))) {
</ins><span class="cx">         if (child)
</span><span class="cx">             return firstPositionInOrBeforeNode(child);
</span><span class="cx"> 
</span><span class="lines">@@ -355,14 +354,14 @@
</span><span class="cx">         //      Going forward one character at a time is correct.
</span><span class="cx">         //   2) The new offset is a bogus offset like (&lt;br&gt;, 1), and there is no child.
</span><span class="cx">         //      Going from 0 to 1 is correct.
</span><del>-        return createLegacyEditingPosition(n, (moveType == Character) ? uncheckedNextOffset(n, o) : o + 1);
</del><ins>+        return createLegacyEditingPosition(node, (moveType == Character) ? uncheckedNextOffset(node, offset) : offset + 1);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    ContainerNode* parent = findParent(n);
</del><ins>+    ContainerNode* parent = findParent(node);
</ins><span class="cx">     if (!parent)
</span><span class="cx">         return *this;
</span><span class="cx"> 
</span><del>-    return createLegacyEditingPosition(parent, n-&gt;computeNodeIndex() + 1);
</del><ins>+    return createLegacyEditingPosition(parent, node-&gt;computeNodeIndex() + 1);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> int Position::uncheckedPreviousOffset(const Node* n, int current)
</span></span></pre></div>
<a id="trunkSourceWebCoredomPositionIteratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/PositionIterator.h (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/PositionIterator.h        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/dom/PositionIterator.h        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx"> 
</span><span class="cx">     PositionIterator(const Position&amp; pos)
</span><span class="cx">         : m_anchorNode(pos.anchorNode())
</span><del>-        , m_nodeAfterPositionInAnchor(m_anchorNode-&gt;childNode(pos.deprecatedEditingOffset()))
</del><ins>+        , m_nodeAfterPositionInAnchor(m_anchorNode-&gt;traverseToChildAt(pos.deprecatedEditingOffset()))
</ins><span class="cx">         , m_offsetInAnchor(m_nodeAfterPositionInAnchor ? 0 : pos.deprecatedEditingOffset())
</span><span class="cx">     {
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoredomRangecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Range.cpp (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Range.cpp        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/dom/Range.cpp        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -1056,7 +1056,7 @@
</span><span class="cx">         container = m_start.container();
</span><span class="cx">         RefPtr&lt;Node&gt; firstInsertedChild = newNodeType == Node::DOCUMENT_FRAGMENT_NODE ? newNode-&gt;firstChild() : newNode;
</span><span class="cx">         RefPtr&lt;Node&gt; lastInsertedChild = newNodeType == Node::DOCUMENT_FRAGMENT_NODE ? newNode-&gt;lastChild() : newNode;
</span><del>-        RefPtr&lt;Node&gt; childAfterInsertedContent = container-&gt;childNode(m_start.offset());
</del><ins>+        RefPtr&lt;Node&gt; childAfterInsertedContent = container-&gt;traverseToChildAt(m_start.offset());
</ins><span class="cx">         container-&gt;insertBefore(newNode.release(), childAfterInsertedContent.get(), ec);
</span><span class="cx">         if (ec)
</span><span class="cx">             return;
</span><span class="lines">@@ -1171,7 +1171,7 @@
</span><span class="cx">         case Node::XPATH_NAMESPACE_NODE: {
</span><span class="cx">             if (!offset)
</span><span class="cx">                 return 0;
</span><del>-            Node* childBefore = n-&gt;childNode(offset - 1);
</del><ins>+            Node* childBefore = n-&gt;traverseToChildAt(offset - 1);
</ins><span class="cx">             if (!childBefore)
</span><span class="cx">                 ec = INDEX_SIZE_ERR;
</span><span class="cx">             return childBefore;
</span><span class="lines">@@ -1568,7 +1568,7 @@
</span><span class="cx">         return 0;
</span><span class="cx">     if (m_start.container()-&gt;offsetInCharacters())
</span><span class="cx">         return m_start.container();
</span><del>-    if (Node* child = m_start.container()-&gt;childNode(m_start.offset()))
</del><ins>+    if (Node* child = m_start.container()-&gt;traverseToChildAt(m_start.offset()))
</ins><span class="cx">         return child;
</span><span class="cx">     if (!m_start.offset())
</span><span class="cx">         return m_start.container();
</span><span class="lines">@@ -1586,7 +1586,7 @@
</span><span class="cx">         return 0;
</span><span class="cx">     if (m_end.container()-&gt;offsetInCharacters())
</span><span class="cx">         return NodeTraversal::nextSkippingChildren(m_end.container());
</span><del>-    if (Node* child = m_end.container()-&gt;childNode(m_end.offset()))
</del><ins>+    if (Node* child = m_end.container()-&gt;traverseToChildAt(m_end.offset()))
</ins><span class="cx">         return child;
</span><span class="cx">     return NodeTraversal::nextSkippingChildren(m_end.container());
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomRangeBoundaryPointh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/RangeBoundaryPoint.h (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/RangeBoundaryPoint.h        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/dom/RangeBoundaryPoint.h        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -121,7 +121,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(container);
</span><span class="cx">     ASSERT(offset &gt;= 0);
</span><del>-    ASSERT(childBefore == (offset ? container-&gt;childNode(offset - 1) : 0));
</del><ins>+    ASSERT(childBefore == (offset ? container-&gt;traverseToChildAt(offset - 1) : 0));
</ins><span class="cx">     m_containerNode = container;
</span><span class="cx">     m_offsetInContainer = offset;
</span><span class="cx">     m_childBeforeBoundary = childBefore;
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingBreakBlockquoteCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/BreakBlockquoteCommand.cpp (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/BreakBlockquoteCommand.cpp        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/editing/BreakBlockquoteCommand.cpp        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -114,7 +114,7 @@
</span><span class="cx">         } else if (pos.deprecatedEditingOffset() &gt; 0)
</span><span class="cx">             splitTextNode(textNode, pos.deprecatedEditingOffset());
</span><span class="cx">     } else if (pos.deprecatedEditingOffset() &gt; 0) {
</span><del>-        Node* childAtOffset = startNode-&gt;childNode(pos.deprecatedEditingOffset());
</del><ins>+        Node* childAtOffset = startNode-&gt;traverseToChildAt(pos.deprecatedEditingOffset());
</ins><span class="cx">         startNode = childAtOffset ? childAtOffset : NodeTraversal::next(startNode);
</span><span class="cx">         ASSERT(startNode);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingCompositeEditCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/CompositeEditCommand.cpp (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/CompositeEditCommand.cpp        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/editing/CompositeEditCommand.cpp        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -396,7 +396,7 @@
</span><span class="cx"> void CompositeEditCommand::removeChildrenInRange(PassRefPtr&lt;Node&gt; node, unsigned from, unsigned to)
</span><span class="cx"> {
</span><span class="cx">     Vector&lt;RefPtr&lt;Node&gt;&gt; children;
</span><del>-    Node* child = node-&gt;childNode(from);
</del><ins>+    Node* child = node-&gt;traverseToChildAt(from);
</ins><span class="cx">     for (unsigned i = from; child &amp;&amp; i &lt; to; i++, child = child-&gt;nextSibling())
</span><span class="cx">         children.append(child);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingDeleteSelectionCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/editing/DeleteSelectionCommand.cpp        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -507,7 +507,7 @@
</span><span class="cx">                 deleteTextFromNode(text, startOffset, text-&gt;length() - startOffset);
</span><span class="cx">                 node = NodeTraversal::next(node.get());
</span><span class="cx">             } else {
</span><del>-                node = startNode-&gt;childNode(startOffset);
</del><ins>+                node = startNode-&gt;traverseToChildAt(startOffset);
</ins><span class="cx">             }
</span><span class="cx">         } else if (startNode == m_upstreamEnd.deprecatedNode() &amp;&amp; startNode-&gt;isTextNode()) {
</span><span class="cx">             Text* text = toText(m_upstreamEnd.deprecatedNode());
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingInsertParagraphSeparatorCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/InsertParagraphSeparatorCommand.cpp (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/InsertParagraphSeparatorCommand.cpp        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/editing/InsertParagraphSeparatorCommand.cpp        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -267,7 +267,7 @@
</span><span class="cx">             refNode = startBlock-&gt;firstChild();
</span><span class="cx">         }
</span><span class="cx">         else if (insertionPosition.deprecatedNode() == startBlock &amp;&amp; nestNewBlock) {
</span><del>-            refNode = startBlock-&gt;childNode(insertionPosition.deprecatedEditingOffset());
</del><ins>+            refNode = startBlock-&gt;traverseToChildAt(insertionPosition.deprecatedEditingOffset());
</ins><span class="cx">             ASSERT(refNode); // must be true or we'd be in the end of block case
</span><span class="cx">         } else
</span><span class="cx">             refNode = insertionPosition.deprecatedNode();
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingTextIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/TextIterator.cpp (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/TextIterator.cpp        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/editing/TextIterator.cpp        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -193,7 +193,7 @@
</span><span class="cx"> static Node* nextInPreOrderCrossingShadowBoundaries(Node&amp; rangeEndContainer, int rangeEndOffset)
</span><span class="cx"> {
</span><span class="cx">     if (rangeEndOffset &gt;= 0 &amp;&amp; !rangeEndContainer.offsetInCharacters()) {
</span><del>-        if (Node* next = rangeEndContainer.childNode(rangeEndOffset))
</del><ins>+        if (Node* next = rangeEndContainer.traverseToChildAt(rangeEndOffset))
</ins><span class="cx">             return next;
</span><span class="cx">     }
</span><span class="cx">     for (Node* node = &amp;rangeEndContainer; node; node = node-&gt;parentOrShadowHostNode()) {
</span><span class="lines">@@ -1111,7 +1111,7 @@
</span><span class="cx">     if (node-&gt;offsetInCharacters())
</span><span class="cx">         return node;
</span><span class="cx">     
</span><del>-    return node-&gt;childNode(textRange-&gt;startOffset());
</del><ins>+    return node-&gt;traverseToChildAt(textRange-&gt;startOffset());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // --------
</span><span class="lines">@@ -1147,13 +1147,13 @@
</span><span class="cx"> 
</span><span class="cx">     if (!startNode-&gt;offsetInCharacters()) {
</span><span class="cx">         if (startOffset &gt;= 0 &amp;&amp; startOffset &lt; static_cast&lt;int&gt;(startNode-&gt;countChildNodes())) {
</span><del>-            startNode = startNode-&gt;childNode(startOffset);
</del><ins>+            startNode = startNode-&gt;traverseToChildAt(startOffset);
</ins><span class="cx">             startOffset = 0;
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     if (!endNode-&gt;offsetInCharacters()) {
</span><span class="cx">         if (endOffset &gt; 0 &amp;&amp; endOffset &lt;= static_cast&lt;int&gt;(endNode-&gt;countChildNodes())) {
</span><del>-            endNode = endNode-&gt;childNode(endOffset - 1);
</del><ins>+            endNode = endNode-&gt;traverseToChildAt(endOffset - 1);
</ins><span class="cx">             endOffset = lastOffsetInNode(endNode);
</span><span class="cx">         }
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingVisibleUnitscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/VisibleUnits.cpp (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/VisibleUnits.cpp        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/editing/VisibleUnits.cpp        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -1013,7 +1013,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (!root) {
</span><span class="cx">         // FIXME: We need do the same in previousLinePosition.
</span><del>-        Node* child = node-&gt;childNode(p.deprecatedEditingOffset());
</del><ins>+        Node* child = node-&gt;traverseToChildAt(p.deprecatedEditingOffset());
</ins><span class="cx">         node = child ? child : node-&gt;lastDescendant();
</span><span class="cx">         Position position = nextRootInlineBoxCandidatePosition(node, visiblePosition, editableType);
</span><span class="cx">         if (position.isNotNull()) {
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingcocoaHTMLConvertermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -2569,7 +2569,7 @@
</span><span class="cx">         int endOffset = currentTextRange-&gt;endOffset();
</span><span class="cx">         
</span><span class="cx">         if (startContainer == endContainer &amp;&amp; (startOffset == endOffset - 1)) {
</span><del>-            Node* node = startContainer-&gt;childNode(startOffset);
</del><ins>+            Node* node = startContainer-&gt;traverseToChildAt(startOffset);
</ins><span class="cx">             if (node &amp;&amp; node-&gt;hasTagName(imgTag)) {
</span><span class="cx">                 NSFileWrapper* fileWrapper = fileWrapperForElement(toElement(node));
</span><span class="cx">                 NSTextAttachment* attachment = [[NSTextAttachment alloc] initWithFileWrapper:fileWrapper];
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorDOMPatchSupportcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/DOMPatchSupport.cpp (173683 => 173684)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/DOMPatchSupport.cpp        2014-09-17 00:49:20 UTC (rev 173683)
+++ trunk/Source/WebCore/inspector/DOMPatchSupport.cpp        2014-09-17 02:00:40 UTC (rev 173684)
</span><span class="lines">@@ -377,10 +377,11 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // 3. Insert missing nodes.
</span><del>-    for (size_t i = 0; i &lt; newMap.size(); ++i) {
</del><ins>+    Node* node = parentNode-&gt;firstChild();
+    for (unsigned i = 0; node &amp;&amp; i &lt; newMap.size(); ++i, node = node-&gt;nextSibling()) {
</ins><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;childNode(i), ec))
</del><ins>+        if (!insertBeforeAndMarkAsUsed(parentNode, newList[i].get(), node, ec))
</ins><span class="cx">             return false;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -389,7 +390,7 @@
</span><span class="cx">         if (!oldMap[i].first)
</span><span class="cx">             continue;
</span><span class="cx">         RefPtr&lt;Node&gt; node = oldMap[i].first-&gt;m_node;
</span><del>-        Node* anchorNode = parentNode-&gt;childNode(oldMap[i].second);
</del><ins>+        Node* anchorNode = parentNode-&gt;traverseToChildAt(oldMap[i].second);
</ins><span class="cx">         if (node.get() == anchorNode)
</span><span class="cx">             continue;
</span><span class="cx">         if (node-&gt;hasTagName(bodyTag) || node-&gt;hasTagName(headTag))
</span></span></pre>
</div>
</div>

</body>
</html>