Состоялся релиз web-браузера Firefox 87. Кроме того, сформировано обновление ветки с длительным сроком поддержки 78.9.0. На стадию бета-тестирования переведена ветка Firefox 88, релиз которой намечен на 20 апреля.
- При использовании функции поиска и активации режима выделения всех найденных совпадений (Highlight All) на полосе прокрутки теперь отображаются метки для индикации позиции найденных ключей.
- Удалены редко используемые элементы из меню Library. В меню Library оставлены только ссылки на закладки, историю и загрузки (удалены синхронизированные вкладки, недавние закладки и список Pocket). На скриншоте ниже слева состояние как было, а справа – как стало в Firefox 87:
- Значительно упрощено меню Web Developer – отдельные ссылки на инструменты (Inspector, Web Console, Debugger, Network Style Error, Performance, Storage Inspector, Accessibility и Application) заменены на общий пункт Web Developer Tools.
- Упрощено меню Help, из которого удалены ссылки на страницы поддержки, клавиатурные комбинации и обзорный тур, которые теперь доступны на общей странице Get Help. Убрана кнопка для импорта из другого браузера.
- Добавлен механизм SmartBlock, решающий проблемы на сайтах, возникающие из-за блокировки внешних скриптов в режиме приватного просмотра или при активации усиленной блокировки нежелательного контента (strict). SmartBlock автоматически заменяет применяемые для отслеживания скрипты заглушками, обеспечивающими корректную загрузку сайта.
- Отключён по умолчанию обработчик клавиши Backspace вне контекста форм ввода. Удаление обработчика объясняется тем, что клавиша Backspace активно используется при наборе текста в формах, но вне фокуса на форме ввода обрабатывается как переход к прошлой странице, что может привести к потере набранного текста из-за непреднамеренного перемещения на другую страницу. Для возвращения старого поведения в about:config добавлена опция browser.backspace_action.
- Изменено формирование HTTP-заголовка Referer. По умолчанию выставлена политика “strict-origin-when-cross-origin”, подразумевающая вырезание путей и параметров при отправке запроса на другие хосты при обращении по HTTPS, удаление Referer при переходе с HTTPS на HTTP и передачу полного Referer для внутренних переходов в рамках одного сайта. Изменение будет действовать для обычных навигационных запросов (переходов по ссылкам), автоматических редиректов и при загрузке внешних ресурсов (изображений, СSS, скриптов). Например, при переходе по ссылке на другой сайт по HTTPS вместо “Referer: https://www.example.com/путь/?аргументы” теперь передаётся “Referer: https://www.example.com/”.
- Для небольшого процента пользователей включён режим Fission с реализацией модернизированной многопроцессной архитектуры для более строгой изоляции страниц. При активации Fission страницы разных сайтов всегда размещаются в памяти разных процессов, в каждом из которых применяется своя изолированная песочница (sandbox). При этом разделение по процессам осуществляется не по вкладкам, а по доменам, что позволяет дополнительно изолировать содержимое внешних скриптов и iframe-блоков. Включить режим Fission вручную можно на странице about:preferences#experimental или через переменную “fission.autostart=true” в about:config. Проверить включение можно на странице about:support.
- В соответствии с изменениями, внесёнными в спецификации, прекращено попадание элемента в проверки с использованием псевдо-классов “:link”, “:visited” и “:any-link”.
- Удалены нестандартные значения CSS-параметра caption-side – left, right, top-outside и bottom-outside (для возвращения предусмотрена настройка layout.css.caption-side-non-standard.enabled).
- Включены по умолчанию событие “beforeinput” и метод getTargetRanges(), при помощи которых web-приложения могут переопределить поведение при редактировании текста на стадии до изменения браузером дерева DOM и получить больший контроль за событиями ввода. Событие “beforeinput” отправляется в обработчик или другого элемента с установленным атрибутом “contenteditable” до того как значение элемента будет изменено. Метод getTargetRanges(), предоставляемый объектом inputEvent, возвращает массив со значениями, позволяющими судить какая часть DOM будет изменена, если событие ввода не будет отменено.
- Для web-разработчиков в режиме инспектирования страниц реализована возможность симулировать медиазапросы “prefers-color-scheme” для тестирования тёмного и светлого оформления без переключения тем оформления в операционной системе.
- В режим инспектирования добавлено возможность активации псевдо-класса “:target” для выбранного элемента по аналогии с ранее поддерживаемыми псевдо-классами “:hover”, “:active”, “:focus”, “:focus-within”, “:focus-visible” и “:visited”.
- В режиме инспектирования CSS улучшена обработка неактивных CSS-правил. В частности, свойство table-layout теперь становится неактивным для элементов, не являющихся таблицам, а свойства scroll-padding помечается неактивным для элементов, не поддерживающих прокрутку. Убрана ошибочная пометка свойств text-overflow для некоторых значений.
Кроме новшеств и исправления ошибок в Firefox 87 устранено 12 уязвимостей, из которых 7 помечены как опасные. 6 уязвимостей (собраны под CVE-2021-23988 и CVE-2021-23987) вызваны проблемами работы с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Потенциально данные проблемы способны привести к выполнению кода злоумышленника при открытии специально оформленных страниц.
Release.
Ссылка here.