Closed Bug 1279875 Opened 8 years ago Closed 7 years ago

Firefox 47 - faulty display of certain Umlauts in GUI Elements with font "Cantarell"

Categories

(Core :: Graphics: Text, defect)

47 Branch
x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox50 --- wontfix
firefox51 --- fixed

People

(Reporter: christoph.nuscheler, Unassigned)

References

()

Details

(Keywords: regression, Whiteboard: [gfx-noted])

Attachments

(2 files)

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0
Build ID: 20160606113944

Steps to reproduce:

Upgrade to Firefox 47.0+build3-0ubuntu0.16.04.1 on Ubuntu GNOME 16.04


Actual results:

Certain non-US letters are rendered incorrectly in GUI elements (see attached Screenshot). The following letter is drawn on the same spot as "Ü", not next to it. This also affects Rendering of drop down menues and other GUI elements. However, the rendering of websites is not affected by this glitch.

Only certain special letters are affected, for example german Umlaut ü/Ü, but not ä/Ä, ö/Ö.

Also observable with french "accent circonflexe" letters â ê ô / Â Ê Ô but not î û / Î Û.

So far, I was only able to reproduce this on Ubuntu 16.04 with Firefox 47.

Firefox 46 was fine on Ubuntu 16.04.
Also, Firefox 47 works fine on Windows 10, Mac OS X and Ubuntu 14.04.

I can't reproduce this glitch on any of my other installed applications (not even Thunderbird 38.8.0), so I assume the problem exists with Firefox 47 solely.


Expected results:

GUI controls should have displayed "Überlingen" just as on the website.
I can't reproduce it on that webpage https://de.wikipedia.org/wiki/%C3%9Cberlingen with FF47 on Win 7.
Maybe specific to the Linux version.

Could you install the tool mozregression to narrow down a regression range in 47, please.
See http://mozilla.github.io/mozregression/ for details.
Run the command "mozregression --good=46" then copy here the final pushlog provided in the console output.
Flags: needinfo?(christoph.nuscheler)
Component: Untriaged → Graphics: Text
Product: Firefox → Core
OS: Unspecified → Linux
Hardware: Unspecified → x86_64
Attached image Firefox-Hilfe.png
"mozregression --good=46" let me test three different versions (the first was fine, the others bad), the resulting pushlog is this:

https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=c0ba5835ca489d15f8f170d5deb01f8dad92709a&tochange=9bd90088875399347b05d87c67d3709e31539dcd

I should mention that I got several Python errors during the run, always
RuntimeError: maximum recursion depth exceeded
along with a lengthy backtrace which smells of network issues. (Blame it on my workplace's proxy?)

Anyway, it's not just certain websites, but also Firefox' own menus (see attachment Firefox-Hilfe.png), which show the glitch.

As I mentioned in my original post, current Firefox 47 works perfectly fine in Ubuntu 14.04, but not in Ubuntu 16.04. I originally wanted to direct this bug to Canonical, but apparently they don't provide their own bugtracking for Firefox. Correct me if I'm wrong.
Flags: needinfo?(christoph.nuscheler)
That regression range is huge, and therefore not useful.  Sounds like mozregression didn't work correctly.
That said, this might be the same problem as bug 1279925.  Can you tell if the font is Tahoma, like it is there?
David, I think you're on the right track there.

I don't have Tahoma installed. Firefox uses my system wide GUI font "Cantarell Regular" (GNOME's default font.)
When I use gnome-tweak-tool to change the font to something other than "Cantarell", the glitches disappear.

After trying a whole bunch of other popular fonts, I think I can safely say, the problem exists only with the "Cantarell" font family. And, again, only on Ubuntu 16.04.

My GNOME version is 3.18.4, as provided by Ubuntu 16.04. Nothing special here.

The combination Firefox 47, Ubuntu 14.04 (GNOME 3.10.4), Cantarell still looks OK.
Summary: Firefox 47 - faulty display of certain Umlauts in GUI Elements → Firefox 47 - faulty display of certain Umlauts in GUI Elements with font "Cantarell"
I'm seeing the same thing. Firefox 47, Ubuntu 16.04, and gnome-shell --version reports 3.18.4, font is Cantarell Regular. Both lowercase ü and uppercase Ü are affected, the other umlauts are fine.

I don't think the problem was around before Firefox 47, though I can't rule out a system update breaking something at roughly the same time. (However, I can't find this problem in any other application.)
Alright, grabbed a copy of cantarell-fonts-0.0.24 from here: https://download.gnome.org/sources/cantarell-fonts/0.0/

After installation, the rendering is absolutely fine in Firefox 47.

Questions remain:
Why aren't any other GNOME applications affected by it? Trust me, there aren't any.
Why wasn't Firefox 46 affected? Perhaps it has something to do with the recent switch to GTK3?

For me, the issue is now resolved, but other Ubuntu 16.04 users will still experience it until Canonical adopts the Debian patch to fonts-cantarell.

I'll leave it to the Firefox team to decide to dig deeper into this or to just wait for Canonical...
The problem arises because of a change in harfbuzz -- it now relies more on the GDEF table in the font, and in this case the table has incorrectly classified some accented characters as being "marks", which are made non-spacing.

Firefox 46 wasn't affected because it had an older release of harfbuzz that didn't rely on the GDEF table in this way.

Other applications will probably start to show the same problem if/when the system copy of harfbuzz gets updated, unless the broken font is also updated by that time. Firefox (as provided by Mozilla, at least; distro builds are a different story) uses its own internal copy of harfbuzz, which may be newer than the system-wide copy.
Is this bug a wontfix, or do we look for a workaround?  I don't think we would try to merge two versions of harfbuzz and runtime switch between the old and the new behaviour.
Whiteboard: [gfx-noted]
We're considering possible fixes/workarounds upstream in harfbuzz; see https://github.com/behdad/harfbuzz/pull/266. Whatever happens there will eventually find its way into Gecko and resolve this problem.

I'd be OK with applying such a patch locally if we want to fix this without waiting for a full harfbuzz update to make its way through the trains; just adding the blacklist entries would be safe enough to uplift to aurora and even beta, I think.
Just to let you know: fonts-cantarell package has just been upgraded to 0.0.24 in Ubuntu 16.04 LTS (backported from Debian unstable):

http://changelogs.ubuntu.com/changelogs/pool/universe/f/fonts-cantarell/fonts-cantarell_0.0.24-1~ubuntu16.04.0/changelog

... which solves the problem for the current Ubuntu LTS release.
HarfBuzz got resolved in version 1.3.0.
We updated Harfbuzz to version 1.3.0 in bug 1269343. Can anybody confirm that everything renders as expected now in a current Beta release?
Flags: needinfo?(christoph.nuscheler)
I haven't been able to reproduce the original bug here, so I can't tell if we've made progress or not here. What are your thoughts, Jonathan?
Flags: needinfo?(jfkthame)
According to comment 13, the font package in recent Ubuntu has been updated, so that the problem would disappear (as it was caused by a buggy font). Meanwhile, we've also taken a harfbuzz update that included a workaround for the buggy version, so this should be fixed even for users with the older font installed (at least that particular version of it).

So one way or another, I think we can say this now works. :)
Status: UNCONFIRMED → RESOLVED
Closed: 7 years ago
Flags: needinfo?(jfkthame)
Resolution: --- → WORKSFORME
That's right, Jonathan. After Ubuntu updated the Cantarell font package, the problems went away. I haven't reencountered this bug since.
Flags: needinfo?(christoph.nuscheler)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: