Changeset 226568 in webkit
- Timestamp:
- Jan 8, 2018 3:14:11 PM (6 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r226542 r226568 1 2018-01-08 Zalan Bujtas <zalan@apple.com> 2 3 [RenderTreeBuilder] Move SVG addChild logic to RenderTreeBuilder 4 https://bugs.webkit.org/show_bug.cgi?id=181405 5 <rdar://problem/36360476> 6 7 Reviewed by Antti Koivisto. 8 9 This is about moving the code, no cleanup and/or normalization (unfortunately it also means 10 some temporary changes). 11 12 No change in functionality. 13 14 * Sources.txt: 15 * WebCore.xcodeproj/project.pbxproj: 16 * rendering/svg/RenderSVGContainer.cpp: 17 (WebCore::RenderSVGContainer::addChild): 18 * rendering/svg/RenderSVGInline.cpp: 19 (WebCore::RenderSVGInline::addChild): 20 * rendering/svg/RenderSVGRoot.cpp: 21 (WebCore::RenderSVGRoot::addChild): 22 * rendering/svg/RenderSVGText.cpp: 23 (WebCore::RenderSVGText::addChild): 24 * rendering/updating/RenderTreeBuilder.cpp: 25 (WebCore::RenderTreeBuilder::RenderTreeBuilder): 26 (WebCore::RenderTreeBuilder::insertChildToSVGContainer): 27 (WebCore::RenderTreeBuilder::insertChildToSVGInline): 28 (WebCore::RenderTreeBuilder::insertChildToSVGRoot): 29 (WebCore::RenderTreeBuilder::insertChildToSVGText): 30 * rendering/updating/RenderTreeBuilder.h: 31 (WebCore::RenderTreeBuilder::SVGBuilder): 32 * rendering/updating/RenderTreeBuilderSVG.cpp: Added. 33 (WebCore::RenderTreeBuilder::SVG::SVG): 34 (WebCore::RenderTreeBuilder::SVG::insertChild): 35 * rendering/updating/RenderTreeBuilderSVG.h: Added. 36 1 37 2018-01-08 John Wilander <wilander@apple.com> 2 38 -
trunk/Source/WebCore/Sources.txt
r226537 r226568 1993 1993 rendering/updating/RenderTreeBuilderMultiColumn.cpp 1994 1994 rendering/updating/RenderTreeBuilderRuby.cpp 1995 rendering/updating/RenderTreeBuilderSVG.cpp 1995 1996 rendering/updating/RenderTreeBuilderTable.cpp 1996 1997 rendering/updating/RenderTreePosition.cpp -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r226537 r226568 5596 5596 11C5F11D2003F69E0001AE60 /* RenderTreeBuilderBlockFlow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderTreeBuilderBlockFlow.h; sourceTree = "<group>"; }; 5597 5597 11C5F11F2003F69F0001AE60 /* RenderTreeBuilderBlockFlow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderTreeBuilderBlockFlow.cpp; sourceTree = "<group>"; }; 5598 11C5F12A2004231D0001AE60 /* RenderTreeBuilderSVG.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderTreeBuilderSVG.h; sourceTree = "<group>"; }; 5599 11C5F12C2004231E0001AE60 /* RenderTreeBuilderSVG.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderTreeBuilderSVG.cpp; sourceTree = "<group>"; }; 5598 5600 11E067EB1E62461300162D16 /* SimpleLineLayoutCoverage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SimpleLineLayoutCoverage.cpp; sourceTree = "<group>"; }; 5599 5601 11E067ED1E6246E500162D16 /* SimpleLineLayoutCoverage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SimpleLineLayoutCoverage.h; sourceTree = "<group>"; }; … … 24650 24652 119340871FEB355D00935F1E /* RenderTreeBuilderRuby.cpp */, 24651 24653 119340881FEB355D00935F1E /* RenderTreeBuilderRuby.h */, 24654 11C5F12C2004231E0001AE60 /* RenderTreeBuilderSVG.cpp */, 24655 11C5F12A2004231D0001AE60 /* RenderTreeBuilderSVG.h */, 24652 24656 119340761FE8B92300935F1E /* RenderTreeBuilderTable.cpp */, 24653 24657 119340771FE8B92300935F1E /* RenderTreeBuilderTable.h */, -
trunk/Source/WebCore/rendering/svg/RenderSVGContainer.cpp
r226007 r226568 31 31 #include "RenderIterator.h" 32 32 #include "RenderSVGResourceFilter.h" 33 #include "RenderTreeBuilder.h" 33 34 #include "RenderView.h" 34 35 #include "SVGRenderingContext.h" … … 92 93 void RenderSVGContainer::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild) 93 94 { 94 auto& child = *newChild; 95 RenderSVGModelObject::addChild(builder, WTFMove(newChild), beforeChild); 96 SVGResourcesCache::clientWasAddedToTree(child); 95 builder.insertChildToSVGContainer(*this, WTFMove(newChild), beforeChild); 97 96 } 98 97 -
trunk/Source/WebCore/rendering/svg/RenderSVGInline.cpp
r226007 r226568 126 126 void RenderSVGInline::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild) 127 127 { 128 auto& child = *newChild; 129 RenderInline::addChild(builder, WTFMove(newChild), beforeChild); 130 SVGResourcesCache::clientWasAddedToTree(child); 131 132 if (auto* textAncestor = RenderSVGText::locateRenderSVGTextAncestor(*this)) 133 textAncestor->subtreeChildWasAdded(&child); 128 builder.insertChildToSVGInline(*this, WTFMove(newChild), beforeChild); 134 129 } 135 130 -
trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp
r226007 r226568 36 36 #include "RenderSVGResourceContainer.h" 37 37 #include "RenderSVGResourceFilter.h" 38 #include "RenderTreeBuilder.h" 38 39 #include "RenderView.h" 39 40 #include "SVGImage.h" … … 305 306 void RenderSVGRoot::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild) 306 307 { 307 auto& child = *newChild; 308 RenderReplaced::addChild(builder, WTFMove(newChild), beforeChild); 309 SVGResourcesCache::clientWasAddedToTree(child); 308 builder.insertChildToSVGRoot(*this, WTFMove(newChild), beforeChild); 310 309 } 311 310 -
trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp
r226007 r226568 523 523 void RenderSVGText::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild) 524 524 { 525 auto& child = *newChild; 526 RenderSVGBlock::addChild(builder, WTFMove(newChild), beforeChild); 527 528 SVGResourcesCache::clientWasAddedToTree(child); 529 subtreeChildWasAdded(&child); 525 builder.insertChildToSVGText(*this, WTFMove(newChild), beforeChild); 530 526 } 531 527 -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp
r226537 r226568 42 42 #include "RenderTreeBuilderMultiColumn.h" 43 43 #include "RenderTreeBuilderRuby.h" 44 #include "RenderTreeBuilderSVG.h" 44 45 #include "RenderTreeBuilderTable.h" 45 46 … … 111 112 , m_blockFlowBuilder(std::make_unique<BlockFlow>(*this)) 112 113 , m_inlineBuilder(std::make_unique<Inline>(*this)) 114 , m_svgBuilder(std::make_unique<SVG>(*this)) 113 115 { 114 116 RELEASE_ASSERT(!s_current || &m_view != &s_current->m_view); … … 286 288 } 287 289 290 void RenderTreeBuilder::insertChildToSVGContainer(RenderSVGContainer& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild) 291 { 292 svgBuilder().insertChild(parent, WTFMove(child), beforeChild); 293 } 294 295 void RenderTreeBuilder::insertChildToSVGInline(RenderSVGInline& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild) 296 { 297 svgBuilder().insertChild(parent, WTFMove(child), beforeChild); 298 } 299 300 void RenderTreeBuilder::insertChildToSVGRoot(RenderSVGRoot& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild) 301 { 302 svgBuilder().insertChild(parent, WTFMove(child), beforeChild); 303 } 304 305 void RenderTreeBuilder::insertChildToSVGText(RenderSVGText& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild) 306 { 307 svgBuilder().insertChild(parent, WTFMove(child), beforeChild); 308 } 309 288 310 void RenderTreeBuilder::splitFlow(RenderInline& parent, RenderObject* beforeChild, RenderPtr<RenderBlock> newBlockBox, RenderPtr<RenderObject> child, RenderBoxModelObject* oldCont) 289 311 { -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h
r226537 r226568 31 31 32 32 class RenderRubyRun; 33 class RenderSVGContainer; 34 class RenderSVGInline; 35 class RenderSVGRoot; 36 class RenderSVGText; 33 37 class RenderTreeUpdater; 34 38 … … 53 57 void insertChildToRenderInline(RenderInline& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr); 54 58 void insertChildToRenderInlineIgnoringContinuation(RenderInline& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr); 59 void insertChildToSVGContainer(RenderSVGContainer& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr); 60 void insertChildToSVGInline(RenderSVGInline& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr); 61 void insertChildToSVGRoot(RenderSVGRoot& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr); 62 void insertChildToSVGText(RenderSVGText& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr); 55 63 56 64 void makeChildrenNonInline(RenderBlock& parent, RenderObject* insertionPoint = nullptr); … … 68 76 class BlockFlow; 69 77 class Inline; 78 class SVG; 70 79 71 80 FirstLetter& firstLetterBuilder() { return *m_firstLetterBuilder; } … … 78 87 BlockFlow& blockFlowBuilder() { return *m_blockFlowBuilder; } 79 88 Inline& inlineBuilder() { return *m_inlineBuilder; } 89 SVG& svgBuilder() { return *m_svgBuilder; } 80 90 81 91 RenderView& m_view; … … 93 103 std::unique_ptr<BlockFlow> m_blockFlowBuilder; 94 104 std::unique_ptr<Inline> m_inlineBuilder; 105 std::unique_ptr<SVG> m_svgBuilder; 95 106 }; 96 107
Note: See TracChangeset
for help on using the changeset viewer.