Changeset 161127 in webkit


Ignore:
Timestamp:
Dec 29, 2013, 2:40:04 PM (11 years ago)
Author:
Antti Koivisto
Message:

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.

Location:
trunk
Files:
34 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r161105 r161127  
     12013-12-29  Antti Koivisto  <antti@apple.com>
     2
     3        Remove Node::attached()
     4        https://bugs.webkit.org/show_bug.cgi?id=126276
     5       
     6        Reviewed by Sam Weinig.
     7
     8        * platform/mac/fast/table/dynamic-caption-add-before-child-expected.png:
     9        * platform/mac/fast/table/dynamic-caption-add-before-child-expected.txt:
     10       
     11            This test result change is a progression. Dynamic captions are now correctly in document order.
     12
    1132013-12-27  Gavin Barraclough  <barraclough@apple.com>
    214
  • trunk/LayoutTests/platform/mac/fast/table/dynamic-caption-add-before-child-expected.txt

    r100305 r161127  
    55    RenderBody {body} at (8,8) size 784x216
    66      RenderTable {table} at (0,0) size 81x216
    7         RenderBlock {caption} at (0,144) size 81x72
     7        RenderBlock {caption} at (0,0) size 81x72
    88          RenderText {#text} at (19,0) size 81x72
    99            text run at (19,0) width 43: "PASS:"
     
    1111            text run at (21,36) width 39: "added"
    1212            text run at (17,54) width 47: "caption"
    13         RenderBlock {caption} at (0,0) size 81x36
     13        RenderBlock {caption} at (0,72) size 81x36
    1414          RenderText {#text} at (2,0) size 77x36
    1515            text run at (2,0) width 77: "PASS: Text"
    1616            text run at (3,18) width 75: "in caption 1"
    17 layer at (8,44) size 81x36
    18   RenderBlock {caption} at (0,36) size 81x36
    19     RenderText {#text} at (2,0) size 77x36
    20       text run at (2,0) width 77: "PASS: Text"
    21       text run at (3,18) width 75: "in caption 2"
    22 layer at (8,80) size 81x36
    23   RenderBlock {caption} at (0,72) size 81x36
    24     RenderText {#text} at (2,0) size 77x36
    25       text run at (2,0) width 77: "PASS: Text"
    26       text run at (3,18) width 75: "in caption 3"
    2717layer at (8,116) size 81x36
    2818  RenderBlock {caption} at (0,108) size 81x36
    2919    RenderText {#text} at (2,0) size 77x36
    3020      text run at (2,0) width 77: "PASS: Text"
     21      text run at (3,18) width 75: "in caption 2"
     22layer at (8,152) size 81x36
     23  RenderBlock {caption} at (0,144) size 81x36
     24    RenderText {#text} at (2,0) size 77x36
     25      text run at (2,0) width 77: "PASS: Text"
     26      text run at (3,18) width 75: "in caption 3"
     27layer at (8,188) size 81x36
     28  RenderBlock {caption} at (0,180) size 81x36
     29    RenderText {#text} at (2,0) size 77x36
     30      text run at (2,0) width 77: "PASS: Text"
    3131      text run at (3,18) width 75: "in caption 4"
  • trunk/Source/WebCore/ChangeLog

    r161123 r161127  
     12013-12-29  Antti Koivisto  <antti@apple.com>
     2
     3        Remove Node::attached()
     4        https://bugs.webkit.org/show_bug.cgi?id=126276
     5
     6        Reviewed by Sam Weinig.
     7
     8        Node::attached() is poorly defined. Replace it with renderer() and inRenderedDocument() tests as appropriate.
     9       
     10        Also remove some unnecessary explicit attachRenderTree/detachRenderTree calls from the tree builders.
     11
    1122013-12-29  Andreas Kling  <akling@apple.com>
    213
  • trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp

    r159026 r161127  
    7171AccessibilityMenuListOption* AccessibilityMenuListPopup::menuListOptionAccessibilityObject(HTMLElement* element) const
    7272{
    73     if (!element || !isHTMLOptionElement(element) || !element->attached())
     73    if (!element || !isHTMLOptionElement(element) || !element->inRenderedDocument())
    7474        return 0;
    7575
     
    119119    for (size_t i = m_children.size(); i > 0 ; --i) {
    120120        AccessibilityObject* child = m_children[i - 1].get();
    121         if (child->actionElement() && !child->actionElement()->attached()) {
     121        if (child->actionElement() && !child->actionElement()->inRenderedDocument()) {
    122122            child->detachFromParent();
    123123            cache->remove(child->axObjectID());
  • trunk/Source/WebCore/dom/ContainerNode.cpp

    r161097 r161127  
    141141    for (unsigned i = 0; i < children.size(); ++i) {
    142142        Node& child = children[i].get();
    143         if (child.attached())
     143        if (child.renderer())
    144144            detachChild(child);
    145145
     
    151151        // Can we do better?
    152152        treeScope().adoptIfNeeded(adoptedChild.get());
    153         if (attached() && !adoptedChild->attached())
     153        if (renderer() && !adoptedChild->renderer())
    154154            attachChild(*adoptedChild.get());
    155155    }
     
    595595
    596596    // Remove from rendering tree
    597     if (oldChild.attached())
     597    // FIXME: Get rid of the named flow test.
     598    if (oldChild.renderer() || oldChild.inNamedFlow())
    598599        detachChild(oldChild);
    599600
  • trunk/Source/WebCore/dom/Document.cpp

    r161097 r161127  
    19541954void Document::createRenderTree()
    19551955{
    1956     ASSERT(!attached());
     1956    ASSERT(!renderView());
    19571957    ASSERT(!m_inPageCache);
    19581958    ASSERT(!m_axObjectCache || this != topDocument());
     
    19871987    m_frame->script().updateDocument();
    19881988
    1989     if (!attached())
     1989    if (!hasLivingRenderTree())
    19901990        createRenderTree();
    19911991
     
    20342034void Document::destroyRenderTree()
    20352035{
    2036     ASSERT(attached());
     2036    ASSERT(hasLivingRenderTree());
    20372037    ASSERT(!m_inPageCache);
    20382038
     
    32113211    // Don't bother updating, since we haven't loaded all our style info yet
    32123212    // and haven't calculated the style selector for the first time.
    3213     if (!attached() || (!m_didCalculateStyleResolver && !haveStylesheetsLoaded())) {
     3213    if (!hasLivingRenderTree() || (!m_didCalculateStyleResolver && !haveStylesheetsLoaded())) {
    32143214        m_styleResolver.clear();
    32153215        return;
     
    53615361void Document::webkitWillEnterFullScreenForElement(Element* element)
    53625362{
    5363     if (!attached() || inPageCache())
     5363    if (!hasLivingRenderTree() || inPageCache())
    53645364        return;
    53655365
     
    54065406        return;
    54075407
    5408     if (!attached() || inPageCache())
     5408    if (!hasLivingRenderTree() || inPageCache())
    54095409        return;
    54105410
     
    54195419        return;
    54205420
    5421     if (!attached() || inPageCache())
     5421    if (!hasLivingRenderTree() || inPageCache())
    54225422        return;
    54235423
     
    54305430        return;
    54315431
    5432     if (!attached() || inPageCache())
     5432    if (!hasLivingRenderTree() || inPageCache())
    54335433        return;
    54345434
  • trunk/Source/WebCore/dom/DocumentStyleSheetCollection.cpp

    r159416 r161127  
    448448
    449449    }
    450     if (!m_document.renderView() || !m_document.attached())
     450    if (!m_document.hasLivingRenderTree())
    451451        return false;
    452452
  • trunk/Source/WebCore/dom/Element.cpp

    r161037 r161127  
    10971097
    10981098    StyleResolver* styleResolver = document().styleResolverIfExists();
    1099     bool testShouldInvalidateStyle = attached() && styleResolver && styleChangeType() < FullStyleChange;
     1099    bool testShouldInvalidateStyle = inRenderedDocument() && styleResolver && styleChangeType() < FullStyleChange;
    11001100    bool shouldInvalidateStyle = false;
    11011101
     
    11981198{
    11991199    StyleResolver* styleResolver = document().styleResolverIfExists();
    1200     bool testShouldInvalidateStyle = attached() && styleResolver && styleChangeType() < FullStyleChange;
     1200    bool testShouldInvalidateStyle = inRenderedDocument() && styleResolver && styleChangeType() < FullStyleChange;
    12011201    bool shouldInvalidateStyle = false;
    12021202
     
    14971497    resetNeedsNodeRenderingTraversalSlowPath();
    14981498
    1499     // FIXME(94905): ShadowHost should be reattached during recalcStyle.
    1500     // Set some flag here and recreate shadow hosts' renderer in
    1501     // Element::recalcStyle.
    1502     if (attached())
    1503         setNeedsStyleRecalc(ReconstructRenderTree);
     1499    setNeedsStyleRecalc(ReconstructRenderTree);
    15041500
    15051501    InspectorInstrumentation::didPushShadowRoot(this, shadowRoot);
     
    15141510    document().removeFocusedNodeOfSubtree(oldRoot.get());
    15151511
    1516     ASSERT(!oldRoot->attached());
     1512    ASSERT(!oldRoot->renderer());
    15171513
    15181514    elementRareData()->clearShadowRoot();
     
    16281624
    16291625        // This is the insert/append case.
    1630         if (newFirstElement != elementAfterChange && elementAfterChange->attached()
    1631             && elementAfterChange->renderStyle() && elementAfterChange->renderStyle()->firstChildState())
     1626        if (newFirstElement != elementAfterChange && elementAfterChange->renderStyle() && elementAfterChange->renderStyle()->firstChildState())
    16321627            elementAfterChange->setNeedsStyleRecalc();
    16331628           
     
    16431638        Element* newLastElement = ElementTraversal::lastChild(parent);
    16441639
    1645         if (newLastElement != elementBeforeChange && elementBeforeChange->attached()
    1646             && elementBeforeChange->renderStyle() && elementBeforeChange->renderStyle()->lastChildState())
     1640        if (newLastElement != elementBeforeChange && elementBeforeChange->renderStyle() && elementBeforeChange->renderStyle()->lastChildState())
    16471641            elementBeforeChange->setNeedsStyleRecalc();
    16481642           
     
    16571651    // that could be affected by this DOM change.
    16581652    if (parent->childrenAffectedByDirectAdjacentRules() && elementAfterChange) {
    1659         if (elementAfterChange->attached())
    1660             elementAfterChange->setNeedsStyleRecalc();
     1653        elementAfterChange->setNeedsStyleRecalc();
    16611654    }
    16621655
     
    16981691{
    16991692    clearIsParsingChildrenFinished();
    1700     StyleResolver* styleResolver = document().styleResolverIfExists();
    1701     if (styleResolver && attached())
     1693    if (auto styleResolver = document().styleResolverIfExists())
    17021694        styleResolver->pushParentElement(this);
    17031695}
     
    17081700    setIsParsingChildrenFinished();
    17091701    checkForSiblingStyleChanges(this, FinishedParsingChildren, ElementTraversal::lastChild(this), nullptr);
    1710     if (StyleResolver* styleResolver = document().styleResolverIfExists())
     1702    if (auto styleResolver = document().styleResolverIfExists())
    17111703        styleResolver->popParentElement(this);
    17121704}
     
    23552347    if (!pseudoElement)
    23562348        return;
    2357     if (pseudoElement->attached())
     2349    if (pseudoElement->renderer())
    23582350        Style::detachRenderTree(*pseudoElement);
    23592351    ASSERT(pseudoElement->hostElement());
     
    28162808
    28172809    if (oldValue != newValue) {
    2818         if (attached() && document().styleResolverIfExists() && document().styleResolverIfExists()->hasSelectorForAttribute(name.localName()))
     2810        auto styleResolver = document().styleResolverIfExists();
     2811        if (styleResolver && styleResolver->hasSelectorForAttribute(name.localName()))
    28192812            setNeedsStyleRecalc();
    28202813    }
  • trunk/Source/WebCore/dom/Node.cpp

    r161097 r161127  
    679679{
    680680    ASSERT(changeType != NoStyleChange);
    681     if (changeType != ReconstructRenderTree && !attached()) // changed compared to what?
     681    if (!inRenderedDocument())
    682682        return;
    683683
     
    23032303}
    23042304
    2305 bool Node::attached() const
    2306 {
    2307     // FIXME: This should go away along with the whole vague 'attached' concept. The conditions here produce
    2308     // roughly the old behavior based on an explicit attached bit.
    2309     return inDocument() && document().renderView() && (renderer() || styleChangeType() != ReconstructRenderTree);
     2305bool Node::inRenderedDocument() const
     2306{
     2307    return inDocument() && document().hasLivingRenderTree();
    23102308}
    23112309
  • trunk/Source/WebCore/dom/Node.h

    r161046 r161127  
    312312    void setUserActionElement(bool flag) { setFlag(flag, IsUserActionElement); }
    313313
    314     bool attached() const;
     314    bool inRenderedDocument() const;
    315315    bool needsStyleRecalc() const { return styleChangeType() != NoStyleChange; }
    316316    StyleChangeType styleChangeType() const { return static_cast<StyleChangeType>(m_nodeFlags & StyleChangeMask); }
  • trunk/Source/WebCore/dom/ShadowRoot.cpp

    r158569 r161127  
    3131#include "HistogramSupport.h"
    3232#include "InsertionPoint.h"
     33#include "RenderElement.h"
    3334#include "RuntimeEnabledFeatures.h"
    3435#include "StyleResolver.h"
     
    140141    if (value != m_resetStyleInheritance) {
    141142        m_resetStyleInheritance = value;
    142         if (attached() && hostElement())
     143        if (renderer() && hostElement())
    143144            Style::resolveTree(*hostElement(), Style::Force);
    144145    }
  • trunk/Source/WebCore/editing/AppendNodeCommand.cpp

    r160966 r161127  
    3030#include "Document.h"
    3131#include "ExceptionCodePlaceholder.h"
     32#include "RenderElement.h"
    3233#include "htmlediting.h"
    3334
     
    4344    ASSERT(!m_node->parentNode());
    4445
    45     ASSERT(m_parent->hasEditableStyle() || !m_parent->attached());
     46    ASSERT(m_parent->hasEditableStyle() || !m_parent->renderer());
    4647}
    4748
     
    5960void AppendNodeCommand::doApply()
    6061{
    61     if (!m_parent->hasEditableStyle() && m_parent->attached())
     62    if (!m_parent->hasEditableStyle() && m_parent->renderer())
    6263        return;
    6364
  • trunk/Source/WebCore/editing/InsertNodeBeforeCommand.cpp

    r160966 r161127  
    4646    ASSERT(m_refChild->parentNode());
    4747
    48     ASSERT(m_refChild->parentNode()->hasEditableStyle() || !m_refChild->parentNode()->attached());
     48    ASSERT(m_refChild->parentNode()->hasEditableStyle() || !m_refChild->parentNode()->renderer());
    4949}
    5050
  • trunk/Source/WebCore/editing/RemoveNodeCommand.cpp

    r160966 r161127  
    2929#include "ExceptionCodePlaceholder.h"
    3030#include "Node.h"
     31#include "RenderElement.h"
    3132#include <wtf/Assertions.h>
    3233
     
    4647    ContainerNode* parent = m_node->parentNode();
    4748    if (!parent || (m_shouldAssumeContentIsAlwaysEditable == DoNotAssumeContentIsAlwaysEditable
    48         && !parent->isContentEditable(Node::UserSelectAllIsAlwaysNonEditable) && parent->attached()))
     49        && !parent->isContentEditable(Node::UserSelectAllIsAlwaysNonEditable) && parent->renderer()))
    4950        return;
    50     ASSERT(parent->isContentEditable(Node::UserSelectAllIsAlwaysNonEditable) || !parent->attached());
     51    ASSERT(parent->isContentEditable(Node::UserSelectAllIsAlwaysNonEditable) || !parent->renderer());
    5152
    5253    m_parent = parent;
  • trunk/Source/WebCore/html/HTMLDetailsElement.cpp

    r160908 r161127  
    137137        bool oldValue = m_isOpen;
    138138        m_isOpen = !value.isNull();
    139         if (oldValue != m_isOpen && attached())
     139        if (oldValue != m_isOpen && renderer())
    140140            Style::reattachRenderTree(*this);
    141141    } else
  • trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp

    r160926 r161127  
    263263    // we can end up detaching during an attach() call, before we even have a
    264264    // renderer.  In that case, don't mark the widget for update.
    265     if (attached() && renderer() && !useFallbackContent()) {
     265    if (renderer() && !useFallbackContent()) {
    266266        // Update the widget the next time we attach (detaching destroys the plugin).
    267267        setNeedsWidgetUpdate(true);
  • trunk/Source/WebCore/html/HTMLSelectElement.cpp

    r160733 r161127  
    316316        m_size = size;
    317317        setNeedsValidityCheck();
    318         if (m_size != oldSize && attached()) {
     318        if (m_size != oldSize && renderer()) {
    319319            Style::reattachRenderTree(*this);
    320320            setRecalcListItems();
     
    10471047    m_multiple = !value.isNull();
    10481048    setNeedsValidityCheck();
    1049     if (oldUsesMenuList != usesMenuList() && attached())
     1049    if (oldUsesMenuList != usesMenuList() && renderer())
    10501050        Style::reattachRenderTree(*this);
    10511051}
  • trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp

    r160908 r161127  
    16341634        //        should all be in some HTMLConstructionSite function.
    16351635        furthestBlockElement->parserAppendChild(newItem->element());
    1636         // FIXME: Why is this attach logic necessary? Style resolve should attach us if needed.
    1637         if (furthestBlockElement->attached() && !newItem->element()->attached()) {
    1638             // Notice that newItem->element() might already be attached if, for example, one of the reparented
    1639             // children is a style element, which attaches itself automatically.
    1640             Style::attachRenderTree(*newItem->element());
    1641         }
    16421636        // 14.
    16431637        m_tree.activeFormattingElements()->swapTo(formattingElement, newItem, bookmark);
  • trunk/Source/WebCore/html/shadow/MediaControlElementTypes.cpp

    r159856 r161127  
    259259        return;
    260260
    261     if (!attached())
     261    if (!renderer())
    262262        return;
    263263
     
    277277bool MediaControlVolumeSliderElement::willRespondToMouseMoveEvents()
    278278{
    279     if (!attached())
     279    if (!renderer())
    280280        return false;
    281281
     
    285285bool MediaControlVolumeSliderElement::willRespondToMouseClickEvents()
    286286{
    287     if (!attached())
     287    if (!renderer())
    288288        return false;
    289289
  • trunk/Source/WebCore/html/shadow/MediaControlElements.cpp

    r160908 r161127  
    943943        return;
    944944
    945     if (!attached())
     945    if (!renderer())
    946946        return;
    947947
     
    969969bool MediaControlTimelineElement::willRespondToMouseClickEvents()
    970970{
    971     if (!attached())
     971    if (!renderer())
    972972        return false;
    973973
  • trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp

    r160733 r161127  
    520520bool SliderThumbElement::shouldAcceptTouchEvents()
    521521{
    522     return attached() && !isDisabledFormControl();
     522    return renderer() && !isDisabledFormControl();
    523523}
    524524
  • trunk/Source/WebCore/loader/FrameLoader.cpp

    r160841 r161127  
    618618        m_frame.document()->cancelParsing();
    619619        m_frame.document()->stopActiveDOMObjects();
    620         if (m_frame.document()->attached()) {
     620        if (m_frame.document()->hasLivingRenderTree()) {
    621621            m_frame.document()->prepareForDestruction();
    622622            m_frame.document()->removeFocusedNodeOfSubtree(m_frame.document());
  • trunk/Source/WebCore/loader/HistoryController.cpp

    r160841 r161127  
    182182    ASSERT(document);
    183183   
    184     if (item->isCurrentDocument(document) && document->attached()) {
     184    if (item->isCurrentDocument(document) && document->hasLivingRenderTree()) {
    185185        LOG(Loading, "WebCoreLoading %s: saving form state to %p", m_frame.tree().uniqueName().string().utf8().data(), item);
    186186        item->setDocumentState(document->formElementsState());
  • trunk/Source/WebCore/loader/ImageLoader.cpp

    r159604 r161127  
    402402    if (!m_image)
    403403        return;
    404     if (!m_element->document().attached())
     404    if (!m_element->document().hasLivingRenderTree())
    405405        return;
    406406    m_hasPendingBeforeLoadEvent = false;
     
    432432        return;
    433433    m_hasPendingLoadEvent = false;
    434     if (element()->document().attached())
     434    if (m_element->document().hasLivingRenderTree())
    435435        dispatchLoadEvent();
    436436
     
    445445        return;
    446446    m_hasPendingErrorEvent = false;
    447     if (element()->document().attached())
    448         element()->dispatchEvent(Event::create(eventNames().errorEvent, false, false));
     447    if (m_element->document().hasLivingRenderTree())
     448        m_element->dispatchEvent(Event::create(eventNames().errorEvent, false, false));
    449449
    450450    // Only consider updating the protection ref-count of the Element immediately before returning
  • trunk/Source/WebCore/loader/PlaceholderDocument.cpp

    r160908 r161127  
    3333void PlaceholderDocument::createRenderTree()
    3434{
    35     ASSERT(!attached());
     35    ASSERT(!renderView());
    3636
    3737    for (auto& child : elementChildren(*this))
  • trunk/Source/WebCore/page/Frame.cpp

    r161106 r161127  
    272272    // notified. If we wait until the view is destroyed, then things won't be hooked up enough for
    273273    // these calls to work.
    274     if (!view && m_doc && m_doc->attached() && !m_doc->inPageCache())
     274    if (!view && m_doc && m_doc->hasLivingRenderTree() && !m_doc->inPageCache())
    275275        m_doc->prepareForDestruction();
    276276   
     
    297297    ASSERT(!newDocument || newDocument->frame() == this);
    298298
    299     if (m_doc && m_doc->attached() && !m_doc->inPageCache())
     299    if (m_doc && m_doc->hasLivingRenderTree() && !m_doc->inPageCache())
    300300        m_doc->prepareForDestruction();
    301301
  • trunk/Source/WebCore/rendering/RenderCounter.cpp

    r159733 r161127  
    561561    else
    562562        node = renderer->generatingNode();
    563     if (node && !node->attached())
     563    if (node && !node->renderer())
    564564        return; // No need to update if the parent is not attached yet
    565565    for (RenderObject* descendant = renderer; descendant; descendant = descendant->nextInPreOrder(renderer))
     
    570570{
    571571    Node* node = renderer->generatingNode();
    572     if (!node || !node->attached())
     572    if (!node || !node->renderer())
    573573        return; // cannot have generated content or if it can have, it will be handled during attaching
    574574    const CounterDirectiveMap* newCounterDirectives;
  • trunk/Source/WebCore/rendering/RenderMenuList.cpp

    r160599 r161127  
    437437    HTMLElement* listItem = selectElement().listItems()[listIndex];
    438438    ASSERT(listItem);
    439     if (listItem->attached()) {
     439    if (listItem->renderer()) {
    440440        if (AccessibilityMenuList* menuList = toAccessibilityMenuList(document().axObjectCache()->get(this)))
    441441            menuList->didUpdateActiveOption(optionIndex);
  • trunk/Source/WebCore/style/StyleResolveTree.cpp

    r161089 r161127  
    136136    // nextRenderer() when the parent element hasn't attached yet.
    137137    // FIXME: Why would we get here anyway if parent is not attached?
    138     if (renderingParentNode && !renderingParentNode->attached())
    139         return 0;
     138    if (renderingParentNode && !renderingParentNode->renderer())
     139        return nullptr;
    140140    for (Node* sibling = NodeRenderingTraversal::nextSibling(&element); sibling; sibling = NodeRenderingTraversal::nextSibling(sibling)) {
    141141        RenderObject* renderer = sibling->renderer();
     
    143143            return renderer;
    144144    }
    145     return 0;
     145    return nullptr;
    146146}
    147147
     
    303303    for (Node* sibling = NodeRenderingTraversal::nextSibling(&current); sibling; sibling = NodeRenderingTraversal::nextSibling(sibling)) {
    304304        // Siblings haven't been attached yet. They will be handled normally when they are.
    305         if (!sibling->attached())
     305        if (sibling->styleChangeType() == ReconstructRenderTree)
    306306            return;
    307307        if (sibling->isElementNode()) {
     
    417417void updateTextRendererAfterContentChange(Text& textNode, unsigned offsetOfReplacedData, unsigned lengthOfReplacedData)
    418418{
    419     if (!textNode.attached())
    420         return;
    421419    RenderText* textRenderer = textNode.renderer();
    422420    if (!textRenderer) {
     
    897895void reattachRenderTree(Element& current)
    898896{
    899     if (current.attached())
     897    if (current.renderer())
    900898        detachRenderTree(current, ReattachDetach);
    901899    attachRenderTree(current);
  • trunk/Source/WebCore/testing/Internals.cpp

    r160944 r161127  
    19251925PassRefPtr<MallocStatistics> Internals::mallocStatistics() const
    19261926{
     1927//    WTF::releaseFastMallocFreeMemory();
    19271928    return MallocStatistics::create();
    19281929}
  • trunk/Source/WebCore/xml/XMLErrors.cpp

    r156256 r161127  
    128128        rootElement->parserAppendChild(body);
    129129        m_document->parserAppendChild(rootElement);
    130         if (m_document->attached() && !rootElement->attached())
    131             Style::attachRenderTree(*rootElement);
    132130        documentElement = body.get();
    133131    }
     
    139137
    140138        documentElement->parentNode()->parserRemoveChild(*documentElement);
    141         if (documentElement->attached())
    142             Style::detachRenderTree(*documentElement);
    143139
    144140        body->parserAppendChild(documentElement);
    145141        m_document->parserAppendChild(rootElement.get());
    146142
    147         if (m_document->attached())
     143        if (m_document->hasLivingRenderTree())
    148144            // In general, rootElement shouldn't be attached right now, but it will be if there is a style element
    149145            // in the SVG content.
     
    174170        documentElement->parserAppendChild(reportElement);
    175171
    176     if (documentElement->attached() && !reportElement->attached())
    177         Style::attachRenderTree(*reportElement);
    178 
    179172    m_document->updateStyleIfNeeded();
    180173}
  • trunk/Source/WebCore/xml/parser/XMLDocumentParser.cpp

    r160457 r161127  
    167167    m_bufferedText.swap(empty);
    168168
    169     if (m_view && m_leafTextNode->parentNode() && m_leafTextNode->parentNode()->attached() && !m_leafTextNode->attached())
     169    if (m_view && m_leafTextNode->parentNode() && m_leafTextNode->parentNode()->renderer() && !m_leafTextNode->renderer())
    170170        Style::attachTextRenderer(*m_leafTextNode);
    171171
  • trunk/Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp

    r160457 r161127  
    4848#include "Page.h"
    4949#include "ProcessingInstruction.h"
     50#include "RenderElement.h"
    5051#include "ResourceError.h"
    5152#include "ResourceRequest.h"
     
    855856#endif
    856857
    857     if (m_view && currentNode->attached() && !newElement->attached())
     858    if (m_view && currentNode->renderer() && !newElement->renderer())
    858859        Style::attachRenderTree(*newElement);
    859860
     
    10311032    RefPtr<CDATASection> newNode = CDATASection::create(m_currentNode->document(), toString(s, len));
    10321033    m_currentNode->parserAppendChild(newNode.get());
    1033     if (m_view && !newNode->attached())
     1034    if (m_view)
    10341035        Style::attachTextRenderer(*newNode);
    10351036}
Note: See TracChangeset for help on using the changeset viewer.