The text orientation is taken into account only when the glyph is already in the cache. Use the attached test case to reproduce this problem, launching it from a new instance of Safari. The line break occurs in the wrong place and you'll see the difference where reloading the page.
Created attachment 167170 [details] Test case
Created attachment 167197 [details] Patch
Comment on attachment 167197 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=167197&action=review > Source/WebCore/platform/graphics/FontFastPath.cpp:50 > +static inline std::pair<GlyphData, GlyphPage*> applyTextOrientationForCharacter(UChar32 c, GlyphData& data, GlyphPage* page, unsigned pageNumber, TextOrientation orientation) Please rename “c” to “character”. The verb “apply” doesn’t fit a function that doesn’t mutate anything. How about glyphDataAndPageForCharacterWithTextOrientation(…), perhaps also moving the TextOrientation parameter to the second spot?
(In reply to comment #3) > (From update of attachment 167197 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=167197&action=review > > > Source/WebCore/platform/graphics/FontFastPath.cpp:50 > > +static inline std::pair<GlyphData, GlyphPage*> applyTextOrientationForCharacter(UChar32 c, GlyphData& data, GlyphPage* page, unsigned pageNumber, TextOrientation orientation) > > Please rename “c” to “character”. The verb “apply” doesn’t fit a function that doesn’t mutate anything. How about glyphDataAndPageForCharacterWithTextOrientation(…), perhaps also moving the TextOrientation parameter to the second spot? That was the first name I came up with, but then I thought it was too long. I should have followed my instincts :-) thanks for the review, will do as you suggested.
Committed revision 130443.