Firefox 60
- Опубликовано:
В День Победы — юбилейный Firefox 60.
JavaScript
- Включена по умолчанию поддержка стандартизированного в ECMAScript 2015 (ECMAScript 6, ES6) механизма разбиения кода на независимые модули. На уровне HTML функциональность реализуется с помощью атрибутов
type="module"
иnomodule
элементаSCRIPT
, а в JavaScript — новыми директивамиimport
иexport
. Возможность может быть полезна как минимум в дополнениях (расширениях) для браузеров, где, в отличие от сайтов, нет накладных расходов в виде HTTP-запроса при загрузке каждого отдельного файла и при этом не требуется ждать поддержки во всех распространённых браузерах. - Возвращена поддержка метода
Array.prototype.values()
. Метод возвращает итератор, позволяющий перебирать значения элементов массива с использованием циклаfor…of
или с помощью методаnext()
итератора. Ранее поддержка уже была реализована в Firefox 48, но в Firefox 49.0.2 (по другим данным — 52) её отключили из-за несовместимости с некоторыми устаревшими веб-приложениями, в том числе Microsoft Dynamics CRM 2011 и Outlook. Но теперь метод поддерживают другие браузеры — Safari, Edge и Chrome 66, поэтому возможность восстановили и в Firefox. - Включена по умолчанию в версии Firefox для операционной системы macOS поддержка WebVR API — программного интерфейса для работы с устройствами виртуальной реальности типа Oculus Rift и HTC Vive. В версии для Windows поддержку включили в Firefox 55.
- Поддержка программного интерфейса (API) Web Authentication, позволяющего использовать аутентификацию на сайтах с помощью USB-ключей типа YubiKey.
- Нажатие клавиши Enter в режиме визуального редактирования (WYSIWYG), включаемого DOM-свойством
designMode
документа или атрибутомcontenteditable
элемента, теперь по умолчанию заключает фрагмент текста в элементDIV
вместо вставкиBR
. Это соответствует поведению других браузеров — Chrome, Opera, Edge и Safari. - При значении
nosniff
заголовка ответа сервераX-Content-Type-Options
Firefox теперь следует спецификации MIME Sniffing в отношении JavaScript-файлов. В частности, теперь считаются некорректными MIME-типыtext/json
иapplication/json
.
CSS
- Приведён в соответствие с текущей спецификацией «CSS Box Alignment Module Level 3» перечень значений, поддерживаемых свойствами
align-content
,align-items
,align-self
,justify-content
иplace-content
. В частности, значенияleft
иright
теперь допустимы только в свойствеjustify-content
, а значения типаbaseline
— вalign-content
. - Поддержка свойства
paint-order
. Свойство позволяет управлять взаимным расположением заливки (fill
), обводки (stroke
) и маркеров (например, стрелок) (markers
) текста как слоёв по перпендикулярной экрану оси. Это позволяет сделать обводку средствами CSS полезной: в отличие от Photoshop, в CSS нет возможности выбрать расположение обводки (снаружи, внутри, посередине), она всегда отрисовывается посередине штриха символа, а благодаря свойствуpaint-order
со значениемstroke fill
можно расположить заливку текста выше обводки, тем самым получив имитацию внешней обводки вдвое меньшей толщины относительно заданной. Обводка реализуется нестандартным свойством-webkit-text-stroke
, которое Firefox поддерживает начиная с версии 49. - Удалена поддержка нестандартного синтаксиса значений свойства
-moz-transform
, в рамках которого было допустимо указание единиц (px
,%
) в функцияхmatrix()
иmatrix3d()
. Свойство с префиксом теперь является псевдонимом стандартного свойстваtransform
.
Прочее
- Теперь новый CSS-движок Stylo (Quantum CSS) используется и для интерфейса браузера, в том числе в версии Firefox для Android, потенциально положительно сказываясь на его отзывчивости. Ранее планировалось включить возможность в Firefox 59, но это было решено отложить в связи со снизившимся в некоторых ситуациях быстродействием по сравнению с исходным CSS-движком Gecko: разбор HTML-атрибута
style
на ARM-устройствах в 5-10 раз медленнее; и примерно вдвое снизилась скорость поиска элементов по сложным селекторам с помощью JS-методаquerySelectorAll()
, что увеличило воспринимаемое время загрузки страниц GitHub. Проблемы пока не решены, но применительно к интерфейсу Firefox признаны некритичными. Для веб-страниц Stylo используется начиная с Firefox 57. Stylo написан на языке программирования Rust, поддерживает многопоточность и обеспечивает прирост быстродействия вплоть до двукратного. - Экспериментальная поддержка механизма «Trusted Recursive Resolver» (TRR) на основе спецификации «DNS Queries over HTTPS» (DNS-over-HTTPS, DoH), призванного повысить безопасность при определении соответствия доменного имени и IP-адреса. Для управления функциональностью предназначены настройки с префиксом
network.trr
, доступные через страницу скрытых настроекabout:config
. - На Firefox 60 основана очередная корпоративная версия с увеличенным примерно до года сроком поддержки (ESR). Важное отличие от предыдущей ESR-версии на основе Firefox 52 — отказ от поддержки устаревших операционных систем Windows XP и Vista.
- В Firefox для Android — возможность просмотра исходного кода страницы с помощью пункта меню «Страница» → «Исходный код страницы». Ранее функция была неявно доступна через ручное добавление псевдопротокола
view-source:
перед адресом страницы.
См. также официальные примечания к выпуску и информацию для разработчиков.
P. S. Если некоторые ссылки у вас в этот раз не открываются, благодарите Роскомнадзор.