Firefox 155

good-penguin.png

Доступен Firefox 155. Начиная с этого выпуска, браузер переходит на двухнедельный цикл релизов.

  • Linux:
    • Исправлена ошибка, препятствовавшая переходу системы в спящий режим после длительных сеансов работы с браузером.
    • При использовании определённых раскладок клавиатуры набираемый текст больше не исчезает в Microsoft 365 Word Online и других веб-приложениях.
    • В настройки темы по умолчанию добавлен чекбокс «Использовать системную тему Linux».
  • Поддержка умных окон (новый режим работы с тесным взаимодействием с ИИ) включена пользователям из США, Канады и Франции. Добавлены подсказки, позволяющие быстро вернуться к ранее обсуждавшимся темам. Для поиска в сети задействован поисковик Exa, что в пять раз ускорило ответы ИИ. Улучшена работа автоматических подсказок по группировке вкладок и их именованию.
  • Всем пользователям постепенно включат показ количества заблокированных трекеров в адресной строке (включается browser.urlbar.trackerCount.featureGate, отключается browser.urlbar.trackerCount.enabled).
  • Реализована полная поддержка контроллеров Nintendo Switch Pro и совместимых сторонних контроллеров.
  • В настройках появилась возможность изменить порядок, в котором будут показываться контейнеры.
  • Загрузка страниц будет происходить быстрее: браузер отправляет запросы сразу через IPv4 и IPv6, используя первый пришедший ответ.
  • Фильтр в about:config теперь позволяет искать сразу по нескольким ключевым словам, разделённым пробелами, и выводит результаты, содержащие все указанные слова (например, browser app покажет все настройки, в названии которых есть оба слова одновременно).
  • PDF-документы, которые меньше размера листа, теперь можно увеличить при печати, установив масштаб более 100%.
  • Встроенный переводчик обзавёлся поддержкой языков маратхи и урду.
  • По просьбам пользователей Opera добавлена настройка browser.urlbar.trimWww, скрывающая субдомен www из адресной строки.
  • Добавлена настройка browser.ctrlTab.maxPreviews, позволяющая увеличить число сайтов, показываемых в панели предпросмотра по Ctrl+Tab.
  • Исправлен лишний запрос подтверждения вставки, возникавший при использовании горячих клавиш для вставки без форматирования в Google Docs.
  • Ошибка при перетаскивании вкладки больше не приводит к неработоспособности панели инструментов и строки вкладок.
  • Исправлена ошибка, из-за которой текст внутри кнопок не удавалось выделить или скопировать, что препятствовало копированию личных сообщений в X и комментариев на YouTube.
  • Исправлена ошибочная остановка воспроизведения звука в фоновых вкладках.
  • Перемещение вкладки в другое окно больше не приводит к пропаданию с вкладки значка «вкладка воспроизводит звук».
  • На некоторых страницах, встраивающих в себя содержимое с других сайтов, не работали клавиши со стрелками и прокрутка клавишами Page Up/Down.
  • Максимально допустимое число уровней вложенности блоков и функций в CSS ограничено 75 для предотвращения падений.
  • Для обнаружения captive portal теперь используется домен firefox-portal-detection.com (ранее использовался detectportal.firefox.com). Поскольку доступ должен осуществляться строго по HTTP, это мешало включить HSTS preload для firefox.com.
  • Веб-страницы больше не могут сами открыть адрес mailto: и вызвать почтовый клиент без явного желания пользователя.
  • Прекращена разработка механизма, который автоматически бы отклонял или принимал уведомления об использовании кук на сайтах.
  • macOS:
    • Исправлено зависание при кодировании видео в формат NV12.
    • Убраны чёрные полосы по бокам полноэкранного содержимого, возникавшие на макбуках с вырезом под камеру.
  • Windows: исправлена ошибка, из-за которой символы некоторых редко используемых шрифтов выглядели как пустые квадраты.
  • CSS:
    • Функция attr () теперь может быть использована в любых CSS-свойствах, а не только в content (позволяет управлять стилями напрямую через HTML-атрибуты, например, width: attr(data-size px), без использования JavaScript. Поддерживаются значения (включая единицы измерения, такие как px и s), значения по умолчанию и атрибуты с пространствами имён.
    • Реализована функция progress () (возвращает , показывающее, насколько текущее значение продвинулось от начального до конечного. Полученный результат может быть использован для расчёта других параметров, например, opacity: calc(0.4 + progress(100cqw, 300px, 900px) * 0.6).
    • Появилась функция alpha () (возвращает переданный ей цвет с другим значением альфа-канала, не меняя остальные компоненты). Внутри функции можно использовать ключевое слово alpha для обращения к альфа-каналу исходного цвета, например, alpha(from var(--brand) / calc(alpha * 0.5)).
    • Свойство font-stretch переименовано в font-width, а старое имя оставлено как устаревший псевдоним.
    • Поддержка нестандартного псевдоэлемента ::-webkit-scrollbar (добавленная в Firefox 153) ограничена небольшим списком сайтов, которые без неё работают некорректно.
  • JavaScript:
    • Реализованы статические методы Promise.allKeyed () и Promise.allSettledKeyed () из TC39 await dictionary.
    • Если ошибка загрузки модуля произошла из-за ошибок сети или некорректного MIME-типа, такой модуль больше не кешируется как ошибочный, а его повторный импорт с тем же спецификатором может оказаться успешным. Это относится к модулям JavaScript, JSON, CSS и текстовым модулям, загружаемым как статически, так и через динамический импорт, как в окнах, так и в воркерах. В связи с этим для модулей, которые уже загружены или ещё загружаются, генерирует событие load вместо error, а скрипт модуля теперь загружается, даже если предыдущий modulepreload не прошёл проверку целостности.
  • HTTP: В соответствии с RFC 9368 появилась поддержка согласования версий QUIC (соединения HTTP/3 могут использовать QUIC 2, как описано в RFC 9369).
  • API:
    • Расширен WebTransport API:
      • Группы отправки позволяют объединять потоки, которые должны делить пропускную способность, и задавать им приоритет относительно друг друга внутри группы. Группа создаётся с помощью WebTransport.createSendGroup (). Затем полученный WebTransportSendGroup передаётся в параметре sendGroup при вызове WebTransport.createBidirectionalStream () или WebTransport.createUnidirectionalStream ().
      • Метод WebTransport.exportKeyingMaterial() генерирует содержимое ключей из нижележащего TLS-соединения для заданной метки и контекста, чтобы у обеих конечных точек был одинаковый общий секрет (позволяет на уровне приложения обнаружить MITM-атаки, когда приложение подключается к серверу, использующему самоподписанный сертификат).
      • Метод WebTransportDatagramDuplexStream.createWritable () возвращает поток WebTransportDatagramsWritable для отправки датаграмм со свойствами sendGroup и sendOrder (позволяют задавать его приоритет относительно других отправителей).
      • Конструктор WebTransport () принимает параметр protocols, содержащий список прикладных протоколов, поддерживаемых клиентом. Протокол, выбранный сервером (если таковой имеется), возвращается в свойстве WebTransport.protocol после установки соединения и успешного WebTransport.ready.
      • Свойство WebTransport.draining указывает, что сервер запросил плавное завершение сеанса.
    • WebGPU API обзавёлся поддержкой dual-source-blending, которую можно запросить через GPUAdapter.requestDevice () (позволяет указывать src1, one-minus-src1, src1-alpha и one-minus-src1-alpha в свойствах srcFactor и dstFactor функций createRenderPipeline () и createRenderPipelineAsync ()). Также поддерживается расширение WGSL dual_source_blending.
    • DOM:
      • Интерфейс SVGAElement теперь реализует миксин HyperlinkElementUtils. В результате SVG-элементы (mozilla.org) имеют такие же свойства, как HTML-элементы (mozilla.org): protocol, username, password, host, hostname, port, pathname, search и hash. Также доступно свойство origin.
      • Интерфейсы SVGNumberList, SVGPointList, SVGStringList и SVGTransformList получили поддержку индексированных сеттеров (элемент в списке можно заменить с помощью квадратных скобок (например, transformList[0] = newTransform), а не вызывать replaceItem (). Интерфейс SVGLengthList уже поддерживает такие сеттеры.
      • Метод SVGGraphicsElement.getBBox () обзавёлся аргументом options со свойствами fill, stroke, markers и clipped (позволяет получить ограничивающий прямоугольник с учётом обводки, маркеров и отсечения, применённых к элементу, а не только на основе геометрии его заливки).
      • Элементы, которые не отрисовываются, например, находящиеся внутри , , , и , теперь возвращают пустой прямоугольник из Element.getBoundingClientRect () и пустой список из Element.getClientRects ().
    • Медиа, WebRTC и Web Audio:
      • Событие error на объекте RTCDataChannel, теперь может содержать sctp-failure в свойстве error.errorDetail (свидетельствует о том, что транспорт закрыт из-за ошибки). Кроме того, в выделенных воркерах теперь доступны RTCError и RTCErrorEvent.
      • Свойство RTCPeerConnection.sctp теперь возвращает RTCSctpTransport, когда того требует спецификация, в том числе в состоянии have-remote-offer (до этого возвращало null). Транспорт теперь также переходит в состояния connected и closed, а его свойства maxChannels и maxMessageSize корректно заполняются.
      • Появилась поддержка двухбайтовых расширений заголовков RTP (расширения с id от 15 и выше могут успешно согласовываться, а не вызывать ошибку OperationError).
      • Свойство selectedCandidatePairChanges теперь передаётся в RTCTransportStats.
      • Статистика transport, возвращаемая методом RTCPeerConnection.getStats (), теперь корректна до начала согласования, иными словами, после вызова setLocalDescription (), но до того, как было задано удалённое описание. Свойство dtlsRole теперь имеет значение unknown, пока рукопожатие DTLS не выберет роль (до этого оно не сообщалось вовсе), а свойство iceState теперь изначально имеет значение new вместо checking.
  • WebAssembly:

  • Инструменты разработчика:
    • Кнопки эмуляции медиазапросов на вкладке правил вынесены на отдельную панель, открывающуюся нажатием @. Туда же добавлена кнопка эмуляции медиазапроса prefers-reduced-motion.
    • Встроенный просмотрщик JSON научился открывать документы в формате JSON Lines (NDJSON), если они передаются с заголовками application/jsonlines, application/x-ndjson или text/jsonl либо имеют расширение .jsonl. Каждая строка разбирается отдельно и отображается как сворачиваемый блок с указанием номера строки, а ошибка синтаксиса в одной из строк выводится на месте и не мешает обработке остальной части документа.
    • В отладчик добавлено сочетание клавиш Ctrl+Alt+B, отключающее все точки останова.
    • Неперехваченные исключения, не являющиеся объектами Error, теперь выводят имена своих свойств в консоли вместо простого «Object».
    • Куки из приватных окон, контейнеров и других изолированных контекстов больше не отображаются вместе с собственными куками проверяемой страницы.

>>> Примечания к выпуску для разработчиков

>>> Все исправленные в этом выпуске ошибки

>>> Подробности

Linux.org.ru прочитано 1375 раз