RESOLVED FIXED 70029
oldturkicrendererror Old Turkic characters behave as left-to-right instead of right-to-left, because they are encoded as surrogate pairs.
https://bugs.webkit.org/show_bug.cgi?id=70029
Summary Old Turkic characters behave as left-to-right instead of right-to-left, becau...
bitigchi
Reported 2011-10-13 08:59:53 PDT
Hello, In Webkit browsers, including Chrome, Old Turkic text does not render correctly. It should be rendered from Right-to-Left, but we see it as LTR as usual. Old Turkic block was introduced with Unicode 5.2, and Gecko based browsers render it correctly. Sample texts: http://fankibiber.wordpress.com You can download the required fonts from here: http://bitigchi.tumblr.com/downloads You can see the difference in rendering when tried with Firefox and Safari. Thank you.
Attachments
Safari: Not rendered correctly (29.89 KB, image/png)
2011-10-13 09:04 PDT, bitigchi
no flags
Firefox: Rendered correctly (32.51 KB, image/png)
2011-10-13 09:05 PDT, bitigchi
no flags
Patch (13.38 KB, patch)
2014-09-21 16:35 PDT, Darin Adler
no flags
Patch (15.91 KB, patch)
2014-09-24 08:48 PDT, Darin Adler
mitz: review+
bitigchi
Comment 1 2011-10-13 09:04:29 PDT
Created attachment 110854 [details] Safari: Not rendered correctly
bitigchi
Comment 2 2011-10-13 09:05:48 PDT
Created attachment 110856 [details] Firefox: Rendered correctly Although the font is different here, it is clear that the letters of the Safari screenshot here are right aligned on the first line.
Radar WebKit Bug Importer
Comment 3 2011-10-13 12:22:08 PDT
mitz
Comment 4 2011-10-16 22:13:29 PDT
InlineIterator operates on UTF-16 code units rather than on characters. Since Old Turkic is encoded using surrogate pairs, InlineIterator::direction() incorrectly returns LeftToRight (for each of the two surrogates) instead of RightToLeft.
bitigchi
Comment 5 2011-10-20 06:16:17 PDT
This is a very annoying bug. Is there any info on when this can be fixed?
bitigchi
Comment 6 2014-08-24 14:20:48 PDT
!Ping!
Darin Adler
Comment 7 2014-09-21 16:35:07 PDT
Darin Adler
Comment 8 2014-09-21 16:35:45 PDT
Mitz asked me to look at this bug, so I did. Patch isn’t ready to land because we need some regression tests; we need to write tests that don’t require installing a font.
Darin Adler
Comment 9 2014-09-21 16:36:12 PDT
Also need to measure performance to see if I slowed things down.
Darin Adler
Comment 10 2014-09-21 16:37:11 PDT
Comment on attachment 238440 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=238440&action=review > Source/WebCore/rendering/InlineIterator.h:436 > + if (LIKELY(U16_IS_SINGLE(codeUnit))) > + return u_charDirection(codeUnit); If this code path is really hot, then we should have a faster patch so we don't have to call into u_charDirection for common characters.
bitigchi
Comment 11 2014-09-24 01:45:44 PDT
(In reply to comment #8) > Mitz asked me to look at this bug, so I did. Patch isn’t ready to land because we need some regression tests; we need to write tests that don’t require installing a font. Great news anyway! Thank you very much!
Darin Adler
Comment 12 2014-09-24 08:48:41 PDT
Darin Adler
Comment 13 2014-09-24 19:54:02 PDT
bitigchi
Comment 14 2015-05-22 11:48:37 PDT
Just for info, has this landed on a Safari release yet? I don't have an OS X machine at the moment, just wanted to check. Thanks in advance.
Note You need to log in before you can comment on or make changes to this bug.