Verified Commit a611cccf authored by Pier Angelo Vendrame's avatar Pier Angelo Vendrame 🎃
Browse files

Bug 41043: Hardcode the UI font on Linux

The mechanism to choose the UI font does not play well with our
fontconfig configuration. As a result, the final criterion to choose
the font for the UI was its version.

Since we hardcode Arimo as a default sans-serif on preferences, we use
it also for the UI. FontConfig will fall back to some other font for
scripts Arimo does not cover as expected (we tested with Japanese).
parent 913cb815
Loading
Loading
Loading
Loading
+6 −5
Original line number Original line Diff line number Diff line
@@ -2097,11 +2097,12 @@ void gfxFcPlatformFontList::GetFontList(nsAtom* aLangGroup,
FontFamily gfxFcPlatformFontList::GetDefaultFontForPlatform(
FontFamily gfxFcPlatformFontList::GetDefaultFontForPlatform(
    nsPresContext* aPresContext, const gfxFontStyle* aStyle,
    nsPresContext* aPresContext, const gfxFontStyle* aStyle,
    nsAtom* aLanguage) {
    nsAtom* aLanguage) {
  // Get the default font by using a fake name to retrieve the first
  // We hardcode Arimo also in preferences, and using the original code that
  // scalable font that fontconfig suggests for the given language.
  // tried to resolve a non-existing font did not play well with our fontconfig
  PrefFontList* prefFonts =
  // configuration. See
      FindGenericFamilies(aPresContext, "-moz-default"_ns,
  // https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41043
                          aLanguage ? aLanguage : nsGkAtoms::x_western);
  PrefFontList* prefFonts = FindGenericFamilies(
      aPresContext, "Arimo"_ns, aLanguage ? aLanguage : nsGkAtoms::x_western);
  NS_ASSERTION(prefFonts, "null list of generic fonts");
  NS_ASSERTION(prefFonts, "null list of generic fonts");
  if (prefFonts && !prefFonts->IsEmpty()) {
  if (prefFonts && !prefFonts->IsEmpty()) {
    return (*prefFonts)[0];
    return (*prefFonts)[0];