Релиз Firefox 75

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

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

  • Для Linux началось формирование официальных сборок в формате Flatpak.
  • Обновлено оформление адресной строки. При клике на адресной строке теперь без необходимости начала набора сразу отображается выпадающий список наиболее часто используемых ссылок. Подсказка с результатами поиска оптимизирована для более качественной работы на небольших экранах. В области контекстных рекомендаций обеспечен вывод подсказок по решению типовых проблем, возникающих при работе с браузером.

    Прекращено отображение протокола https:// и поддомена «www.» в выпадающем блоке ссылок, отображаемом в процессе набора в адресной строке (например, отличающиеся по содержимому https://opennet.ru и https://www.opennet.ru станут неотличимы). Протокол http:// показывается в результатах поиска без изменений.

    
Релиз Firefox 75

  • Для Linux изменено поведение при клике в адресной строке (сделано как в Windows и macOS) — одиночный клик выделяет всё содержимое без помещения в буфер обмена, двойной клик выделяет одно слово, тройной клик выделяет всё содержимое и помещает в буфер обмена.
  • Реализована возможность не загружать изображения, находящиеся вне видимой области, до тех пор, пока пользователь не прокрутит содержимое страницы в место, непосредственно предшествующее изображению. Для управления отложенной загрузкой страниц в тег «img» добавлен атрибут «loading«, который может принимать значение «lazy». Предполагается, что отложенная загрузка позволит сократить потребление памяти, снизить трафик и увеличить скорость начального открытия страниц. Для управления отложенной загрузкой в about:config добавлен параметр «dom.image-lazy-loading.enabled».
  • Реализована полноценная поддержка WebGL в окружениях, использующих протокол Wayland. До сих пор уровень производительности WebGL в Linux-сборках Firefox оставлял желать лучшего из-за отсутствия поддержки аппаратного ускорения, вследствие проблем с gfx-драйверами для X11 и применения разных стандартов. При использовании Wayland ситуация изменилась благодаря появлению нового бэкенда, использующего механизм DMABUF. Кроме аппаратного ускорения WebGL бэкенд также позволил реализовать поддержку ускорения декодирования видео H.264 с использованием VA-API (Video Acceleration API) и FFmpegDataDecoder (поддержка VP9 и других форматов кодирования видео ожидается в Firefox 76). Для управления включением ускорения в about:config предложены параметры «widget.wayland-dmabuf-webgl.enabled» и «widget.wayland-dmabuf-vaapi.enabled».
  • Для пользователей из Великобритании включено отображение оплаченных спонсорами блоков на стартовой странице в разделе рекомендованного сервисом Pocket контента. Блоки явно помечены как реклама и отключаемы в настройках. Ранее реклама показывалась только пользователям из США.
  • Реализован режим очистки старых Cookie и данных сайта при обращении к сайтам с кодом отслеживания перемещений, с которыми пользователь интерактивно не взаимодействовал. Режим нацелен на борьбу с отслеживанием через редиректы.
  • Началась реализация модальных диалогов, привязанных к отдельным вкладкам и не блокирующих весь интерфейс.

    
Релиз Firefox 75

  • Добавлена возможность установки и открытия сайтов в форме приложений (Apps), позволяющих организовать работу с сайтом как с обычной настольной программой. Для включения в about:config необходимо добавить настройку «browser.ssb.enabled=true», после чего в контекстном меню действий со страницей (многоточие в адресной строке) появится пункт «Install Website as App», позволяющий разместить на рабочем столе или в меню приложений ярлык для обособленного открытия текущего сайта. Разработка продолжает развитие концепции «Site Specific Browser» (SSB), подразумевающей открытие сайта в отдельном окне без меню, адресной строки и прочих элементов интерфейса браузера. В текущем окне открываются только ссылки на страницы активного сайта, а переход по внешним ссылкам приводит к созданию отдельного окна с обычным браузером.
    
