Changes between Version 4 and Version 5 of WebKitGTKFonts

Aug 26, 2010 2:54:46 PM (12 years ago)
Martin Robinson



  • WebKitGTKFonts

    v4 v5  
    99  Firefox uses Pango. Firefox 2 was hacked to use PangoLayout API. That was very abusive and inherently inefficient. Firefox 3 has got a new layout engine that is completely based on cairo. The Linux port subclasses PangoFcFontMap to be able to support both CSS text selection as well as web fonts. By doing that it is essentially reimplementing most of Pango and only using the shaping logic. It makes much more sense to use HarfBuzz directly, and Mozilla is now working on getting HarfBuzz ready for that.
    1010Additionally, using HarfBuzz directly will allow us to share layout and shaping code with Chromium.
     12  (02:49:36 PM) mrobinson: Xan was saying that you mentioned something the GTK+ port does well, perhaps even better than Chromium.
     13  (02:49:47 PM) evmar: complex text, definitely
     14  (02:49:53 PM) evmar: we don't use pango
     15  (02:49:55 PM) mrobinson: Ah.
     16  (02:49:57 PM) mrobinson: The shaping?
     17  (02:50:02 PM) evmar: it turns out that harfbuzz is just one small piece of the complex text stack
     18  (02:50:13 PM) evmar: and that there's a bunch of stuff in pango that is annoying to replicate
     19  (02:51:06 PM) mrobinson: Hrm. I know that HarfBuzz can do things like form ligatures and conbine glyphs.
     20  (02:51:12 PM) mrobinson: What sort of thing can't it do?
     21  (02:51:23 PM) evmar: yeah, that is the sort of thinking we did, too :)
     22  (02:51:37 PM) evmar: uh
     23  (02:51:45 PM) evmar: mirroring (like parenthesis)
     24  (02:52:05 PM) evmar: dealing with broken fonts (we had to hack around bad advances in some arabic font, i forget how it works now)
     25  (02:52:32 PM) evmar: renormalizing text (harfbuzz expects "correct" text, i think pango knows to reorder it before giving it to harfbuzz)
    12273. '''Remove the Pango backend''' Maintaining the Pango backend is a serious support burden and since we'll be using HarfBuzz to do layout and shaping, is very redundant. For GTK+ ports that do not want to depend on Fontconfig, there is the option of using native Win32 font selection. The WinCairo port is already using this.