[HarfBuzz] Question about HarfBuzz-ng CTL Shaper Status

Jonathan Kew jonathan at jfkew.plus.com
Thu Sep 16 13:16:02 PDT 2010

On 16 Sep 2010, at 15:29, Ed wrote:

> On Thu, Sep 16, 2010 at 3:42 AM, Jonathan Kew <jonathan at jfkew.plus.com> wrote:
>> On 16 Sep 2010, at 02:33, Ed wrote:
>>> Hi, Behdad and everyone,
>>> Just want to confirm something:
>>> I thought Harfbuzz-ng did not yet have "complex text shaper" support.
>>> But in Firefox 4 beta with gfx.font_rendering.harfbuzz.level set to 1,
>>> Devanagari and Arabic looks correct.  So shapers are present then?
>> No. Firefox is using harfbuzz only for certain "simple" scripts such as Latin; it falls back to platform code (CoreText on OS X, Uniscribe on Windows) for complex scripts.
> And old Pango-harfbuzz-whatever on Linux?

On Linux, we're not yet using harfbuzz-ng at all (work is in progress to move in that direction, but it's not in current betas). So *all* text there is going through Pango at present.

> Also, if I am trying to test Tai Tham Unicode fonts which utilize
> OpenType features such as mark-to-base (mark), mark-to-mark (mkmk),
> and contextual ligatures (clig) --but doing so using Latin "dflt"
> since there is no tag for Tai Tham-- is Firefox 4x really using
> Harfbuzz-ng or not?
> It seems possible --even likely given the kinds of results I am seeing
> so far-- that Firefox is perhaps marking the runs of text as being Tai
> Tham and so would not be using the new Harfbuzz-ng

That's what I would expect, yes. Firefox divides the text according to scripts (based on the Unicode character codes), and then chooses whether to use harfbuzz-ng or platform text layout libraries for each script run. It currently uses HB *only* for the major "simple" scripts, not for those requiring complex shaping.

> And is there any possible way to know what renderer FF is really using
> for any given run of text.  I guess the answer is probably not ...

Not really, short of reading the source to determine how it will behave. :)


More information about the HarfBuzz mailing list