Релиз Firefox 75

  • Расширена реализация режима «nosniff«, активируемого через HTTP-заголовок «X-Content-Type-Options», который теперь отключает и логику автоматичкеского определения MIME-типов для HTML-документов, а не только для JavaScript и CSS. Режим помогает защититься от атак, связанных с манипуляцией MIME-типами. Браузер по умолчанию анализирует тип обрабатываемого контента и обрабатывает его в зависимости от определённого типа. Например, если в файл «.jpg» сохранить HTML-код, то при открытии данный файл будет обработан как HTML, а не как картинка. Атакующий может использовать форму загрузки изображений для jpg-файла, включающего html с JavaScript-кодом, после чего опубликовать ссылку на этот файл, при прямом открытии которого JavaScript-код будет выполнен в контексте сайта на который произведена загрузка (можно определить cookie и прочие привязанные к сайту данные пользователя, открывшего ссылку).
  • Обеспечено локальное кэширование всех заслуживающих доверия PKI-сертификатов удостоверяющих центров, известных Mozilla, что позволило улучшить совместимость с некорректно настроенными web-серверами.
  • На страницах открытых по HTTP без шифрования запрещено использование API Web Crypto.
  • Для Windows реализован режим прямого композитинга (Direct Composition), позволяющий повысить производительность и приблизить внедрение системы композитинга WebRender, написанной на языке Rust и выносящей на сторону GPU операции отрисовки содержимого страницы.
  • Для macOS реализована экспериментальная возможность использования клиентских сертификатов из общего хранилища сертификатов операционной системы (для включения в about:config следует активировать опцию security.osclientcerts.autoload). Начиная с Firefox 72 указанная возможность была доступна только для Windows.
  • Следом за Linux в сборках для macOS задействован механизм изоляции RLBox, нацеленный на блокирование эксплуатации уязвимостей в сторонних библиотеках функций. На данном этапе изоляция включена только для библиотеки Graphite, отвечающей за отрисовку шрифтов. RLBox выполняет компиляцию C/C++ кода изолируемой библиотеки в низкоуровневый промежуточный код WebAssembly, который затем оформляется в виде WebAssembly-модуля, полномочия которого задаются в привязке только к этому модулю. Собранный модуль работает в отдельной области памяти и не имеет доступа к остальному адресному пространству. В случае эксплуатации уязвимости в библиотеке атакующий будет ограничен и не сможет обратиться к областям памяти основного процесса или передать управление вне изолированного окружения.
  • Атрибут «type» в элементе <style> теперь может принимать только значение «text/css».
  • В CSS реализованы функции min(), max() и clamp().
  • Для CSS-свойства text-decoration-skip-ink реализована поддержка значения «all», которое предписывает обязательный разрыв линии подчёркивания и зачёркивания при пересечении с текстовыми глифами (ранее применяемое значение «auto» адаптивно формировало разрывы и не исключало касаний, при значении all касания с глифом полностью запрещены).
  • В JavaScript включена поддержка публичных статических полей для экземпляров классов JavaScript, которые позволяют указывать заранее определённые свойства, инициализируемые вне конструктора.

    class ClassWithStaticField {
    static staticField = ‘static field’
    }

  • Добавлена поддержка класса Intl.Locale, предоставляющего методы для разбора и обработки выставляемых локалью параметров языка, региона и начертания, а также для чтения и записи тегов расширений Unicode и сохранения пользовательских настроек локали в сериализированном формате;
  • Реализация свойства Function.caller приведена в соответствие с последним черновым вариантом новой спецификации ECMAScript (вместо TypeError теперь выдаётся null, если вызов осуществлён из функции с атрибутом strict, async или generator).
  • В HTMLFormElement добавлен метод requestSubmit(), который инициирует программную отправку данных формы по аналогии с кликом на кнопку отправки данных. Функция может применяться при разработке собственных кнопок отправки формы, для которых вызова form.submit() недостаточно из-за того, что он не приводит к интерактивной проверке параметров, генерации события ‘submit’ и передаче данных, привязанных к кнопке отправки.
  • Событие submit теперь реализуется объектом с тимпом SubmitEvent, а не Event. SubmitEvent включает новые свойства, позволяющие узнать элемент, вызов которого привёл к отправке формы. Напирмер, SubmitEvent даёт возможность использовать один обработчик, общий для различных кнопок и ссылок, приводящих к отправке формы.
  • Реализована корректная передача события о клике при вызове метода click() для отсоединённых элементов (не являющихся частью дерева DOM).
  • В API Web Animations добавлена возможность привязки анимации к начальному или завершающему ключевому кадру и браузер сам вычислит финальное или начальное состояние (достаточно указать только первый или последний ключевой кадр). Включены по умолчанию Animation.timeline getter, Document.timeline, DocumentTimeline, AnimationTimeline, Document.getAnimations() и Element.getAnimations().
  • Добавлена возможность активации интерфейса профилирования страниц без установки отдельного дополнения, через нажатие кнопки «Enable Profiler Menu Button» на сайте profiler.firefox.com. Добавлен режим анализа производительности только активной вкладки.
  • В web-консоли появился режим мгновенного вычисления выражений, позволяющий разработчикам быстрее выявлять и исправлять ошибки при вводе сложных выражений за счёт вывода предварительного результата по мере набора.
  • В инструменте для измерения областей страницы (Measuring Tool) добавлена возможность изменения размера прямоугольной рамки (ранее, если отпустить клавишу мыши, рамку невозможно было изменить и в случае неточной наводки приходилось измерять с нуля).
  • В интерфейсе инспектирования страниц добавлена поддержка поиска элементов при помощи выражений XPath в дополнение к ранее доступному поиску при помощи селекторов CSS.
  • Добавлена возможность фильтрации сообщений WebSocket при помощи регулярных выражений (ранее поддерживались только текстовые маски).
  • В JavaScript-отладчике добавлена поддержка привязки точек останова к обработчикам событий WebSocket.
  • Проведена чистка интерфейса для анализа сетевой активности. Оптимизирована отрисовка таблиц в условиях одновременной обработки большого числа соединений. Сделаны более контрастными разделители столбцов и кнопки для применения фильтров. В панели блокирования сетевых запросов реализована возможность использования символа «*» в масках URL (позволяет оценить поведение сайта в условиях сбоя загрузки ресурсов).

    
Релиз Firefox 75

Кроме новшеств и исправления ошибок в Firefox 75 устранена серия уязвимостей, из которых несколько помечены как критические, т.е. могут привести к выполнению кода злоумышленника при открытии специально оформленных страниц. В настоящее время информация с подробностями об исправленных проблемах безопасности недоступна, ожидается, что перечень уязвимостей будет опубликован в течение нескольких часов.

Источник: opennet.ru