Summary: | A text node longer than 65,535 characters following another text node is invisible in a scrolling context | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Jed Fox <jed> | ||||||||
Component: | Layout and Rendering | Assignee: | zalan <zalan> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | bfulgham, cdumez, changseok, esprehn+autocc, ews-watchlist, glenn, koivisto, kondapallykalyan, mmaxfield, pdr, simon.fraser, webkit-bug-importer, zalan | ||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||
Version: | Safari Technology Preview | ||||||||||
Hardware: | Mac (Apple Silicon) | ||||||||||
OS: | macOS 12 | ||||||||||
Attachments: |
|
Description
Jed Fox
2022-03-01 09:38:28 PST
Created attachment 453545 [details]
Test reduction (just a slight iteration on the test above)
This is most likely caused by our 64K RenderText split. Yeah, it must be it. If some of the characters are wrapped inside an inline box e.g. <span>0</span> (fragmenting the text content, producing multiple renderers), the content shows up fine. Apparently LegacyInlineTextBox can't hold more than 65535 characters. unsigned short m_len { 0 }; arithmetic overflow causes m_len -> 0 and the rest of the layout believes it's a blank box. Created attachment 453745 [details]
Patch
Committed r290782 (248026@main): <https://commits.webkit.org/248026@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 453745 [details]. |