NEW182359
document.fonts.delete() and document.fonts.has() erroneously report false sometimes
https://bugs.webkit.org/show_bug.cgi?id=182359
Summary document.fonts.delete() and document.fonts.has() erroneously report false som...
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.