Доступен выпуск Firefox 65.
- Появилась возможность протестировать работу под Wayland без пересборки из исходников. Требуется лишь запустить программу с переменной окружения
GDK_BACKEND="wayland"
. - Реализована поддержка формата WebP, который превосходит по размеру получаемого файла JPEG на 25%-34% (при сжатии с потерями), а PNG — на 26% (без потерь). Разработчики Firefox противились внедрению WebP, потому что это поставило бы крест на будущем их собственного формата анимированных изображений APNG. Первой на уступки пошла Google, добавив в Chromium поддержку APNG, к тому же Microsoft тоже поддержала WebP в своём браузере Edge. Кроме того, для улучшения кросс-браузерной совместимости MIME-тип WebP (
image/webp
) был добавлен в стандартный HTTP-заголовок запроса Accept для файлов HTML. - Включена поддержка открытого стандарта сжатия видео AV1. Он значительно опережает H.264 и VP9 по уровню сжатия.
- Запрещено открывать более одного всплывающего окна при любом действии пользователя (например, при нажатии на ссылку).
- Переработан раздел настроек «Блокировка содержимого». Пользователю доступны три пресета: «Стандартная» (в приватном режиме), «Строгая» и «Персональная». В панели блокировки содержимого теперь можно увидеть заблокированные трекеры и куки.
- Закрыта программа Test Pilot, в рамках которой тестировались экспериментальные возможности. Эти возможности переехали на addons.mozilla.org в виде самостоятельных дополнений. Отказ от Test Pilot обусловлен большими затратами инженерных ресурсов на его поддержание. Вместо этого экспериментальные возможности будут тестироваться на обычных пользователях (с возможностью явно отказаться от участия).
- Появилась возможность установить несколько языковых пакетов и переключаться между ними «на лету» в настройках браузера. Для изменения языка интерфейса браузера больше не требуется скачивать локализованный дистрибутив или языковой пакет — достаточно выбрать язык из списка, браузер загрузит всё самостоятельно.
- Добавлена возможность предупреждать о закрытии браузера, даже если включено восстановление предыдущего сеанса при запуске.
- Разработчики дополнений теперь могут управлять тем, какая вкладка станет активной после закрытия текущей, чему очень рад разработчик Tree Style Tab.
- В сборках для Linux, macOS и Android усилена защита от повреждения стека (ключ компилятора
-fstack-protector-strong
). Повреждение стека → популярный тип атаки, когда злоумышленник повреждает или получает контроль над уязвимым приложением. - Добавлена поддержка «Непрерывности» в macOS: можно начать работу на iOS (в Firefox или Safari) и продолжить её в Firefox на macOS.
- Доступны инсталляторы в формате MSI.
Инструменты разработчика:
- Диспетчер задач (about:performance) теперь отображает количество памяти, используемой каждой вкладкой или дополнением. Кроме того, добавлены кнопки закрытия вкладки и перехода к дополнению.
- Включён по умолчанию инспектор Flexbox.
- Отладчик JavaScript получил поддержку точек останова XHR (821610).
- Щелчок правой кнопкой по элементу дерева доступности позволяет вывести его в JSON-формате.
- Если фон текста является сложным (например, градиент или сложное изображение), инструмент цветового контраста в инспекторе доступности покажет диапазон значений цветового контраста.
- Во вкладку «Заголовки» сетевого монитора добавлено отображение политики Referrer для выбранного запроса (1496742).
- При просмотре трассировки стека (например, в журналах консоли или отладчике JavaScript) вызовы методов распознаются, идентифицируются и по умолчанию сворачиваются, что облегчает размещение вашего кода.
- Подобно традиционным терминалам теперь можно использовать обратный поиск в истории консоли JavaScript(F9 в Windows/Linux или Ctrl+R в macOS, затем ввести искомое, а сочетаниями Ctrl+R/Ctrl+S переключаться между результатами).
- Сокращение
$0
в консоли JavaScript (ссылается на инспектируемый в данный момент элемент страницы) обзавелось возможностью автодополнения. Например, вы можете ввести$0.te
, чтобы получить предложения автодополнения для свойств наподобие$0.textContent
. - Правки, внесённые через просмотр правил в Инспекторе, теперь отображаются на вкладке «Изменения» (1503920).
HTML:
- События теперь отправляются на отключённые элементы HTML, то есть элементы <button>, <fieldset>, <input>, <select> и <textarea> с установленными атрибутами
disabled
(329509). - Как в Chrome и Safari, удаление атрибута
src
у элемента <iframe> загружает в негоabout:blank
(1507842). До этого удаление src не влияло на содержимоеiframe
. - Добавлена поддержка атрибута
referrerpolicy
у элементов<script>
(1460920).
CSS:
- Убран префикс у значения
crisp-edges
свойства image-rendering (1496617). - Значение
auto
scrollbar-color теперь разрешается вauto
, а не в два цвета (1501418). - Реализована поддержка свойств
break-*
(775618): - Реализована поддержка значения
anywhere
у свойства overflow-wrap (1505786). - Добавлены новые ключевые слова
jump-start
,jump-end
,jump-none
иjump-both
, используемые внутри временной функции steps() (1496619). Функцияframes()
, ранее использовавшаяся для этого, объявлена устаревшей. - Для совместимости с прочими браузерами добавлены несколько новых значений -webkit-appearance. В частности:
meter
, которое отныне используется в качестве значения по умолчанию для элементов <meter>; существующее значениеmeterbar
теперь является псевдонимомmeter
(1501483).progress-bar
, которое отныне используется в качестве значения по умолчанию для элементов <progress>; существующее значениеprogressbar
теперь является псевдонимомprogress-bar
(1501506).textarea
, которое отныне используется в качестве значения по умолчанию для элементов <textarea>; существующее значениеtextfield-multiline
теперь является псевдонимомtextarea
(1507905).
- Изменено поведение user-select, чтобы достичь сходства с прочими браузерами (1506547). Конкретно:
user-select: all
, установленное на элемент, больше не перекрывает значенияuser-select
дочерних элементов. Пример:<div style="-webkit-user-select: all">All <div style="-webkit-user-select: none">None</div> </div>
<div>
, на который установленnone
, теперь не выбирается. До этого значениеnone
перекрывалось значениемall
родительского элемента.- Теперь можно выбирать элементы не-
contenteditable
, вложенные в элементыcontenteditable
. user-select
теперь ведёт себя согласованно внутри и снаружи теневого DOM.- Удалено проприетарное значение
-moz-text
.
- Реализована поддержка переменных среды CSS (функция env) (1462233).
- Удалена настройка
layout.css.shape-outside.enabled
; поддержку shape-outside, shape-margin и shape-image-threshold больше нельзя отключить черезabout:config
(1504387). - Удалены некоторые специфичные для Firefox значения user-select —
-moz-all
,-moz-text
,tri-state
,element
,elements
иtoggle
. См. 1492958 и 1506547.
JavaScript:
- Реализована поддержка Intl.RelativeTimeFormat (1504334).
- Максимально допустимое значение length у строк отныне составляет
2^30 - 2 (~1 ГБ)
вместо2^28 - 1 (~256 MБ)
(1509542). - Добавлена поддержка globalThis (1317422).
DOM:
- Новые API:
- Включена по умолчанию поддержка Readable Streams (1505122).
- Включена по умолчанию поддержка Storage Access API (1513021).
- DOM:
- Performance.toJSON() доступен веб-воркерам (1504958).
- Запросы XMLHttpRequest будут выбрасывать
NetworkError
, если запрошено содержимое типаBlob
, а метод запроса отличен отGET
(1502599). - Многие функции Fullscreen API с префиксом
-moz-
объявлены устаревшими и выдают предупреждение в консоль JavaScript (1504946). - createImageBitmap() отныне поддерживает изображения SVG (SVGImageElement) в качестве источника (1500768).
- Веб-воркеры:
- Поскольку событие SharedWorkerGlobalScope.onconnect является экземпляром MessageEvent, его свойство
data
теперь представляет собой пустую строку, а неnull
(1508824).
- Поскольку событие SharedWorkerGlobalScope.onconnect является экземпляром MessageEvent, его свойство
- Fetch и сервис-воркеры:
- Метод Response.redirect() теперь корректно выбрасывает
TypeError
, если в качестве первого параметра указан невалидный URL (1503276). - Методы ServiceWorkerContainer.register() и WorkerGlobalScope.importScripts() (когда они используется сервис-воркером) отныне принимают любые файлы с валидными MIME-типом JavaScript (1354577).
- Добавлена поддержка свойств FetchEvent.replacesClientId и FetchEvent.resultingClientId (1264177).
- Реализована поддержка ServiceWorkerGlobalScope.onmessageerror и ServiceWorkerContainer.onmessageerror (1399446).
- Заголовок Origin больше не устанавливается у запросов Fetch с методом HEAD или GET (1508661).
- Метод Response.redirect() теперь корректно выбрасывает
- Media, Web Audio и WebRTC:
- Словарь WebRTC RTCIceCandidateStats обновлён в соответствии с последними изменениями спецификации (1324788, 1489040; см. также RTCIceCandidateStats has been updated to the latest spec для получения подробных сведений).
- События
pause
иresume
MediaRecorder (и соответствующие свойства обработчика событий — MediaRecorder.onpause и MediaRecorder.onresume) не были реализованы ранее, хотя таблицы совместимости утверждали обратное. Теперь они реализованы (1458538, 1514016).
- Canvas и WebGL:
- Отключена мутация событий в теневых деревьях (1489858).
- Удалено нестандартное свойство
currentTime
MediaStream (1502927). - Удалены настройки
dom.webcomponents.shadowdom.enabled
иdom.webcomponents.customelements.enabled
— больше нельзя отключить поддержку Shadow DOM и Custom Elements черезabout:config
(1503019). - Удалено нестандартное событие DOM
text
, срабатывавшее, чтобы уведомить пользовательский интерфейс редактора браузера о строках данных композиции IME и диапазоне выбора (1288640). - Событие keypress больше не срабатывает для непечатаемых клавиш (968056).
Безопасность:
- К допустимым заголовкам запросов отныне применяются дополнительные ограничения CORS (1483815, см. также whatwg fetch issue 382: CORS-safelisted request headers should be restricted according to RFC 7231 для получения дополнительных сведений).
Сеть:
- Реализованы веб-сокеты поверх HTTP/2 (1434137).
>>> Подробности