Changeset 152659 in webkit


Ignore:
Timestamp:
Jul 15, 2013 3:42:26 PM (11 years ago)
Author:
Lucas Forschler
Message:

Merged r152320. <rdar://problem/14324895>

Location:
branches/safari-537-branch
Files:
22 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-537-branch/LayoutTests/ChangeLog

    r152650 r152659  
     12013-07-15  Lucas Forschler  <lforschler@apple.com>
     2
     3        Merge r152320
     4
     5    2013-07-02  Radu Stavila  <stavila@adobe.com>
     6
     7            [CSS Regions] Improve implementation of elements in region being flowed to another flow thread
     8            https://bugs.webkit.org/show_bug.cgi?id=118300
     9
     10            Reviewed by David Hyatt.
     11
     12            * fast/regions/flow-body-in-html.html:
     13            * fast/regions/region-content-flown-into-region-expected.html:
     14            * fast/regions/region-content-flown-into-region.html:
     15            * fast/regions/universal-selector-children-to-the-same-region.html:
     16
    1172013-07-15  Tim Horton  <timothy_horton@apple.com>
    218
  • branches/safari-537-branch/LayoutTests/fast/regions/flow-body-in-html.html

    r148865 r152659  
    11<html>
    22  <head>
    3     <title>103685 - [CSS Regions] Universal child selector on region breaks the rendering of its content</title>
     3    <title>74144 - [CSS Regions] Elements in a region should be assignable to a named flow</title>
    44    <style type="text/css">
    55      body {
    6       -webkit-flow-into: foo;
     6        -webkit-flow-into: foo;
    77      }
    88      html {
    9        -webkit-flow-from: foo;
     9        -webkit-flow-from: foo;
    1010      }
    1111    </style>
  • branches/safari-537-branch/LayoutTests/fast/regions/region-content-flown-into-region-expected.html

    r148865 r152659  
    22    <head>
    33        <style type="text/css">
    4             div {
    5                 padding: 1px;
     4            .region {
     5                border:solid 1px red;
    66            }
    7             .region {
    8                 border:solid 1px #bbb;
     7            .redirectRegion {
     8                border: solid 1px blue;
     9                margin-top: 10px;
     10                margin-bottom: 10px;
     11            }
     12            .redirectRegion2 {
     13                border:solid 1px green;
    914            }
    1015        </style>
    1116    </head>
    1217    <body>
    13         <div class="region"><template>PASS r0: content that goes in the region.</template></div>
    14         <div class="region">
     18        <div class="region">PASS r0: content that goes in the region.</div>
     19        <div class="redirectRegion">
    1520            <div>PASS r1: content in the region that has flow-into. 1.</div>
    16             <div>PASS r1: (enclosed in a div) content in the region that has flow-into. 2. <b>PASS r1: (enclosed in a div) content in the region that has flow-into. 3.</b>.</div>
    17             <div>PASS r1: (enclosed in a div) content in the region that has flow-into. 4 .</div>
     21            <div>PASS r1: (enclosed in a div) content in the region that has flow-into. 2.
     22                <b><br/>PASS r1: (b enclosed in the div above) content in the region that has flow-into. 3.</b>
     23            </div>
     24            <div>PASS r1: (enclosed in a div) content in the region that has flow-into. 4.</div>
    1825            <div>PASS r1: content in the region that has flow-into. 5.</div>
     26            <svg class="redirectContent" xmlns="http://www.w3.org/2000/svg" version="1.1" height="70">
     27                <text x="0" y="15">PASS: SVG text</text>
     28                <text x="0" y="30">PASS: SVG text redirected to a flow without regions. only svg root elements are directly collected by a render flow thread.</text>
     29                <text x="0" y="45">PASS: SVG text redirected to a flow with regions. only svg root elements are directly collected by a render flow thread.</text>
     30            </svg>
    1931        </div>
    20         <div class="region"><span>PASS r2: content that is already in a flow goes to another flow .</span></div>
     32        <div class="redirectRegion2"><span>PASS r2: content that is already in a flow goes to another flow .</span></div>
    2133        <p><a href="https://bugs.webkit.org/show_bug.cgi?id=74144">Bug 74144</a> - [CSS Regions] Elements in a region should be assignable to a named flow</p>
    2234    </body>
  • branches/safari-537-branch/LayoutTests/fast/regions/region-content-flown-into-region.html

    r148865 r152659  
    33        <title>74144 - [CSS Regions] Elements in a region should be assignable to a named flow</title>
    44        <style type="text/css">
    5             div {
    6                 padding: 1px;
    7             }
    85            .content {
    96                -webkit-flow-into: flow;
     
    118            .region {
    129                -webkit-flow-from: flow;
    13                 border:solid 1px #bbb;
     10                border:solid 1px red;
    1411            }
    1512
     
    1916            .redirectRegion {
    2017                -webkit-flow-from: redirectFlow;
    21                 border:solid 1px #bbb;
     18                border:solid 1px blue;
     19                margin-top: 10px;
     20                margin-bottom: 10px;
    2221            }
    2322
     
    2726            .redirectRegion2 {
    2827                -webkit-flow-from: redirectFlow2;
    29                 border:solid 1px #bbb;
     28                border:solid 1px green;
    3029            }
    3130
     
    3332                -webkit-flow-into: redirectToNowhere;
    3433            }
     34
     35            .displayNone {
     36                display: none;
     37            }
    3538        </style>
    36         <template class="content">PASS r0: content that goes in the region.</template>
    3739    </head>
    3840
    3941    <body>
     42        <div class="content">PASS r0: content that goes in the region.</div>
    4043        <div class="region">
    4144            FAIL: this should not be visible 1.
     
    5255                <div class="redirectContent">PASS r1: (enclosed in a div) content in the region that has flow-into. 2.
    5356                    <div class="redirectContentToNowhere">FAIL: this should not be visible (redirected to nowhere) 2.</div>
    54                     <b>PASS r1: (enclosed in a div) content in the region that has flow-into. 3.</b>.
     57                    <b><br/>PASS r1: (b enclosed in the div above) content in the region that has flow-into. 3.</b>
    5558                </div>
    5659
     
    6164                FAIL: this should not be visible 5.
    6265
    63                 <div class="redirectContent">PASS r1: (enclosed in a div) content in the region that has flow-into. 4
     66                <div class="redirectContent">PASS r1: (enclosed in a div) content in the region that has flow-into. 4.
    6467                    <span class="redirectContent2">PASS r2: content that is already in a flow goes to another flow
    6568                        <span class="redirectContentToNowhere">FAIL: this should not be visible (redirected to nowhere) 3.</span>.
    6669                    </span>
    67                     .
    6870                </div>
    6971
     
    7880
    7981            FAIL: this should not be visible 9.
     82
     83            <div>
     84                FAIL: this should not be visible 10.
     85
     86                <svg class="redirectContent" xmlns="http://www.w3.org/2000/svg" version="1.1" height="70">
     87                    <text x="0" y="15">PASS: SVG text</text>
     88                    <text x="0" y="30" class="redirectContentToNowhere">PASS: SVG text redirected to a flow without regions. only svg root elements are directly collected by a render flow thread.</text>
     89                    <text x="0" y="45" class="redirectContent2">PASS: SVG text redirected to a flow with regions. only svg root elements are directly collected by a render flow thread.</text>
     90                </svg>
     91
     92                FAIL: this should not be visible 11.
     93            </div>
     94
     95            <div class="displayNone">
     96                FAIL: this should not be visible 12.
     97
     98                <div class="redirectContent">FAIL r1: (enclosed in a div) content in the region that has flow-into but display:none
     99                    <div class="redirectContentToNowhere">FAIL: this should not be visible (redirected to nowhere AND display:none)</div>
     100                    <b><br/>FAIL r1: (b enclosed in the div above) content in the region that has flow-into but display:none</b>
     101                </div>
     102
     103                FAIL: this should not be visible 13.
     104            </div>
    80105        </div>
    81106
    82107        <div class="redirectRegion">
    83             FAIL: this should not be visible 10.
     108            FAIL: this should not be visible 14.
    84109        </div>
    85110
    86111        <div class="redirectRegion2">
    87             FAIL: this should not be visible 11.
     112            FAIL: this should not be visible 15.
    88113        </div>
    89114
  • branches/safari-537-branch/LayoutTests/fast/regions/universal-selector-children-to-the-same-region.html

    r148865 r152659  
    44    <style type="text/css">
    55      .region > * {
    6       -webkit-flow-into: foo;
     6        -webkit-flow-into: foo;
    77      }
    88      .region {
    9        -webkit-flow-from: foo;
     9        -webkit-flow-from: foo;
    1010      }
    1111    </style>
  • branches/safari-537-branch/Source/WebCore/ChangeLog

    r152656 r152659  
     12013-07-15  Lucas Forschler  <lforschler@apple.com>
     2
     3        Merge r152320
     4
     5    2013-07-02  Radu Stavila  <stavila@adobe.com>
     6
     7            [CSS Regions] Improve implementation of elements in region being flowed to another flow thread
     8            https://bugs.webkit.org/show_bug.cgi?id=118300
     9
     10            Reviewed by David Hyatt.
     11
     12            Methods that must be const have been turned back into const. Code has been better organized.
     13            Performance is better. Tests have been added to.
     14
     15            * dom/Element.cpp:
     16            (WebCore::Element::detach):
     17            (WebCore::Element::setIsInsideRegion):
     18            (WebCore::Element::isInsideRegion):
     19            (WebCore::Element::shouldMoveToFlowThread):
     20            * dom/Element.h:
     21            * dom/ElementRareData.h:
     22            (WebCore::ElementRareData::isInsideRegion):
     23            (WebCore::ElementRareData::setIsInsideRegion):
     24            (WebCore::ElementRareData::ElementRareData):
     25            * dom/Node.cpp:
     26            (WebCore::Node::isRegisteredWithNamedFlow):
     27            * dom/Node.h:
     28            * dom/NodeRenderingContext.cpp:
     29            (WebCore::NodeRenderingContext::parentRenderer):
     30            (WebCore::NodeRenderingContext::shouldCreateRenderer):
     31            (WebCore::NodeRenderingContext::elementInsideRegionNeedsRenderer):
     32            (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
     33            (WebCore::NodeRenderingContext::createRendererForElementIfNeeded):
     34            * dom/NodeRenderingContext.h:
     35            * dom/PseudoElement.h:
     36            * dom/Text.cpp:
     37            (WebCore::Text::textRendererIsNeeded):
     38            * dom/Text.h:
     39            * rendering/FlowThreadController.cpp:
     40            (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
     41            (WebCore::FlowThreadController::isContentNodeRegisteredWithAnyNamedFlow):
     42            * rendering/FlowThreadController.h:
     43            * rendering/RenderObject.h:
     44            * rendering/RenderRegion.h:
     45            * svg/SVGElement.cpp:
     46            (WebCore::SVGElement::shouldMoveToFlowThread):
     47            * svg/SVGElement.h:
     48
    1492013-07-15  Lucas Forschler  <lforschler@apple.com>
    250
  • branches/safari-537-branch/Source/WebCore/dom/Element.cpp

    r152062 r152659  
    14771477        data->resetComputedStyle();
    14781478        data->resetDynamicRestyleObservations();
     1479        data->setIsInsideRegion(false);
    14791480    }
    14801481
     
    24222423}
    24232424
     2425void Element::setIsInsideRegion(bool value)
     2426{
     2427    if (value == isInsideRegion())
     2428        return;
     2429
     2430    ensureElementRareData()->setIsInsideRegion(value);
     2431}
     2432
     2433bool Element::isInsideRegion() const
     2434{
     2435    return hasRareData() ? elementRareData()->isInsideRegion() : false;
     2436}
     2437
    24242438AtomicString Element::computeInheritedLanguage() const
    24252439{
     
    27562770}
    27572771
    2758 bool Element::moveToFlowThreadIsNeeded(RefPtr<RenderStyle>& cachedStyle)
    2759 {
    2760     Document* doc = document();
    2761    
    2762     if (!doc->cssRegionsEnabled())
    2763         return false;
     2772#if ENABLE(CSS_REGIONS)
     2773
     2774bool Element::shouldMoveToFlowThread(RenderStyle* styleToUse) const
     2775{
     2776    ASSERT(styleToUse);
    27642777
    27652778#if ENABLE(FULLSCREEN_API)
    2766     if (doc->webkitIsFullScreen() && doc->webkitCurrentFullScreenElement() == this)
     2779    if (document()->webkitIsFullScreen() && document()->webkitCurrentFullScreenElement() == this)
    27672780        return false;
    27682781#endif
     
    27712784        return false;
    27722785
    2773     if (!cachedStyle)
    2774         cachedStyle = styleForRenderer();
    2775     if (!cachedStyle)
     2786    if (styleToUse->flowThread().isEmpty())
    27762787        return false;
    27772788
    2778     if (cachedStyle->flowThread().isEmpty())
    2779         return false;
    2780 
    2781     return !document()->renderView()->flowThreadController()->isContentNodeRegisteredWithAnyNamedFlow(this);
    2782 }
    2783 
    2784 #if ENABLE(CSS_REGIONS)
     2789    return !isRegisteredWithNamedFlow();
     2790}
    27852791
    27862792const AtomicString& Element::webkitRegionOverset() const
  • branches/safari-537-branch/Source/WebCore/dom/Element.h

    r151572 r152659  
    478478    void setIsInCanvasSubtree(bool);
    479479    bool isInCanvasSubtree() const;
     480   
     481    void setIsInsideRegion(bool);
     482    bool isInsideRegion() const;
    480483
    481484    AtomicString computeInheritedLanguage() const;
     
    624627
    625628    RenderRegion* renderRegion() const;
    626     virtual bool moveToFlowThreadIsNeeded(RefPtr<RenderStyle>& cachedStyle);
     629    virtual bool shouldMoveToFlowThread(RenderStyle*) const;
    627630#if ENABLE(CSS_REGIONS)
    628631    const AtomicString& webkitRegionOverset() const;
  • branches/safari-537-branch/Source/WebCore/dom/ElementRareData.h

    r148921 r152659  
    6060    bool isInCanvasSubtree() const { return m_isInCanvasSubtree; }
    6161    void setIsInCanvasSubtree(bool value) { m_isInCanvasSubtree = value; }
     62
     63    bool isInsideRegion() const { return m_isInsideRegion; }
     64    void setIsInsideRegion(bool value) { m_isInsideRegion = value; }
    6265
    6366#if ENABLE(FULLSCREEN_API)
     
    157160    unsigned m_childrenAffectedByBackwardPositionalRules : 1;
    158161
     162    unsigned m_isInsideRegion : 1;
    159163    LayoutSize m_minimumSizeForResizing;
    160164    IntSize m_savedLayerScrollOffset;
     
    203207    , m_childrenAffectedByForwardPositionalRules(false)
    204208    , m_childrenAffectedByBackwardPositionalRules(false)
     209    , m_isInsideRegion(false)
    205210    , m_minimumSizeForResizing(defaultMinimumSizeForResizing())
    206211{
  • branches/safari-537-branch/Source/WebCore/dom/Node.cpp

    r151572 r152659  
    6161#include "ExceptionCode.h"
    6262#include "ExceptionCodePlaceholder.h"
     63#include "FlowThreadController.h"
    6364#include "Frame.h"
    6465#include "FrameView.h"
     
    11191120}
    11201121
     1122bool Node::isRegisteredWithNamedFlow() const
     1123{
     1124    return document()->renderView()->flowThreadController()->isContentNodeRegisteredWithAnyNamedFlow(this);
     1125}
     1126
    11211127Element* Node::shadowHost() const
    11221128{
  • branches/safari-537-branch/Source/WebCore/dom/Node.h

    r151572 r152659  
    273273    bool hasCustomStyleCallbacks() const { return getFlag(HasCustomStyleCallbacksFlag); }
    274274
     275    bool isRegisteredWithNamedFlow() const;
     276
    275277    bool hasSyntheticAttrChildNodes() const { return getFlag(HasSyntheticAttrChildNodesFlag); }
    276278    void setHasSyntheticAttrChildNodes(bool flag) { setFlag(flag, HasSyntheticAttrChildNodesFlag); }
  • branches/safari-537-branch/Source/WebCore/dom/NodeRenderingContext.cpp

    r151647 r152659  
    156156}
    157157
    158 RenderObject* NodeRenderingContext::parentRenderer()
     158RenderObject* NodeRenderingContext::parentRenderer() const
    159159{
    160160    if (RenderObject* renderer = m_node->renderer())
     
    178178        return m_parentFlowRenderer;
    179179
    180     if (m_node->isElementNode() && toElement(m_node)->moveToFlowThreadIsNeeded(m_style)) {
    181         moveToFlowThread();
    182         return m_parentFlowRenderer;
    183     }
    184 
    185180    return m_renderingParent ? m_renderingParent->renderer() : 0;
    186181}
    187182
    188 bool NodeRenderingContext::shouldCreateRenderer()
     183bool NodeRenderingContext::shouldCreateRenderer() const
    189184{
    190185    if (!m_node->document()->shouldCreateRenderers())
     
    195190    if (!parentRenderer)
    196191        return false;
    197     if (!parentRenderer->canHaveChildren()
    198         && !(m_node->isPseudoElement() && parentRenderer->isRenderRegion())) {
    199         if (parentRenderer->canDOMChildrenHaveRenderParent()) {
    200             // In a region, only the children that need to be in a flow thread should have a renderer.
    201             bool shouldBeInNamedFlow = m_node->isElementNode() && toElement(m_node)->moveToFlowThreadIsNeeded(m_style);
    202             if (!shouldBeInNamedFlow)
    203                 return false;
    204         } else
    205             return false;
    206     }
    207 
     192    if (!parentRenderer->canHaveChildren() && !(m_node->isPseudoElement() && parentRenderer->canHaveGeneratedChildren()))
     193        return false;
    208194    if (!m_renderingParent->childShouldCreateRenderer(*this))
    209195        return false;
     
    211197}
    212198
     199// Check the specific case of elements that are children of regions but are flowed into a flow thread themselves.
     200bool NodeRenderingContext::elementInsideRegionNeedsRenderer()
     201{
     202    Element* element = toElement(m_node);
     203    bool elementInsideRegionNeedsRenderer = false;
     204    RenderObject* parentRenderer = this->parentRenderer();
     205    if ((parentRenderer && !parentRenderer->canHaveChildren() && parentRenderer->isRenderRegion())
     206        || (!parentRenderer && element->parentElement() && element->parentElement()->isInsideRegion())) {
     207
     208        if (!m_style)
     209            m_style = element->styleForRenderer();
     210
     211        elementInsideRegionNeedsRenderer = element->shouldMoveToFlowThread(m_style.get());
     212
     213        // Children of this element will only be allowed to be flowed into other flow-threads if display is NOT none.
     214        if (element->rendererIsNeeded(*this))
     215            element->setIsInsideRegion(true);
     216    }
     217
     218    return elementInsideRegionNeedsRenderer;
     219}
     220
    213221void NodeRenderingContext::moveToFlowThreadIfNeeded()
    214222{
    215     ASSERT(m_node->isElementNode());
    216 
    217     if (!toElement(m_node)->moveToFlowThreadIsNeeded(m_style))
    218         return;
    219 
    220     moveToFlowThread();
    221 }
    222 
    223 void NodeRenderingContext::moveToFlowThread()
    224 {
    225     ASSERT(m_node->isElementNode());
    226     ASSERT(toElement(m_node)->moveToFlowThreadIsNeeded(m_style));
    227 
    228     if (!m_style)
    229         m_style = toElement(m_node)->styleForRenderer();
    230     ASSERT(m_style);
     223    Element* element = toElement(m_node);
     224
     225    if (!element->shouldMoveToFlowThread(m_style.get()))
     226        return;
     227
    231228    ASSERT(m_node->document()->renderView());
    232229    FlowThreadController* flowThreadController = m_node->document()->renderView()->flowThreadController();
     
    251248    Element* element = toElement(m_node);
    252249
    253     if (!shouldCreateRenderer())
    254         return;
     250    element->setIsInsideRegion(false);
     251
     252    if (!shouldCreateRenderer() && !elementInsideRegionNeedsRenderer())
     253        return;
     254
    255255    if (!m_style)
    256256        m_style = element->styleForRenderer();
  • branches/safari-537-branch/Source/WebCore/dom/NodeRenderingContext.h

    r151282 r152659  
    5757    ContainerNode* parentNodeForRenderingAndStyle() const;
    5858    bool resetStyleInheritance() const;
    59     RenderObject* parentRenderer(); // the renderer that will be the parent for this node's renderer. In the case of RenderFlowThreads, it may need to create it.
     59    RenderObject* parentRenderer() const;
    6060    RenderObject* nextRenderer() const;
    6161    RenderObject* previousRenderer() const;
     
    6868
    6969private:
    70     bool shouldCreateRenderer();
    71     void moveToFlowThread();
     70    bool shouldCreateRenderer() const;
    7271    void moveToFlowThreadIfNeeded();
     72    bool elementInsideRegionNeedsRenderer();
    7373
    7474    Node* m_node;
  • branches/safari-537-branch/Source/WebCore/dom/PseudoElement.h

    r151282 r152659  
    4949    // As per http://dev.w3.org/csswg/css3-regions/#flow-into, pseudo-elements such as ::first-line, ::first-letter, ::before or ::after
    5050    // cannot be directly collected into a named flow.
    51     virtual bool moveToFlowThreadIsNeeded(RefPtr<RenderStyle>& cachedStyle) OVERRIDE
    52     {
    53         UNUSED_PARAM(cachedStyle);
    54         return false;
    55     }
     51    virtual bool shouldMoveToFlowThread(RenderStyle*) const OVERRIDE { return false; }
    5652
    5753    virtual bool canStartSelection() const OVERRIDE { return false; }
  • branches/safari-537-branch/Source/WebCore/dom/Text.cpp

    r151282 r152659  
    200200}
    201201
    202 bool Text::textRendererIsNeeded(NodeRenderingContext& context)
     202bool Text::textRendererIsNeeded(const NodeRenderingContext& context)
    203203{
    204204    if (isEditingText())
  • branches/safari-537-branch/Source/WebCore/dom/Text.h

    r151282 r152659  
    4747    void recalcTextStyle(StyleChange);
    4848    void createTextRendererIfNeeded();
    49     bool textRendererIsNeeded(NodeRenderingContext&);
     49    bool textRendererIsNeeded(const NodeRenderingContext&);
    5050    RenderText* createTextRenderer(RenderArena*, RenderStyle*);
    5151    void updateTextRenderer(unsigned offsetOfReplacedData, unsigned lengthOfReplacedData);
  • branches/safari-537-branch/Source/WebCore/rendering/FlowThreadController.cpp

    r148865 r152659  
    119119{
    120120    ASSERT(contentNode && contentNode->isElementNode());
    121     HashMap<Node*, RenderNamedFlowThread*>::iterator it = m_mapNamedFlowContentNodes.find(contentNode);
     121    HashMap<const Node*, RenderNamedFlowThread*>::iterator it = m_mapNamedFlowContentNodes.find(contentNode);
    122122    ASSERT(it != m_mapNamedFlowContentNodes.end());
    123123    ASSERT(it->value);
     
    228228}
    229229
    230 bool FlowThreadController::isContentNodeRegisteredWithAnyNamedFlow(Node* contentNode) const
     230bool FlowThreadController::isContentNodeRegisteredWithAnyNamedFlow(const Node* contentNode) const
    231231{
    232232    return m_mapNamedFlowContentNodes.contains(contentNode);
  • branches/safari-537-branch/Source/WebCore/rendering/FlowThreadController.h

    r148865 r152659  
    6767    void registerNamedFlowContentNode(Node*, RenderNamedFlowThread*);
    6868    void unregisterNamedFlowContentNode(Node*);
    69     bool isContentNodeRegisteredWithAnyNamedFlow(Node*) const;
     69    bool isContentNodeRegisteredWithAnyNamedFlow(const Node*) const;
    7070
    7171    bool hasFlowThreadsWithAutoLogicalHeightRegions() const { return m_flowThreadsWithAutoLogicalHeightRegions; }
     
    9393    OwnPtr<RenderNamedFlowThreadList> m_renderNamedFlowThreadList;
    9494    // maps a content node to its render flow thread.
    95     HashMap<Node*, RenderNamedFlowThread*> m_mapNamedFlowContentNodes;
     95    HashMap<const Node*, RenderNamedFlowThread*> m_mapNamedFlowContentNodes;
    9696};
    9797
  • branches/safari-537-branch/Source/WebCore/rendering/RenderObject.h

    r152061 r152659  
    253253    //////////////////////////////////////////
    254254    virtual bool canHaveChildren() const { return virtualChildren(); }
    255     virtual bool canDOMChildrenHaveRenderParent() const { return false; } // Even if this render object can't have render children, the children in the DOM tree may have a render parent (that is different from this object).
    256255    virtual bool canHaveGeneratedChildren() const;
    257256    virtual bool isChildAllowed(RenderObject*, RenderStyle*) const { return true; }
  • branches/safari-537-branch/Source/WebCore/rendering/RenderRegion.h

    r151647 r152659  
    147147
    148148    virtual bool canHaveChildren() const OVERRIDE { return false; }
    149     virtual bool canDOMChildrenHaveRenderParent() const OVERRIDE { return true; }
    150149    virtual bool canHaveGeneratedChildren() const OVERRIDE { return true; }
    151150
  • branches/safari-537-branch/Source/WebCore/svg/SVGElement.cpp

    r149392 r152659  
    460460}
    461461
    462 bool SVGElement::moveToFlowThreadIsNeeded(RefPtr<RenderStyle>& cachedStyle)
     462bool SVGElement::shouldMoveToFlowThread(RenderStyle* styleToUse) const
    463463{
    464464    // Allow only svg root elements to be directly collected by a render flow thread.
    465     return parentNode() && !parentNode()->isSVGElement() && hasTagName(SVGNames::svgTag) && Element::moveToFlowThreadIsNeeded(cachedStyle);
     465    return parentNode() && !parentNode()->isSVGElement() && hasTagName(SVGNames::svgTag) && Element::shouldMoveToFlowThread(styleToUse);
    466466}
    467467
  • branches/safari-537-branch/Source/WebCore/svg/SVGElement.h

    r148865 r152659  
    121121    virtual bool removeEventListener(const AtomicString& eventType, EventListener*, bool useCapture) OVERRIDE;
    122122
    123     virtual bool moveToFlowThreadIsNeeded(RefPtr<RenderStyle>& cachedStyle) OVERRIDE;
     123    virtual bool shouldMoveToFlowThread(RenderStyle*) const OVERRIDE;
    124124
    125125protected:
Note: See TracChangeset for help on using the changeset viewer.