v35.0.1 (22.09.2026)
Это выпуск, содержащий исправления ошибок и усовершенствования безопасности.

Изменения/исправления:

    Исправлена серьезная ошибка, влиявшая на производительность, связанная с новой реализацией :has().
    Исправлено потенциальное неопределенное поведение при преобразовании чисел типа float в int32.
    Ужесточена проверка на структурные ошибки в файлах на основе XML.
    Исправлена ошибка, приводившая к сбою в реализации WeakRef.
    Исправлена потенциальная проблема в всплывающих подсказках пользовательского интерфейса (DiD).
    Исправлена регрессия в преобразованиях XSLT, приводившая к некорректному выводу.
    Устранены проблемы безопасности: CVE-2026-92016 (DiD), CVE-2026-92044, CVE-2026-92049, CVE-2026-92030 и CVE-2026-92012.


v35.0.0 (17.09.2026)
Это промежуточный релиз, содержащий множество изменений, в первую очередь направленных на обеспечение веб-совместимости.
Примечание: из-за упущения установщик этой версии не был подписан цифровой подписью.

Новые возможности:

    Pale Moon теперь по умолчанию использует ряд модулей совместимости (shims/polyfills). Это обеспечит совместимость со следующими функциями: Document.elementFromPoint(s) с неконечным количеством аргументов, API GetAnimations, image.decode(), API Intl.DisplayNames, API Intl.ListFormat, API Intl.RelativeTimeFormat, API Intl.Segmenter, а также методами pipethrough(), pipeto(), TextDecoderStream, TextEncoderStream и TransformStream из API Streams. См. примечания по реализации.
    Реализовано ключевое слово CSS revert-layer.
    Реализован метод CSSStyleSheet replaceSync.
    Реализован псевдокласс CSS :has().
    Реализована поддержка adoptedStyleSheets.

Изменения/исправления:

    Версия режима совместимости с Firefox по умолчанию обновлена до 140. Разумеется, при необходимости это по-прежнему можно легко переопределить (глобально или для отдельного сайта).
    В механизмы сборки мусора JavaScript и очистки циклов DOM внесен ряд важных исправлений, позволяющих лучше справляться с ресурсоёмкими современными веб-сайтами, которые не освобождают свои ресурсы должным образом. Одновременно был удалён обходной механизм «ghostbuster» для остаточных объектов окон, так как он больше не нужен.
    Удалён старый и устаревший код из платформы, связанный с древними или полностью неподдерживаемыми целями компиляции.
    Заглавная версия символа ß (eszett/scharfes S) теперь всегда будет отражать способ написания строчной версии. См. примечания к реализации.
    Добавлены дополнительные обновления для LoongArch64 (включая полную поддержку JIT) и Mac/PPC.
    Linux/FreeBSD: добавлен переключатель зависимости от GTK2, позволяющий скомпилировать поддержку NPAPI без GTK2. Это позволяет Pale Moon скомпилировать поддержку плагинов на системах, где отсутствуют пакеты GTK2.
    Удален неиспользуемый модуль «network tickler» — унаследованный компонент, который мог регулярно отправлять ping-запросы к беспроводным сетям.
    Модернизированы std::*<T>::value/::type до форм с суффиксами _v и _t соответственно, в соответствии с более современными стандартами языка C++ и поведением компиляторов.
    Обновлен CSS-аспектное соотношение для большей соответствия спецификации.
    Обновлены кнопки контейнера flex, чтобы они указывали определённый размер (что позволяет избежать появления элементов размером 0 на некоторых веб-сайтах).
    Восстановлена возможность компиляции Pale Moon для платформ MIPS.
    Исправлена проблема, из-за которой при рекурсивных вызовах переформатирования могло происходить зависание (вызывая рекурсивную бурю переформатирования), что позволяет избежать потенциально длительных зависаний/блокировок браузера.
    Обновлены некоторые части кода ICU для лучшей поддержки интернационализации.
    Linux: Улучшена производительность ввода текста на некоторых сложных страницах.


Исправления, связанные с безопасностью:

    Обновлен внутренний просмотрщик JSON для более эффективной работы с ресурсами.
    Обновлен NSS до версии 3.90.14.0 (UXP) с целью включения нескольких исправлений, связанных с безопасностью.
    Как обычно, было рассмотрено множество потенциальных отчётов и проблем, связанных с безопасностью, и, где это было уместно, внедрены соответствующие исправления в наш код.
    Устраненные проблемы безопасности: CVE-2026-74982, CVE-2026-74969 (DiD), CVE-2026-74977 (DiD), CVE-2026-74945, CVE-2026-74964, CVE-2026-74971, CVE-2026-74943, а также несколько других, которые на момент оценки не имели обозначения CVE.


Примечания по реализации:

    Pale Moon теперь включает и предварительно загружает ряд шаймов/полифиллов совместимости на веб-страницах, чтобы реагировать на постоянное быстрое внедрение черновых спецификаций и синтаксического сахара на веб-сайтах, в первую очередь обусловленное тяжеловесными JavaScript-фреймворками, ориентированными преимущественно на движки верстки на базе Chrome. Хотя это и не идеально, это прагматичное решение, которое устраняет основные проблемы веб-совместимости с фреймворками, крайне нетерпимыми к отсутствию точного ожидаемого набора функций или набора веб-API. У этого подхода, заимствованного нами из родственного проекта (Basilisk), есть несколько нюансов: в первую очередь, он может работать не на всех сайтах, в частности, этому могут помешать очень строгие политики безопасности контента, и это не самое производительное из возможных решений (хотя, учитывая объёмность сайтов, использующих JS-фреймворки, это, вероятно, едва заметно).
    В первую очередь в немецком языке символ ß (известный как «eszett» или «scharfes S») может писаться либо с помощью соответствующего символа, либо с помощью альтернативного латинизированного варианта «ss». Поскольку заглавная версия ß в течение некоторого времени обычно не включалась в системные шрифты, с учётом исторических традиций печатных машин преобразование текста в заглавные буквы приводило к замене ß на «SS». Однако это может привести к неоднозначности в некоторых словах, где существуют варианты написания как с ß, так и с «ss», имеющие разное значение. Поскольку заглавный символ Юникода уже давно включён в системные шрифты и всё чаще встречается также в пользовательских шрифтах, данное преобразование является устаревшим подходом. Лингвистические организации в Германии в настоящее время также предпочитают использовать заглавную букву ẞ при написании с заглавной буквы, поэтому Pale Moon в дальнейшем будет по умолчанию использовать символ Юникода при преобразовании регистра (например, с помощью CSS или JavaScript), отказавшись от преобразования в «SS» на лету.
    В наших сборках FreeBSD с GTK3 используется новая опция, позволяющая скомпилировать поддержку NPAPI без зависимостей от GTK2. Если вам нужна эта функциональность в FreeBSD, воспользуйтесь бинарными файлами GTK2 или скомпилируйте программу самостоятельно из исходного кода с настройками, подходящими для вашей системы.
