Changeset 275509 in webkit
- Timestamp:
- Apr 6, 2021 6:18:50 AM (3 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r275508 r275509 1 2021-04-06 Antti Koivisto <antti@apple.com> 2 3 [LFC][Integration] Disable LFC if paginated context has inline boxes 4 https://bugs.webkit.org/show_bug.cgi?id=224222 5 6 Reviewed by Zalan Bujtas. 7 8 There are no known problems with this combination but it is untested. 9 10 * layout/integration/LayoutIntegrationCoverage.cpp: 11 (WebCore::LayoutIntegration::canUseForChild): 12 13 Pass in the RenderBlockFlow and move the existing test requiring it here too. 14 15 (WebCore::LayoutIntegration::canUseForLineLayoutWithReason): 16 1 17 2021-04-06 Keith Miller <keith_miller@apple.com> 2 18 -
trunk/Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp
r273626 r275509 599 599 } 600 600 601 static OptionSet<AvoidanceReason> canUseForChild(const Render Object& child, IncludeReasons includeReasons)601 static OptionSet<AvoidanceReason> canUseForChild(const RenderBlockFlow& flow, const RenderObject& child, IncludeReasons includeReasons) 602 602 { 603 603 OptionSet<AvoidanceReason> reasons; … … 611 611 SET_REASON_AND_RETURN_IF_NEEDED(FlowIncludesDocumentMarkers, reasons, includeReasons); 612 612 return reasons; 613 } 614 615 if (flow.containsFloats()) { 616 // Non-text content may stretch the line and we don't yet have support for dynamic float avoiding (as the line grows). 617 SET_REASON_AND_RETURN_IF_NEEDED(FlowHasUnsupportedFloat, reasons, includeReasons); 613 618 } 614 619 … … 688 693 if (renderInline.requiresLayer()) 689 694 SET_REASON_AND_RETURN_IF_NEEDED(InlineBoxNeedsLayer, reasons, includeReasons) 695 if (flow.fragmentedFlowState() != RenderObject::NotInsideFragmentedFlow) 696 SET_REASON_AND_RETURN_IF_NEEDED(FlowHasNonSupportedChild, reasons, includeReasons); 690 697 691 698 auto& style = renderInline.style(); … … 797 804 // The <blockflow><inline>#text</inline></blockflow> case is also popular and should be relatively easy to cover. 798 805 for (auto walker = InlineWalker(const_cast<RenderBlockFlow&>(flow)); !walker.atEnd(); walker.advance()) { 799 auto& child = *walker.current(); 800 if (!is<RenderText>(child) && flow.containsFloats()) { 801 // Non-text content may stretch the line and we don't yet have support for dynamic float avoiding (as the line grows). 802 SET_REASON_AND_RETURN_IF_NEEDED(FlowHasUnsupportedFloat, reasons, includeReasons); 803 } 804 auto childReasons = canUseForChild(child, includeReasons); 805 if (childReasons) 806 if (auto childReasons = canUseForChild(flow, *walker.current(), includeReasons)) 806 807 ADD_REASONS_AND_RETURN_IF_NEEDED(childReasons, reasons, includeReasons); 807 808 }
Note: See TracChangeset
for help on using the changeset viewer.