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

Maciej Stachowiak mjs at apple.com
Wed Nov 12 13:10:15 PST 2008


On Nov 12, 2008, at 1:06 PM, Maciej Stachowiak wrote:

>
> 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.

I asked Hyatt and he thinks it sounds sensible too.

  - Maciej

>
>>
>>
>> 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
>
> _______________________________________________
> 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/449e23a4/attachment.html>


More information about the webkit-dev mailing list