To reproduce: 1. run-webkit-tests --complex css1/pseudo/firstline.html —or— 1. Open the test in Safari 2. Select Always Use Complex Text Code Path in Debug > Miscellaneous 3. Reload This was caused by <http://trac.webkit.org/r126763>, the fix for bug 83045.
This happens because the same RenderText is rendered with two different fonts on different lines. I think the solution is to add a Font* to RenderTextInfo.
Created attachment 164324 [details] Proposed fix (no change log or test yet)
Created attachment 164325 [details] Invalidate the TextLayout on font change
Comment on attachment 164325 [details] Invalidate the TextLayout on font change View in context: https://bugs.webkit.org/attachment.cgi?id=164325&action=review > Source/WebCore/ChangeLog:10 > + When a first-line style specifies a font, different pieces of the same RednerText can be RenderText > Source/WebCore/rendering/RenderBlockLineLayout.cpp:2440 > + renderTextInfo.m_font = &f; Do we ever need to clear this pointer?
Comment on attachment 164325 [details] Invalidate the TextLayout on font change Sorry, didn't mean to clear Sam's review.
Fixed in <http://trac.webkit.org/r128713>. (In reply to comment #4) > (From update of attachment 164325 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=164325&action=review > > > Source/WebCore/ChangeLog:10 > > + When a first-line style specifies a font, different pieces of the same RednerText can be > > RenderText Fixed in <http://trac.webkit.org/r128714>. > > > Source/WebCore/rendering/RenderBlockLineLayout.cpp:2440 > > + renderTextInfo.m_font = &f; > > Do we ever need to clear this pointer? No, the RenderTextInfo gets destroyed at the end of line layout.