Changeset 228559 in webkit
- Timestamp:
- Feb 16, 2018 7:13:31 AM (6 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r228557 r228559 1 2018-02-16 Zalan Bujtas <zalan@apple.com> 2 3 [RenderTreeBuilder] Move RenderBlock/RenderBlockFlow::addChild() to RenderTreeBuilder 4 https://bugs.webkit.org/show_bug.cgi?id=182862 5 <rdar://problem/37595464> 6 7 Reviewed by Antti Koivisto. 8 9 No change in functionality. 10 11 * rendering/RenderBlock.cpp: 12 (WebCore::RenderBlock::addChild): Deleted. 13 * rendering/RenderBlock.h: 14 * rendering/RenderBlockFlow.cpp: 15 (WebCore::RenderBlockFlow::addChild): Deleted. 16 * rendering/RenderBlockFlow.h: 17 * rendering/updating/RenderTreeBuilder.cpp: 18 (WebCore::RenderTreeBuilder::insertChild): 19 (WebCore::RenderTreeBuilder::insertChildToRenderBlock): Deleted. 20 (WebCore::RenderTreeBuilder::insertChildToRenderBlockFlow): Deleted. 21 * rendering/updating/RenderTreeBuilder.h: 22 * rendering/updating/RenderTreeBuilderBlockFlow.cpp: 23 (WebCore::RenderTreeBuilder::BlockFlow::insertChild): 24 * rendering/updating/RenderTreeBuilderFormControls.cpp: 25 (WebCore::RenderTreeBuilder::FormControls::findOrCreateParentForChild): 26 * rendering/updating/RenderTreeBuilderMathML.cpp: 27 (WebCore::RenderTreeBuilder::MathML::makeFences): 28 (WebCore::RenderTreeBuilder::MathML::insertChild): 29 * rendering/updating/RenderTreeBuilderMultiColumn.cpp: 30 (WebCore::RenderTreeBuilder::MultiColumn::createFragmentedFlow): 31 (WebCore::RenderTreeBuilder::MultiColumn::processPossibleSpannerDescendant): 32 * rendering/updating/RenderTreeBuilderRuby.cpp: 33 (WebCore::RenderTreeBuilder::Ruby::insertChild): 34 (WebCore::RenderTreeBuilder::Ruby::findOrCreateParentForChild): 35 (WebCore::RenderTreeBuilder::Ruby::rubyBaseSafe): 36 * rendering/updating/RenderTreeBuilderSVG.cpp: 37 (WebCore::RenderTreeBuilder::SVG::insertChild): 38 1 39 2018-02-16 Wenson Hsieh <wenson_hsieh@apple.com> 2 40 -
trunk/Source/WebCore/rendering/RenderBlock.cpp
r228441 r228559 467 467 } 468 468 469 void RenderBlock::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild)470 {471 builder.insertChildToRenderBlock(*this, WTFMove(newChild), beforeChild);472 }473 474 469 void RenderBlock::addChildIgnoringContinuation(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild) 475 470 { -
trunk/Source/WebCore/rendering/RenderBlock.h
r228441 r228559 74 74 virtual void deleteLines(); 75 75 76 void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> newChild, RenderObject* beforeChild = 0) override;77 78 76 virtual void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0); 79 77 -
trunk/Source/WebCore/rendering/RenderBlockFlow.cpp
r228432 r228559 3845 3845 } 3846 3846 3847 void RenderBlockFlow::addChild(RenderTreeBuilder& builder, RenderPtr<RenderObject> newChild, RenderObject* beforeChild)3848 {3849 builder.insertChildToRenderBlockFlow(*this, WTFMove(newChild), beforeChild);3850 }3851 3852 3847 void RenderBlockFlow::checkForPaginationLogicalHeightChange(bool& relayoutChildren, LayoutUnit& pageLogicalHeight, bool& pageLogicalHeightChanged) 3853 3848 { -
trunk/Source/WebCore/rendering/RenderBlockFlow.h
r228432 r228559 378 378 LayoutUnit logicalHeightForChildForFragmentation(const RenderBox& child) const; 379 379 bool hasNextPage(LayoutUnit logicalOffset, PageBoundaryRule = ExcludePageBoundary) const; 380 381 void addChild(RenderTreeBuilder&, RenderPtr<RenderObject> newChild, RenderObject* beforeChild = 0) override;382 380 383 381 void updateColumnProgressionFromStyle(RenderStyle&); -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp
r228547 r228559 241 241 } 242 242 243 if (is<RenderBlockFlow>(parent)) { 244 blockFlowBuilder().insertChild(downcast<RenderBlockFlow>(parent), WTFMove(child), beforeChild); 245 return; 246 } 247 248 if (is<RenderBlock>(parent)) { 249 blockBuilder().insertChild(downcast<RenderBlock>(parent), WTFMove(child), beforeChild); 250 return; 251 } 252 243 253 if (is<RenderInline>(parent)) { 244 254 inlineBuilder().insertChild(downcast<RenderInline>(parent), WTFMove(child), beforeChild); … … 312 322 } 313 323 parent.RenderElement::insertChildInternal(WTFMove(child), beforeChild); 314 }315 316 void RenderTreeBuilder::insertChildToRenderBlock(RenderBlock& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)317 {318 blockBuilder().insertChild(parent, WTFMove(child), beforeChild);319 324 } 320 325 … … 514 519 } 515 520 516 void RenderTreeBuilder::insertChildToRenderBlockFlow(RenderBlockFlow& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild)517 {518 blockFlowBuilder().insertChild(parent, WTFMove(child), beforeChild);519 }520 521 521 void RenderTreeBuilder::updateAfterDescendants(RenderElement& renderer) 522 522 { -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.h
r228542 r228559 65 65 // These functions are temporary until after all block/inline/continuation code is moved over. 66 66 void insertChildToRenderElement(RenderElement& parent, RenderPtr<RenderObject> child, RenderObject* beforeChild = nullptr); 67 void insertChildToRenderBlock(RenderBlock& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);68 67 void insertChildToRenderBlockIgnoringContinuation(RenderBlock& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr); 69 void insertChildToRenderBlockFlow(RenderBlockFlow& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr);70 68 void insertChildToRenderInlineIgnoringContinuation(RenderInline& parent, RenderPtr<RenderObject>, RenderObject* beforeChild = nullptr); 71 69 -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlockFlow.cpp
r228465 r228559 43 43 if (auto* containingFragmentedFlow = parent.enclosingFragmentedFlow()) 44 44 beforeChildOrPlaceholder = m_builder.multiColumnBuilder().resolveMovedChild(*containingFragmentedFlow, beforeChild); 45 m_builder. insertChildToRenderBlock(parent, WTFMove(child), beforeChildOrPlaceholder);45 m_builder.blockBuilder().insertChild(parent, WTFMove(child), beforeChildOrPlaceholder); 46 46 } 47 47 -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderFormControls.cpp
r228550 r228559 57 57 auto wrapper = parent.createAnonymousBlock(parent.style().display()); 58 58 innerRenderer = wrapper.get(); 59 parent.RenderBlock::addChild(m_builder, WTFMove(wrapper));59 m_builder.blockBuilder().insertChild(parent, WTFMove(wrapper), nullptr); 60 60 parent.setInnerRenderer(*innerRenderer); 61 61 return *innerRenderer; … … 70 70 auto wrapper = parent.createAnonymousBlock(); 71 71 innerRenderer = wrapper.get(); 72 parent.RenderBlock::addChild(m_builder, WTFMove(wrapper));72 m_builder.blockBuilder().insertChild(parent, WTFMove(wrapper), nullptr); 73 73 parent.setInnerRenderer(*innerRenderer); 74 74 return *innerRenderer; -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderMathML.cpp
r228550 r228559 48 48 { 49 49 auto openFence = createMathMLOperator(parent, parent.openingBrace(), MathMLOperatorDictionary::Prefix, MathMLOperatorDictionary::Fence); 50 parent.RenderBlock::addChild(m_builder, WTFMove(openFence), parent.firstChild());50 m_builder.blockBuilder().insertChild(parent, WTFMove(openFence), parent.firstChild()); 51 51 52 52 auto closeFence = createMathMLOperator(parent, parent.closingBrace(), MathMLOperatorDictionary::Postfix, MathMLOperatorDictionary::Fence); 53 53 parent.setCloseFenceRenderer(*closeFence); 54 parent.RenderBlock::addChild(m_builder, WTFMove(closeFence));54 m_builder.blockBuilder().insertChild(parent, WTFMove(closeFence), nullptr); 55 55 } 56 56 … … 96 96 if (beforeChild) { 97 97 // Adding |x| before an existing |y| e.g. in element (y) - first insert our new child |x|, then its separator, to get (x, y). 98 parent.RenderBlock::addChild(m_builder, WTFMove(child), beforeChild);98 m_builder.blockBuilder().insertChild(parent, WTFMove(child), beforeChild); 99 99 if (separatorRenderer) 100 parent.RenderMathMLRow::addChild(m_builder, WTFMove(separatorRenderer), beforeChild);100 m_builder.blockBuilder().insertChild(parent, WTFMove(separatorRenderer), beforeChild); 101 101 } else { 102 102 // Adding |y| at the end of an existing element e.g. (x) - insert the separator first before the closing fence, then |y|, to get (x, y). 103 103 if (separatorRenderer) 104 parent.RenderBlock::addChild(m_builder, WTFMove(separatorRenderer), parent.closeFenceRenderer());105 parent.RenderBlock::addChild(m_builder, WTFMove(child), parent.closeFenceRenderer());104 m_builder.blockBuilder().insertChild(parent, WTFMove(separatorRenderer), parent.closeFenceRenderer()); 105 m_builder.blockBuilder().insertChild(parent, WTFMove(child), parent.closeFenceRenderer()); 106 106 } 107 107 } -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.cpp
r228400 r228559 32 32 #include "RenderMultiColumnSpannerPlaceholder.h" 33 33 #include "RenderTreeBuilder.h" 34 #include "RenderTreeBuilderBlock.h" 34 35 35 36 namespace WebCore { … … 169 170 newFragmentedFlow->initializeStyle(); 170 171 auto& fragmentedFlow = *newFragmentedFlow; 171 m_builder. insertChildToRenderBlock(flow, WTFMove(newFragmentedFlow));172 m_builder.blockBuilder().insertChild(flow, WTFMove(newFragmentedFlow), nullptr); 172 173 173 174 // Reparent children preceding the fragmented flow into the fragmented flow. … … 318 319 // This is a guard to stop an ancestor flow thread from processing the spanner. 319 320 gShiftingSpanner = true; 320 m_builder. insertChildToRenderBlock(*multicolContainer, WTFMove(takenDescendant), insertBeforeMulticolChild);321 m_builder.blockBuilder().insertChild(*multicolContainer, WTFMove(takenDescendant), insertBeforeMulticolChild); 321 322 gShiftingSpanner = false; 322 323 … … 355 356 newSet->initializeStyle(); 356 357 auto& set = *newSet; 357 m_builder. insertChildToRenderBlock(*multicolContainer, WTFMove(newSet), insertBeforeMulticolChild);358 m_builder.blockBuilder().insertChild(*multicolContainer, WTFMove(newSet), insertBeforeMulticolChild); 358 359 flow.invalidateFragments(); 359 360 -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderRuby.cpp
r228520 r228559 32 32 #include "RenderTreeBuilder.h" 33 33 #include "RenderTreeBuilderBlock.h" 34 #include "RenderTreeBuilderBlockFlow.h" 34 35 #include "RenderTreeBuilderInline.h" 35 36 … … 200 201 ASSERT(!parent.hasRubyText()); 201 202 // prepend ruby texts as first child 202 parent.addChild(m_builder, WTFMove(child), parent.firstChild());203 m_builder.blockFlowBuilder().insertChild(parent, WTFMove(child), parent.firstChild()); 203 204 return; 204 205 } … … 216 217 // in order to avoid automatic removal of the ruby run in case there is no 217 218 // other child besides the old ruby text. 218 parent.addChild(m_builder, WTFMove(child), beforeChild);219 m_builder.blockFlowBuilder().insertChild(parent, WTFMove(child), beforeChild); 219 220 auto takenBeforeChild = m_builder.blockBuilder().takeChild(parent, *beforeChild); 220 221 … … 253 254 auto newBlock = createAnonymousRubyInlineBlock(parent); 254 255 beforeBlock = newBlock.get(); 255 m_builder. insertChildToRenderBlockFlow(parent, WTFMove(newBlock), parent.firstChild());256 m_builder.blockFlowBuilder().insertChild(parent, WTFMove(newBlock), parent.firstChild()); 256 257 } 257 258 beforeChild = nullptr; … … 268 269 auto newBlock = createAnonymousRubyInlineBlock(parent); 269 270 afterBlock = newBlock.get(); 270 m_builder. insertChildToRenderBlockFlow(parent, WTFMove(newBlock));271 m_builder.blockFlowBuilder().insertChild(parent, WTFMove(newBlock), nullptr); 271 272 } 272 273 beforeChild = nullptr; … … 297 298 auto newRun = RenderRubyRun::staticCreateRubyRun(&parent); 298 299 lastRun = newRun.get(); 299 m_builder. insertChildToRenderBlockFlow(parent, WTFMove(newRun), beforeChild);300 m_builder.blockFlowBuilder().insertChild(parent, WTFMove(newRun), beforeChild); 300 301 } 301 302 beforeChild = nullptr; … … 371 372 auto newBase = rubyRun.createRubyBase(); 372 373 base = newBase.get(); 373 m_builder. insertChildToRenderBlockFlow(rubyRun, WTFMove(newBase));374 m_builder.blockFlowBuilder().insertChild(rubyRun, WTFMove(newBase), nullptr); 374 375 } 375 376 return *base; -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderSVG.cpp
r228550 r228559 68 68 { 69 69 auto& childToAdd = *child; 70 m_builder. insertChildToRenderBlockFlow(parent, WTFMove(child), beforeChild);70 m_builder.blockFlowBuilder().insertChild(parent, WTFMove(child), beforeChild); 71 71 72 72 SVGResourcesCache::clientWasAddedToTree(childToAdd);
Note: See TracChangeset
for help on using the changeset viewer.