Changeset 228429 in webkit
- Timestamp:
- Feb 13, 2018 12:36:41 PM (6 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r228428 r228429 1 2018-02-13 Zalan Bujtas <zalan@apple.com> 2 3 [RenderTreeBuilder] Move RenderSVG*::takeChild() to RenderTreeBuilder 4 https://bugs.webkit.org/show_bug.cgi?id=182736 5 <rdar://problem/37503107> 6 7 Reviewed by Antti Koivisto. 8 9 No change in functionality. 10 11 * rendering/svg/RenderSVGContainer.cpp: 12 (WebCore::RenderSVGContainer::takeChild): Deleted. 13 * rendering/svg/RenderSVGContainer.h: 14 * rendering/svg/RenderSVGInline.cpp: 15 (WebCore::RenderSVGInline::takeChild): Deleted. 16 * rendering/svg/RenderSVGInline.h: 17 * rendering/svg/RenderSVGRoot.cpp: 18 (WebCore::RenderSVGRoot::takeChild): Deleted. 19 * rendering/svg/RenderSVGRoot.h: 20 * rendering/svg/RenderSVGText.cpp: 21 (WebCore::RenderSVGText::takeChild): Deleted. 22 * rendering/svg/RenderSVGText.h: 23 * rendering/updating/RenderTreeBuilder.cpp: 24 (WebCore::RenderTreeBuilder::takeChild): 25 * rendering/updating/RenderTreeBuilderSVG.cpp: 26 (WebCore::RenderTreeBuilder::SVG::takeChild): 27 * rendering/updating/RenderTreeBuilderSVG.h: 28 1 29 2018-02-13 Zalan Bujtas <zalan@apple.com> 2 30 -
trunk/Source/WebCore/rendering/svg/RenderSVGContainer.cpp
r227977 r228429 94 94 { 95 95 builder.insertChildToSVGContainer(*this, WTFMove(newChild), beforeChild); 96 }97 98 RenderPtr<RenderObject> RenderSVGContainer::takeChild(RenderTreeBuilder& builder, RenderObject& child)99 {100 SVGResourcesCache::clientWillBeRemovedFromTree(child);101 return RenderSVGModelObject::takeChild(builder, child);102 96 } 103 97 -
trunk/Source/WebCore/rendering/svg/RenderSVGContainer.h
r227977 r228429 50 50 51 51 void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> child, RenderObject* beforeChild = 0) final; 52 RenderPtr<RenderObject> takeChild(RenderTreeBuilder&, RenderObject&) final;53 52 void addFocusRingRects(Vector<LayoutRect>&, const LayoutPoint& additionalOffset, const RenderLayerModelObject* paintContainer = 0) final; 54 53 -
trunk/Source/WebCore/rendering/svg/RenderSVGInline.cpp
r228337 r228429 129 129 } 130 130 131 RenderPtr<RenderObject> RenderSVGInline::takeChild(RenderTreeBuilder& builder, RenderObject& child)132 {133 SVGResourcesCache::clientWillBeRemovedFromTree(child);134 135 auto* textAncestor = RenderSVGText::locateRenderSVGTextAncestor(*this);136 if (!textAncestor)137 return RenderInline::takeChild(builder, child);138 139 Vector<SVGTextLayoutAttributes*, 2> affectedAttributes;140 textAncestor->subtreeChildWillBeRemoved(&child, affectedAttributes);141 auto takenChild = RenderInline::takeChild(builder, child);142 textAncestor->subtreeChildWasRemoved(affectedAttributes);143 return takenChild;144 131 } 145 146 } -
trunk/Source/WebCore/rendering/svg/RenderSVGInline.h
r228337 r228429 63 63 64 64 void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr) final; 65 RenderPtr<RenderObject> takeChild(RenderTreeBuilder&, RenderObject&) final;66 65 }; 67 66 -
trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp
r228337 r228429 309 309 } 310 310 311 RenderPtr<RenderObject> RenderSVGRoot::takeChild(RenderTreeBuilder& builder, RenderObject& child)312 {313 SVGResourcesCache::clientWillBeRemovedFromTree(child);314 return RenderReplaced::takeChild(builder, child);315 }316 317 311 // RenderBox methods will expect coordinates w/o any transforms in coordinates 318 312 // relative to our borderBox origin. This method gives us exactly that. -
trunk/Source/WebCore/rendering/svg/RenderSVGRoot.h
r228337 r228429 84 84 void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override; 85 85 void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> child, RenderObject* beforeChild = 0) override; 86 RenderPtr<RenderObject> takeChild(RenderTreeBuilder&, RenderObject&) override;87 86 88 87 const AffineTransform& localToParentTransform() const override; -
trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp
r228337 r228429 526 526 } 527 527 528 RenderPtr<RenderObject> RenderSVGText::takeChild(RenderTreeBuilder& builder, RenderObject& child)529 {530 SVGResourcesCache::clientWillBeRemovedFromTree(child);531 532 Vector<SVGTextLayoutAttributes*, 2> affectedAttributes;533 subtreeChildWillBeRemoved(&child, affectedAttributes);534 auto takenChild = RenderSVGBlock::takeChild(builder, child);535 subtreeChildWasRemoved(affectedAttributes);536 return takenChild;537 }538 539 528 // Fix for <rdar://problem/8048875>. We should not render :first-line CSS Style 540 529 // in a SVG text element context. -
trunk/Source/WebCore/rendering/svg/RenderSVGText.h
r228337 r228429 85 85 const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const override; 86 86 void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr) override; 87 RenderPtr<RenderObject> takeChild(RenderTreeBuilder&, RenderObject&) override;88 87 void willBeDestroyed(RenderTreeBuilder&) override; 89 88 -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp
r228428 r228429 34 34 #include "RenderRubyBase.h" 35 35 #include "RenderRubyRun.h" 36 #include "RenderSVGContainer.h" 37 #include "RenderSVGInline.h" 38 #include "RenderSVGRoot.h" 36 39 #include "RenderTable.h" 37 40 #include "RenderTableRow.h" … … 210 213 return takeChildFromRenderGrid(downcast<RenderGrid>(parent), child); 211 214 215 if (is<RenderSVGText>(parent)) 216 return svgBuilder().takeChild(downcast<RenderSVGText>(parent), child); 217 218 if (is<RenderSVGInline>(parent)) 219 return svgBuilder().takeChild(downcast<RenderSVGInline>(parent), child); 220 221 if (is<RenderSVGContainer>(parent)) 222 return svgBuilder().takeChild(downcast<RenderSVGContainer>(parent), child); 223 224 if (is<RenderSVGRoot>(parent)) 225 return svgBuilder().takeChild(downcast<RenderSVGRoot>(parent), child); 226 212 227 return parent.takeChild(*this, child); 213 228 } -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderSVG.cpp
r226568 r228429 73 73 } 74 74 75 RenderPtr<RenderObject> RenderTreeBuilder::SVG::takeChild(RenderSVGText& parent, RenderObject& child) 76 { 77 SVGResourcesCache::clientWillBeRemovedFromTree(child); 78 79 Vector<SVGTextLayoutAttributes*, 2> affectedAttributes; 80 parent.subtreeChildWillBeRemoved(&child, affectedAttributes); 81 auto takenChild = parent.RenderBlockFlow::takeChild(m_builder, child); 82 parent.subtreeChildWasRemoved(affectedAttributes); 83 return takenChild; 75 84 } 85 86 RenderPtr<RenderObject> RenderTreeBuilder::SVG::takeChild(RenderSVGInline& parent, RenderObject& child) 87 { 88 SVGResourcesCache::clientWillBeRemovedFromTree(child); 89 90 auto* textAncestor = RenderSVGText::locateRenderSVGTextAncestor(parent); 91 if (!textAncestor) 92 return parent.RenderElement::takeChild(m_builder, child); 93 94 Vector<SVGTextLayoutAttributes*, 2> affectedAttributes; 95 textAncestor->subtreeChildWillBeRemoved(&child, affectedAttributes); 96 auto takenChild = parent.RenderElement::takeChild(m_builder, child); 97 textAncestor->subtreeChildWasRemoved(affectedAttributes); 98 return takenChild; 99 } 100 101 RenderPtr<RenderObject> RenderTreeBuilder::SVG::takeChild(RenderSVGContainer& parent, RenderObject& child) 102 { 103 SVGResourcesCache::clientWillBeRemovedFromTree(child); 104 return parent.RenderElement::takeChild(m_builder, child); 105 } 106 107 RenderPtr<RenderObject> RenderTreeBuilder::SVG::takeChild(RenderSVGRoot& parent, RenderObject& child) 108 { 109 SVGResourcesCache::clientWillBeRemovedFromTree(child); 110 return parent.RenderElement::takeChild(m_builder, child); 111 } 112 113 } -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderSVG.h
r226568 r228429 44 44 void insertChild(RenderSVGText& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild); 45 45 46 RenderPtr<RenderObject> takeChild(RenderSVGText& parent, RenderObject& child); 47 RenderPtr<RenderObject> takeChild(RenderSVGInline& parent, RenderObject& child); 48 RenderPtr<RenderObject> takeChild(RenderSVGContainer& parent, RenderObject& child); 49 RenderPtr<RenderObject> takeChild(RenderSVGRoot& parent, RenderObject& child); 50 46 51 private: 47 52 RenderTreeBuilder& m_builder;
Note: See TracChangeset
for help on using the changeset viewer.