Bug 53693

Summary: detached khmer vowels fail to render properly (missing the dotted oval shape)
Product: HarfBuzz Reporter: nirvn.asia
Component: srcAssignee: Behdad Esfahbod <freedesktop>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: freedesktop
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: testcase rendering : harfbuzz on firefox vs android stock (not sure what its using to render khmer script)
khmer keyboard rendering : harfbuzz on firefox vs android stock (not sure what its using to render khmer script)
additional example showing broken legs : firefox (using harfbuzz) vs stock browser

Description nirvn.asia 2012-08-19 03:38:18 UTC
(This is based on rendering of Khmer script of latest Firefox trunk on Android, which uses harfbuzz-ng synched today)

Thanks to the splendid of Behdad, harfbuzz now supports Khmer, and so does the latest Firefox Android Nightlies.

I did spot a pretty serious issue with the Khmer rendering support though. That is, "detached" khmer vowels (i.e. a vowel that is not preceded by a consonant) fails to render properly. It's missing a dotted oval shape that is drawn as a replacement to the absent consonant.

It's a pretty big issue as wrongly entered text (such as consonant + zero-width space + vowel) will look like it's rendered properly but will no be under all the existent khmer script unicode renderers (including firefox on all platforms other than Android). This problem is example #1 in the test case [url: http://licadho-cambodia.org/play/harfbuzz.html].

This issue also messes up rendering of detached vowels with glyphs placements defined both before and after the consonant. This problem is example #2 and #3 in the test case [url: http://licadho-cambodia.org/play/harfbuzz.html].

This bug filing also includes screenshot of firefox android vs android stock browser rendering of the attached test case, as well as a real-life application (khmer keyboard).
Comment 1 nirvn.asia 2012-08-19 03:39:57 UTC
Created attachment 65751 [details]
testcase rendering : harfbuzz on firefox vs android stock (not sure what its using to render khmer script)
Comment 2 nirvn.asia 2012-08-19 03:41:12 UTC
Created attachment 65752 [details]
khmer keyboard rendering : harfbuzz on firefox vs android stock (not sure what its using to render khmer script)
Comment 3 nirvn.asia 2012-08-19 03:42:55 UTC
This bug was filed both here and in mozilla's bugzilla (https://bugzilla.mozilla.org/show_bug.cgi?id=783845) in case the problem isn't with harfbuzz.

Thanks again for all of your hard work.
Comment 4 nirvn.asia 2012-08-19 05:34:57 UTC
Created attachment 65759 [details]
additional example showing broken legs : firefox (using harfbuzz) vs stock browser

Just realized the absence of the dotted oval (substituting the missing consonant) is also causing khmer "legs" to not render at all.
Comment 5 Behdad Esfahbod 2012-08-31 23:22:10 UTC
This is mostly fixed now.  Except for the example 4.  Not sure I want to inject two dotted circles there...
Comment 6 Behdad Esfahbod 2012-08-31 23:22:30 UTC
Marking fixed for now.
Comment 7 nirvn.asia 2012-09-01 05:31:21 UTC
Behdad, fantastic. IMO, going for one dotted circle per broken syllable tail is the right approach. I always thought the other behavior made little sense in most cases (ie having two dotted circle when wanting to represent a vowel formed of two glyphs is extremely problematic (see examples of that in Khmer keyboard screenshot.)

Once again, thanks. Will test behavior as soon as Firefox synch s with latest harfbuzz.

Btw, Khmer keyboard can be accessed here : http: licadho-cambodia.org/play/play.html
Comment 8 nirvn.asia 2012-09-01 05:33:20 UTC
And re example 4, normal behavior out there is to draw only one circle,, which makes sense. Best.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.