Summary: | font-display:fallback can cause a visual flash (which is supposed to be impossible) | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Myles C. Maxfield <mmaxfield> | ||||||||||
Component: | Text | Assignee: | Myles C. Maxfield <mmaxfield> | ||||||||||
Status: | RESOLVED FIXED | ||||||||||||
Severity: | Normal | CC: | commit-queue, mmaxfield, simon.fraser, webkit-bug-importer | ||||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||||
Version: | Other | ||||||||||||
Hardware: | Unspecified | ||||||||||||
OS: | Unspecified | ||||||||||||
Attachments: |
|
Description
Myles C. Maxfield
2018-01-08 00:23:06 PST
One solution would be to add a loop inside FontCascadeFonts::primaryFont() to skip over interstitial fonts (the same way all the other callers of realizeFallbackRangesAt() work). Another solution would be to add a new state to CSSFontFace which wouldn't be treated like failure. Both of these solutions are pretty scary changes. Created attachment 330669 [details]
Repro (needs external font file and slow server)
Repro attached. Requires an external font file and a slow (longer than 3 seconds) server when serving the font file.
The repro shows how the text moves because the line height changes after 3 seconds because the font-face block gets marked as failed. Created attachment 330670 [details]
Python Server
Created attachment 330770 [details]
Patch
Created attachment 330776 [details]
Patch
Comment on attachment 330776 [details] Patch Clearing flags on attachment: 330776 Committed r226668: <https://trac.webkit.org/changeset/226668> All reviewed patches have been landed. Closing bug. |