[Webkit-unassigned] [Bug 13136] Spurious glyphs in Google Israel and Gmail (all languages)

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Mar 21 14:15:36 PDT 2007


http://bugs.webkit.org/show_bug.cgi?id=13136





------- Comment #7 from hyatt at apple.com  2007-03-21 14:15 PDT -------
(In reply to comment #5)
> (In reply to comment #4)
> > (In reply to comment #0)
> > 
>
> IMHO, there are two groups of (invisible or near-invisible) characters in
> 'default ignorables' 
> 
>   a. characters that should always be rendered invisible (*) and don't interact
> with adjacent characters (e.g. 'U+2062 INVISIBLE TIMES'). they should be killed
> higher up and should not be passed to 'string drawing/measuring' routines to
> avoid what we're observing with LRM/RLM here.  (some fonts have visibly glyphs
> for them causing problems like this). Gecko has the list at :
> 
> http://lxr.mozilla.org/seamonkey/source/gfx/src/shared/ignorable.x-ccmap
> 
> LRM/RLM is not there because Gecko special-case them in its BiDi code at 
> 
> http://lxr.mozilla.org/seamonkey/source/layout/generic/nsTextTransformer.h#74
> 

I don't agree with removing these characters before passing them into our Font
drawing/rendering routines, since the only way to do so would be to actually
break up the text into smaller runs.  In general we pass strings unaltered into
drawing/rendering routines for performance reasons and then rely on the fixups
to happen in the Font routines themselves.

The primary reason for doing this is performance.  In the fast code path we can
associate any glyph we want to with a given character, so we can effectively
cache the decision to avoid rendering anything for those glyphs.  This means we
don't have to waste time comparing the characters themselves with some set of
invisible characters over and over again, because our decision of what glyph to
use is cached on future measurements that use that GlyphMap.

In the complex text code path we have no glyph map cache, so if there are
characters that need to not render, we'll have to take care of it in
overrideLayoutOperation on Mac.  You can see that tweaks are made to placement
there.  It should be possible to do glyph replacements as needed there as well.


-- 
Configure bugmail: http://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list