Closed Bug 461155 Opened 16 years ago Closed 16 years ago

firefox cannot display Oriya

Categories

(Core :: Graphics, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla1.9.1b1

People

(Reporter: mfabian, Assigned: karlt)

References

()

Details

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.9.0.3) Gecko/2008092700 SUSE/3.0.3-2.7 Firefox/3.0.3
Build Identifier: Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.9.0.3) Gecko/2008092700 SUSE/3.0.3-2.7 Firefox/3.0.3

See the bug in the Novell bugzilla
http://bugzilla.novell.com/show_bug.cgi?id=433591
and the attachement there. 

Reproducible: Always

Steps to Reproduce:
1. Make sure fonts for Oriya are installed
2. Try to view http://or.wikipedia.org/ with firefox

Actual Results:  
Garbage is displayed.

Expected Results:  
Correct text should have been displayed.
Screenshot demonstrating the problem:

https://bugzilla.novell.com/attachment.cgi?id=244389
From left to right:

firefox, konqueror4, epiphany.

konqueror4 and epiphany display the page correctly, firefox does not.

Therefore, it is probably not a problem that no font is available.

Fontconfig also confirms that fonts for Oriya are available.

Wolfgang Rosenauer told me he believes that it is not necessary anymore
to turn on pango explicitely per language.
Component: General → GFX: Thebes
Product: Firefox → Core
QA Contact: general → thebes
It looks as if firefox is using the LastResort font instead of the correct font for Oriya. Does it display correctly if you uninstall LastResort?
WFM with lohit-fonts-2.3.1.

Did you restart firefox after installing the fonts?
What is the output from "fc-match -v :lang=or"?
> Did you restart firefox after installing the fonts?

Yes.

> What is the output from "fc-match -v :lang=or"?

CODE2000.TTF.

mfabian@magellan:~$ fc-match  :lang=or
CODE2000.TTF: "Code2000" "Normal"
mfabian@magellan:~$

mfabian@magellan:~$ fc-match  :lang=or
CODE2000.TTF: "Code2000" "Normal"
mfabian@magellan:~$ fc-list :lang=or 
Kalinga :style=Regular
Lohit Oriya:style=Regular
Arial Unicode MS:style=Normal,obyčejné,Standard,Κανονικά,Regular,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
ori1Uni,utkal:style=Medium
Code2000:style=Normal,obyčejné,Standard,Κανονικά,Regular,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normalan,Normálne,Navadno,thường,Arrunta
LastResort:style=Regular
mfabian@magellan:~$
Full output of "fc-match -v :lang=or"
> It looks as if firefox is using the LastResort font instead of the correct font
> for Oriya. 

Yes.

> Does it display correctly if you uninstall LastResort?

Better, but still wrong.
Looks correct when editing the fontconfig rules 
to make "Lohit Oriya" the first match (make "fc-match :lang=or" match
"Lohit Oriya").
Also works when making CODE2000 the first match, i.e. adding
the following rules to ~/.fonts.conf makes it work both
for "CODE2000" *and* "Lohit Oriya":

        <alias> 
                <family>serif</family> 
                <prefer> 
                        <family>DejaVu Serif</family> 
                        <family>CODE2000</family> 
                </prefer> 
        </alias> 
        <alias> 
                <family>sans-serif</family> 
                <prefer> 
                        <family>DejaVu Sans</family> 
                        <family>CODE2000</family> 
                </prefer> 
        </alias> 
        <alias> 
                <family>monospace</family> 
                <prefer> 
                        <family>DejaVu Sans Mono</family> 
                        <family>CODE2000</family> 
                </prefer> 
        </alias> 

But if I don’t use any rules to prefer a special font for Oriya,
it does not work, even if "LastResort" is not installed.
When I don’t have rules in ~/.fonts.conf to prefer either
CODE2000 or "Lohit Oriya" for Oriya, the following warnings
can be found in the standard output of firefox:

(firefox:8223): Pango-WARNING **: Error loading GPOS table 0x157f

(firefox:8223): Pango-WARNING **: Error loading GPOS table 0x157f

(firefox:8223): Pango-WARNING **: Error loading GPOS table 0x157f

(firefox:8223): Pango-WARNING **: Error loading GPOS table 0x157f
The "fc-list :lang=or" command in comment #5 listed the following
5 fonts for Oriya on my system

"Kalinga "
"Lohit Oriya"
"Arial Unicode MS"
"Code2000"
"LastResort"

After uninstalling "LastResort" I still see the problem that
any of the remaining 4 fonts "Kalinga ", "Lohit Oriya",
"Arial Unicode MS", and "Code2000" seems to work
*if* I add rules to prefer that font to ~/.fonts.conf.

If I don’t have any rules in fontconfig to prefer a special
font for Oriya, "Code2000" is selected by fc-match but in
that case it does *not* work in Firefox anymore.

Quite weird.
Thank you for the nice analysis.

It seems that Mozilla was asking Pango for a font supporting "x-orya" instead of "or", and I'm guessing that resulted in a font (LastResort and some other font) with only some of the glyphs necessary for Oriya being tried before the fonts with full Oriya support.  That would have meant attempting to shape clusters from glyphs from multiple fonts, and Pango's shaping engines (as most shaping engines) can't do that.

This should be fixed on 1.9.1 through bug 456545.
Assignee: nobody → mozbugz
Status: UNCONFIRMED → RESOLVED
Closed: 16 years ago
Depends on: 456545
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.9.1b1
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: