Доступен выпуск Firefox 63.
- Переработано блокирование JS/фреймов/изображений/куки с доменов, отслеживающих перемещения пользователя. Информация о блокировании добавлена в диалог со сведениями безопасности текущего сайта. Кроме того, переработан соответствующий раздел настроек.
- В Linux код дополнений теперь выполняется в отдельном процессе (как в Windows и macOS). Это увеличивает стабильность и безопасность.
- Включены API Shadow DOM, Custom Elements и Media Capabilities.
- После 12 лет ожидания реализована автонастройка прокси через DHCP (DHCP-опция 252).
- При завершении работы браузера через главное меню, Firefox предупредит пользователя об открытых вкладках и окнах.
- Если в операционной системе включены средства доступности (например, для слабовидящих), браузер автоматически уберёт некоторые виды анимаций интерфейса.
- На новых профилях сочетание Ctrl+Tab будет переключать вкладки в порядке их открытия, а не размещения, а также показывать предпросмотр вкладок. Для возврата к старому поведению существует настройка.
- Не состоялось запланированное прекращение доверия сертификатам Symantec. Как оказалось, они используются ещё на 10 тысячах популярных сайтов. Ещё в августе сертификаты Symantec использовались некоторыми крупными банками РФ, включая Сбербанк, Россельхозбанк, Юникредит и Открытие.
- Из графического интерфейса настроек убрана настройка «Не проверять наличие обновлений» (но оставлена «Проверять наличие обновлений, но позволить пользователю решать, устанавливать ли их»). По мнению разработчиков обновления слишком легко отключаются, после чего неопытный пользователь забывает их включить (когда проблема, из-за которой он отключал обновления, уже исправлена). Пользователи, которым требуетя перманентно отключить обновления и не показывать напоминания, следует воспользоваться политиками. В репозиториях Linux мейнтейнеры отключают автоматическое обновление на этапе сборки, поэтому их это вообще не затронет.
- Убрана возможность открыть конкретную закладку в боковой панели.
- Разработчики хотят оценить масштаб аудитории, отключающей телеметрию, поэтому некоторые пользователи получили системное дополнение, передающее на сервер сведения о том, включена или отключена телеметрия, версию ОС и браузера.
- В очередной раз слегка нарушена обратная совместимость: изменён формат хранилища данных дополнений. Откат к предыдущей версии может вызвать потерю данных.
- Опубликованы результаты аудита системы обновления Firefox. Найдено несколько ошибок, но общий уровень защищённости оценён как высокий.
- Сборки для Windows отныне формируются с помощью Clang.
- Firefox будет автоматически использовать тёмную тему, если интерфейс Windows тоже использует тёмную тему.
Инструменты разработчика:
- Вкладка инспектора «Шрифты» обзавелась редактором, облегчающим просмотр и правку настроек используемых шрифтов. Подробнее см. в Edit fonts.
- Инспектор поддержки доступности включён по умолчанию.
- При наведении курсора на объект в инспекторе поддержки доступности, элемент будет подсвечен, а его роль и имя показаны в информационной панели на странице (1473030).
- Командная строка веб-консоли теперь находится не внизу окна, а прямо после вывода консоли (1136299).
- Если адрес принадлежит домену, о котором известно, что он отслеживает пользователей, сетевой монитор покажет специальный значок перед этой ссылкой — см. Значки безопасности (1333994).
- Настройка
devtools.aboutdebugging.showSystemAddons
отныне по умолчанию имеет значениеfalse
, что ознает, что системные дополнения не будут показаны на страницеabout:debugging
. Значение этой настройки можно изменить черезabout:config
(1425347).
HTML:
- Элемент <img> обзавёлся поддержкой атрибута decoding (1416328); см. также HTMLImageElement.decoding.
- Удалена поддержка ссылок с типом
sidebar
(rel="sidebar"
) (1452645).
CSS:
- Добавлена поддержка псевдокласса :defined (1331334).
- В Flexbox-раскладку добавлена поддержка row-gap, column-gap и gap (1398483).
- Снова включена поддержка запросов pixel-density правила @media, у которых есть префикс -webkit (1444139)
- Реализована поддержка свойств CSS Flexible Box Layout (Flexbox) align-self, align-content и align-items, а также justify-content (1472843).
- Реализована функция
path
для offset-path (1429298). - Внесены улучшения синтаксиса из спецификации Media Queries Level 4 (1472843).
- Свойства offset-* переименованы в inset-block-start, inset-block-end, inset-inline-start и inset-inline-end (1464782).
- Добавлена поддержка prefers-reduced-motion (1365045, 1475462).
- Свойство resize обзавелось относительно-направленными значениями (
block
,inline
) (1464786). - Реализована flexbox-раскладка для значений
safe
иunsafe
в align-self, align-content и justify-content (1297774). - Логические свойства (там, где это необходимо) стали анимируемыми (1309752).
JavaScript:
- Реализована поддержка свойства Symbol.prototype.description (1472170).
- Добавлен метод Object.fromEntries (1469019).
- Существенно улучшено сообщение об ошибке, выдаваемое при попытке доступа к свойству не определённого объекта. В случае, когда
x
не определён, а вы пытаетесь получить доступ кx.y
, консоль вернёт более понятное x не определён; невозможно получить доступ к его свойству «y» вместоTypeError: x не определён
(1259822). - Удалена экспериментальная поддержка сериализации IndexedDB WebAssembly.Module (1469395).
API:
- Новые API:
- Включена по умолчанию поддержка API Shadow DOM (1471947) и Custom Elements (1471948); см. Веб-компоненты для получения подробных сведений.
- Реализован API Media Capabilities (1409664).
- Реализована и включена по умолчанию поддержка API Async Clipboard (1461465). Как и в Chrome, в Firefox реализованы лишь методы writeText() и readText(), но, в отличие от Chrome,
readText()
доступен лишь дополнениям. - Поддерживается интерфейс SecurityPolicyViolationEvent. Он позволяет отправлять события при нарушении Content-Security-Policy (1472661).
- DOM:
- Включены по умолчанию следующие элементы API Web Animations (1476158):
- Свойства ready и finished Animation, указывающие на Promise
ready
иfinished
объектаAnimation
. - Свойство effect объекта Animation.
- Интерфейсы KeyframeEffect и AnimationEffect.
- Свойства ready и finished Animation, указывающие на Promise
- Реализован метод Element.toggleAttribute() (1469592).
- В целях совместимости добавлена поддержка нестандартного свойства Event.returnValue (1452569).
- Для паритета с Edge и Chrome свойство navigator.platform отныне возвращает
"Win32"
даже в 64-разрядных операционных системах Windows (1472618). - Раньше, ссылки, открывающие новые окна с
rel="noopener"
, и Window.open() с noopener приводили к тому, что у окна были отключены все свойства и разработчику приходилось включать необходимые ему стандартные свойства. Отныне такие окна будут иметь все те же свойства, что и любое другое окно, а разработчику следует отключать нежелательные (1419960).
- Включены по умолчанию следующие элементы API Web Animations (1476158):
- События DOM: на платформе Windows улучшена обработка правой клавиши Alt. Если в текущей раскладке клавиша Alt назначена на AltGr, значение KeyboardEvent.key будет
"AltGraph"
. Такое поведение соответствует поведению, принятому недавно в Chrome (900760). - Медиа, Web Audio и WebRTC:
- Доступ к микрофону теперь работает одновременно в нескольких вкладках, даже в рамках одного процесса контента (1404977).
- RTCDataChannel теперь поддерживает формат данных sctp-sdp-21 в дополнение к старому формату sctp-sdp-05.
- Узлы ConstantSourceNode отныне имеют не один, а два канала (1413283).
- Интерфейс API Web Audio AudioScheduledSourceNode (и все остальные типы узлов, основанные на нём) теперь выбрасывает корректное исключение (
RangeError
), если время начала узла представляет собой отрицательное значение (1413284). - Минимальные и максимально допустимые значения value объекта AudioParam изменены на минимальное отрицательное число с плавающей запятой одинарной точности (-340,282,346,638,528,859,811,704,183,484,516,925,440) и максимальное положительное число с плавающей запятой одинарной точности (+340,282,346,638,528,859,811,704,183,484,516,925,440 (1476695).
- Включена по умолчанию поддержка метода SourceBuffer.changeType, позволяющего изменить кодеки во время активного потока. Это часть API Media Source Extensions (1481166).
- Метод AudioParam.setValueCurveAtTime() обновлён, чтобы корректно принимать массив значений с плавающей запятой для указания значений параметров, которые изменяются со временем. До этого он требовал Float32Array (1421091).
- AudioParam.setValueCurveAtTime() обновлён, чтобы возвращать правильный
TypeError
, если в массивеvalues
обнаружено не конечное значение (1472095). - Кроме того,
setValueCurveAtTime()
обновлён таким образом, чтобы, когда параметр заканчивает следовать кривой значений, значение параметра устанавливалось в соответствии с последним значением в списке значений кривой (1308436). - Словарь
RTCRTPStreamStats
переименован в RTCRtpStreamStats согласно прочим словарям WebRTC и спецификации (1480498). - Словарь
RTCRtpStreamStats
получил поддержку свойства kind (1481851). - Свойство isRemote словаря RTCRtpStreamStats объявлено устаревшим и будет удалено в Firefox 65. При доступе к свойству будет выведено предупреждение в консоли. Подробности в блоге (1393306).
- Canvas и WebGL: HTMLCanvasElement.getContext() обзавёлся новым атрибутом powerPreference. В macOS, при наличии нескольких графических процессоров, это позволяет приложениям и апплетам WebGL, которым не важна производительность, запрашивать слабый GPU вместо более мощного и потребляющего больше энергии (1349799).
- Удалены устаревшие нестандартные методы Window.back() и Window.forward(), реализованные лишь в Firefox. Вместо них следует использовать методы window.history.back() и window.history.forward() (1479486).
- Методы createObjectURL() и revokeObjectURL() больше не доступны на экземплярах ServiceWorker, поскольку легко приводят к утечкам памяти (1264182).
- Удалена устаревшая и ограниченная поддержка эффектов Доплера на PannerNode. У интерфейса AudioListener удалены свойства dopplerFactor и speedOfSound, кроме того, у интерфейса
PannerNode
удалён метод setVelocity() (1148354).
HTTP:
- Реализован заголовок Clear-Site-Data; больше он не скрыт за соответствующей настройкой (1470111).
Безопасность:
- Фавиконы сайтов отныне подчиняются политике защиты контента (CSP), если она настроена (1297156).
- Выражение
'report-sample'
директивы CSP script-src отныне учитывается при создании отчёта о нарушении. Эта директива указывает, что в отчёт должен быть включен краткий пример того, где произошло нарушение. До этого Firefox всегда включал такой пример в отчёт (1473218).
Прочее;
- Исправлено поведение PerformanceObserver.observe(): этот метод теперь ничего не делает, если в указанном массиве типов записей не обнаружены допустимые типы записей или массив пуст/отсутствует. До этого некорректно выбрасывался
TypeError
(1403027). - Формат OpenSearch теперь допускает использование
application/json
в качестве типа URL-адреса (application/json
является синонимомapplication/x-suggestions+json
) (1425827).
>>> Подробности