WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
285878
ASSERT SHOULD NEVER BE REACHED - WebCore::Layout::leadingInlineItemPositionOnLastLine
https://bugs.webkit.org/show_bug.cgi?id=285878
Summary
ASSERT SHOULD NEVER BE REACHED - WebCore::Layout::leadingInlineItemPositionOn...
Matt Woodrow
Reported
2025-01-13 14:13:07 PST
https://github.com/WebKit/WebKit/pull/38817
imports the render-blocking tests, and causes two of them to fail with the above assertion. imported/w3c/web-platform-tests/html/dom/render-blocking/element-render-blocking-029.html imported/w3c/web-platform-tests/html/dom/render-blocking/element-render-blocking-031.html Crash log:
https://ews-build.s3-us-west-2.amazonaws.com/macOS-Sequoia-Debug-WK2-Tests-EWS/a0e1a4a6-8489/results.html
I'll disable the tests for now until this is fixed.
Attachments
[fast-cq]Patch
(16.11 KB, patch)
2025-01-14 09:00 PST
,
alan
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
alan
Comment 1
2025-01-13 20:39:10 PST
This is caused by not computing the first/last inline boxes correctly which confuses the invalidation logic (falls back to full invalidation) --- a/Source/WebCore/layout/integration/inline/LayoutIntegrationInlineContentBuilder.cpp +++ b/Source/WebCore/layout/integration/inline/LayoutIntegrationInlineContentBuilder.cpp @@ -100,7 +100,6 @@ InlineContentBuilder::InlineContentBuilder(const RenderBlockFlow& blockFlow) FloatRect InlineContentBuilder::build(Layout::InlineLayoutResult&& layoutResult, InlineContent& inlineContent, const Layout::InlineDamage* lineDamage) const { inlineContent.releaseCaches(); - computeIsFirstIsLastBoxAndBidiReorderingForInlineContent(layoutResult.displayContent.boxes); if (layoutResult.range == Layout::InlineLayoutResult::Range::Full) { auto damagedRect = FloatRect { }; @@ -108,6 +107,7 @@ FloatRect InlineContentBuilder::build(Layout::InlineLayoutResult&& layoutResult, for (auto& line : inlineContent.displayContent().lines) damagedRect.unite(line.inkOverflow()); + computeIsFirstIsLastBoxAndBidiReorderingForInlineContent(layoutResult.displayContent.boxes); inlineContent.displayContent().set(WTFMove(layoutResult.displayContent)); adjustDisplayLines(inlineContent, 0); @@ -218,7 +218,9 @@ FloatRect InlineContentBuilder::build(Layout::InlineLayoutResult&& layoutResult, return damagedRect; }; - return handlePartialDisplayContentUpdate(); + auto damagedRect = handlePartialDisplayContentUpdate(); + computeIsFirstIsLastBoxAndBidiReorderingForInlineContent(inlineContent.displayContent().boxes); + return damagedRect; } void InlineContentBuilder::updateLineOverflow(InlineContent& inlineContent) const
alan
Comment 2
2025-01-14 09:00:09 PST
Created
attachment 473901
[details]
[fast-cq]Patch
EWS
Comment 3
2025-01-14 11:14:43 PST
Committed
288870@main
(3b92ce0658c9): <
https://commits.webkit.org/288870@main
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 473901
[details]
.
Radar WebKit Bug Importer
Comment 4
2025-01-14 11:16:18 PST
<
rdar://problem/142897195
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug