Доступен Firefox 128, а также ветка с долгосрочной поддержкой (ESR 128). Несмотря на выпуск новой ветки, разработчики решили на неопределённый срок продлить поддержку прошлого ESR-выпуска (ESR 115), поскольку только там сохраняется поддержка Windows 7, пользователи которой составляют 10% пользовательской базы Firefox.
Основные изменения:
- Linux:
- Включена поддержка DMABuf на видеокартах NVIDIA (требуется драйвер версии 545.23.6 или новее).
- Реализована поддержка DBus-интерфейса org.freedesktop.Application (без этого невозможна интеграция с поисковой службой GNOME Shell).
- Исправлено воспроизведение 10-битного AV1-видео.
- Реализована поддержка воспроизведения защищённого содержимого (DRM) в режиме приватного просмотра.
- Переработан интерфейс очистки данных: некоторые пункты объединены (например «журнал посещений и загрузок» с «журналом форм и поиска»), а также показано, сколько места занимают те или иные данные за выбранный период времени.
- Для выделенного текста и ссылок добавлены пункты контекстного меню «Перевести выделенное» и «Перевести текст ссылки».
- Добавлена поддержка Privacy Preserving Attribution API и настройка «Разрешить веб-сайтам проводить измерение рекламы с сохранением приватности». Рекламодатели смогут получать обобщённую информацию, не содержащую сведений о конкретном пользователе, но отвечающую на их вопросы об эффективности рекламы. Это может стать хорошей альтернативой «отслеживанию» пользователей, которым вынуждены заниматься сайты, чтобы оценивать эффективность рекламы.
- Настройка «Отправлять DNS-запросы через прокси при использовании SOCKS 5» включена по умолчанию. Добавлена отдельная настройка «Отправлять DNS-запросы через прокси при использовании SOCKS v4» (потому что, если прокси SOCKS4 не поддерживает расширение SOCKSv4a, то попытка отправлять через него DNS-запросы приведёт к неработоспособности прокси).
- Возвращена настройка (
browser.spin_cursor_while_busy
), меняющая курсор на крутящееся колёсико до полной прогрузки страницы. Она была отключена по умолчанию на протяжении 15 лет и удалена в Firefox 119, но оказалось, что некоторые пользователи предпочитают видеть спиннер. - Ускорена работа в режиме «Только HTTS»: столкнувшись с сайтом, который не поддерживает HTTPS, браузер на время запомнит его и не будет каждый раз пробовать подключиться по защищённому соединению.
- Спустя 25 лет по просьбе пользователя добавлена возможность сделать фон браузера прозрачным (
browser.tabs.allow_transparent_browser
, кроме этого нужно изменить ряд других настроек). - Добавлена локализация на язык сирайки (skr).
- Пользователям из США и Канады будут показаны последние и популярные поисковые запросы в выпадающем меню адресной строки (
browser.urlbar.recentsearches.featureGate
,browser.urlbar.trending.featureGate
). - Файлы с неопознанными MIME-типами
text/*
, теперь расцениваются какtext/plain
и отображаются в браузере. - Нажатие
Enter
в поле поиска (когда оно вынесено на панель отдельно от адресной строки) больше не открывает страницу поиска. Разработчики отмечают, что в таком открытии не было смысла: если пользователь хочет что-то искать, то он вводит запрос сразу в поле поиска, а не открывает через поле поиска поисковик и только потом вводит туда запрос. - macOS:
- При захвате звука с микрофона через
getUserMedia
теперь применяются средства обработки и улучшения звука, предоставляемые операционной системой. - Улучшена навигация по вкладкам.
- Переход из полноэкранного режима в режим «Картинка в картинке» больше не приводит к тому, что окно «Картинка в картинке» открывается на полный экран.
- При захвате звука с микрофона через
- CSS:
- Включена поддержка относительных цветов (позволяет определять новые цвета относительно уже существующих и менять цветовое пространство).
- Свойство content обзавелось поддержкой альтернативного текста для содержимого с изображением (альтернативный текст отображается в дереве доступности браузера).
- Прекращена поддержка свойств
align-tracks
иjustify-tracks
(они поддерживались лишь в Firefox и недавно были удалены из спецификации).
- JavaScript:
- Реализована поддержка изменения размера ArrayBuffer и увеличения SharedArrayBuffer (позволяет изменять размер буферов без необходимости выделять новый буфер и копировать в него данные):
- Метод SharedArrayBuffer.prototype.grow() позволяет увеличить размер SharedArrayBuffer. Максимальный размер буфера задаётся параметром
options.maxByteLength
конструктора SharedArrayBuffer(). Свойства SharedArrayBuffer.prototype.growable и SharedArrayBuffer.prototype.maxByteLength соответственно показывают, может ли и до какого предела расти размер буфера. - Метод ArrayBuffer.prototype.resize() позволяет изменить размер ArrayBuffer. Максимальный размер буфера задаётся параметром
options.maxByteLength
конструктора ArrayBuffer(). Свойства ArrayBuffer.prototype.resizable и ArrayBuffer.prototype.maxByteLength соответственно показывают, может ли и до какого предела измениться размер буфера.
- Метод SharedArrayBuffer.prototype.grow() позволяет увеличить размер SharedArrayBuffer. Максимальный размер буфера задаётся параметром
- Реализована поддержка изменения размера ArrayBuffer и увеличения SharedArrayBuffer (позволяет изменять размер буферов без необходимости выделять новый буфер и копировать в него данные):
- HTTP:
- HTTP-заголовок Accept в запросах по умолчанию и запросах изображений теперь включает MIME-тип
image/svg+xml
. - Реализована поддержка RFC 9218: Extensible Prioritization Scheme for HTTP.
- HTTP-заголовок Accept в запросах по умолчанию и запросах изображений теперь включает MIME-тип
- API:
- Добавлена поддержка RTCRtpReceiver.getParameters() и RTCRtpSender.getParameters() (возвращают объект, описывающий текущие кодеки, используемые для кодирования и передачи мультимедиа на дорожках получателя и отправителя соответственно).
- Теперь можно использовать Request.bytes() и Response.bytes() для получения Uint8Array из Request и Response.
- Реализована поддержка PushMessageData.bytes() (возврат данных из push-сообщения в виде массива байтов в объекте Uint8Array).
- Реализована поддержка Blob.bytes()() (возврат данных из Blob в виде массива байтов в объекте Uint8Array).
- Добавлена поддержка
MediaKeys.getStatusForPolicy()
(позволяет веб-приложению заранее узнать, будет ли доступно воспроизведение DRM-содержимого с оптимальным разрешением). - Появилась поддержка RTCRtpTransceiver.setCodecPreferences() (позволяет заставить удалённый узел выбрать предпочтительный кодек и отключить согласование определённых кодеков).
- Доступна сериализация декларативного shadow DOM: методы ShadowRoot.getHTML() и Element.getHTML(), а также связанные свойства ShadowRoot.serializable и HTMLTemplateElement.shadowRootSerializable.
- Включена по умолчанию поддержка интерфейса CSSPropertyRule (позволяет получать значения пользовательских свойств CSS, определённых с помощью правила
@property
). - Включена поддержка метода registerProperty() (позволяет определять пользовательские свойства CSS с помощью JavaScript).
- Удалён нестандартный метод HTMLMediaElement.seekToNextFrame().
- Инструменты разработчика:
- Во всплывающей подсказке, отображаемой при наведении курсора на селектор правила CSS, теперь показана специфичность (помогает понять, почему одни правила применяются раньше других).
- Во всплывающей подсказке, отображаемой при наведении курсора на переменную, теперь показывается не только значение переменной, но и её свойства (синтаксис, наследование, значение по умолчанию).
>>> Подробности