bugThe FreeType Project - Bugs: bug #39339, Chromium browser breaks Hangul...

 
 

bug #39339: Chromium browser breaks Hangul (Korean) due to FreeType2.

Submitted by:  Dongseong Hwang <dshwang>
Submitted on:  Tue 25 Jun 2013 11:33:52 AM UTC  
 
Severity: 3 - NormalItem Group: Incorrect behaviour
Status: InvalidPrivacy: Public
Assigned to: Werner LEMBERG <wl>Open/Closed: Closed
Planned Release: None

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Wed 26 Jun 2013 06:29:47 AM UTC, comment #3:

Thanks for the info.

I strongly suggest that you contact both the wqy developers and the FontForge team so that this bug can be fixed quickly.

Werner LEMBERG <wl>
Project AdministratorIn charge of this item.
Wed 26 Jun 2013 06:23:25 AM UTC, comment #2:

"文泉驛微米黑" font has issue, not FreeType.
-unavailable- said that 'htmx' table of the font is wrong.
Please refer to https://code.google.com/p/chromium/issues/detail?id=233851#c8

I think this bug can be closed with 'Won't fix'

Dongseong Hwang <dshwang>
Tue 25 Jun 2013 08:15:08 PM UTC, comment #1:

Which font? I've tried some, and I can't find a problem with the ftdemo tools.

Please test with the `ftdiff' demo program (using the -f option to pass a Korean text file); it uses `linearHoriAdvance' for glyph positioning.

Werner LEMBERG <wl>
Project AdministratorIn charge of this item.
Tue 25 Jun 2013 11:33:52 AM UTC, original submission:

Refer to https://code.google.com/p/chromium/issues/detail?id=233851 to see capture.

Korean advance is always 2. SkFontHost_FreeType.cpp uses FreeType and fail to compute correct advance.

In detail, fFace->glyph->advance.x is correct but fFace->glyph->linearHoriAdvance is always 2.

FT_Face fFace;
FT_Load_Glyph( fFace, glyph->getGlyphID(fBaseGlyphCount), fLoadGlyphFlags );

// wrongAdvance is always 2
SkScalar wrongAdvance = SkFixedMul(fMatrix22.xx, fFace->glyph->linearHoriAdvance);

// correctAdvance is correct
SkScalar correctAdvance = SkFDot6ToFixed(fFace->glyph->advance.x);

As similar reason, FT_Get_Advance has a problem also.

FT_Get_Advance( fFace, glyph->getGlyphID(fBaseGlyphCount), fLoadGlyphFlags | FT_ADVANCE_FLAG_FAST_ONLY, &advance );

// wrongAdvance is always 2
SkScalar wrongAdvance = SkFixedMul(fMatrix22.xx, advance);

All Korean wait for this bug :)

Dongseong Hwang <dshwang>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by wl (Posted a comment)
  • -unavailable- added by dshwang (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 4 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Wed 26 Jun 2013 06:29:58 AM UTCwlOpen/ClosedOpen=>Closed
    Wed 26 Jun 2013 06:29:47 AM UTCwlStatusNeed Info=>Invalid
    Tue 25 Jun 2013 08:15:08 PM UTCwlStatusNone=>Need Info
      Assigned toNone=>wl

    Back to the top


    Powered by Savane 3.1-cleanup1