Changeset 293646 in webkit
- Timestamp:
- Apr 30, 2022 8:30:19 AM (2 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r293644 r293646 1 2022-04-30 Alan Bujtas <zalan@apple.com> 2 3 ASSERTION FAILED: *trailingRunIndex >= overflowingRunIndex in WebCore::Layout::InlineContentBreaker::tryBreakingNextOverflowingRuns 4 https://bugs.webkit.org/show_bug.cgi?id=239838 5 <rdar://problem/92455051> 6 7 Reviewed by Antti Koivisto. 8 9 * fast/inline/overflowing-content-inside-inline-box-crash-expected.txt: Added. 10 * fast/inline/overflowing-content-inside-inline-box-crash.html: Added. 11 1 12 2022-04-30 Alan Bujtas <zalan@apple.com> 2 13 -
trunk/Source/WebCore/ChangeLog
r293645 r293646 1 2022-04-30 Alan Bujtas <zalan@apple.com> 2 3 ASSERTION FAILED: *trailingRunIndex >= overflowingRunIndex in WebCore::Layout::InlineContentBreaker::tryBreakingNextOverflowingRuns 4 https://bugs.webkit.org/show_bug.cgi?id=239838 5 <rdar://problem/92455051> 6 7 Reviewed by Antti Koivisto. 8 9 Take partial text overflow into account when computing intrinsic width. 10 11 Test: fast/inline/overflowing-content-inside-inline-box-crash.html 12 13 * layout/formattingContexts/inline/InlineFormattingContext.cpp: 14 (WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const): 15 * layout/formattingContexts/inline/InlineLineBuilder.cpp: 16 (WebCore::Layout::LineBuilder::computedIntrinsicWidth): 17 * layout/formattingContexts/inline/InlineLineBuilder.h: 18 1 19 2022-04-30 Alan Bujtas <zalan@apple.com> 2 20 -
trunk/Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp
r293645 r293646 433 433 while (!layoutRange.isEmpty()) { 434 434 auto intrinsicContent = lineBuilder.computedIntrinsicWidth(layoutRange, previousLine); 435 layoutRange.start = intrinsicContent.inlineItemRange.end;436 435 maximumLineWidth = std::max(maximumLineWidth, intrinsicContent.logicalWidth); 437 previousLine = LineBuilder::PreviousLine { }; 436 437 layoutRange.start = !intrinsicContent.partialOverflowingContent ? intrinsicContent.inlineItemRange.end : intrinsicContent.inlineItemRange.end - 1; 438 previousLine = LineBuilder::PreviousLine { intrinsicContent.inlineItemRange, { }, { }, intrinsicContent.partialOverflowingContent }; 438 439 // FIXME: Add support for clear. 439 440 for (auto* floatBox : intrinsicContent.floats) -
trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp
r293645 r293646 408 408 auto committedRange = close(needsLayoutRange, committedContent); 409 409 auto lineWidth = lineConstraints.logicalRect.left() + lineConstraints.marginStart + m_line.contentLogicalWidth(); 410 return { committedRange, lineWidth, m_floats }; 410 auto overflow = std::optional<PartialContent> { }; 411 if (committedContent.partialTrailingContentLength) 412 overflow = { committedContent.partialTrailingContentLength, committedContent.overflowLogicalWidth }; 413 return { committedRange, lineWidth, overflow, m_floats }; 411 414 } 412 415 -
trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.h
r293645 r293646 63 63 std::optional<PartialContent> partialOverflowingContent { }; 64 64 // Content width measured during line breaking (avoid double-measuring). 65 std::optional<InlineLayoutUnit> trailingOverflowingContentWidth ;65 std::optional<InlineLayoutUnit> trailingOverflowingContentWidth { }; 66 66 }; 67 67 using FloatList = Vector<const Box*>; … … 89 89 InlineItemRange inlineItemRange; 90 90 InlineLayoutUnit logicalWidth { 0 }; 91 std::optional<PartialContent> partialOverflowingContent { }; 91 92 const FloatList& floats; 92 93 };
Note: See TracChangeset
for help on using the changeset viewer.