Bug 92864 - REGRESSION (Safari 5.1 - 6): Cannot correctly display Traditional Mongolian Script
Summary: REGRESSION (Safari 5.1 - 6): Cannot correctly display Traditional Mongolian S...
Status: VERIFIED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Mac (Intel) OS X 10.7
: P1 Major
Assignee: mitz
URL: http://www.mongolfont.com
Keywords: InRadar, Regression
Depends on:
Blocks:
 
Reported: 2012-08-01 04:54 PDT by SiqinBilige
Modified: 2012-08-04 17:26 PDT (History)
4 users (show)

See Also:


Attachments
screenshots include in the attachment zip file. (2.13 MB, application/zip)
2012-08-01 05:01 PDT, SiqinBilige
no flags Details
Make fontDataForCombiningCharacterSequence return an appropriate variant (6.18 KB, patch)
2012-08-03 14:06 PDT, mitz
sam: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description SiqinBilige 2012-08-01 04:54:57 PDT
Summary:

The Webkit can not correctly display Traditional Mongolian Script.

Traditional Mongolian script Standards have been accepted by ISO 10646 / Unicode 3.0 in 1999.
But the ISO 10646 / Unicode 3.0 standard only encoded the basic part of Traditional Mongolian characters(u1800-u18Af).

Traditiona Mongolian script is like arabic language have four forms isol,init,medi.fina.
Plus this each form have three alternates. the three alternates controlled by mongolian free veriation selector (u180B,u180C,u180D).

Webkit can not correctly display the traditional mongolian word which include mongolian free veriation selector (u180B,u180C,u180D). but Safari 5.0 can. Safari 6.0 can not.

Steps to Reproduce:
visit our home page with 6.0 (7536.25, 537+) on Mac OS X. (on the windows no problem) or see the screenshots.
our homepage is : http://www.mongolfont.com

Expected Results:
on the safari 5.0 or iOS 5 it is correct. scrennshot is onMacOSX103Safari.png, iOS5iPad.png

Actual Results:
on the Webkit it is not correct. screenshot is onSafariLastVertion.png, iOS6iPad.png

Regression:

Notes:

The layout of Traditional Mongolian script  is top-to-bottom in the row and left-to-right in the paragraph.
( CSS3 -webkit-writing-mode : vertical-lr )

On the Mac OS X Firefox And Opera can not correctly display Traditional Mongolian Script, because they are did not implement writing-mode of vertical. Chrome and Webkit can display Traditional Mongolian script vertical way, but can not correctly display The word witch include  mongolian free veriation selector (u180B,u180C,u180D) too. screenshot is onChromeLastVertion.png and onWebkitLastVersion.png

So before Safari 6.0 the only browser witch can display Traditional Mongolian Script on Mac OS X and iOS was Safari 5.0.
After Safari 6.0 no browser can correctly display Traditional Mongolian Script yet.

by the way. On the Mac OS X and iOS the u200C and u200D also have same problem too.
used by Traditional Mongolain Script some time. but not belong to Traditional Mongolian Script.
Comment 1 SiqinBilige 2012-08-01 05:01:30 PDT
Created attachment 155781 [details]
screenshots include in the attachment zip file.
Comment 2 Alexey Proskuryakov 2012-08-01 11:16:13 PDT
I can not reproduce this with Safari 6.0 or latest nightly on OS X 10.7.4. Perhaps this is somehow configuration specific.
Comment 3 Alexey Proskuryakov 2012-08-01 11:19:02 PDT
<rdar://problem/12007836>
Comment 4 mitz 2012-08-01 21:53:10 PDT
<rdar://problem/12005188>
Comment 5 SiqinBilige 2012-08-02 06:59:57 PDT
What configuration about ? Safari or OS X 10.7.4 ?
My Mac is OS X 10.7.4 too. it is not English but Japanese.

Is the Language problem ?

(In reply to comment #2)
> I can not reproduce this with Safari 6.0 or latest nightly on OS X 10.7.4. Perhaps this is somehow configuration specific.
Comment 6 SiqinBilige 2012-08-02 07:38:38 PDT
May be the problem relation to http://ja.wikipedia.org/wiki/異体字セレクタ?
Comment 7 mitz 2012-08-02 07:40:12 PDT
The problem appears to be that fontDataForCombiningCharacterSequence() isn’t behaving correctly with vertical fonts. Specifically, it doesn’t convert simpleFontData to a vertical variant. It should do something similar to what glyphDataAndPageForCharacter() does.
Comment 8 mitz 2012-08-03 14:06:01 PDT
Created attachment 156453 [details]
Make fontDataForCombiningCharacterSequence return an appropriate variant
Comment 9 mitz 2012-08-03 14:31:13 PDT
Fixed in <http://trac.webkit.org/r124654>.
Comment 10 SiqinBilige 2012-08-03 19:53:30 PDT
On WebKit r124680 correctly display The Traditional Mongolian Script.

Thank you very much.
Comment 11 Ryosuke Niwa 2012-08-04 16:19:19 PDT
This patch appears to have broken Qt Windows build:
http://build.webkit.org/builders/Qt%20Windows%2032-bit%20Debug/builds/47602
Comment 12 Ryosuke Niwa 2012-08-04 16:19:59 PDT
Source/WebCore/debug/libWebCored.a(SimpleFontData.o):
Source/WebCore/platform/graphics/GlyphPageTreeNode.h:90: undefined reference to `WebCore::GlyphPageTreeNode::getRoot(unsigned int)'
Source/WebCore/debug/libWebCored.a(SimpleFontData.o):
Source/WebCore/platform/graphics/GlyphPageTreeNode.h:90: undefined reference to `WebCore::GlyphPageTreeNode::getChild(WebCore::FontData const*, unsigned int)'
collect2: ld returned 1 exit status

Not sure what's going on here.
Comment 13 Ryosuke Niwa 2012-08-04 16:23:41 PDT
+ossy in the hope that he knows what's going wrong.

It appears that GlyphPageTreeNode::getRoot and GlyphPageTreeNode::getChild are not found at linking time. Maybe we just need to force a clean build of GlyphPageTreeNode.cpp?
Comment 14 mitz 2012-08-04 16:50:11 PDT
(In reply to comment #11)
> This patch appears to have broken Qt Windows build:
> http://build.webkit.org/builders/Qt%20Windows%2032-bit%20Debug/builds/47602

I tried to fix this in <http://trac.webkit.org/r124706>.
Comment 15 Ryosuke Niwa 2012-08-04 17:26:51 PDT
(In reply to comment #14)
> (In reply to comment #11)
> > This patch appears to have broken Qt Windows build:
> > http://build.webkit.org/builders/Qt%20Windows%2032-bit%20Debug/builds/47602
> 
> I tried to fix this in <http://trac.webkit.org/r124706>.

Thanks! That fixed it.