Changeset 152659 in webkit
- Timestamp:
- Jul 15, 2013 3:42:26 PM (11 years ago)
- Location:
- branches/safari-537-branch
- Files:
-
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-537-branch/LayoutTests/ChangeLog
r152650 r152659 1 2013-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 1 17 2013-07-15 Tim Horton <timothy_horton@apple.com> 2 18 -
branches/safari-537-branch/LayoutTests/fast/regions/flow-body-in-html.html
r148865 r152659 1 1 <html> 2 2 <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> 4 4 <style type="text/css"> 5 5 body { 6 -webkit-flow-into: foo;6 -webkit-flow-into: foo; 7 7 } 8 8 html { 9 -webkit-flow-from: foo;9 -webkit-flow-from: foo; 10 10 } 11 11 </style> -
branches/safari-537-branch/LayoutTests/fast/regions/region-content-flown-into-region-expected.html
r148865 r152659 2 2 <head> 3 3 <style type="text/css"> 4 div{5 padding: 1px;4 .region { 5 border:solid 1px red; 6 6 } 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; 9 14 } 10 15 </style> 11 16 </head> 12 17 <body> 13 <div class="region"> <template>PASS r0: content that goes in the region.</template></div>14 <div class="re gion">18 <div class="region">PASS r0: content that goes in the region.</div> 19 <div class="redirectRegion"> 15 20 <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> 18 25 <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> 19 31 </div> 20 <div class="re gion"><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> 21 33 <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> 22 34 </body> -
branches/safari-537-branch/LayoutTests/fast/regions/region-content-flown-into-region.html
r148865 r152659 3 3 <title>74144 - [CSS Regions] Elements in a region should be assignable to a named flow</title> 4 4 <style type="text/css"> 5 div {6 padding: 1px;7 }8 5 .content { 9 6 -webkit-flow-into: flow; … … 11 8 .region { 12 9 -webkit-flow-from: flow; 13 border:solid 1px #bbb;10 border:solid 1px red; 14 11 } 15 12 … … 19 16 .redirectRegion { 20 17 -webkit-flow-from: redirectFlow; 21 border:solid 1px #bbb; 18 border:solid 1px blue; 19 margin-top: 10px; 20 margin-bottom: 10px; 22 21 } 23 22 … … 27 26 .redirectRegion2 { 28 27 -webkit-flow-from: redirectFlow2; 29 border:solid 1px #bbb;28 border:solid 1px green; 30 29 } 31 30 … … 33 32 -webkit-flow-into: redirectToNowhere; 34 33 } 34 35 .displayNone { 36 display: none; 37 } 35 38 </style> 36 <template class="content">PASS r0: content that goes in the region.</template>37 39 </head> 38 40 39 41 <body> 42 <div class="content">PASS r0: content that goes in the region.</div> 40 43 <div class="region"> 41 44 FAIL: this should not be visible 1. … … 52 55 <div class="redirectContent">PASS r1: (enclosed in a div) content in the region that has flow-into. 2. 53 56 <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> 55 58 </div> 56 59 … … 61 64 FAIL: this should not be visible 5. 62 65 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. 64 67 <span class="redirectContent2">PASS r2: content that is already in a flow goes to another flow 65 68 <span class="redirectContentToNowhere">FAIL: this should not be visible (redirected to nowhere) 3.</span>. 66 69 </span> 67 .68 70 </div> 69 71 … … 78 80 79 81 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> 80 105 </div> 81 106 82 107 <div class="redirectRegion"> 83 FAIL: this should not be visible 1 0.108 FAIL: this should not be visible 14. 84 109 </div> 85 110 86 111 <div class="redirectRegion2"> 87 FAIL: this should not be visible 1 1.112 FAIL: this should not be visible 15. 88 113 </div> 89 114 -
branches/safari-537-branch/LayoutTests/fast/regions/universal-selector-children-to-the-same-region.html
r148865 r152659 4 4 <style type="text/css"> 5 5 .region > * { 6 -webkit-flow-into: foo;6 -webkit-flow-into: foo; 7 7 } 8 8 .region { 9 -webkit-flow-from: foo;9 -webkit-flow-from: foo; 10 10 } 11 11 </style> -
branches/safari-537-branch/Source/WebCore/ChangeLog
r152656 r152659 1 2013-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 1 49 2013-07-15 Lucas Forschler <lforschler@apple.com> 2 50 -
branches/safari-537-branch/Source/WebCore/dom/Element.cpp
r152062 r152659 1477 1477 data->resetComputedStyle(); 1478 1478 data->resetDynamicRestyleObservations(); 1479 data->setIsInsideRegion(false); 1479 1480 } 1480 1481 … … 2422 2423 } 2423 2424 2425 void Element::setIsInsideRegion(bool value) 2426 { 2427 if (value == isInsideRegion()) 2428 return; 2429 2430 ensureElementRareData()->setIsInsideRegion(value); 2431 } 2432 2433 bool Element::isInsideRegion() const 2434 { 2435 return hasRareData() ? elementRareData()->isInsideRegion() : false; 2436 } 2437 2424 2438 AtomicString Element::computeInheritedLanguage() const 2425 2439 { … … 2756 2770 } 2757 2771 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 2774 bool Element::shouldMoveToFlowThread(RenderStyle* styleToUse) const 2775 { 2776 ASSERT(styleToUse); 2764 2777 2765 2778 #if ENABLE(FULLSCREEN_API) 2766 if (doc ->webkitIsFullScreen() && doc->webkitCurrentFullScreenElement() == this)2779 if (document()->webkitIsFullScreen() && document()->webkitCurrentFullScreenElement() == this) 2767 2780 return false; 2768 2781 #endif … … 2771 2784 return false; 2772 2785 2773 if (!cachedStyle) 2774 cachedStyle = styleForRenderer(); 2775 if (!cachedStyle) 2786 if (styleToUse->flowThread().isEmpty()) 2776 2787 return false; 2777 2788 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 } 2785 2791 2786 2792 const AtomicString& Element::webkitRegionOverset() const -
branches/safari-537-branch/Source/WebCore/dom/Element.h
r151572 r152659 478 478 void setIsInCanvasSubtree(bool); 479 479 bool isInCanvasSubtree() const; 480 481 void setIsInsideRegion(bool); 482 bool isInsideRegion() const; 480 483 481 484 AtomicString computeInheritedLanguage() const; … … 624 627 625 628 RenderRegion* renderRegion() const; 626 virtual bool moveToFlowThreadIsNeeded(RefPtr<RenderStyle>& cachedStyle);629 virtual bool shouldMoveToFlowThread(RenderStyle*) const; 627 630 #if ENABLE(CSS_REGIONS) 628 631 const AtomicString& webkitRegionOverset() const; -
branches/safari-537-branch/Source/WebCore/dom/ElementRareData.h
r148921 r152659 60 60 bool isInCanvasSubtree() const { return m_isInCanvasSubtree; } 61 61 void setIsInCanvasSubtree(bool value) { m_isInCanvasSubtree = value; } 62 63 bool isInsideRegion() const { return m_isInsideRegion; } 64 void setIsInsideRegion(bool value) { m_isInsideRegion = value; } 62 65 63 66 #if ENABLE(FULLSCREEN_API) … … 157 160 unsigned m_childrenAffectedByBackwardPositionalRules : 1; 158 161 162 unsigned m_isInsideRegion : 1; 159 163 LayoutSize m_minimumSizeForResizing; 160 164 IntSize m_savedLayerScrollOffset; … … 203 207 , m_childrenAffectedByForwardPositionalRules(false) 204 208 , m_childrenAffectedByBackwardPositionalRules(false) 209 , m_isInsideRegion(false) 205 210 , m_minimumSizeForResizing(defaultMinimumSizeForResizing()) 206 211 { -
branches/safari-537-branch/Source/WebCore/dom/Node.cpp
r151572 r152659 61 61 #include "ExceptionCode.h" 62 62 #include "ExceptionCodePlaceholder.h" 63 #include "FlowThreadController.h" 63 64 #include "Frame.h" 64 65 #include "FrameView.h" … … 1119 1120 } 1120 1121 1122 bool Node::isRegisteredWithNamedFlow() const 1123 { 1124 return document()->renderView()->flowThreadController()->isContentNodeRegisteredWithAnyNamedFlow(this); 1125 } 1126 1121 1127 Element* Node::shadowHost() const 1122 1128 { -
branches/safari-537-branch/Source/WebCore/dom/Node.h
r151572 r152659 273 273 bool hasCustomStyleCallbacks() const { return getFlag(HasCustomStyleCallbacksFlag); } 274 274 275 bool isRegisteredWithNamedFlow() const; 276 275 277 bool hasSyntheticAttrChildNodes() const { return getFlag(HasSyntheticAttrChildNodesFlag); } 276 278 void setHasSyntheticAttrChildNodes(bool flag) { setFlag(flag, HasSyntheticAttrChildNodesFlag); } -
branches/safari-537-branch/Source/WebCore/dom/NodeRenderingContext.cpp
r151647 r152659 156 156 } 157 157 158 RenderObject* NodeRenderingContext::parentRenderer() 158 RenderObject* NodeRenderingContext::parentRenderer() const 159 159 { 160 160 if (RenderObject* renderer = m_node->renderer()) … … 178 178 return m_parentFlowRenderer; 179 179 180 if (m_node->isElementNode() && toElement(m_node)->moveToFlowThreadIsNeeded(m_style)) {181 moveToFlowThread();182 return m_parentFlowRenderer;183 }184 185 180 return m_renderingParent ? m_renderingParent->renderer() : 0; 186 181 } 187 182 188 bool NodeRenderingContext::shouldCreateRenderer() 183 bool NodeRenderingContext::shouldCreateRenderer() const 189 184 { 190 185 if (!m_node->document()->shouldCreateRenderers()) … … 195 190 if (!parentRenderer) 196 191 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; 208 194 if (!m_renderingParent->childShouldCreateRenderer(*this)) 209 195 return false; … … 211 197 } 212 198 199 // Check the specific case of elements that are children of regions but are flowed into a flow thread themselves. 200 bool 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 213 221 void NodeRenderingContext::moveToFlowThreadIfNeeded() 214 222 { 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 231 228 ASSERT(m_node->document()->renderView()); 232 229 FlowThreadController* flowThreadController = m_node->document()->renderView()->flowThreadController(); … … 251 248 Element* element = toElement(m_node); 252 249 253 if (!shouldCreateRenderer()) 254 return; 250 element->setIsInsideRegion(false); 251 252 if (!shouldCreateRenderer() && !elementInsideRegionNeedsRenderer()) 253 return; 254 255 255 if (!m_style) 256 256 m_style = element->styleForRenderer(); -
branches/safari-537-branch/Source/WebCore/dom/NodeRenderingContext.h
r151282 r152659 57 57 ContainerNode* parentNodeForRenderingAndStyle() const; 58 58 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; 60 60 RenderObject* nextRenderer() const; 61 61 RenderObject* previousRenderer() const; … … 68 68 69 69 private: 70 bool shouldCreateRenderer(); 71 void moveToFlowThread(); 70 bool shouldCreateRenderer() const; 72 71 void moveToFlowThreadIfNeeded(); 72 bool elementInsideRegionNeedsRenderer(); 73 73 74 74 Node* m_node; -
branches/safari-537-branch/Source/WebCore/dom/PseudoElement.h
r151282 r152659 49 49 // As per http://dev.w3.org/csswg/css3-regions/#flow-into, pseudo-elements such as ::first-line, ::first-letter, ::before or ::after 50 50 // 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; } 56 52 57 53 virtual bool canStartSelection() const OVERRIDE { return false; } -
branches/safari-537-branch/Source/WebCore/dom/Text.cpp
r151282 r152659 200 200 } 201 201 202 bool Text::textRendererIsNeeded( NodeRenderingContext& context)202 bool Text::textRendererIsNeeded(const NodeRenderingContext& context) 203 203 { 204 204 if (isEditingText()) -
branches/safari-537-branch/Source/WebCore/dom/Text.h
r151282 r152659 47 47 void recalcTextStyle(StyleChange); 48 48 void createTextRendererIfNeeded(); 49 bool textRendererIsNeeded( NodeRenderingContext&);49 bool textRendererIsNeeded(const NodeRenderingContext&); 50 50 RenderText* createTextRenderer(RenderArena*, RenderStyle*); 51 51 void updateTextRenderer(unsigned offsetOfReplacedData, unsigned lengthOfReplacedData); -
branches/safari-537-branch/Source/WebCore/rendering/FlowThreadController.cpp
r148865 r152659 119 119 { 120 120 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); 122 122 ASSERT(it != m_mapNamedFlowContentNodes.end()); 123 123 ASSERT(it->value); … … 228 228 } 229 229 230 bool FlowThreadController::isContentNodeRegisteredWithAnyNamedFlow( Node* contentNode) const230 bool FlowThreadController::isContentNodeRegisteredWithAnyNamedFlow(const Node* contentNode) const 231 231 { 232 232 return m_mapNamedFlowContentNodes.contains(contentNode); -
branches/safari-537-branch/Source/WebCore/rendering/FlowThreadController.h
r148865 r152659 67 67 void registerNamedFlowContentNode(Node*, RenderNamedFlowThread*); 68 68 void unregisterNamedFlowContentNode(Node*); 69 bool isContentNodeRegisteredWithAnyNamedFlow( Node*) const;69 bool isContentNodeRegisteredWithAnyNamedFlow(const Node*) const; 70 70 71 71 bool hasFlowThreadsWithAutoLogicalHeightRegions() const { return m_flowThreadsWithAutoLogicalHeightRegions; } … … 93 93 OwnPtr<RenderNamedFlowThreadList> m_renderNamedFlowThreadList; 94 94 // maps a content node to its render flow thread. 95 HashMap< Node*, RenderNamedFlowThread*> m_mapNamedFlowContentNodes;95 HashMap<const Node*, RenderNamedFlowThread*> m_mapNamedFlowContentNodes; 96 96 }; 97 97 -
branches/safari-537-branch/Source/WebCore/rendering/RenderObject.h
r152061 r152659 253 253 ////////////////////////////////////////// 254 254 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).256 255 virtual bool canHaveGeneratedChildren() const; 257 256 virtual bool isChildAllowed(RenderObject*, RenderStyle*) const { return true; } -
branches/safari-537-branch/Source/WebCore/rendering/RenderRegion.h
r151647 r152659 147 147 148 148 virtual bool canHaveChildren() const OVERRIDE { return false; } 149 virtual bool canDOMChildrenHaveRenderParent() const OVERRIDE { return true; }150 149 virtual bool canHaveGeneratedChildren() const OVERRIDE { return true; } 151 150 -
branches/safari-537-branch/Source/WebCore/svg/SVGElement.cpp
r149392 r152659 460 460 } 461 461 462 bool SVGElement:: moveToFlowThreadIsNeeded(RefPtr<RenderStyle>& cachedStyle)462 bool SVGElement::shouldMoveToFlowThread(RenderStyle* styleToUse) const 463 463 { 464 464 // 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); 466 466 } 467 467 -
branches/safari-537-branch/Source/WebCore/svg/SVGElement.h
r148865 r152659 121 121 virtual bool removeEventListener(const AtomicString& eventType, EventListener*, bool useCapture) OVERRIDE; 122 122 123 virtual bool moveToFlowThreadIsNeeded(RefPtr<RenderStyle>& cachedStyle)OVERRIDE;123 virtual bool shouldMoveToFlowThread(RenderStyle*) const OVERRIDE; 124 124 125 125 protected:
Note: See TracChangeset
for help on using the changeset viewer.