19.09.2020

Релиз Firefox 72


Состоялся релиз web-браузера Firefox 72, а также мобильной версии Firefox 68.4 для платформы Android. Кроме того, сформировано обновление ветки с длительным сроком поддержки 68.4.0. В ближайшее время на стадию бета-тестирования перейдёт ветка Firefox 73, релиз которой намечен на 11 февраля (проект перешёл на 4-недельный цикл разработки).

Основные новшества:

  • В применяемом по умолчанию стандартном режиме блокировки нежелательного контента включена защита от отслеживания пользователей с помощью методов скрытой идентификации («browser fingerprinting»), которая осуществляется по дополнительным категориям в списке Disconnect.me, включающим хосты, уличённые в использовании скриптов для скрытой идентификации. Под скрытой идентификацией подразумевается хранение идентификаторов в областях, не предназначенных для постоянного хранения информации («Supercookies»), а также генерация идентификаторов на основе косвенных данных, таких как разрешение экрана, список поддерживаемых MIME-типов, специфичные параметры в заголовках (HTTP/2 и HTTPS), анализ установленных плагинов и шрифтов, доступность определённых Web API, специфичные для видеокарт особенности отрисовки при помощи WebGL и Canvas, манипуляции с CSS, анализ особенностей работы с мышью и клавиатурой.
  • Активированы методы борьбы с назойливыми запросами на предоставление сайту дополнительных полномочий (Notification.requestPermission(), PushManager.subscribe() и MediaDevices.getDisplayMedia()). Запросы подтверждения полномочий теперь не будут прерывать работу с браузером, а лишь станут приводить к выводу индикатора в адресной строке после того, как зафиксировано взаимодействие пользователя со страницей (клик мышью или нажатие клавиш). Многие сайты злоупотребляют предоставляемой в браузерах возможностью запроса полномочий, главным образом путём периодического вывода запросов на получение push-уведомлений. Анализ телеметрии показал, что 97% подобных запросов отклоняются, в том числе в 19% случаях пользователь сразу закрывает страницу не нажимая кнопку согласия или отклонения.
  • Добавлена экспериментальная поддержка протокола HTTP/3 (для активации в about:config нужно установить опцию «network.http.http3.enabled»). Поддержка HTTP/3 в Firefox основана на neqo, написанной на языке Rust реализации клиента и сервера протокола QUIC (HTTP/3 стандартизирует использование протокола QUIC в качестве транспорта для HTTP/2).
  • В соответствии с требованиями вступившего в силу закона CCPA (California Consumer Privacy Act) добавлена возможность удаления данных телеметрии с серверов Mozilla. Удаление данных производится в случае отказа от сбора телеметрии в секции «about:preferences#privacy» («Firefox Data Collection and Use»). При снятии флажка «Allow Firefox to send technical and interaction data to Mozilla», управляющего отправкой телеметрии, Mozilla обязуется в течение 30 дней удалить все данные, собранные за время до отказа передачи телеметрии. Из данных, которые оседают на серверах Mozilla в процессе сбора телеметрии отмечается информация о производительности, безопасности Firefox и общих параметрах, таких как число открытых вкладок и длительность сеанса (сведения об открываемых сайтах и поисковых запросах не передаются). Полные сведения о собираемых данных можно посмотреть на странице «about:telemetry».
  • Для Linux и macOS добавлена возможность просмотра видео в режиме «картинка в картинке» (Picture-in-Picture), позволяющем отсоединить видео в форме плавающего окна, которое остаётся на виду в процессе навигации в браузере. Для просмотра в данном режиме необходимо нажать на всплывающую подсказку или в контекстном меню, отображаемым при клике на видео правой кнопкой мыши, выбрать «Picture in picture» (в YouTube, который подставляет свой обработчик контекстного меню, следует два раза кликнуть правой кнопкой мыши или кликнуть с нажатой клавишей Shift).
  • При отображении полосы прокрутки задействован цвета фона текущей страницы.
  • Удалена возможность привязки открытых ключей (PKP, Public Key Pinning), позволяющая при помощи HTTP-заголовка Public-Key-Pins явно определить сертификаты каких удостоверяющих центров допустимо использовать для заданного сайта. В качестве причины называется низкая востребованность данной функции, риск проблем с совместимостью (поддержка PKP прекращена в Chrome) и возможность заблокировать собственный сайт из-за привязки не тех ключей или утери ключей (например, случайное удаление или компрометация в результате взлома).
  • В состав приняты патчи, позволяющие в OpenBSD задействовать системные вызовы unveil() и pledge() для дополнительной изоляции файловой системы и процессов.
  • Удалена поддержка блокировки изображений с отдельных доменов. В качестве причины удаления указывается невостребованность функции среди пользователей и неудобный интерфейс для блокировки.
  • В сборках для Windows реализована экспериментальная возможность использования клиентских сертификатов из общего хранилища сертификатов операционной системы (для включения в about:config следует активировать опцию security.osclientcerts.autoload).

  • Активирована по умолчанию поддержка CSS Shadow Parts, включая атрибут «part» и псевдоэлемент «::part«, позволяющие выборочно отображать заданные элементы из Shadow DOM.
         ‹custom-element›       ‹p part="example"›A paragraph‹/p›     ‹/custom-element›    ... в CSS для выбора элементов в привязке к атрибуту part:       custom-element::part(example) {       border: solid 1px black;       border-radius: 5px;       padding: 5px;     }    
  • Добавлена поддержка спецификации CSS Motion Path, позволяющей определять траекторию движения объектов анимации при помощи CSS без использования кода на JavaScript и без блокирования процесса отрисовки и ввода во время показа анимации. Для управления анимацией представлены CSS-свойства offset, offset-path, offset-anchor, offset-distance и offset-rotate.
  • Включены по умолчанию отдельные CSS-свойства трансформации scale, rotate и translate, не привязанные к свойству transform (т.е. в CSS теперь можно указать «scale: 2;» вместо «transform: scale(2);»).
  • В JavaScript реализован логический оператор объединения «??«, который возвращает правый операнд, если левый операнд имеет значение NULL или undefined, и наоборот. Например, «const foo = bar ?? ‘default string'» если bar равен null вернёт стоку или значение bar в противном случае, в том числе когда bar равен 0 и ‘ ‘, в отличие от оператора «||».
  • Добавлен API FormDataEvent и событие FormData, которые дают возможность использовать обработчики на JavaScript для добавления данных в форму на этапе её отправки без необходимости сохранять данные в скрытых элементах input.
  • API Geolocation обновлён для соответствия новой спецификации, например, переименованы Coordinates в GeolocationCoordinates, Position в GeolocationPosition и PositionError в GeolocationPositionError.

  • В отладчик JavaScript добавлена поддержка условных точек останова (watchpoint), срабатывающих при изменении или чтении определённых свойств объектов.
  • Ускорен запуск отладчика JavaScript в условиях открытия очень большого числа вкладок (в первую очередь приоритет теперь отдаётся видимым вкладкам).
  • В Responsive Design Mode реализована симуляция различных значений meta viewport. В режиме инспектирования страниц добавлен симулятор значений «prefers-color-scheme».
  • В web-консоли в многострочном режиме интерпретации JavaScript добавлена поддержка сохранения и открытия файлов при помощи комбинаций Ctrl + O и Ctrl + S.
  • Добавлена настройка javascript.options.asyncstack для визуального разделения асинхронных сообщений в web-консоли. При активации настройки для console.trace() и console.error() выводится полный стек вызова асинхронных операций, позволяющий разобраться в планировании запуска таймеров, событий, promise, генераторов и т.п.
  • В режиме инспектирования WebSocket реализован разбор и наглядное отображение метаданных формата SignalR, применяемого в сообщениях ASP.NET Core, Также добавлены счётчики, показывающие суммарный размер отданных и загруженных данных.
  • В инструменте для мониторинга сетевой активности во вкладке Timings раздельно отображены данные о времени помещения в очередь для загрузки, начале загрузки и завершении загрузки каждого ресурса.
  • Из инструментов для web-разработчиков исключено окружение Scratchpad, предназначенное для экспериментов в кодом JavaScript (на смену Scratchpad в прошлом выпуске пришёл многострочный режим работы web-консоли).

Кроме новшеств и исправления ошибок в Firefox 72 устранено 20 уязвимостей, из которых 11 (собраны под CVE-2019-17025 и CVE-2019-17024) помечены как потенциально способные привести к выполнению кода злоумышленника при открытии специально оформленных страниц. Напомним, что проблемы с памятью, такие как переполнения буферов и обращение к уже освобождённым областям памяти, с недавних пор помечаются как опасные, но не критические. Особого внимания также заслуживает проблема CVE-2019-17017 в коде XPCVariant.cpp, которая также потенциально может привести к исполнению кода.

Источник: https://www.opennet.ru/opennews/art.shtml?num=52144

Добавить комментарий