Bug 72984 - ZWJ and ZWNJ should not be stripped away in the complex script path
Summary: ZWJ and ZWNJ should not be stripped away in the complex script path
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Linux
: P2 Normal
Assignee: Jungshik Shin
URL: http://en.wikipedia.org/wiki/User:Roo...
Keywords:
Depends on: 97281
Blocks:
  Show dependency treegraph
 
Reported: 2011-11-22 13:41 PST by Jungshik Shin
Modified: 2012-11-05 11:21 PST (History)
1 user (show)

See Also:


Attachments
another test case for zwj and zwnj (Devanagari) (39 bytes, text/plain)
2011-11-22 17:47 PST, Jungshik Shin
no flags Details
screenshot of Linux Chrome and Window Chrome rendering the previous attachment (11.57 KB, image/png)
2011-11-22 17:50 PST, Jungshik Shin
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jungshik Shin 2011-11-22 13:41:31 PST
In ComplexTextControllerLinux.cpp for Chrome on Linux, zero-width characters are normalized away (by being replaced with zerowidthSpace). In complex script, ZWJ and ZWNJ make both visual and symantic differences. So, we should not do that.  

Instead of treatAsZeroWidthSpace, we should use treatAsZeroWidthInComplexScript.
Comment 1 Jungshik Shin 2011-11-22 13:46:28 PST
It's http://crbug.com/105169
Comment 2 Jungshik Shin 2011-11-22 17:47:12 PST
Created attachment 116301 [details]
another test case for zwj and zwnj (Devanagari)
Comment 3 Jungshik Shin 2011-11-22 17:50:15 PST
Created attachment 116302 [details]
screenshot of Linux Chrome and Window Chrome rendering the previous attachment

Line 1 does not have either ZWJ or ZWNJ
Line 2 has ZWNJ and line 3 has ZWJ. 

All 3 lines should be different, but on Linux CHrome, Line 2 and line 3 are identical becasuse ZWNJ/ZWJ are replaced by zero-width-space.
Comment 4 Jungshik Shin 2012-01-03 11:23:01 PST
In addition to the proposed Webkit change, harfbuzz-indic shaper need a 2-line patch. 

This is also tracked at http://crbug.com/45840
Comment 5 Jungshik Shin 2012-11-05 11:21:45 PST
This was fixed by moving to harfbuzz-ng. (bug 97281)