В этой статье перечислены ключевые изменения, которые касаются разработчиков. Firefox 64 был выпущен 29 января 2019 года.
Изменения для веб-разработчиков
Инструменты разработчика
- Включён по умолчанию инспектор 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
(баг 1501418) . До этого удаление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). - Удалены некоторые специфичные дляl Firefox значения
user-select
—-moz-all
,-moz-text
,tri-state
,element
,elements
иtoggle
. См. баг 1492958 и баг 1506547. - Как упоминалось выше, удалена временная функция
frames()
(баг 1496619).
SVG
Без изменений.
JavaScript
- Реализована поддержка
Intl.RelativeTimeFormat
(баг 1504334). - Максимально допустимое значение length у строк отныне составляет
2^30 - 2
(~1 ГБ) вместо2^28 - 1
(~256 MБ) (баг 1509542). - Добавлена поддержка свойства
globalThis
(баг 1317422).
API
Новые 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).
События DOM
- За одно событие разрешено не более одного вызова
Window.open()
(баг 675574). - События
keyup
иkeydown
в целях улучшения кроссбраузерной совместимости для пользователей CJKT отныне срабатывают во время композиции IME (баг 354358, см. keydown and keyup events are now fired during IME composition для получения подробных сведений)..
Веб-воркеры
- Поскольку событие
SharedWorkerGlobalScope.onconnect
является экземпляромMessageEvent
, его свойствоdata
теперь представляет собой пустую строку, а неnull
(баг 1508824).
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).
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
- В контекстах WebGL1 и WebGL2 доступно использование расширений сжатия текстур WebGL
EXT_texture_compression_bptc
иEXT_texture_compression_rgtc
(баг 1507263).
Удалено
- Отключена мутация событий в теневых деревьях (баг 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) за исключением клавиши Enter и комбинаций Shift + Enter и Ctrl + Enter (сохранены для кроссбраузерной совместимости).
Безопасность
- К допустимым заголовкам запросов отныне применяются дополнительные ограничения CORS (баг 1483815, см. также whatwg fetch issue 382: CORS-safelisted request headers should be restricted according to RFC 7231 для получения дополнительных сведений).
Сеть
Без изменений.
Плагины
Без изменений.
WebDriver (Marionette)
Изменения API
WebDriver:ElementSendKeys
при проверке интерактивности обрабатывает<input type=file>
менее строго, позволяя скрывать эти элементы без возникновения ошибкиnot interactable
. Если требуется строгая проверка, следует использоватьstrictFileInteractability
(баг 1502864).
Исправленные ошибки
- Команды для манипуляций окнами
WebDriver:FullscreenWindow
,WebDriver:MinimizeWindow
,WebDriver:MaximizeWindow
иWebDriver:SetWindowRect
стали более стабильными (баг 1492499). При определённых обстоятельствах они больше не вызывают бесконечное зависание, но ожидают в течение 5 секунд, если запрошенное состояние окна не может быть достигнуто (баг 1521527). WebDriver:ElementClick
отныне корректно высчитывает центр элемента для щелчка по нему, что позволяет взаимодействовать с элементами, имеющими размер 1x1 пиксель (баг 1499360).
Прочее
- При возникновении ошибки
unexpected alert open
выводятся более понятные сообщения (баг 1502268).
Прочее
- Добавлена поддержка изображений в формате WebP (баг 1294490).
- Кроме того, для улучшения кросс-браузерной совместимости MIME-тип WebP (
image/webp
) был добавлен в стандартный заголовок HTTP-запросаAccept
для файлов HTML (баг 1507691).
- Кроме того, для улучшения кросс-браузерной совместимости MIME-тип WebP (
Изменения для разработчиков дополнений
Изменения API
Вкладки
- tabs API обзавёлся поддержкой наследников вкладок — вкладке можно назначить ID вкладки-наследника, которая станет активной, когда первая вкладка закроется (баг 1500479, см. также эту запись в блоге для получения подробных сведений). В частности:
- Тип
tabs.Tab
получил свойствоsuccessorId
, используемое для хранения/получения ID вкладки-наследника. - Обратный вызов слушателя событий
tabs.onActivated
получил новый параметр,previousTabId
, содержащий ID предыдущей активированной вкладки, если она всё ещё открыта. - Объект
updateProperties
функцииtabs.update()
обзавёлся новым свойствомsuccessorTabId
, которое служит для его обновления. successorTabId
также возвращается функциями наподобиеtabs.get()
иtabs.query()
.- Новая функция
tabs.moveInSuccession()
ипозволяет массово манипулировать наследниками вкладок.
- Тип
Изменения манифеста
Без изменений.
Прочее
- Версия для Android теперь поддерживает свойства
headerURL
/theme_frame
для тем Webextension (баг 1429488).
См. также
Предыдущие версии
- Firefox 65 для разработчиков
- Firefox 64 для разработчиков
- Firefox 63 для разработчиков
- Firefox 62 для разработчиков
- Firefox 61 для разработчиков
- Firefox 60 для разработчиков
- Firefox 59 для разработчиков
- Firefox 58 для разработчиков
- Firefox 57 для разработчиков
- Firefox 56 для разработчиков
- Firefox 55 для разработчиков
- Firefox 54 для разработчиков
- Firefox 53 для разработчиков
- Firefox 52 для разработчиков
- Firefox 51 для разработчиков
- Firefox 50 для разработчиков
- Firefox 49 для разработчиков
- Firefox 48 для разработчиков
- Firefox 47 для разработчиков
- Firefox 46 для разработчиков
- Firefox 45 для разработчиков
- Firefox 44 для разработчиков
- Firefox 43 для разработчиков
- Firefox 42 для разработчиков
- Firefox 41 для разработчиков
- Firefox 40 для разработчиков
- Firefox 39 для разработчиков
- Firefox 38 для разработчиков
- Firefox 37 для разработчиков
- Firefox 36 для разработчиков
- Firefox 35 для разработчиков