Состоялся релиз web-браузера Firefox 115. Выпуск Firefox 115 отнесён к категории веток с длительным сроком поддержки (ESR), обновления для которых выпускаются в течение года. Кроме того, сформировано обновление прошлой ветки с длительным сроком поддержки – 102.13.0 (в дальнейшем ожидается ещё два обновления 102.14 и 102.15). На стадию бета-тестирования в ближайшее время будет переведена ветка Firefox 116, релиз которой намечен на 1 августа.
Основные новшества в Firefox 115:
- В сборках для Linux на системах с GPU Intel включено аппаратное ускорение декодирования видео.
- На платформе Linux при нажатии средней кнопкой мыши на кнопку открытия вкладки в новой вкладке теперь будет открыто содержимое из буфера обмена. Если в буфере обмена находится URL, будет открыта данная ссылка, а если текст – будет выполнен запрос к поисковой системе. Для отключения данной возможности в about:config добавлена настройка browser.tabs.searchclipboardfor.middleclick.
- Переработан интерфейс для импорта данных из других браузеров.
- В инструменте для миграции с Chrome реализован перенос сохранённой информации о методах платежей.
- В выпадающем списке вкладок, показываемом при нажатии на кнопку “V” в панели, добавлены кнопки для быстрого закрытия вкладки.
- Для пользователей операционных систем без встроенной поддержки видеокодека H264, предоставлена возможность отката на использование плагина, загружающего поддерживаемый компанией Cisco открытый кодек OpenH264.
- Пользователи, запретившие автоматическое обновление дополнений и использующие цветовую тему, выбранную при помощи ранее удалённого встроенного дополнения Colorways, будут автоматически переключены на аналогичную внешнюю тему с сайта addons.mozilla.org.
- В полях ввода пароля добавлена поддержка отката изменений (Undo и Redo).
- Включённая в бета-выпуске система автоматизированного машинного перевода с одного языка на другой в релизе по умолчанию оставлена неактивной (можно включить через настройку “browser.translations.enable” в about:config).
- В панели с дополнениями у некоторых пользователей может появиться предупреждение о невозможности применения дополнения с текущим сайтом. Предупреждение связано с реализацией нового механизма защиты, запрещающего использование дополнений, не верифицированных Mozilla, с некоторыми сайтами. Для отключения данной защиты в about:config можно изменить настройку “extensions.quarantinedDomains.enabled”.
- Добавлено CSS-свойство animation-composition, позволяющее использовать композитные операции для одновременного применения нескольких анимаций, затрагивающих одно и тоже свойство.
- В CSS разрешено определение условий в правилах импорта “@import supports(…)“.
- В Array.prototype и TypedArray.prototype добавлены дополнительные методы Array.toReversed(), Array.toSorted(), Array.toSpliced(), Array.with(), TypedArrays.toReversed(), TypedArrays.toSorted() и TypedArrays.with(), возвращающие новую копию массива после внесения изменений в массив.
- Добавлен метод URL.canParse(), упрощающий разбор и проверку корректности URL.
- В методы URLSearchParams.has() и URLSearchParams.delete() добавлена поддержка необязательного аргумента “value”, который позволяет выполнять поиск в URL одновременно по имени ключа и значения, что полезно, когда в адресе указано несколько параметров с одним именем, но разными значениями.
- Добавлен статический метод Array.fromAsync(), в асинхронном режиме возвращающий новый экземпляр объекта Array, скопированный из объектов, напоминающих массив, перечисляемых (iterable) или асинхронно перечисляемых (async iterable).
- В API Response добавлен статический метод json(), возвращающий ответ в виде данных в формате JSON в теле ответа и выставляющий заголовок Content-Type в значение “application/json”.
- Для браузерных дополнений предложен API storage.session, позволяющий сохранять временные данные в памяти (данные будут очищены после окончания сеанса работы с браузером).
- В WebRTC предоставлена возможность указания миллисекундных целевых значений для буфера джиттера (jitter), что позволяет приложению выставить свой баланс между задержкой воспроизведения и опасностью исчерпания присутствующих в буфере звуковых или видео кадров из-за непостоянных задержек при прохождении пакетов по сети.
- В режиме приватного просмотра разрешено использование APIIndexedDB без ограничения размера занимаемой памяти. Проблема с возможной утечки конфиденциальных данных с диска решается тем, что данные IndexedDB шифруются, а ключ для расшифровки хранится только в оперативной памяти. После завершения сеанса приватного просмотра все данные очищаются.
- Поведение встроенного редактора приближено к редакторам других браузеров при разделении абзаца клавишей Enter или объединении абзацев клавишей Backspace в блоках contenteditable и designMode. При разделении узла DOM редактор теперь создаёт новый узел после исходного (а не перед исходным, как было раньше). При объединении узлов редактор теперь удаляет последний узел и перемещает все дочерние элементы в конец предыдущего узла.
- В инструментах для web-разработчиков предоставлена возможность игнорирования JavaScript-библиотек (пропуска пошаговой отладки и точек останова), которые не представляют интереса в процессе отладки web-приложения. Включение игнорирования осуществляется через выбор опции “Hide ignore-listed sources” в контекстном меню, показываемом при просмотре дерева исходных текстов.
- В about:config добавлена настройка “devtools.f12_enabled”, позволяющая запретить вызов инструментов для разработчиков нажатием клавиши F12.
- В Firefox для Android в адресную строку добавлена новая кнопка поиска, упрощающая переключение между поисковыми системами и позволяющая также искать информацию в закладках и истории посещений.
- Firefox 115 станет последним выпуском с поддержкой операционных систем Windows 7, 8 и 8.1, и macOS 10.12, 10.13 и 10.14.
Кроме новшеств и исправления ошибок в Firefox 115 устранено 24 уязвимости. 15 уязвимостей помечены как опасные, из них 13 уязвимостей (собраны под CVE-2023-37212 и CVE-2023-37211) вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц. Еще две опасные уязвимости вызваны обращением к памяти после её освобождения (use-after-free) в коде генерации сертификатов для WebRTC и движке SpiderMonkey.