Closed Bug 81528 Opened 23 years ago Closed 23 years ago

Invalid JIS 201 fonts on Redhat Japanese 6.2

Categories

(Core :: Internationalization, defect)

x86
Linux
defect
Not set
normal

Tracking

()

VERIFIED FIXED
mozilla0.9.1

People

(Reporter: amyy, Assigned: bstell)

References

Details

(Keywords: intl, regression)

Attachments

(6 files)

Build: 05-17 linux trunk build.

Go to some Japanese or Chinese pages:
   http://home.netscape.com/ja, http://home.netscape.com/zh/cn/
   http://www.sina.com.cn/, http://www.snweb.com/, http://www.china.com
you will find the Alphabet and numbers in those pages text string(e.g. inside 
those news header together with double-byte characters) are display as blank.
However, on western pages, all those alphabet and numbers are display fine 
though.

This is a regression, I didn't see it till 05-15-08 trunk build, and started on 
05-16-05 build.
Add keywords and change QA contact to myself.
Keywords: intl, regression
QA Contact: andreasb → ylong
aActually, in Composer, if you creat a document that contains alphabet and 
numbers with double0byte charset(e.g. s-jis), then browser it or re-open from 
Composer, you won't able to see it also.
Frank landed converter change on 5/15 and 5/16, might be related.
Reassign to ftang.
Assignee: nhotta → ftang
Keywords: nsbeta1
*** Bug 81513 has been marked as a duplicate of this bug. ***
Naoki, it started to happen from 2001-05-15-21-mtrunk build.
The last good build is 2001-05-15-08-mtrunk.
05/15/2001 18:34, Brian changed mozilla/gfx/src/gtk/nsFontMetricsGTK.cpp.

Brian, please take a look at this.
Assignee: ftang → bstell
Also, you can not see those ascii and even a lots of double-byte character in 
Page Source too.
ylong, could you attach a screen shot?
I cannot reproduce this on my local debug build.
Can anybody else reproduce?
I noticed the last comment for bug 72525 by Ervin Yan:
> nightly 2001051622 on Solaris 9
> All the GB18030 characters can display OK, but all the English characters are
disappeared. 
Is this a beta stopper? Looks pretty bad to me, if we can't display alpha and
numerics on CJK pages. 

Bstell - If this is a beta stopper, pls assign a M0.9.1 milestone.
This problem also happens when opening an ASCII text file on the browser and
changing the charset to CJK.
Although the ASCII string is not visible, you still can copy/paste the string
from browser window to a terminal window.

With environment varible NS_FONT_DEBUG set to 4, netscape outputs some debug
info to the terminal.
I'll attach the output when browser uses Japanese Shift-JIS charset to view a
plain ASCII text file.
Changed title from:

  Can not display alphabet and numbers on CJK page

to

  Invalid JIS 201 fonts on Redhat Japanese 6.2
Status: NEW → ASSIGNED
Summary: Can not display alphabet and numbers on CJK pages → Invalid JIS 201 fonts on Redhat Japanese 6.2
Target Milestone: --- → mozilla0.9.1
Redhat Japanese 6.2 has some fonts that have no glyphs. 

eg: -wadalab-mincho-medium-r-normal--16-*-*-*-c-*-jisx0201.1976-0

The font system tries to use these and ends up drawing blanks.
Because these fonts pretend to have ascii all ascii characters are blank
making the browser unusable for Japanese.

Thanks Brian for taking this,

yes, I have mentioned this problem in the comments of bug 67732.
But it's great you can fix this.Thank you very much.

I haven't tried this patch yet but do you think this patch
can solve cns4-7 problem also? I'll try cns4-7 on our Monday.

Good news. I checked this patch for bug 71199 and
I found it works. The current patch is checking
only for jisx201 but I believe it will be generic.

I have one concern about performance. Is there
any way (by having a flag in nsGtkFont or by
having global hash table) to cache the result
of IsEmptyFont()? It seems that it checkes always
even when the font has been already checked.
*** Bug 81734 has been marked as a duplicate of this bug. ***
Whiteboard: patch ready, verified by sun. need review.
Whiteboard: patch ready, verified by sun. need review. → dataloss- patch ready, verified by sun. need review.
We need to be careful here.

What the patch does is try to detect what broken fonts 
look like. Clearly, there is no spec on how to correctly 
build a broken font. Thus, there is not a well defined 
way to detect them. This test works by checking if the 
per-char array has non-zero sized glyphs. These fonts
do have a valid min_bounds/max_bounds value even though
they don't have glyphs.

It is *quite* possible that a font (read: CJK 
font) does not have a per-char array as it was considered
not to have helpful information and malloc'ing it would 
be expensive at run time. This test would disable a font
like this.

We need to be careful of disabling valid fonts like this
(false positives).

r=ftang I think it is right to do risk managent and only do this checking for 
the fonts which we know have problem (JIS0x0210 and CNS4-7 ) for now.
+PRBool
+nsFontGTK::IsInvalidFont(GdkFont* aGdkFont)
+{
+  // use these to make the result easier to understand
+  PRBool isInvalid = PR_TRUE;
+  PRBool isValid = PR_FALSE;

Why not make the function called "IsValidFont" so you can use PR_TRUE and
PR_FALSE and avoid the double negatives?

+        mDontUseThisFont = PR_TRUE;

Same here.  Using negatives as variables makes things confusing.  mUseThisFont
would be less confusing.

Fix those and you can have an sr=blizzard
I cannot call it IsValidFont: the function does not determine that
the font is valid; only that the font is not valid. I'll rename it 
IsEmptyFont.

I'll also change mDontUseThisFont to mAlreadyCalledLoadFont.

thanks
Whiteboard: dataloss- patch ready, verified by sun. need review. → dataloss- reviewed/super-reviewed. waiting for tree to open
checked in
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Whiteboard: dataloss- reviewed/super-reviewed. waiting for tree to open
Fixed verified on 05-22 linux trunk build.
Status: RESOLVED → VERIFIED
OT: Can anyone test the patch in bug 108412 if it causes problems on Redhat
Japanese 6.2, please ? Thanks!
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: