Состоялся релиз web-браузера Firefox 63, а также мобильной версии Firefox 63 для платформы Android. Кроме того, сформировано обновление ветки с длительным сроком поддержки 60.3.0. В ближайшее время на стадию бета-тестирования перейдёт ветка Firefox 64, релиз которой намечен на 11 декабря.
Основные новшества:
- Предложен набор настроек для управления блокированием контента. Пользователь может включить блокировку любых сторонних Cookie и скриптов, применяемых для отслеживания перемещений (блокировка по базе disconnect.me). Блокировщик пока предлагается опционально, но запланирован для включения по умолчанию в Firеfox 65.
Для каждого сайта в адресной строке показывается специальный значок, отображающий статус блокировки скриптов и Cookie.
Предоставляется возможность добавления исключений для выбранных сайтов, которые не могут корректно работать при блокировке скриптов отслеживания. - На платформе Linux в отдельный процесс вынесено выполнение дополнений на базе WebExtensions (для Windows и macOS отдельный процесс для WebExtensions уже был задействован в Firefox 56 и Firefox 61). Выполнение в отдельном процессе позволяет изолировать дополнения и снизить влияние ошибок в дополнениях на стабильность работы браузера. Напомним, что ранее в отдельные процессы Firefox уже вынесены обработчики контента, а также код для обработки графики и доступа к локальным файлам;
- Добавлена экспериментальная поддержка видеокодека AV1. AV1 позиционируется как общедоступный и не требующий оплаты отчислений свободный формат кодирования видео, который заметно опережает H.264 и VP9 по уровню сжатия. По умолчанию кодек отключен (в about:config следует установить опцию «media.av1.enabled = true»);
- Для пользователей из США на стартовую страницу добавлены специальные ярлыки для Google и Amazon и связанные с ними ключи быстрого перехода «@google» и «@amazon». При клике на новые ярлыки вместо перехода на сайт осуществляется подстановка ключа с предложением ввести поисковый запрос из адресной строки. Как и обычные кнопки быстрого перехода со стартовой страницы поисковые ярлыки могут быть удалены или перемещены;
- При попытке закрытия основного окна браузера, в котором остаётся более одной вкладки, или при выходе через меню при наличии нескольких открытых окон, теперь выводится предупреждение с диалогом для подтверждения выхода;
- Обзор вкладок, отображаемый по «Ctrl+Tab», теперь показывает не значки, а эскизы окон всех вкладок и прокручивает вкладки в порядке последнего обращения пользователя. Для возврата старого поведения в настройки добавлена опция «Ctrl+Tab cycles through tabs in recently used order»;
- Firefox теперь определяет активность в операционной системе настроек для людей с ограниченными возможностями (Accessibility) и убирает лишнюю анимацию;
- Удалена функция открытия отдельных закладок в боковой панели («Open in Sidebar» в «Library»);
- Из настроек about:preferences удалена опция для отключения проверки наличия обновлений («Never check for updates»). Оставлены только опции для автоматической установки обновлений и установки после подтверждения пользователем;
- Добавлена поддержка спецификации Shadow DOM, предоставляющей средства для комбинирования нескольких деревьев DOM в одну иерархию. API Shadow DOM позволяет решить проблемы с влиянием импортируемых сторонних стилей на другие элементы, давая возможность отделить стиль элемента и связанную с ним подветку DOM от основного документа;
- Обеспечена поддержка спецификации Custom Elements, позволяющей добавлять собственные HTML-элементы, расширяющие функциональность существующих HTML-тегов (например, для тега button можно добавить анимацию);
- В HTML-тег «img» добавлен атрибут «decoding», при помощи которого можно определить метод декодирования изображения (sync, async, auto);
- Добавлен метод Object.fromEntries(), преобразующий список пар в формате ключ/значение в объект;
- Добавлено свойство Symbol.prototype.description, возвращающее описание символа. Например, «Symbol.iterator.description» вернёт «Symbol.iterator»;
- CSS-свойства offset-* переименованы в inset-block-start, inset-block-end, inset-inline-start и inset-inline-end;
- В CSS добавлен псевдокласс «:defined», представляющий любой определённый элемент;
- Добавлен API Media Capabilities, представляющий сведения о возможностях кодирования и декодирования для заданного устройства, поддержке форматов, а также статистике о производительности и эффективности потребления энергии во время воспроизведения звука или видео;
- Добавлен API Async Clipboard для асинхронной работы с буфером обмена, позволяющий читать и записывать данные в буфер обмена с использованием механизма Promise. Например, для чтения из буфера обмена можно указать «const data = await navigator.clipboard.readText()», а для записи ‘await
navigator.clipboard.writeText(«Hello, clipboard.»)’; - Добавлен интерфейс SecurityPolicyViolationEvent, позволяющий генерировать события при нарушении Content-Security-Policy;
- Включена по умолчанию порция свойств и интерфейсов Web Animations API: ready, finished, effect, KeyframeEffect и AnimationEffect;
- Реализован метод Element.toggleAttribute(), позволяющий инвертировать булевый атрибут — удалить, если он установлен, или добавить, если он отсутствует;
- Добавлено свойство Window.event, возвращающий установленный сайтом обработчик событий. Удалены методы Window.back() и Window.forward(), которые не поддерживаются в других браузерах;
- Микрофон теперь одновременно может быть доступен в разных вкладках;
- Изменено стилевое оформление меню в инструментах для разработчиков/
- В систему инспектирования добавлен встроенный редактор шрифтов, позволяющий посмотреть используемые на странице шрифты и управлять параметрами как обычных, так и изменчивых шрифтов на странице;
- В режиме инспектирования сети (Network Monitor) добавлена пиктограмма (перечёркнутый щит) для выделения из общего потока запросов URL известных систем отслеживания перемещений;
- Включён по умолчанию режим инспектирования средств для людей с ограниченными возможностями (Accessibility inspector), позволяющий оценить какие из Accessibility API используются на странице и какую информацию удаётся извлечь;
- Прекращён показ системных дополнений на странице about:debugging (для показа в about:config следует установить опцию devtools.aboutdebugging.showSystemAddons);
- Улучшена поддержка платформы Windows: Для формирования сборок для платформы Windows задействован компилятор Clang, что положительно сказалось на производительности. Тема оформления сборок для Windows теперь адаптируется к тёмным и светлым режимам интерфейса Windows 10;
- Увеличена производительность сборки для macOS: Улучена отзывчивость интерфейса и ускорено переключение между вкладками. Для WebGL добавлена возможность выбора GPU (атрибут powerPreference), позволяющая на системах с несколькими GPU в приложениях не требующих особо высокой графической производительности задействовать GPU, потребляющий меньше энергии;
- В версии для Android добавлена возможность просмотра видео поверх контента в режиме «картинка в картинке» (Picture-In-Picture), добавлена поддержка каналов уведомлений и задействованы дополнительные оптимизации производительности и безопасности на платформе Android 8.0 «Oreo».
Кроме новшеств и исправления ошибок в Firefox 63 устранена серия уязвимостей, из которых несколько помечены как критические, т.е. могут привести к выполнению кода злоумышленника при открытии специально оформленных страниц. В настоящее время информация с подробностями об исправленных проблемах безопасности недоступна, ожидается, что перечень уязвимостей будет опубликован в течение нескольких часов.