Bug 182359

Summary: document.fonts.delete() and document.fonts.has() erroneously report false sometimes
Product: WebKit Reporter: Myles C. Maxfield <mmaxfield>
Component: TextAssignee: Nobody <webkit-unassigned>
Status: NEW    
Severity: Normal CC: mmaxfield, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Myles C. Maxfield
Reported 2018-01-31 16:25:33 PST
Equality for FontFace objects is tricky, and we don't get it right. We can't do a pointer equality on FontFace objects, because if the last JS reference to that object goes away, the object can be garbage collected. The underlying CSSFontFace object only has a weak reference to it's owning FontFace (because the FontFace has a strong reference to the underlying CSSFontFace object). However, we can't do pointer equality on CSSFontFace objects, because we may at any time cause the CSSFontSelector might rebuild (::buildStarted() / ::buildCompleted()) at any point, which will recreate all the CSSFontFace objects (and attempt to make the old FontFace objects adopt the new CSSFontFace objects). Instead, we must go deeper!
Attachments
Radar WebKit Bug Importer
Comment 1 2018-01-31 16:26:48 PST
Note You need to log in before you can comment on or make changes to this bug.