Firefox 58
- Опубликовано:
Firefox 58 — первый выпуск свободного веб-браузера в 2018 году.
HTML, CSS
- Прекращена поддержка использования HTML-элементов
A
внутри элементовMAP
для создания областей-ссылок. Вместо этого следует использовать предназначенные для этого элементыAREA
. - Включена по умолчанию поддержка CSS-свойства
font-display
, позволяющего управлять схемой отрисовки текста внедрёнными нестандартными шрифтами. - Ряд нестандартных псевдоклассов и ключевых слов для Media Queries с префиксом
-moz-
теперь недоступны на веб-страницах, а доступны только в расширениях.
JavaScript, DOM
- Поддержка программного интерфейса (API) PerformanceNavigationTiming для измерения скорости загрузки страниц. При необходимости можно отключить путём установки параметра
dom.enable_performance_navigation_timing
в значениеfalse
на странице скрытых настроек, доступной по служебному URL-адресуabout:config
. - Поддержка метода
finally()
объектовPromise
, позволяющего назначить один и тот же обработчик для ситуаций успешного разрешенияPromise
-объекта (then()
) и его отклонения (catch()
). - Поддержка объекта
Intl.PluralRules
, призванного облегчить генерацию строкового представления количества и порядковых номеров в зависимости от языка. - Поддержка метода
formatToParts()
объектовIntl.NumberFormat
, возвращающая список лексем числа, позволяя обрабатывать или оформлять их по отдельности. - Включён (в предварительных сборках Firefox Nightly и Developer Edition) по умолчанию API виртуальной реальности WebVR для операционной системы macOS.
WebExtensions API
- Исправлена ошибка, из-за которой чтение адреса начальной («стартовой») страницы браузера средствами расширений не работало, если начальная страница не была переопределена пользователем.
browsingData.localStorage
теперь поддерживает удаление данныхlocalStorage
для конкретного домена. Из авторского расширения UsableHomeButton удалены временные решения для обхода ошибок Firefox 57, ставшие ненужными благодаря этому и предыдущему исправлениям Firefox 58.- Поддержка метода
browser.tabs.discard()
для выгрузки заданной фоновой вкладки из памяти. - Режим чтения:
- Поддержка свойств
isArticle
,isInReaderMode
объектаTab
, а также методаtoggleReaderMode()
для включения и выключения режима чтения. СвойствоisArticle
позволяет определить, можно ли страницу отобразить в режиме чтения, свойствоisInReaderMode
— отображается ли страница уже в режиме чтения. - Поддержка параметра
openInReaderMode
методаbrowser.tabs.create()
для открытия новой вкладки в режиме чтения. - Обработчики
browser.tabs.onUpdated
теперь вызываются при включении или выключении режима чтения.
- Поддержка свойств
- В рамках
webRequest.onBeforeRequest API
в объектах, содержащих данные о запрошенном ресурсе, теперь поддерживается параметрframeAncestors
.webRequest.onBeforeRequest
API служит для перенаправления или предотвращения загрузки определённых ресурсов. ПараметрframeAncestors
содержит список объектов с информацией (URL-адрес и идентификатор фрейма) обо всех документах в иерархии фреймов. Если запрошенный документ является документом верхнего уровня, список пуст. - Поддержка pkcs11 API для работы с криптографическими устройствами с открытым ключом.
Быстродействие
- Новая схема на основе ограниченного, автоматически растущего бюджета времени для ограничения частоты срабатывания таймеров в фоновых вкладках.
- Реализовано кэширование байт-кода JavaScript, благодаря чему загрузка популярных сайтов ускорилась на 5-12%.
- WebAssembly-скрипты теперь компилируются в 10-15 раз быстрее благодаря новому двухуровневому компилятору.
- Отрисовка графики вынесена из основного потока исполнения (Off-Main-Thread Painting), что дало выигрыш в быстродействии браузерных игр до 30%.
Прочее
- Поддержка директивы
worker-src
в заголовках ответа сервераContent-Security-Policy
. Директива позволяет задать правила для URL-адресов скриптов, исполнение которых разрешено в качестве Worker-скриптов.
См. также официальные примечания к выпуску и информацию для разработчиков.