At least to make a placeholder for the discussion....
A couple of issues with going all the way to Pango:
1. For some scripts (specifically Korean), Mozilla does a lot better than
Pango. Last fall, I made patches for both
and Mozilla(bug 176290), but my patch didn't make it in Pango 1.3 in last
December. I haven't followed up since. Instead of fixing bug 95708 (that is for
MS' fonts that are not easily available), I'd rather implement OTF support in
2. In a way, Pango is too intelligent. We need to find a way to do somethings
in our own way while delegating most things to Pango. For instance, MathML has
to be done as we do now. The same might be true of fallback rendering and
'invisible' glyphs handling.
3. do we want to replace nsFontMetricsXft.cpp with nsFontMetricsPango
(PangoXft) or use them both?
Frank Tang's SILA (http://sila.mozilla.org) 'grafted'
Graphite-font handling code to nsFontMetricsWin.cpp
I also considered doing the same, but doing so is not as easy as Graphite +
nsFontMetricsWin. Perhaps, it's still possible
4. perf. issue. blizzard, you had some reservation about perf. of Pango,
My performance concerns were only related to the fact that owen thought that it
might be a bit slow for what we need. I don't have any hard numbers to back
If we're only worried about custom encodings (PUA -> glyph translation, usually)
isn't it easy enough to write a pango module to do that for us? Or, as a stop
gap, still have some of that in our code?
We may never do this (because in bug 215219, we came up with a reasonable
alternative). Let's future it for the now and see how it'll work out later.
blizzard has recently landed patches for nsFontMetricsPango and other related
stuffs. To test it, pango 1.5 (which can handle custom-font encodings for
MathML) has to be installed and mozilla has to be configured/built with
Yeah, you can use pango now. I've been using it full time for quite a while now
and haven't run into any serious problems. I would love to try to get wider
testing before I turn this on in rawhide, but I'm not sure how to do this.
So the pango code in the tree is good enough for display of pages. I've
implemented the code that should allow MathML to work. It seems to display the
MatML pages, but they don't look quite right. I suspect there are still some
bugs in my code.
If you want to use this code you need a version of Pango >= 1.6.0 and just use
--enable-pango as a flag to configure. It should build and run out of the box.
If you want to disable it on the command line for testing, just use
MOZ_DISABLE_PANGO=1 in your envioronment.
I haven't written the code to use pango for printing, hit testing or cursor
Jungshik, is this bug still relevant?
roc could tell
We did it.