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

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

<h3>Log Message</h3>
<pre>Source/WebCore: Remove Node::attached()
https://bugs.webkit.org/show_bug.cgi?id=126276

Reviewed by Sam Weinig.

Node::attached() is poorly defined. Replace it with renderer() and inRenderedDocument() tests as appropriate.
        
Also remove some unnecessary explicit attachRenderTree/detachRenderTree calls from the tree builders.

LayoutTests: Remove Node::attached()
https://bugs.webkit.org/show_bug.cgi?id=126276
        
Reviewed by Sam Weinig.

* platform/mac/fast/table/dynamic-caption-add-before-child-expected.png:
* platform/mac/fast/table/dynamic-caption-add-before-child-expected.txt:
        
    This test result change is a progression. Dynamic captions are now correctly in document order.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsplatformmacfasttabledynamiccaptionaddbeforechildexpectedpng">trunk/LayoutTests/platform/mac/fast/table/dynamic-caption-add-before-child-expected.png</a></li>
<li><a href="#trunkLayoutTestsplatformmacfasttabledynamiccaptionaddbeforechildexpectedtxt">trunk/LayoutTests/platform/mac/fast/table/dynamic-caption-add-before-child-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityMenuListPopupcpp">trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp</a></li>
<li><a href="#trunkSourceWebCoredomContainerNodecpp">trunk/Source/WebCore/dom/ContainerNode.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumentStyleSheetCollectioncpp">trunk/Source/WebCore/dom/DocumentStyleSheetCollection.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodecpp">trunk/Source/WebCore/dom/Node.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodeh">trunk/Source/WebCore/dom/Node.h</a></li>
<li><a href="#trunkSourceWebCoredomShadowRootcpp">trunk/Source/WebCore/dom/ShadowRoot.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingAppendNodeCommandcpp">trunk/Source/WebCore/editing/AppendNodeCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingInsertNodeBeforeCommandcpp">trunk/Source/WebCore/editing/InsertNodeBeforeCommand.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingRemoveNodeCommandcpp">trunk/Source/WebCore/editing/RemoveNodeCommand.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLDetailsElementcpp">trunk/Source/WebCore/html/HTMLDetailsElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLPlugInImageElementcpp">trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLSelectElementcpp">trunk/Source/WebCore/html/HTMLSelectElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLTreeBuildercpp">trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMediaControlElementTypescpp">trunk/Source/WebCore/html/shadow/MediaControlElementTypes.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowMediaControlElementscpp">trunk/Source/WebCore/html/shadow/MediaControlElements.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowSliderThumbElementcpp">trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoadercpp">trunk/Source/WebCore/loader/FrameLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderHistoryControllercpp">trunk/Source/WebCore/loader/HistoryController.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderImageLoadercpp">trunk/Source/WebCore/loader/ImageLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderPlaceholderDocumentcpp">trunk/Source/WebCore/loader/PlaceholderDocument.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFramecpp">trunk/Source/WebCore/page/Frame.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderCountercpp">trunk/Source/WebCore/rendering/RenderCounter.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderMenuListcpp">trunk/Source/WebCore/rendering/RenderMenuList.cpp</a></li>
<li><a href="#trunkSourceWebCorestyleStyleResolveTreecpp">trunk/Source/WebCore/style/StyleResolveTree.cpp</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlXMLErrorscpp">trunk/Source/WebCore/xml/XMLErrors.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlparserXMLDocumentParsercpp">trunk/Source/WebCore/xml/parser/XMLDocumentParser.cpp</a></li>
<li><a href="#trunkSourceWebCorexmlparserXMLDocumentParserLibxml2cpp">trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/LayoutTests/ChangeLog        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2013-12-29  Antti Koivisto  &lt;antti@apple.com&gt;
+
+        Remove Node::attached()
+        https://bugs.webkit.org/show_bug.cgi?id=126276
+        
+        Reviewed by Sam Weinig.
+
+        * platform/mac/fast/table/dynamic-caption-add-before-child-expected.png:
+        * platform/mac/fast/table/dynamic-caption-add-before-child-expected.txt:
+        
+            This test result change is a progression. Dynamic captions are now correctly in document order.
+
</ins><span class="cx"> 2013-12-27  Gavin Barraclough  &lt;barraclough@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Merge PageVisibilityState &amp; ViewState::IsVisible in WebKit2
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfasttabledynamiccaptionaddbeforechildexpectedpng"></a>
<div class="binary"><h4>Modified: trunk/LayoutTests/platform/mac/fast/table/dynamic-caption-add-before-child-expected.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfasttabledynamiccaptionaddbeforechildexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/fast/table/dynamic-caption-add-before-child-expected.txt (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/table/dynamic-caption-add-before-child-expected.txt        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/LayoutTests/platform/mac/fast/table/dynamic-caption-add-before-child-expected.txt        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -4,28 +4,28 @@
</span><span class="cx">   RenderBlock {html} at (0,0) size 800x232
</span><span class="cx">     RenderBody {body} at (8,8) size 784x216
</span><span class="cx">       RenderTable {table} at (0,0) size 81x216
</span><del>-        RenderBlock {caption} at (0,144) size 81x72
</del><ins>+        RenderBlock {caption} at (0,0) size 81x72
</ins><span class="cx">           RenderText {#text} at (19,0) size 81x72
</span><span class="cx">             text run at (19,0) width 43: &quot;PASS:&quot;
</span><span class="cx">             text run at (0,18) width 81: &quot;Dynamically&quot;
</span><span class="cx">             text run at (21,36) width 39: &quot;added&quot;
</span><span class="cx">             text run at (17,54) width 47: &quot;caption&quot;
</span><del>-        RenderBlock {caption} at (0,0) size 81x36
</del><ins>+        RenderBlock {caption} at (0,72) size 81x36
</ins><span class="cx">           RenderText {#text} at (2,0) size 77x36
</span><span class="cx">             text run at (2,0) width 77: &quot;PASS: Text&quot;
</span><span class="cx">             text run at (3,18) width 75: &quot;in caption 1&quot;
</span><del>-layer at (8,44) size 81x36
-  RenderBlock {caption} at (0,36) size 81x36
</del><ins>+layer at (8,116) size 81x36
+  RenderBlock {caption} at (0,108) size 81x36
</ins><span class="cx">     RenderText {#text} at (2,0) size 77x36
</span><span class="cx">       text run at (2,0) width 77: &quot;PASS: Text&quot;
</span><span class="cx">       text run at (3,18) width 75: &quot;in caption 2&quot;
</span><del>-layer at (8,80) size 81x36
-  RenderBlock {caption} at (0,72) size 81x36
</del><ins>+layer at (8,152) size 81x36
+  RenderBlock {caption} at (0,144) size 81x36
</ins><span class="cx">     RenderText {#text} at (2,0) size 77x36
</span><span class="cx">       text run at (2,0) width 77: &quot;PASS: Text&quot;
</span><span class="cx">       text run at (3,18) width 75: &quot;in caption 3&quot;
</span><del>-layer at (8,116) size 81x36
-  RenderBlock {caption} at (0,108) size 81x36
</del><ins>+layer at (8,188) size 81x36
+  RenderBlock {caption} at (0,180) size 81x36
</ins><span class="cx">     RenderText {#text} at (2,0) size 77x36
</span><span class="cx">       text run at (2,0) width 77: &quot;PASS: Text&quot;
</span><span class="cx">       text run at (3,18) width 75: &quot;in caption 4&quot;
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/ChangeLog        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2013-12-29  Antti Koivisto  &lt;antti@apple.com&gt;
+
+        Remove Node::attached()
+        https://bugs.webkit.org/show_bug.cgi?id=126276
+
+        Reviewed by Sam Weinig.
+
+        Node::attached() is poorly defined. Replace it with renderer() and inRenderedDocument() tests as appropriate.
+        
+        Also remove some unnecessary explicit attachRenderTree/detachRenderTree calls from the tree builders.
+
</ins><span class="cx"> 2013-12-29  Andreas Kling  &lt;akling@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         RenderLayer: Store reflection renderer in a RenderPtr.
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityMenuListPopupcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx"> 
</span><span class="cx"> AccessibilityMenuListOption* AccessibilityMenuListPopup::menuListOptionAccessibilityObject(HTMLElement* element) const
</span><span class="cx"> {
</span><del>-    if (!element || !isHTMLOptionElement(element) || !element-&gt;attached())
</del><ins>+    if (!element || !isHTMLOptionElement(element) || !element-&gt;inRenderedDocument())
</ins><span class="cx">         return 0;
</span><span class="cx"> 
</span><span class="cx">     AccessibilityObject* object = document()-&gt;axObjectCache()-&gt;getOrCreate(MenuListOptionRole);
</span><span class="lines">@@ -118,7 +118,7 @@
</span><span class="cx">     AXObjectCache* cache = axObjectCache();
</span><span class="cx">     for (size_t i = m_children.size(); i &gt; 0 ; --i) {
</span><span class="cx">         AccessibilityObject* child = m_children[i - 1].get();
</span><del>-        if (child-&gt;actionElement() &amp;&amp; !child-&gt;actionElement()-&gt;attached()) {
</del><ins>+        if (child-&gt;actionElement() &amp;&amp; !child-&gt;actionElement()-&gt;inRenderedDocument()) {
</ins><span class="cx">             child-&gt;detachFromParent();
</span><span class="cx">             cache-&gt;remove(child-&gt;axObjectID());
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCoredomContainerNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ContainerNode.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ContainerNode.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/dom/ContainerNode.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -140,7 +140,7 @@
</span><span class="cx"> 
</span><span class="cx">     for (unsigned i = 0; i &lt; children.size(); ++i) {
</span><span class="cx">         Node&amp; child = children[i].get();
</span><del>-        if (child.attached())
</del><ins>+        if (child.renderer())
</ins><span class="cx">             detachChild(child);
</span><span class="cx"> 
</span><span class="cx">         // FIXME: We need a no mutation event version of adoptNode.
</span><span class="lines">@@ -150,7 +150,7 @@
</span><span class="cx">         // (if the document changed or oldParent was in a shadow tree, AND *this is in a shadow tree).
</span><span class="cx">         // Can we do better?
</span><span class="cx">         treeScope().adoptIfNeeded(adoptedChild.get());
</span><del>-        if (attached() &amp;&amp; !adoptedChild-&gt;attached())
</del><ins>+        if (renderer() &amp;&amp; !adoptedChild-&gt;renderer())
</ins><span class="cx">             attachChild(*adoptedChild.get());
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -594,7 +594,8 @@
</span><span class="cx">     ASSERT(oldChild.parentNode() == this);
</span><span class="cx"> 
</span><span class="cx">     // Remove from rendering tree
</span><del>-    if (oldChild.attached())
</del><ins>+    // FIXME: Get rid of the named flow test.
+    if (oldChild.renderer() || oldChild.inNamedFlow())
</ins><span class="cx">         detachChild(oldChild);
</span><span class="cx"> 
</span><span class="cx">     if (nextChild)
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/dom/Document.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -1953,7 +1953,7 @@
</span><span class="cx"> 
</span><span class="cx"> void Document::createRenderTree()
</span><span class="cx"> {
</span><del>-    ASSERT(!attached());
</del><ins>+    ASSERT(!renderView());
</ins><span class="cx">     ASSERT(!m_inPageCache);
</span><span class="cx">     ASSERT(!m_axObjectCache || this != topDocument());
</span><span class="cx"> 
</span><span class="lines">@@ -1986,7 +1986,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_frame-&gt;script().updateDocument();
</span><span class="cx"> 
</span><del>-    if (!attached())
</del><ins>+    if (!hasLivingRenderTree())
</ins><span class="cx">         createRenderTree();
</span><span class="cx"> 
</span><span class="cx">     updateViewportArguments();
</span><span class="lines">@@ -2033,7 +2033,7 @@
</span><span class="cx"> 
</span><span class="cx"> void Document::destroyRenderTree()
</span><span class="cx"> {
</span><del>-    ASSERT(attached());
</del><ins>+    ASSERT(hasLivingRenderTree());
</ins><span class="cx">     ASSERT(!m_inPageCache);
</span><span class="cx"> 
</span><span class="cx">     TemporaryChange&lt;bool&gt; change(m_renderTreeBeingDestroyed, true);
</span><span class="lines">@@ -3210,7 +3210,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Don't bother updating, since we haven't loaded all our style info yet
</span><span class="cx">     // and haven't calculated the style selector for the first time.
</span><del>-    if (!attached() || (!m_didCalculateStyleResolver &amp;&amp; !haveStylesheetsLoaded())) {
</del><ins>+    if (!hasLivingRenderTree() || (!m_didCalculateStyleResolver &amp;&amp; !haveStylesheetsLoaded())) {
</ins><span class="cx">         m_styleResolver.clear();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -5360,7 +5360,7 @@
</span><span class="cx"> 
</span><span class="cx"> void Document::webkitWillEnterFullScreenForElement(Element* element)
</span><span class="cx"> {
</span><del>-    if (!attached() || inPageCache())
</del><ins>+    if (!hasLivingRenderTree() || inPageCache())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     ASSERT(element);
</span><span class="lines">@@ -5405,7 +5405,7 @@
</span><span class="cx">     if (!m_fullScreenElement)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (!attached() || inPageCache())
</del><ins>+    if (!hasLivingRenderTree() || inPageCache())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     m_fullScreenElement-&gt;didBecomeFullscreenElement();
</span><span class="lines">@@ -5418,7 +5418,7 @@
</span><span class="cx">     if (!m_fullScreenElement)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (!attached() || inPageCache())
</del><ins>+    if (!hasLivingRenderTree() || inPageCache())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     m_fullScreenElement-&gt;willStopBeingFullscreenElement();
</span><span class="lines">@@ -5429,7 +5429,7 @@
</span><span class="cx">     if (!m_fullScreenElement)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (!attached() || inPageCache())
</del><ins>+    if (!hasLivingRenderTree() || inPageCache())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     m_fullScreenElement-&gt;setContainsFullScreenElementOnAncestorsCrossingFrameBoundaries(false);
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentStyleSheetCollectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/DocumentStyleSheetCollection.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/DocumentStyleSheetCollection.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/dom/DocumentStyleSheetCollection.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -447,7 +447,7 @@
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     }
</span><del>-    if (!m_document.renderView() || !m_document.attached())
</del><ins>+    if (!m_document.hasLivingRenderTree())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;RefPtr&lt;StyleSheet&gt;&gt; activeStyleSheets;
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/dom/Element.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -1096,7 +1096,7 @@
</span><span class="cx">     document().incDOMTreeVersion();
</span><span class="cx"> 
</span><span class="cx">     StyleResolver* styleResolver = document().styleResolverIfExists();
</span><del>-    bool testShouldInvalidateStyle = attached() &amp;&amp; styleResolver &amp;&amp; styleChangeType() &lt; FullStyleChange;
</del><ins>+    bool testShouldInvalidateStyle = inRenderedDocument() &amp;&amp; styleResolver &amp;&amp; styleChangeType() &lt; FullStyleChange;
</ins><span class="cx">     bool shouldInvalidateStyle = false;
</span><span class="cx"> 
</span><span class="cx">     if (isIdAttributeName(name)) {
</span><span class="lines">@@ -1197,7 +1197,7 @@
</span><span class="cx"> void Element::classAttributeChanged(const AtomicString&amp; newClassString)
</span><span class="cx"> {
</span><span class="cx">     StyleResolver* styleResolver = document().styleResolverIfExists();
</span><del>-    bool testShouldInvalidateStyle = attached() &amp;&amp; styleResolver &amp;&amp; styleChangeType() &lt; FullStyleChange;
</del><ins>+    bool testShouldInvalidateStyle = inRenderedDocument() &amp;&amp; styleResolver &amp;&amp; styleChangeType() &lt; FullStyleChange;
</ins><span class="cx">     bool shouldInvalidateStyle = false;
</span><span class="cx"> 
</span><span class="cx">     if (classStringHasClassName(newClassString)) {
</span><span class="lines">@@ -1496,11 +1496,7 @@
</span><span class="cx"> 
</span><span class="cx">     resetNeedsNodeRenderingTraversalSlowPath();
</span><span class="cx"> 
</span><del>-    // FIXME(94905): ShadowHost should be reattached during recalcStyle.
-    // Set some flag here and recreate shadow hosts' renderer in
-    // Element::recalcStyle.
-    if (attached())
-        setNeedsStyleRecalc(ReconstructRenderTree);
</del><ins>+    setNeedsStyleRecalc(ReconstructRenderTree);
</ins><span class="cx"> 
</span><span class="cx">     InspectorInstrumentation::didPushShadowRoot(this, shadowRoot);
</span><span class="cx"> }
</span><span class="lines">@@ -1513,7 +1509,7 @@
</span><span class="cx">     InspectorInstrumentation::willPopShadowRoot(this, oldRoot.get());
</span><span class="cx">     document().removeFocusedNodeOfSubtree(oldRoot.get());
</span><span class="cx"> 
</span><del>-    ASSERT(!oldRoot-&gt;attached());
</del><ins>+    ASSERT(!oldRoot-&gt;renderer());
</ins><span class="cx"> 
</span><span class="cx">     elementRareData()-&gt;clearShadowRoot();
</span><span class="cx"> 
</span><span class="lines">@@ -1627,8 +1623,7 @@
</span><span class="cx">         // Find the first element node following |afterChange|
</span><span class="cx"> 
</span><span class="cx">         // This is the insert/append case.
</span><del>-        if (newFirstElement != elementAfterChange &amp;&amp; elementAfterChange-&gt;attached()
-            &amp;&amp; elementAfterChange-&gt;renderStyle() &amp;&amp; elementAfterChange-&gt;renderStyle()-&gt;firstChildState())
</del><ins>+        if (newFirstElement != elementAfterChange &amp;&amp; elementAfterChange-&gt;renderStyle() &amp;&amp; elementAfterChange-&gt;renderStyle()-&gt;firstChildState())
</ins><span class="cx">             elementAfterChange-&gt;setNeedsStyleRecalc();
</span><span class="cx">             
</span><span class="cx">         // We also have to handle node removal.
</span><span class="lines">@@ -1642,8 +1637,7 @@
</span><span class="cx">         // Find our new last child.
</span><span class="cx">         Element* newLastElement = ElementTraversal::lastChild(parent);
</span><span class="cx"> 
</span><del>-        if (newLastElement != elementBeforeChange &amp;&amp; elementBeforeChange-&gt;attached()
-            &amp;&amp; elementBeforeChange-&gt;renderStyle() &amp;&amp; elementBeforeChange-&gt;renderStyle()-&gt;lastChildState())
</del><ins>+        if (newLastElement != elementBeforeChange &amp;&amp; elementBeforeChange-&gt;renderStyle() &amp;&amp; elementBeforeChange-&gt;renderStyle()-&gt;lastChildState())
</ins><span class="cx">             elementBeforeChange-&gt;setNeedsStyleRecalc();
</span><span class="cx">             
</span><span class="cx">         // We also have to handle node removal.  The parser callback case is similar to node removal as well in that we need to change the last child
</span><span class="lines">@@ -1656,8 +1650,7 @@
</span><span class="cx">     // The + selector.  We need to invalidate the first element following the insertion point.  It is the only possible element
</span><span class="cx">     // that could be affected by this DOM change.
</span><span class="cx">     if (parent-&gt;childrenAffectedByDirectAdjacentRules() &amp;&amp; elementAfterChange) {
</span><del>-        if (elementAfterChange-&gt;attached())
-            elementAfterChange-&gt;setNeedsStyleRecalc();
</del><ins>+        elementAfterChange-&gt;setNeedsStyleRecalc();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Forward positional selectors include the ~ selector, nth-child, nth-of-type, first-of-type and only-of-type.
</span><span class="lines">@@ -1697,8 +1690,7 @@
</span><span class="cx"> void Element::beginParsingChildren()
</span><span class="cx"> {
</span><span class="cx">     clearIsParsingChildrenFinished();
</span><del>-    StyleResolver* styleResolver = document().styleResolverIfExists();
-    if (styleResolver &amp;&amp; attached())
</del><ins>+    if (auto styleResolver = document().styleResolverIfExists())
</ins><span class="cx">         styleResolver-&gt;pushParentElement(this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1707,7 +1699,7 @@
</span><span class="cx">     ContainerNode::finishParsingChildren();
</span><span class="cx">     setIsParsingChildrenFinished();
</span><span class="cx">     checkForSiblingStyleChanges(this, FinishedParsingChildren, ElementTraversal::lastChild(this), nullptr);
</span><del>-    if (StyleResolver* styleResolver = document().styleResolverIfExists())
</del><ins>+    if (auto styleResolver = document().styleResolverIfExists())
</ins><span class="cx">         styleResolver-&gt;popParentElement(this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -2354,7 +2346,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!pseudoElement)
</span><span class="cx">         return;
</span><del>-    if (pseudoElement-&gt;attached())
</del><ins>+    if (pseudoElement-&gt;renderer())
</ins><span class="cx">         Style::detachRenderTree(*pseudoElement);
</span><span class="cx">     ASSERT(pseudoElement-&gt;hostElement());
</span><span class="cx">     pseudoElement-&gt;clearHostElement();
</span><span class="lines">@@ -2815,7 +2807,8 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (oldValue != newValue) {
</span><del>-        if (attached() &amp;&amp; document().styleResolverIfExists() &amp;&amp; document().styleResolverIfExists()-&gt;hasSelectorForAttribute(name.localName()))
</del><ins>+        auto styleResolver = document().styleResolverIfExists();
+        if (styleResolver &amp;&amp; styleResolver-&gt;hasSelectorForAttribute(name.localName()))
</ins><span class="cx">             setNeedsStyleRecalc();
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/dom/Node.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -678,7 +678,7 @@
</span><span class="cx"> void Node::setNeedsStyleRecalc(StyleChangeType changeType)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(changeType != NoStyleChange);
</span><del>-    if (changeType != ReconstructRenderTree &amp;&amp; !attached()) // changed compared to what?
</del><ins>+    if (!inRenderedDocument())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     StyleChangeType existingChangeType = styleChangeType();
</span><span class="lines">@@ -2302,11 +2302,9 @@
</span><span class="cx">         node-&gt;incrementConnectedSubframeCount(count);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Node::attached() const
</del><ins>+bool Node::inRenderedDocument() const
</ins><span class="cx"> {
</span><del>-    // FIXME: This should go away along with the whole vague 'attached' concept. The conditions here produce
-    // roughly the old behavior based on an explicit attached bit.
-    return inDocument() &amp;&amp; document().renderView() &amp;&amp; (renderer() || styleChangeType() != ReconstructRenderTree);
</del><ins>+    return inDocument() &amp;&amp; document().hasLivingRenderTree();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.h (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.h        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/dom/Node.h        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -311,7 +311,7 @@
</span><span class="cx">     bool isUserActionElement() const { return getFlag(IsUserActionElement); }
</span><span class="cx">     void setUserActionElement(bool flag) { setFlag(flag, IsUserActionElement); }
</span><span class="cx"> 
</span><del>-    bool attached() const;
</del><ins>+    bool inRenderedDocument() const;
</ins><span class="cx">     bool needsStyleRecalc() const { return styleChangeType() != NoStyleChange; }
</span><span class="cx">     StyleChangeType styleChangeType() const { return static_cast&lt;StyleChangeType&gt;(m_nodeFlags &amp; StyleChangeMask); }
</span><span class="cx">     bool childNeedsStyleRecalc() const { return getFlag(ChildNeedsStyleRecalcFlag); }
</span></span></pre></div>
<a id="trunkSourceWebCoredomShadowRootcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/ShadowRoot.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/ShadowRoot.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/dom/ShadowRoot.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> #include &quot;ElementTraversal.h&quot;
</span><span class="cx"> #include &quot;HistogramSupport.h&quot;
</span><span class="cx"> #include &quot;InsertionPoint.h&quot;
</span><ins>+#include &quot;RenderElement.h&quot;
</ins><span class="cx"> #include &quot;RuntimeEnabledFeatures.h&quot;
</span><span class="cx"> #include &quot;StyleResolver.h&quot;
</span><span class="cx"> #include &quot;markup.h&quot;
</span><span class="lines">@@ -139,7 +140,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (value != m_resetStyleInheritance) {
</span><span class="cx">         m_resetStyleInheritance = value;
</span><del>-        if (attached() &amp;&amp; hostElement())
</del><ins>+        if (renderer() &amp;&amp; hostElement())
</ins><span class="cx">             Style::resolveTree(*hostElement(), Style::Force);
</span><span class="cx">     }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingAppendNodeCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/AppendNodeCommand.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/AppendNodeCommand.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/editing/AppendNodeCommand.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #include &quot;AXObjectCache.h&quot;
</span><span class="cx"> #include &quot;Document.h&quot;
</span><span class="cx"> #include &quot;ExceptionCodePlaceholder.h&quot;
</span><ins>+#include &quot;RenderElement.h&quot;
</ins><span class="cx"> #include &quot;htmlediting.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -42,7 +43,7 @@
</span><span class="cx">     ASSERT(m_node);
</span><span class="cx">     ASSERT(!m_node-&gt;parentNode());
</span><span class="cx"> 
</span><del>-    ASSERT(m_parent-&gt;hasEditableStyle() || !m_parent-&gt;attached());
</del><ins>+    ASSERT(m_parent-&gt;hasEditableStyle() || !m_parent-&gt;renderer());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void sendAXTextChangedIgnoringLineBreaks(Node* node, AXObjectCache::AXTextChange textChange)
</span><span class="lines">@@ -58,7 +59,7 @@
</span><span class="cx"> 
</span><span class="cx"> void AppendNodeCommand::doApply()
</span><span class="cx"> {
</span><del>-    if (!m_parent-&gt;hasEditableStyle() &amp;&amp; m_parent-&gt;attached())
</del><ins>+    if (!m_parent-&gt;hasEditableStyle() &amp;&amp; m_parent-&gt;renderer())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     m_parent-&gt;appendChild(m_node.get(), IGNORE_EXCEPTION);
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingInsertNodeBeforeCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/InsertNodeBeforeCommand.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/InsertNodeBeforeCommand.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/editing/InsertNodeBeforeCommand.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx">     ASSERT(m_refChild);
</span><span class="cx">     ASSERT(m_refChild-&gt;parentNode());
</span><span class="cx"> 
</span><del>-    ASSERT(m_refChild-&gt;parentNode()-&gt;hasEditableStyle() || !m_refChild-&gt;parentNode()-&gt;attached());
</del><ins>+    ASSERT(m_refChild-&gt;parentNode()-&gt;hasEditableStyle() || !m_refChild-&gt;parentNode()-&gt;renderer());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InsertNodeBeforeCommand::doApply()
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingRemoveNodeCommandcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/RemoveNodeCommand.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/RemoveNodeCommand.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/editing/RemoveNodeCommand.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ExceptionCodePlaceholder.h&quot;
</span><span class="cx"> #include &quot;Node.h&quot;
</span><ins>+#include &quot;RenderElement.h&quot;
</ins><span class="cx"> #include &lt;wtf/Assertions.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -45,9 +46,9 @@
</span><span class="cx"> {
</span><span class="cx">     ContainerNode* parent = m_node-&gt;parentNode();
</span><span class="cx">     if (!parent || (m_shouldAssumeContentIsAlwaysEditable == DoNotAssumeContentIsAlwaysEditable
</span><del>-        &amp;&amp; !parent-&gt;isContentEditable(Node::UserSelectAllIsAlwaysNonEditable) &amp;&amp; parent-&gt;attached()))
</del><ins>+        &amp;&amp; !parent-&gt;isContentEditable(Node::UserSelectAllIsAlwaysNonEditable) &amp;&amp; parent-&gt;renderer()))
</ins><span class="cx">         return;
</span><del>-    ASSERT(parent-&gt;isContentEditable(Node::UserSelectAllIsAlwaysNonEditable) || !parent-&gt;attached());
</del><ins>+    ASSERT(parent-&gt;isContentEditable(Node::UserSelectAllIsAlwaysNonEditable) || !parent-&gt;renderer());
</ins><span class="cx"> 
</span><span class="cx">     m_parent = parent;
</span><span class="cx">     m_refChild = m_node-&gt;nextSibling();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLDetailsElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLDetailsElement.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLDetailsElement.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/html/HTMLDetailsElement.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -136,7 +136,7 @@
</span><span class="cx">     if (name == openAttr) {
</span><span class="cx">         bool oldValue = m_isOpen;
</span><span class="cx">         m_isOpen = !value.isNull();
</span><del>-        if (oldValue != m_isOpen &amp;&amp; attached())
</del><ins>+        if (oldValue != m_isOpen &amp;&amp; renderer())
</ins><span class="cx">             Style::reattachRenderTree(*this);
</span><span class="cx">     } else
</span><span class="cx">         HTMLElement::parseAttribute(name, value);
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLPlugInImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -262,7 +262,7 @@
</span><span class="cx">     // FIXME: Because of the insanity that is HTMLPlugInImageElement::willRecalcStyle,
</span><span class="cx">     // we can end up detaching during an attach() call, before we even have a
</span><span class="cx">     // renderer.  In that case, don't mark the widget for update.
</span><del>-    if (attached() &amp;&amp; renderer() &amp;&amp; !useFallbackContent()) {
</del><ins>+    if (renderer() &amp;&amp; !useFallbackContent()) {
</ins><span class="cx">         // Update the widget the next time we attach (detaching destroys the plugin).
</span><span class="cx">         setNeedsWidgetUpdate(true);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLSelectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLSelectElement.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLSelectElement.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/html/HTMLSelectElement.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -315,7 +315,7 @@
</span><span class="cx"> 
</span><span class="cx">         m_size = size;
</span><span class="cx">         setNeedsValidityCheck();
</span><del>-        if (m_size != oldSize &amp;&amp; attached()) {
</del><ins>+        if (m_size != oldSize &amp;&amp; renderer()) {
</ins><span class="cx">             Style::reattachRenderTree(*this);
</span><span class="cx">             setRecalcListItems();
</span><span class="cx">         }
</span><span class="lines">@@ -1046,7 +1046,7 @@
</span><span class="cx">     bool oldUsesMenuList = usesMenuList();
</span><span class="cx">     m_multiple = !value.isNull();
</span><span class="cx">     setNeedsValidityCheck();
</span><del>-    if (oldUsesMenuList != usesMenuList() &amp;&amp; attached())
</del><ins>+    if (oldUsesMenuList != usesMenuList() &amp;&amp; renderer())
</ins><span class="cx">         Style::reattachRenderTree(*this);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLTreeBuildercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -1633,12 +1633,6 @@
</span><span class="cx">         //        be in HTMLConstructionSite. My guess is that steps 11--15
</span><span class="cx">         //        should all be in some HTMLConstructionSite function.
</span><span class="cx">         furthestBlockElement-&gt;parserAppendChild(newItem-&gt;element());
</span><del>-        // FIXME: Why is this attach logic necessary? Style resolve should attach us if needed.
-        if (furthestBlockElement-&gt;attached() &amp;&amp; !newItem-&gt;element()-&gt;attached()) {
-            // Notice that newItem-&gt;element() might already be attached if, for example, one of the reparented
-            // children is a style element, which attaches itself automatically.
-            Style::attachRenderTree(*newItem-&gt;element());
-        }
</del><span class="cx">         // 14.
</span><span class="cx">         m_tree.activeFormattingElements()-&gt;swapTo(formattingElement, newItem, bookmark);
</span><span class="cx">         // 15.
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMediaControlElementTypescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MediaControlElementTypes.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MediaControlElementTypes.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/html/shadow/MediaControlElementTypes.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -258,7 +258,7 @@
</span><span class="cx">     if (event-&gt;isMouseEvent() &amp;&amp; static_cast&lt;MouseEvent*&gt;(event)-&gt;button())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (!attached())
</del><ins>+    if (!renderer())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     MediaControlInputElement::defaultEventHandler(event);
</span><span class="lines">@@ -276,7 +276,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool MediaControlVolumeSliderElement::willRespondToMouseMoveEvents()
</span><span class="cx"> {
</span><del>-    if (!attached())
</del><ins>+    if (!renderer())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     return MediaControlInputElement::willRespondToMouseMoveEvents();
</span><span class="lines">@@ -284,7 +284,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool MediaControlVolumeSliderElement::willRespondToMouseClickEvents()
</span><span class="cx"> {
</span><del>-    if (!attached())
</del><ins>+    if (!renderer())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     return MediaControlInputElement::willRespondToMouseClickEvents();
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowMediaControlElementscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/MediaControlElements.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/MediaControlElements.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/html/shadow/MediaControlElements.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -942,7 +942,7 @@
</span><span class="cx">     if (event-&gt;isMouseEvent() &amp;&amp; static_cast&lt;MouseEvent*&gt;(event)-&gt;button())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (!attached())
</del><ins>+    if (!renderer())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (event-&gt;type() == eventNames().mousedownEvent)
</span><span class="lines">@@ -968,7 +968,7 @@
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx"> bool MediaControlTimelineElement::willRespondToMouseClickEvents()
</span><span class="cx"> {
</span><del>-    if (!attached())
</del><ins>+    if (!renderer())
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     return true;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowSliderThumbElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -519,7 +519,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool SliderThumbElement::shouldAcceptTouchEvents()
</span><span class="cx"> {
</span><del>-    return attached() &amp;&amp; !isDisabledFormControl();
</del><ins>+    return renderer() &amp;&amp; !isDisabledFormControl();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void SliderThumbElement::registerForTouchEvents()
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoader.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -617,7 +617,7 @@
</span><span class="cx">     if (!m_frame.document()-&gt;inPageCache()) {
</span><span class="cx">         m_frame.document()-&gt;cancelParsing();
</span><span class="cx">         m_frame.document()-&gt;stopActiveDOMObjects();
</span><del>-        if (m_frame.document()-&gt;attached()) {
</del><ins>+        if (m_frame.document()-&gt;hasLivingRenderTree()) {
</ins><span class="cx">             m_frame.document()-&gt;prepareForDestruction();
</span><span class="cx">             m_frame.document()-&gt;removeFocusedNodeOfSubtree(m_frame.document());
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderHistoryControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/HistoryController.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/HistoryController.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/loader/HistoryController.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -181,7 +181,7 @@
</span><span class="cx">     Document* document = m_frame.document();
</span><span class="cx">     ASSERT(document);
</span><span class="cx">     
</span><del>-    if (item-&gt;isCurrentDocument(document) &amp;&amp; document-&gt;attached()) {
</del><ins>+    if (item-&gt;isCurrentDocument(document) &amp;&amp; document-&gt;hasLivingRenderTree()) {
</ins><span class="cx">         LOG(Loading, &quot;WebCoreLoading %s: saving form state to %p&quot;, m_frame.tree().uniqueName().string().utf8().data(), item);
</span><span class="cx">         item-&gt;setDocumentState(document-&gt;formElementsState());
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderImageLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/ImageLoader.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/ImageLoader.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/loader/ImageLoader.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -401,7 +401,7 @@
</span><span class="cx">         return;
</span><span class="cx">     if (!m_image)
</span><span class="cx">         return;
</span><del>-    if (!m_element-&gt;document().attached())
</del><ins>+    if (!m_element-&gt;document().hasLivingRenderTree())
</ins><span class="cx">         return;
</span><span class="cx">     m_hasPendingBeforeLoadEvent = false;
</span><span class="cx">     if (m_element-&gt;dispatchBeforeLoadEvent(m_image-&gt;url())) {
</span><span class="lines">@@ -431,7 +431,7 @@
</span><span class="cx">     if (!m_image)
</span><span class="cx">         return;
</span><span class="cx">     m_hasPendingLoadEvent = false;
</span><del>-    if (element()-&gt;document().attached())
</del><ins>+    if (m_element-&gt;document().hasLivingRenderTree())
</ins><span class="cx">         dispatchLoadEvent();
</span><span class="cx"> 
</span><span class="cx">     // Only consider updating the protection ref-count of the Element immediately before returning
</span><span class="lines">@@ -444,8 +444,8 @@
</span><span class="cx">     if (!m_hasPendingErrorEvent)
</span><span class="cx">         return;
</span><span class="cx">     m_hasPendingErrorEvent = false;
</span><del>-    if (element()-&gt;document().attached())
-        element()-&gt;dispatchEvent(Event::create(eventNames().errorEvent, false, false));
</del><ins>+    if (m_element-&gt;document().hasLivingRenderTree())
+        m_element-&gt;dispatchEvent(Event::create(eventNames().errorEvent, false, false));
</ins><span class="cx"> 
</span><span class="cx">     // Only consider updating the protection ref-count of the Element immediately before returning
</span><span class="cx">     // from this function as doing so might result in the destruction of this ImageLoader.
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderPlaceholderDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/PlaceholderDocument.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/PlaceholderDocument.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/loader/PlaceholderDocument.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx"> 
</span><span class="cx"> void PlaceholderDocument::createRenderTree()
</span><span class="cx"> {
</span><del>-    ASSERT(!attached());
</del><ins>+    ASSERT(!renderView());
</ins><span class="cx"> 
</span><span class="cx">     for (auto&amp; child : elementChildren(*this))
</span><span class="cx">         Style::attachRenderTree(child);
</span></span></pre></div>
<a id="trunkSourceWebCorepageFramecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Frame.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Frame.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/page/Frame.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -271,7 +271,7 @@
</span><span class="cx">     // Prepare for destruction now, so any unload event handlers get run and the DOMWindow is
</span><span class="cx">     // notified. If we wait until the view is destroyed, then things won't be hooked up enough for
</span><span class="cx">     // these calls to work.
</span><del>-    if (!view &amp;&amp; m_doc &amp;&amp; m_doc-&gt;attached() &amp;&amp; !m_doc-&gt;inPageCache())
</del><ins>+    if (!view &amp;&amp; m_doc &amp;&amp; m_doc-&gt;hasLivingRenderTree() &amp;&amp; !m_doc-&gt;inPageCache())
</ins><span class="cx">         m_doc-&gt;prepareForDestruction();
</span><span class="cx">     
</span><span class="cx">     if (m_view)
</span><span class="lines">@@ -296,7 +296,7 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(!newDocument || newDocument-&gt;frame() == this);
</span><span class="cx"> 
</span><del>-    if (m_doc &amp;&amp; m_doc-&gt;attached() &amp;&amp; !m_doc-&gt;inPageCache())
</del><ins>+    if (m_doc &amp;&amp; m_doc-&gt;hasLivingRenderTree() &amp;&amp; !m_doc-&gt;inPageCache())
</ins><span class="cx">         m_doc-&gt;prepareForDestruction();
</span><span class="cx"> 
</span><span class="cx">     m_doc = newDocument.get();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderCountercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderCounter.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderCounter.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/rendering/RenderCounter.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -560,7 +560,7 @@
</span><span class="cx">         node = node-&gt;parentNode();
</span><span class="cx">     else
</span><span class="cx">         node = renderer-&gt;generatingNode();
</span><del>-    if (node &amp;&amp; !node-&gt;attached())
</del><ins>+    if (node &amp;&amp; !node-&gt;renderer())
</ins><span class="cx">         return; // No need to update if the parent is not attached yet
</span><span class="cx">     for (RenderObject* descendant = renderer; descendant; descendant = descendant-&gt;nextInPreOrder(renderer))
</span><span class="cx">         updateCounters(descendant);
</span><span class="lines">@@ -569,7 +569,7 @@
</span><span class="cx"> void RenderCounter::rendererStyleChanged(RenderObject* renderer, const RenderStyle* oldStyle, const RenderStyle* newStyle)
</span><span class="cx"> {
</span><span class="cx">     Node* node = renderer-&gt;generatingNode();
</span><del>-    if (!node || !node-&gt;attached())
</del><ins>+    if (!node || !node-&gt;renderer())
</ins><span class="cx">         return; // cannot have generated content or if it can have, it will be handled during attaching
</span><span class="cx">     const CounterDirectiveMap* newCounterDirectives;
</span><span class="cx">     const CounterDirectiveMap* oldCounterDirectives;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderMenuListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderMenuList.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMenuList.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/rendering/RenderMenuList.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -436,7 +436,7 @@
</span><span class="cx"> 
</span><span class="cx">     HTMLElement* listItem = selectElement().listItems()[listIndex];
</span><span class="cx">     ASSERT(listItem);
</span><del>-    if (listItem-&gt;attached()) {
</del><ins>+    if (listItem-&gt;renderer()) {
</ins><span class="cx">         if (AccessibilityMenuList* menuList = toAccessibilityMenuList(document().axObjectCache()-&gt;get(this)))
</span><span class="cx">             menuList-&gt;didUpdateActiveOption(optionIndex);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebCorestyleStyleResolveTreecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/style/StyleResolveTree.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/style/StyleResolveTree.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/style/StyleResolveTree.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -135,14 +135,14 @@
</span><span class="cx">     // Avoid an O(N^2) problem with this function by not checking for
</span><span class="cx">     // nextRenderer() when the parent element hasn't attached yet.
</span><span class="cx">     // FIXME: Why would we get here anyway if parent is not attached?
</span><del>-    if (renderingParentNode &amp;&amp; !renderingParentNode-&gt;attached())
-        return 0;
</del><ins>+    if (renderingParentNode &amp;&amp; !renderingParentNode-&gt;renderer())
+        return nullptr;
</ins><span class="cx">     for (Node* sibling = NodeRenderingTraversal::nextSibling(&amp;element); sibling; sibling = NodeRenderingTraversal::nextSibling(sibling)) {
</span><span class="cx">         RenderObject* renderer = sibling-&gt;renderer();
</span><span class="cx">         if (renderer &amp;&amp; !isRendererReparented(renderer))
</span><span class="cx">             return renderer;
</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 bool shouldCreateRenderer(const Element&amp; element, const ContainerNode* renderingParent)
</span><span class="lines">@@ -302,7 +302,7 @@
</span><span class="cx">     // the current node gaining or losing the renderer. This can only affect white space text nodes.
</span><span class="cx">     for (Node* sibling = NodeRenderingTraversal::nextSibling(&amp;current); sibling; sibling = NodeRenderingTraversal::nextSibling(sibling)) {
</span><span class="cx">         // Siblings haven't been attached yet. They will be handled normally when they are.
</span><del>-        if (!sibling-&gt;attached())
</del><ins>+        if (sibling-&gt;styleChangeType() == ReconstructRenderTree)
</ins><span class="cx">             return;
</span><span class="cx">         if (sibling-&gt;isElementNode()) {
</span><span class="cx">             // Text renderers beyond rendered elements can't be affected.
</span><span class="lines">@@ -416,8 +416,6 @@
</span><span class="cx"> 
</span><span class="cx"> void updateTextRendererAfterContentChange(Text&amp; textNode, unsigned offsetOfReplacedData, unsigned lengthOfReplacedData)
</span><span class="cx"> {
</span><del>-    if (!textNode.attached())
-        return;
</del><span class="cx">     RenderText* textRenderer = textNode.renderer();
</span><span class="cx">     if (!textRenderer) {
</span><span class="cx">         attachTextRenderer(textNode);
</span><span class="lines">@@ -896,7 +894,7 @@
</span><span class="cx"> 
</span><span class="cx"> void reattachRenderTree(Element&amp; current)
</span><span class="cx"> {
</span><del>-    if (current.attached())
</del><ins>+    if (current.renderer())
</ins><span class="cx">         detachRenderTree(current, ReattachDetach);
</span><span class="cx">     attachRenderTree(current);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/testing/Internals.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -1924,6 +1924,7 @@
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;MallocStatistics&gt; Internals::mallocStatistics() const
</span><span class="cx"> {
</span><ins>+//    WTF::releaseFastMallocFreeMemory();
</ins><span class="cx">     return MallocStatistics::create();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorexmlXMLErrorscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/XMLErrors.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/XMLErrors.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/xml/XMLErrors.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -127,8 +127,6 @@
</span><span class="cx">         RefPtr&lt;Element&gt; body = m_document-&gt;createElement(bodyTag, true);
</span><span class="cx">         rootElement-&gt;parserAppendChild(body);
</span><span class="cx">         m_document-&gt;parserAppendChild(rootElement);
</span><del>-        if (m_document-&gt;attached() &amp;&amp; !rootElement-&gt;attached())
-            Style::attachRenderTree(*rootElement);
</del><span class="cx">         documentElement = body.get();
</span><span class="cx">     }
</span><span class="cx"> #if ENABLE(SVG)
</span><span class="lines">@@ -138,13 +136,11 @@
</span><span class="cx">         rootElement-&gt;parserAppendChild(body);
</span><span class="cx"> 
</span><span class="cx">         documentElement-&gt;parentNode()-&gt;parserRemoveChild(*documentElement);
</span><del>-        if (documentElement-&gt;attached())
-            Style::detachRenderTree(*documentElement);
</del><span class="cx"> 
</span><span class="cx">         body-&gt;parserAppendChild(documentElement);
</span><span class="cx">         m_document-&gt;parserAppendChild(rootElement.get());
</span><span class="cx"> 
</span><del>-        if (m_document-&gt;attached())
</del><ins>+        if (m_document-&gt;hasLivingRenderTree())
</ins><span class="cx">             // In general, rootElement shouldn't be attached right now, but it will be if there is a style element
</span><span class="cx">             // in the SVG content.
</span><span class="cx">             Style::reattachRenderTree(*rootElement);
</span><span class="lines">@@ -173,9 +169,6 @@
</span><span class="cx">     else
</span><span class="cx">         documentElement-&gt;parserAppendChild(reportElement);
</span><span class="cx"> 
</span><del>-    if (documentElement-&gt;attached() &amp;&amp; !reportElement-&gt;attached())
-        Style::attachRenderTree(*reportElement);
-
</del><span class="cx">     m_document-&gt;updateStyleIfNeeded();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorexmlparserXMLDocumentParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/parser/XMLDocumentParser.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/parser/XMLDocumentParser.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/xml/parser/XMLDocumentParser.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -166,7 +166,7 @@
</span><span class="cx">     Vector&lt;xmlChar&gt; empty;
</span><span class="cx">     m_bufferedText.swap(empty);
</span><span class="cx"> 
</span><del>-    if (m_view &amp;&amp; m_leafTextNode-&gt;parentNode() &amp;&amp; m_leafTextNode-&gt;parentNode()-&gt;attached() &amp;&amp; !m_leafTextNode-&gt;attached())
</del><ins>+    if (m_view &amp;&amp; m_leafTextNode-&gt;parentNode() &amp;&amp; m_leafTextNode-&gt;parentNode()-&gt;renderer() &amp;&amp; !m_leafTextNode-&gt;renderer())
</ins><span class="cx">         Style::attachTextRenderer(*m_leafTextNode);
</span><span class="cx"> 
</span><span class="cx">     m_leafTextNode = 0;
</span></span></pre></div>
<a id="trunkSourceWebCorexmlparserXMLDocumentParserLibxml2cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp (161126 => 161127)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp        2013-12-29 21:50:55 UTC (rev 161126)
+++ trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp        2013-12-29 22:40:04 UTC (rev 161127)
</span><span class="lines">@@ -47,6 +47,7 @@
</span><span class="cx"> #include &quot;HTMLTemplateElement.h&quot;
</span><span class="cx"> #include &quot;Page.h&quot;
</span><span class="cx"> #include &quot;ProcessingInstruction.h&quot;
</span><ins>+#include &quot;RenderElement.h&quot;
</ins><span class="cx"> #include &quot;ResourceError.h&quot;
</span><span class="cx"> #include &quot;ResourceRequest.h&quot;
</span><span class="cx"> #include &quot;ResourceResponse.h&quot;
</span><span class="lines">@@ -854,7 +855,7 @@
</span><span class="cx">     pushCurrentNode(newElement.get());
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    if (m_view &amp;&amp; currentNode-&gt;attached() &amp;&amp; !newElement-&gt;attached())
</del><ins>+    if (m_view &amp;&amp; currentNode-&gt;renderer() &amp;&amp; !newElement-&gt;renderer())
</ins><span class="cx">         Style::attachRenderTree(*newElement);
</span><span class="cx"> 
</span><span class="cx">     if (newElement-&gt;hasTagName(HTMLNames::htmlTag))
</span><span class="lines">@@ -1030,7 +1031,7 @@
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;CDATASection&gt; newNode = CDATASection::create(m_currentNode-&gt;document(), toString(s, len));
</span><span class="cx">     m_currentNode-&gt;parserAppendChild(newNode.get());
</span><del>-    if (m_view &amp;&amp; !newNode-&gt;attached())
</del><ins>+    if (m_view)
</ins><span class="cx">         Style::attachTextRenderer(*newNode);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>