Changeset 270594 in webkit
- Timestamp:
- Dec 9, 2020, 12:12:21 PM (6 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 7 edited
-
ChangeLog (modified) (1 diff)
-
layout/integration/LayoutIntegrationLineLayout.cpp (modified) (2 diffs)
-
layout/integration/LayoutIntegrationLineLayout.h (modified) (1 diff)
-
rendering/RenderObject.cpp (modified) (2 diffs)
-
rendering/RenderText.cpp (modified) (1 diff)
-
rendering/updating/RenderTreeBuilder.cpp (modified) (1 diff)
-
rendering/updating/RenderTreeBuilderBlock.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r270590 r270594 1 2020-12-09 Ryan Haddad <ryanhaddad@apple.com> 2 3 Unreviewed, reverting r270544 and r270569. 4 5 Caused two editing tests to consistently crash on iOS 6 7 Reverted changesets: 8 9 "[LFC][Integration] Invalidate line layout path for children 10 of inlines" 11 https://bugs.webkit.org/show_bug.cgi?id=219639 12 https://trac.webkit.org/changeset/270544 13 14 "Unreviewed. Add missing LFC guards around LineLayout usage 15 from r270544" 16 https://trac.webkit.org/changeset/270569 17 1 18 2020-12-09 Antti Koivisto <antti@apple.com> 2 19 -
trunk/Source/WebCore/layout/integration/LayoutIntegrationLineLayout.cpp
r270544 r270594 69 69 LineLayout::~LineLayout() = default; 70 70 71 RenderBlockFlow* LineLayout::blockContainer(RenderObject& renderer) 72 { 71 LineLayout* LineLayout::containing(RenderObject& renderer) 72 { 73 if (!renderer.isInline()) 74 return nullptr; 75 73 76 // FIXME: These fake renderers have their parent set but are not actually in the tree. 74 77 if (renderer.isReplica() || renderer.isRenderScrollbarPart()) … … 76 79 77 80 for (auto* parent = renderer.parent(); parent; parent = parent->parent()) { 78 if (!parent->childrenInline()) 81 if (is<RenderBlockFlow>(*parent)) 82 return downcast<RenderBlockFlow>(*parent).modernLineLayout(); 83 if (!is<RenderInline>(*parent)) 79 84 return nullptr; 80 if (is<RenderBlockFlow>(*parent)) 81 return downcast<RenderBlockFlow>(parent); 82 } 83 84 return nullptr; 85 } 86 87 LineLayout* LineLayout::containing(RenderObject& renderer) 88 { 89 if (!renderer.isInline()) 90 return nullptr; 91 92 if (auto* container = blockContainer(renderer)) 93 return container->modernLineLayout(); 85 } 94 86 95 87 return nullptr; -
trunk/Source/WebCore/layout/integration/LayoutIntegrationLineLayout.h
r270544 r270594 57 57 ~LineLayout(); 58 58 59 static RenderBlockFlow* blockContainer(RenderObject&);60 59 static LineLayout* containing(RenderObject&); 61 60 static const LineLayout* containing(const RenderObject&); -
trunk/Source/WebCore/rendering/RenderObject.cpp
r270569 r270594 1467 1467 void RenderObject::insertedIntoTree() 1468 1468 { 1469 #if ENABLE(LAYOUT_FORMATTING_CONTEXT)1470 if (auto* container = LayoutIntegration::LineLayout::blockContainer(*this))1471 container->invalidateLineLayoutPath();1472 #endif1473 1474 1469 // FIXME: We should ASSERT(isRooted()) here but generated content makes some out-of-order insertion. 1475 1470 if (!isFloating() && parent()->childrenInline()) … … 1479 1474 void RenderObject::willBeRemovedFromTree() 1480 1475 { 1481 #if ENABLE(LAYOUT_FORMATTING_CONTEXT)1482 if (auto* container = LayoutIntegration::LineLayout::blockContainer(*this))1483 container->invalidateLineLayoutPath();1484 #endif1485 1486 1476 // FIXME: We should ASSERT(isRooted()) but we have some out-of-order removals which would need to be fixed first. 1487 1477 // Update cached boundaries in SVG renderers, if a child is removed. -
trunk/Source/WebCore/rendering/RenderText.cpp
r270569 r270594 1462 1462 m_knownToHaveNoOverflowAndNoFallbackFonts = false; 1463 1463 1464 #if ENABLE(LAYOUT_FORMATTING_CONTEXT) 1465 if (auto* container = LayoutIntegration::LineLayout::blockContainer(*this)) 1466 container->invalidateLineLayoutPath(); 1467 #endif 1464 if (is<RenderBlockFlow>(*parent())) 1465 downcast<RenderBlockFlow>(*parent()).invalidateLineLayoutPath(); 1468 1466 1469 1467 if (AXObjectCache* cache = document().existingAXObjectCache()) -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp
r270580 r270594 461 461 if (AXObjectCache* cache = parent.document().axObjectCache()) 462 462 cache->childrenChanged(&parent, newChild); 463 463 if (is<RenderBlockFlow>(parent)) 464 downcast<RenderBlockFlow>(parent).invalidateLineLayoutPath(); 464 465 if (parent.hasOutlineAutoAncestor() || parent.outlineStyleForRepaint().outlineStyleIsAuto() == OutlineIsAuto::On) 465 466 newChild->setHasOutlineAutoAncestor(); -
trunk/Source/WebCore/rendering/updating/RenderTreeBuilderBlock.cpp
r270544 r270594 244 244 } 245 245 246 parent.invalidateLineLayoutPath(); 247 246 248 m_builder.attachToRenderElement(parent, WTFMove(child), beforeChild); 247 249 … … 290 292 auto next = makeWeakPtr(oldChild.nextSibling()); 291 293 bool canMergeAnonymousBlocks = canMergeContiguousAnonymousBlocks(oldChild, prev.get(), next.get()); 294 295 parent.invalidateLineLayoutPath(); 292 296 293 297 auto takenChild = m_builder.detachFromRenderElement(parent, oldChild);
Note:
See TracChangeset
for help on using the changeset viewer.