[webkit-dev] Webkit compatibility in India - Transcoding Indic fonts

Maciej Stachowiak mjs at apple.com
Wed Nov 12 13:06:34 PST 2008


On Nov 12, 2008, at 4:56 AM, Prunthaban Kanthakumar wrote:

> Hi All,
>
> I would like to go ahead with implementing the below mentioned logic  
> in Webkit. Can anyone (mjs or hyatt?) comment on this approach?

It sounds ok to me, but I am not a rendering expert.

>
>
> Thanks.
>
> Regards,
> Prunthaban
>
> On Fri, Nov 7, 2008 at 10:58 AM, Prunthaban Kanthakumar <prunthaban at google.com 
> > wrote:
> Hi All,
>
> This is a continuation of the mail thread https://lists.webkit.org/pipermail/webkit-dev/2008-October/005495.html
>
> I am interested in discussing about some of the ways to implement  
> mjs' ideas.
>
> As mjs says in the above mail,
>
> In case you look into implementing this, what I'd suggest is an  
> extra CSS property that can be set based the font property at style  
> resolution time. (since I think the computed font list will strip  
> EOT fonts, so it might be too late to look at it once you are on the  
> rendering side). Something like -webkit-indic-text-decode.
>
> When the code reaches RenderText::styleDidChange method, the font  
> information will still remain in the RenderStyle object associated  
> with the RenderText (because this happens at the time of parsing the  
> html file, well before font resolution happens).  Now in this  
> method, there is check to see if there are text-transformations as  
> part of the style and if there is one, then the method setText is  
> called, forcing it to modify the 'internal text' if needed.
>
> Now we can do the following,
> 1. Add an additional condition in styleDidChange method to check if  
> the font-family is supported by our transcoder (At present a fast  
> look-up table should do because we plan to support only limited set  
> of fonts)  - This condition will be #ifdefed on  
> ENABLE(TRANSCODER_SUPPORT).
> 2. Now in the setTextInternal method, based on the font-family, we  
> get the corresponding transcoder (probably from a map) and perform  
> the transcoding.
>
> Later when font-resolution happens, since the particular font is  
> eot, it will be ignored and based on the code point of glyphs a  
> default font will be choosen by Webkit and hence the correct  
> characters will appear on the screen.
> Also after setTextInternal method there is a layout & width  
> recalculation done which is important for us because we modify the  
> characters. So RenderText::setTextInternal method seems to be the  
> ideal place to plug-in the transcoder.
>
> On a related note, I would like to mention here that, we cannot go  
> with the approach of 'one look-up table' per font-face and a single  
> transcoder to do the look-up for all fonts. The problem is that many  
> indic languages use multiple code-points to represent one character  
> and different fonts use different standards! For example there are  
> situations where one glyph in EOT needs to be transcoded to 5+  
> Unicode code points. A reverse situation is also possible. Due to  
> these issues, we cannot go with a simple look-up table for all  
> fonts. This forces us to write some specialized code to handle each  
> font (there might also be some fonts where a one-to-one look-up  
> table will be enough).
>
> I would like to hear from you about this. Is this approach fine or  
> do you have any issues or suggestions?
>
> Regards,
> Prunthaban
>
>
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20081112/d81bc28f/attachment.html>


More information about the webkit-dev mailing list