Non-latin characters are not rendered even with the font installed.

NEW
Unassigned

Status

()

Core
Graphics: Text
P3
normal
2 years ago
10 months ago

People

(Reporter: bober_182, Unassigned)

Tracking

({regression})

44 Branch
x86_64
Linux
regression
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [gfx-noted])

Attachments

(1 attachment)

(Reporter)

Description

2 years ago
My setup Arch Linux 64bit, with ttf-dejavu font installed and Firefox 44.
Font settings are default, have tested with a new profile.

Issue appeared after an update maybe 42 or 43.

Steps to reproduce.

open new tab
type in address bar "data:,test-唐澤貴洋殺す"
press enter

Expected results.

Render correct characters not boxes with hex codes.

Comment 1

2 years ago
Dupe of bug 1245811?
Component: General → Graphics: Text
Flags: needinfo?(jfkthame)
Product: Firefox → Core
(In reply to Loic from comment #1)
> Dupe of bug 1245811?

May well be related. Does setting 'gfx.font_rendering.fontconfig.fontlist.enabled' to 'false' in about:config (and then re-launching the browser) resolve the problem?

If so, it's a regression from bug 1119062, whether or not it's an exact dupe of one of the other regressions on file.
Flags: needinfo?(jfkthame)

Updated

2 years ago
Flags: needinfo?(bober_182)
(Reporter)

Comment 3

2 years ago
gfx.font_rendering.fontconfig.fontlist.enabled set to false fixes this.
Flags: needinfo?(bober_182)
Blocks: 1119062
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: regression
Whiteboard: [gfx-noted]
Does this still occur with current Nightly builds (https://nightly.mozilla.org/) or has it been resolved?
Flags: needinfo?(bober_182)
(Reporter)

Comment 5

2 years ago
Yes, attached is a screenshot. Fix from comment #2 still works.
https://i.imgur.com/hPwaSTc.png
Flags: needinfo?(bober_182)
Hmm, OK. Could you please confirm the exact version you just tried (Build ID from about:support, and source revision shown as "Built from..." in about:buildconfig).

I guess the page in your screenshot is https://wiki.archlinux.org/index.php/Main_page_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87), right? Could you please also post a screenshot of the same page when gfx.font_rendering.fontconfig.fontlist.enabled is set to false?

Also, when gfx.font_rendering.fontconfig.fontlist.enabled is false (and so it displays properly), what font is used for the Chinese characters? To determine this, set devtools.fontinspector.enabled to true; then right-click on one of the Chinese-only elements such as the 常见问题 heading, and choose Inspect Element from the context menu, then click the Fonts panel in the inspector and let us know what it reports. Thanks!
(Reporter)

Comment 7

2 years ago
(In reply to Jonathan Kew (:jfkthame) from comment #6)
> Hmm, OK. Could you please confirm the exact version you just tried (Build ID
> from about:support, and source revision shown as "Built from..." in
> about:buildconfig).

Build ID 	20160707083343
Built from https://hg.mozilla.org/mozilla-central/rev/63cc31d6cc1c8089590461016ce0b4a2fb77ecbc

> 
> I guess the page in your screenshot is
> https://wiki.archlinux.org/index.php/
> Main_page_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87), right? Could you please
> also post a screenshot of the same page when
> gfx.font_rendering.fontconfig.fontlist.enabled is set to false?
> 

http://i.imgur.com/0aSchc6.png

> Also, when gfx.font_rendering.fontconfig.fontlist.enabled is false (and so
> it displays properly), what font is used for the Chinese characters? 

DejaVu Sans and Fixed ja
Ah, it looks like "Fixed ja" is a bitmap font, isn't it? That accounts for the problem, if there's no scalable (TrueType/OpenType) CJK font currently installed. With the new fontconfig backend, non-scalable (bitmap-only) fonts are no longer supported (see bug 1056479 comment 13).

So to get Chinese (or other) characters to display, you'll need to install a package that provides scalable fonts for the language (script) in question.

Comment 9

2 years ago
Probably stumbled on the same Bug:
As prerequisite, you probably need to have a very recent version of a font with unicode 9 support installed (ttf-unifont 9.0.01-1) here on Manjaro linux (Arch).

Open: http://unicode-table.com/en/1C80/
With Firefox 47.0.1, (same) correct character is shown in "Your browser" "Arial" and "Times New Roman"
With Nightly 20160711034039, only Tofu is shown (hex codes)
- Unless you manually set Sans-serif to unifont in advanced font settings: correct characters
- Or you set gfx.font_rendering.fontconfig.fontlist.enabled to false: correct characters

Chromium stable also correctly shows the character.
(So only Firefox Nightly with default settings has a problem here...)

Comment 10

2 years ago
Created attachment 8769720 [details]
Screenshot blocky character.png

Despite my unicode 9 font being called ttf-unifont, the character mentioned above does look very blocky (see screenshot), so maybe it is also bitmap-based?

And if Firefox 47 still supports non-scalable (bitmap-only) fonts, that would explain everything then.

...but rare characters, or very new ones (the above got just added with unicode 9.0), are probably often only in bitmap-only fonts...
Hmm, I wonder. What gets reported if you run

  fc-match --verbose unifont

in a terminal?
Oh, but you said that

> - Unless you manually set Sans-serif to unifont in advanced font settings: correct characters

gives the proper characters (that's even with gfx.font_rendering.fontconfig.fontlist.enabled set to 'true', right)? In that case the font is definitely usable for Firefox. So the question is why font fallback doesn't find it automatically, when it wasn't explicitly set in the font options.

Comment 13

2 years ago
(In reply to Jonathan Kew (:jfkthame) from comment #12)
> Oh, but you said that
> 
> > - Unless you manually set Sans-serif to unifont in advanced font settings: correct characters
> 
> gives the proper characters (that's even with
> gfx.font_rendering.fontconfig.fontlist.enabled set to 'true', right)?

Yes

> In
> that case the font is definitely usable for Firefox. So the question is why
> font fallback doesn't find it automatically, when it wasn't explicitly set
> in the font options.
...That was exactly my first suspicion: that font fallback isn't working somehow.
Going to check above situation again with fresh profile (did use a new profile to check most findings, doing again to be sure)

Should I try to find a regression range?

Anyway, output of fc-match:

Pattern has 35 elts (size 48)
	family: "Unifont"(s)
	familylang: "en"(s)
	style: "Medium"(s)
	stylelang: "en"(s)
	fullname: "Unifont"(s)
	fullnamelang: "en"(s)
	slant: 0(i)(s)
	weight: 100(i)(s)
	width: 100(i)(s)
	size: 12(f)(s)
	pixelsize: 12.5(f)(s)
	spacing: 90(i)(w)
	foundry: "PfEd"(w)
	hintstyle: 1(i)(w)
	hinting: True(s)
	verticallayout: False(s)
	autohint: False(s)
	globaladvance: True(s)
	file: "/usr/share/fonts/TTF/Unifont.ttf"(w)
	index: 0(i)(w)
	outline: True(w)
	scalable: True(w)
	dpi: 75(f)(s)
	scale: 1(f)(s)
	charset: 
	0000: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0001: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0002: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0003: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0004: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0005: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0006: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0007: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0008: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0009: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	000a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	000b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	000c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	000d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	000e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	000f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0010: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0011: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0012: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0013: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0014: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0015: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0016: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0017: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0018: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0019: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	001a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	001b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	001c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	001d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	001e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	001f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0020: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0021: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0022: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0023: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0024: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0025: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0026: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0027: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0028: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0029: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	002a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	002b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	002c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	002d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	002e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	002f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0030: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0031: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0032: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0033: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0034: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0035: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0036: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0037: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0038: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0039: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	003f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0040: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0041: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0042: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0043: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0044: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0045: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0046: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0047: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0048: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0049: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	004a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	004b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	004c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	004d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	004e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	004f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0050: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0051: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0052: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0053: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0054: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0055: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0056: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0057: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0058: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0059: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	005f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0060: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0061: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0062: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0063: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0064: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0065: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0066: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0067: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0068: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0069: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	006f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0070: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0071: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0072: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0073: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0074: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0075: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0076: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0077: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0078: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0079: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	007f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0080: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0081: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0082: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0083: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0084: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0085: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0086: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0087: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0088: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0089: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	008f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0090: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0091: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0092: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0093: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0094: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0095: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0096: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0097: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0098: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	0099: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	009f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00a0: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00a1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00a2: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00a3: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00a4: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00a5: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00a6: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00a7: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00a8: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00a9: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00aa: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00ab: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00ac: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00ad: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00ae: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00af: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00b0: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00b1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00b2: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00b3: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00b4: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00b5: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00b6: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00b7: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00b8: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00b9: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00ba: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00bb: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00bc: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00bd: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00be: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00bf: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00c0: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00c1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00c2: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00c3: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00c4: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00c5: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00c6: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00c7: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00c8: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00c9: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00ca: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00cb: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00cc: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00cd: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00ce: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00cf: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00d0: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00d1: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00d2: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00d3: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00d4: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00d5: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00d6: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00d7: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00f9: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00fa: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00fb: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00fc: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00fd: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00fe: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
	00ff: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 3fffffff
(w)
	lang: aa|ab|af|am|ar|as|ast|av|ay|az-az|az-ir|ba|bm|be|bg|bh|bho|bi|bin|bn|bo|br|bs|bua|ca|ce|ch|chm|chr|co|cs|cu|cv|cy|da|de|dz|el|en|eo|es|et|eu|fa|fi|fj|fo|fr|ff|fur|fy|ga|gd|gez|gl|gn|gu|gv|ha|haw|he|hi|ho|hr|hu|hy|ia|ig|id|ie|ik|io|is|it|iu|ja|ka|kaa|ki|kk|kl|km|kn|ko|kok|ks|ku-am|ku-ir|kum|kv|kw|ky|la|lb|lez|ln|lo|lt|lv|mg|mh|mi|mk|ml|mn-cn|mo|mr|mt|my|nb|nds|ne|nl|nn|no|nr|nso|ny|oc|om|or|os|pa|pl|ps-af|ps-pk|pt|rm|ro|ru|sa|sah|sco|se|sel|sh|shs|si|sk|sl|sm|sma|smj|smn|sms|so|sq|sr|ss|st|sv|sw|syr|ta|te|tg|th|ti-er|ti-et|tig|tk|tl|tn|to|tr|ts|tt|tw|tyv|ug|uk|ur|uz|ve|vi|vo|vot|wa|wen|wo|xh|yap|yi|yo|zh-cn|zh-sg|zh-tw|zu|ak|an|ber-dz|ber-ma|byn|crh|csb|dv|ee|fat|fil|hne|hsb|ht|hz|ii|jv|kab|kj|kr|ku-iq|ku-tr|kwm|lg|li|mai|mn-mn|ms|na|ng|nv|ota|pa-pk|pap-an|pap-aw|qu|quz|rn|rw|sc|sd|sg|sid|sn|su|ty|wal|za|lah|nqo|brx|sat|doi|mni(s)
	fontversion: 589824(i)(s)
	fontformat: "TrueType"(w)
	embeddedbitmap: True(s)
	decorative: False(s)
	namelang: "de"(s)
	prgname: "fc-match"(s)
	postscriptname: "UnifontMedium"(w)
	color: False(w)
	symbol: False(s)

Comment 14

2 years ago
With a new profile, setting Sans-serif from "sans-serif" to "unifont" in the advanced font settings, the character is shown in the "Your Browser" place, but not in "Arial" or "Times New Roman" places (Tofu/hex there).
All three back to hex when unifont -> sans-serif.
It sounds almost like something along the lines of bug 1245811 may be getting involved. But that particular bug was supposed to be fixed already for Firefox 47 and later....

If you can run mozregression and pinpoint a regression range here, that could be very helpful. Thanks!

Comment 16

2 years ago
Last good revision: cdcf362a0234ad70425b14c4d58568d7bd66381b
17:28.33 INFO: First bad revision: b41c3ceb94d42a39b31349e6e29b227521fc15b8
17:28.33 INFO: Pushlog:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=cdcf362a0234ad70425b14c4d58568d7bd66381b&tochange=b41c3ceb94d42a39b31349e6e29b227521fc15b8

17:29.31 INFO: Looks like the following bug has the changes which introduced the regression:
https://bugzilla.mozilla.org/show_bug.cgi?id=1266341
Ah, I see. So for you, is this affecting -only- characters that were recently added to Unicode? Or does it also affect vast numbers of characters that have been around for a long time (as seen in the screenshot in comment 5)?
Looking through the code, I believe the problem here was introduced back in bug 705594, where the fragment with the comment "never fall back for characters from unknown scripts" was added to gfxFontGroup::FindFontForChar. But that test used the wrong script constant, HB_SCRIPT_UNKNOWN instead of MOZ_SCRIPT_UNKNOWN, and so didn't actually have the intended effect!

Then, bug 1266341 fixed the incorrect mixing of different script codes, and suddenly that code fragment kicked in and prevented fallback from happening on characters that are unknown in the version of Unicode gecko supports -- which is currently 8.0, IIRC.

(I think that code fragment was a mistake in the first place; although the "common fallback fonts" code won't be able to do anything useful with unknown scripts, we -do- still want system-wide fallback to happen.)

The problem went unnoticed until now because the use of the wrong script constant made it ineffective. But now we should simply remove it.

Comment 19

2 years ago
Unfortunately not sure about that, steps to reproduce in comment 1 _always_ shows wrong characters, even with Firefox 47 and Chromium.
But I have a strong feeling that since some time (above regression range could be right time frame), I have seen Tofu more often (but still very seldom) than ever before with Nightlys - after having Noto and unifont fonts installed last year.
Stumbled today by pure chance upon the character I mentioned originally, it being Unicode 9 _might_ be pure coincidence. Just had the time to look more closely at it than before...so, not sure, it is at least not very often that I see Tofu.
OK, there are two different issues here (at least). There's the original problem of bitmap fonts being unsupported, and there's a separate issue of fallback being broken for Unicode 9 characters (because they have "unknown" script for Gecko, using its Unicode 8 character data). I'll file a separate bug for the latter, as it's a straightforward fix.

(Not sure whether we can/will do anything about the bitmap font issue, or if that's simply the way things are going to be in the future.....)
Blocks: 1286011

Comment 21

2 years ago
I can confirm that my problem with broken Unicode 9 characters
(see https://bugzilla.mozilla.org/show_bug.cgi?id=1253542#c9 )
is fixed with Build ID 20160712030234 by fixing Bug 1286011
Thanks alot!

[Original problem of this Bug (bitmap fonts being unsupported?) is still not fixed/decided, as explained above]
Priority: -- → P3
You need to log in before you can comment on or make changes to this bug.