RESOLVED FIXED 145149
[Mac] All font lookups are flakey
https://bugs.webkit.org/show_bug.cgi?id=145149
Summary [Mac] All font lookups are flakey
Myles C. Maxfield
Reported 2015-05-18 16:00:50 PDT
On all OSes.
Attachments
Patch (1.26 KB, patch)
2015-05-18 16:03 PDT, Myles C. Maxfield
no flags
Myles C. Maxfield
Comment 1 2015-05-18 16:03:16 PDT
WebKit Commit Bot
Comment 2 2015-05-18 18:00:40 PDT
Comment on attachment 253350 [details] Patch Clearing flags on attachment: 253350 Committed r184532: <http://trac.webkit.org/changeset/184532>
WebKit Commit Bot
Comment 3 2015-05-18 18:00:46 PDT
All reviewed patches have been landed. Closing bug.
Myles C. Maxfield
Comment 4 2015-05-18 18:02:04 PDT
Reopened for the root cause.
Myles C. Maxfield
Comment 5 2015-05-18 18:04:44 PDT
Fails when run after jquery/offset.html
Myles C. Maxfield
Comment 6 2015-05-18 18:21:25 PDT
Reduction of the font-weights test: <div style="font-family: HelveticaNeue-Light; font-weight: 100;">Font: HelveticaNeue-Light Weight: 100</div>
Myles C. Maxfield
Comment 7 2015-05-18 19:47:58 PDT
reduction of the offset test: <script> testRunner.waitUntilDone() window.setTimeout(function() { testRunner.notifyDone(); }, 13); </script> <h2 style="font-family: HelveticaNeue-Light;">asdf
Myles C. Maxfield
Comment 8 2015-05-18 20:03:02 PDT
Running the test alone uses HelveticaNeue-Light, while running the two together uses HelveticaNeue-UltraLight
Myles C. Maxfield
Comment 9 2015-05-18 20:33:08 PDT
This is because the desiredFamilyToAvailableFamilyDictionary() cache inside fontWithFamily() in FontCacheMac is incorrect. In particular, there are two exit points of this function. If our search item exists in the cache, we skip the first exit point, which may be the correct one to take. A previous font may have skipped over the first exit point because of external information (weight, traits, etc). Because of this, we will insert this name into the cache. However, when the second font comes around, its external information may mean that it should take the first exit point. However, we notice that the family name is in the cache and skip the first exit point.
Myles C. Maxfield
Comment 10 2015-05-18 20:37:37 PDT
Myles C. Maxfield
Comment 11 2015-05-18 20:51:56 PDT
platform/mac/fast/text/font-weights.html is the test in question.
Myles C. Maxfield
Comment 12 2015-05-18 20:52:20 PDT
Myles C. Maxfield
Comment 13 2015-05-21 10:34:44 PDT
Note You need to log in before you can comment on or make changes to this bug.