Firefox - Веб-сайты с пользовательскими шрифтами не отображаются

9

Я только что обновился до FF 57, и веб-сайты, которые используют свои собственные шрифты, перестали отображать текст.

Я знаю, что это проблема, с которой сталкивались другие, например, Firefox не отображает текст на сайте , но решения там не сработали. Безопасный режим тоже не помогает, проблема исчезнет, ​​только если я уберу галочку с опции пользовательских шрифтов в настройках.

У меня также установлены пользовательские шрифты (от TexLive и еще нескольких), так что я думаю, что это может быть причиной.

Любые идеи о том, как решить эту проблему?

Пример из Github:

GitHub нет текста

Бар
источник
Похоже, что TeXGyreHeros был самым лучшим, я установил его, и теперь Twitter и Github работают правильно. Это доступно в fonts-texgyreпакете. Не знаю, почему обновление до 57 вызвало это.
Бар
Пришлось сделать то же самое с Youtube и fonts-roboto. Похоже, многие шрифты отсутствуют.
Бар
1
Один сайт, который я не смог исправить, - это (по иронии судьбы) addons.mozilla.org, который использует семейство шрифтов Fira. Я установил их в соответствии с инструкциями, и какое-то время они, кажется, работают, но возвращаемся назад, текст не отображается.
Бар
В моем случае у меня была эта проблема на одном компьютере, но не на другом с аналогичными настройками. Ни один из ответов, приведенных здесь до настоящего времени, не исправляет это. Я открыл еще один пост askubuntu.com/q/980681/446253
XavierStuvw

Ответы:

9

Это сочетание нескольких вещей: TexLive устанавливает шрифты в нестандартном месте, а веб-страница запрашивает шрифт, который пакет fontconfig в Ubuntu считает лучше, если он выполняется одним из шрифтов TexLive, а не обычным шрифтом. Затем Firefox приказывают использовать шрифт TexLive для рендеринга, но ему не разрешено получать доступ изнутри его песочницы безопасности.

Рекомендуемое решение - установить

security.sandbox.content.read_path_whitelist to /usr/local/texlive/

в about: config, и перезапустить браузер.

Это исправлено на более фундаментальном уровне в Firefox 58 и более поздних версиях.

GCP
источник
1
Я должен предложить лучшее решение: установить /usr/local/texlive/. Таким образом, мы можем избежать указания на год выпуска TeXLive
Доменико Куфало
Я немного не уверен, что это именно то, что происходит. У меня действительно установлены шрифты TexGyre, но они установлены вручную, поэтому, хотя некоторые другие пакеты могли установить их в специальную папку, они сначала были установлены в стандартную папку. Также сайты, с которыми у меня возникли проблемы, использовали анодные шрифты MS, которые установлены в местах расположения системных шрифтов. Их не нужно заменять, и они находятся в папках, которые должны быть исключениями из новой песочницы Firefox. Также разные пользователи имеют проблемы с разными сайтами. Во всяком случае, установка уровня песочницы на 2 работает для меня, пока это не будет исправлено.
Moilleadóir
Вам следует сообщить об ошибке в Bugzilla с более подробной информацией, иначе проблема не будет устранена.
gcp
Я согласен, что /usr/local/texliveследует использовать, чтобы избежать года. Другой ответ проголосовал по этой причине.
Эге Рубак
Отредактировано, хотя исправление было поднято до Firefox 58, поэтому к 2018 году этот обходной путь больше не понадобится.
gcp
3

Я также установил fonts-texgyreDebian 9 Stretch, и визуализация веб-страниц улучшилась, но есть некоторые проблемы. Возможно, нам следует установить каждый шрифт, доступный в репозиториях, но ясно, что такое решение не практично.

Единственным реальным решением было бы отключить /etc/fonts/conf.d/09-texlive.conf.

Если кто-то найдет другое решение, это приветствуется!

Доменико Куфало
источник
Что вы подразумеваете под отключением здесь? Как это повлияет на Firefox?
Бар
1
sudo mv /etc/fonts/conf.d/09-texlive.conf /etc/fonts/conf.d/09-texlive.conf.BAKа затемsudo fc-cache -fsv
Доменико Куфало
2
Кажется, что текстовые шрифты, установленные в системе Linux, вызывают конфликт.
Доменико Куфало
1
К сожалению, это решение не является хорошим, поскольку оно делает текстовые шрифты бесполезными для других приложений
Доменико Куфало,
1
Хорошо, спасибо. Я приму это как ответ, так как это решит проблему. Отстой, что мы не можем использовать текстовые шрифты, и я не могу понять, как FF 56 против 57, хотя и вызывает это.
Бар
3

В about:config, установить

security.sandbox.content.read_path_whitelist 

в

/usr/local/texlive/

Работает после перезапуска Firefox.

Мартиен Лубберинк
источник
2

Попробуйте пойти о: предпочтения > Язык и Appearance > Дополнительно и неустановленные «Позволить страниц выбирать свои собственные шрифты вместо вашего выбора выше». Это решает проблему для меня, хотя теперь все шрифты по умолчанию DejaVu.

phipsgabler
источник
Это обходной путь, а не исправление, хотя и работает для меня.
pbhj
1

Просто нашел лучшее решение, не устанавливая ничего!

В адресной строке Firefox зайдите в about: config , затем найдите

security.sandbox.content.level

и установите эту строку в 1 . Перезапустите Firefox и ... :-D

Доменико Куфало
источник
Это происходит за счет безопасности, очевидно. На самом деле это похоже на ошибку, я посмотрю, смогу ли я сообщить об этом в Bugzilla. Для получения дополнительной информации о песочнице смотрите здесь: wiki.mozilla.org/Security/Sandbox#Content_Levels_2
Бар
Кроме того, лучше, если вы отредактируете свой предыдущий ответ, а не создадите новый.
Бар
1
Подана эта ошибка: bugzilla.mozilla.org/show_bug.cgi?id=1418240 Если вы можете прокомментировать и подтвердить ту же проблему, она может быть замечена раньше.
Бар