Subject: bug#47359: IceCat shows ACE/Punycode instead of IDN

From: Mark H Weaver <[email-masked]>
Date: Sun, 04 Apr 2021 16:49:43 -0400

Hi Ludovic,

Ludovic Courtès <[email-masked]> writes:

> IceCat shows ASCII-compatible encoding (ACE, roughly Punycode) for
> so-called internationalized domain names (IDNs) instead of displaying
> them properly—e.g., <https://xn--drivation-b4a.fr/> instead of
> <https://dérivation.fr/>.

I see the same behavior, which does not happen on 'firefox-esr' on
Debian.

> I believe it purposefully has a white list of the kind of IDNs it
> accepts to display properly (to avoid phishing).  In ‘about:config’
> there’s a set of ‘network.IDN.whitelist’ Booleans, which suggest the
> example above should work, but for some reason it doesn’t.
>
> Ideas?

My first guess is that it has something to do with the fact that support
for language packs is currently broken.  Perhaps some data from the
language pack is needed to make decisions about which IDNs to display.

The problem with language packs is that they must now be digitally
signed by Mozilla, and obviously we cannot do that.  I guess we need to
find the code that performs those signature checks, and disable it for
language packs found in trusted system directories.

     Regards,
       Mark