Состоялся релиз web-браузера Firefox 128. Firefox 128 отнесён к категории веток с длительным сроком поддержки (ESR), обновления для которых выпускаются в течение года. Кроме того, сформировано обновление прошлой ветки с длительным сроком поддержки – 115.13.0 (в дальнейшем ожидается ещё два обновления 115.14 и 115.15). На стадию бета-тестирования переведена ветка Firefox 129, релиз которой намечен на 6 августа.
Основные новшества в Firefox 128:
- Добавлена поддержка машинного перевода выделенных на странице фрагментов текста (ранее поддерживался только перевод страницы целиком). Функция перевода вызывается через контекстное меню, показываемое при нажатии правой кнопки мыши на выделенном блоке. Для перевода задействована встроенная в Firefox система, которая выполняет перевод на локальной системе пользователя без обращения к внешним облачным сервисам. Система основана на открытом движке Bergamot, который представляет собой обвязку над фреймворком машинного перевода Marian, применяющим рекуррентную нейронную сеть (RNN) и языковые модели на основе трансформеров.
- Предложен новый упрощённый и унифицированный диалог для очистки данных пользователя, в котором улучшено разделение данных на категории и добавлены сведения о размере данных, сохранённых за выбранный промежуток времени.
- В выпадающем окне, показываемом во время набора в адресной строке, помимо рекомендуемых ссылок реализовано отображение недавно выполненных и набирающих популярность поисковых запросов. Возможность пока включена только для пользователей из США и Канады.
- Добавлен виджет для показа прогноза погоды на странице, появляющейся при открытии новой вкладки. Для включения виджета в about:config предусмотрены настройки browser.newtabpage.activity-stream.showWeather и browser.newtabpage.activity-stream.system.showWeather.
- В режиме приватного просмотра предоставлена возможность воспроизведения защищённого контента из стриминговых сервисов, таких как Netflix.
- При работе через прокси с использованием протокола SOCKS5 по умолчанию включена отправка DNS-запросов тоже через прокси. Для SOCKS4 по-прежнему DNS-запросы отправляются через локальный резолвер.
- Обеспечена отрисовка на лету различных видов контента с MIME-типами
text/*, без необходимости предварительной загрузки подобных файлов перед просмотром. - Обновлён корневой сертификат, применяемый для верификации браузерных дополнений и контента, заверенного цифровой подписью Mozilla.
- Добавлена поддержка экспериментального API IPA (Interoperable Private Attribution), предоставляющего рекламным сетям возможность получать и обрабатывать статистику об эффективности рекламных кампаний, соблюдая при этом конфиденциальность пользователей. Для исключения раскрытия данных о конкретных пользователях при обработке статистики применяются криптографические механизмы дифференциальной приватности и многосторонних конфиденциальных вычислений (MPC, Multi-Party Computation), позволяющие нескольким независимым участникам производить вычисления не получая информацию о чужих данных (web-сайты, браузеры и рекламодатели по отдельности не имеют доступ ко всей информации) и выполнять операции над зашифрованными данными. API доступен в режиме “origin trial” и может быть отключён в настройках конфиденциальности в секции “Website Advertising”.
- Добавлена поддержка увеличения или уменьшения размера объекта ArrayBuffer, а также увеличения размера объекта SharedArrayBuffer, что позволяет менять размер ArrayBuffer без создания нового буфер и переноса в него данных. Предложены новые методы ArrayBuffer.prototype.resize() и SharedArrayBuffer.prototype.grow().
- В API WebRTC добавлен метод setCodecPreferences, позволяющий отключить определённые кодеки при согласовании соединения, а также изменить порядок предпочтения кодеков.
- Значения в HTTP-заголовке Accept, передаваемые серверу при запросе документов и изображений, приведены к соответствию спецификации API Fetch и приближены к поведению других браузеров. В заголовке теперь передаётся “text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8” (по сравнению с прошлой версией добавлено упоминание “image/png” и “image/svg+xml”).
- Добавлена поддержка интерфейса CSSPropertyRule, CSS-правила @property и метода registerProperty(), позволяющих регистрировать собственные CSS-свойства с наследованием, проверкой типов и значениями по умолчанию.
- Добавлены методы Request.bytes() и Response.bytes(), позволяющие сформировать типизированный массив Uint8Array из объектов Request и Response.
- В инструментах для web-разработчиков при наведении курсора на селектор CSS-правила реализован вывод всплывающей подсказки с информацией о специфичности CSS-правила, позволяющей понять почему заданное CSS-правило применено раньше другого правила.
- В панели инспектирования теперь подсвечивается некорректное применение пользовательских CSS-свойств, если их определение не соответствует использованному значению. Например, ниже отмечена ситуация, когда в свойстве “–b” вместо размера указали цвет:
- На платформе macOS для записи звука с микрофона при помощи API getUserMedia задействован предоставляемый системой движок обработки речи, позволяющий добиться более высокого качества.
- В версии для Android на устройствах с Android 14 и более новыми версиями платформы разрешено создание и использования ключей Passkey в сторонних приложениях управления аутентификацией без паролей с использованием биометрических идентификаторов, таких как отпечаток пальца или распознавание лица.
Кроме новшеств и исправления ошибок в Firefox 128 устранено 20 уязвимостей. 8 уязвимостей помечены как опасные, из которых 6 вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц.