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 Pango(http://bugzilla.gnome.org/show_bug.cgi?id=95708) 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 http://bugzilla.gnome.org/show_bug.cgi?id=112467 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, didn't you?
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 that up. 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 '--enable-pango'
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 position yet.
Jungshik, is this bug still relevant?
roc could tell
We did it.