Firefox 65 для разработчиков
В этой статье перечислены ключевые изменения, которые касаются разработчиков. Firefox 64 был выпущен 29 января 2019 года.
Изменения для веб-разработчиков
Инструменты разработчика
-
Включён по умолчанию инспектор Flexbox.
-
Отладчик JavaScript получил поддержку точек останова XHR (Firefox bug 821610).
-
Щелчок правой кнопкой по элементу дерева доступности позволяет вывести его в JSON-формате.
-
Если фон текста является сложным (например, градиент или сложное изображение), инструмент цветового контраста в инспекторе доступности покажет диапазон значений цветового контраста.
-
Во вкладку «Заголовки» сетевого монитора добавлено отображение политики Referrer для выбранного запроса (Firefox bug 1496742).
-
При просмотре трассировки стека (например, в журналах консоли или отладчике JavaScript) вызовы методов фреймворка распознаются и по умолчанию сворачиваются, что облегчает размещение вашего кода.
-
Подобно традиционным терминалам теперь можно использовать обратный поиск в истории консоли JavaScript(
F9
в Windows/Linux или
Ctrl
+
R
в macOS, затем ввести искомое, а сочетаниями
Ctrl
+
R
/
Ctrl
+
S
переключаться между результатами).
-
Сокращение
$0
в консоли JavaScript (ссылается на инспектируемый в данный момент элемент страницы) обзавелось возможностью автодополнения. Например, вы можете ввести$0.te
, чтобы получить предложения автодополнения для свойств наподобие$0.textContent
. -
Правки, внесённые через просмотр правил в Инспекторе, теперь отображаются на вкладке «Изменения» (Firefox bug 1503920).
HTML
- События теперь отправляются на отключённые элементы HTML, то есть элементы
<button>
,<fieldset>
,<input>
,<select>
и<textarea>
с установленными атрибутамиdisabled
(Firefox bug 329509). - Как в Chrome и Safari, удаление атрибута
src
у элемента<iframe>
загружает в негоabout:blank
(Firefox bug 1501418) . До этого удалениеsrc
не влияло на содержимоеiframe
. - Добавлена поддержка атрибута
referrerpolicy
у элементов<script>
(Firefox bug 1460920).
CSS
-
Убран префикс у значения
crisp-edges
свойстваimage-rendering
(Firefox bug 1496617). -
Значение
auto
scrollbar-color
теперь разрешается вauto
, а не в два цвета (Firefox bug 1501418). -
Реализована поддержка свойств
break-*
(Firefox bug 775618): -
Реализована поддержка значения
anywhere
у свойстваoverflow-wrap
(Firefox bug 1505786). -
Добавлены новые ключевые слова
jump-start
,jump-end
,jump-none
иjump-both
, используемые внутри временной функции steps() (Firefox bug 1496619). Функцияframes()
, ранее использовавшаяся для этого, объявлена устаревшей. -
Для совместимости с прочими браузерами добавлены несколько новых значений
-webkit-appearance
. В частности:meter
, которое отныне используется в качестве значения по умолчанию для элементов<meter>
; существующее значениеmeterbar
теперь является псевдонимомmeter
(Firefox bug 1501483).progress-bar
, которое отныне используется в качестве значения по умолчанию для элементов<progress>
; существующее значениеprogressbar
теперь является псевдонимомprogress-bar
(Firefox bug 1501506).textarea
, которое отныне используется в качестве значения по умолчанию для элементов<textarea>
; существующее значениеtextfield-multiline
теперь является псевдонимомtextarea
(Firefox bug 1507905)
-
Изменено поведение
user-select
, чтобы достичь сходства с прочими браузерами (Firefox bug 1506547). Конкретно:-
user-select: all
, установленное на элемент, больше не перекрывает значенияuser-select
дочерних элементов. Пример:html<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()
) (Firefox bug 1462233).
Удалено
- Удалена настройка
layout.css.shape-outside.enabled
; поддержкуshape-outside
,shape-margin
иshape-image-threshold
больше нельзя отключить черезabout:config
(Firefox bug 1504387). - Удалены некоторые специфичные для Firefox значения
user-select
—-moz-all
,-moz-text
,tri-state
,element
,elements
иtoggle
. См. Firefox bug 1492958 и Firefox bug 1506547. - Как упоминалось выше, удалена временная функция
frames()
(Firefox bug 1496619).
SVG
Без изменений.
JavaScript
- Реализована поддержка
Intl.RelativeTimeFormat
(Firefox bug 1504334). - Максимально допустимое значение length у строк отныне составляет
2^30 - 2
(~1 ГБ) вместо2^28 - 1
(~256 МБ) (Firefox bug 1509542). - Добавлена поддержка свойства
globalThis
(Firefox bug 1317422).
API
Новые API
- Включена по умолчанию поддержка Readable Streams (Firefox bug 1505122).
- Включена по умолчанию поддержка Storage Access API (Firefox bug 1513021).
DOM
Performance.toJSON()
доступен веб-воркерам (Firefox bug 1504958).- Запросы
XMLHttpRequest
будут выбрасыватьNetworkError
, если запрошено содержимое типаBlob
, а метод запроса отличен отGET
(Firefox bug 1502599). - Многие функции Fullscreen API с префиксом
-moz-
объявлены устаревшими и выдают предупреждение в консоль JavaScript (Firefox bug 1504946). createImageBitmap()
отныне поддерживает изображения SVG (SVGImageElement
) в качестве источника (Firefox bug 1500768).
События DOM
- За одно событие разрешено не более одного вызова
Window.open()
(Firefox bug 675574). - События
keyup
иkeydown
в целях улучшения кроссбраузерной совместимости для пользователей CJKT отныне срабатывают во время композиции IME (Firefox bug 354358).
Веб-воркеры
- Поскольку событие
SharedWorkerGlobalScope.onconnect
является экземпляромMessageEvent
, его свойствоdata
теперь представляет собой пустую строку, а неnull
(Firefox bug 1508824).
Fetch и сервис-воркеры
- Метод
Response.redirect()
теперь корректно выбрасываетTypeError
, если в качестве первого параметра указан невалидный URL (Firefox bug 1503276). - Методы
ServiceWorkerContainer.register()
иWorkerGlobalScope.importScripts()
(когда они используется сервис-воркером) отныне принимают любые файлы с валидными MIME-типом JavaScript (Firefox bug 1354577). - Добавлена поддержка свойств
FetchEvent.replacesClientId
иFetchEvent.resultingClientId
(Firefox bug 1264177). - Реализована поддержка
ServiceWorkerGlobalScope.onmessageerror
иServiceWorkerContainer.onmessageerror
(Firefox bug 1399446). - Заголовок
Origin
больше не устанавливается у запросов Fetch с методомHEAD
илиGET
(Firefox bug 1508661).
Media, Web Audio и WebRTC
- Словарь WebRTC
RTCIceCandidateStats
обновлён в соответствии с последними изменениями спецификации (Firefox bug 1324788, Firefox bug 1489040). - События
pause
иresume
MediaRecorder
(и соответствующие свойства обработчика событий —MediaRecorder.onpause
иMediaRecorder.onresume
) не были реализованы ранее, хотя таблицы совместимости утверждали обратное. Теперь они реализованы (Firefox bug 1458538, Firefox bug 1514016).
Canvas и WebGL
- В контекстах WebGL1 и WebGL2 доступно использование расширений сжатия текстур WebGL
EXT_texture_compression_bptc
иEXT_texture_compression_rgtc
(Firefox bug 1507263).
Удалено
-
Отключена мутация событий в теневых деревьях (Firefox bug 1489858).
-
Удалено нестандартное свойство
currentTime
MediaStream
(Firefox bug 1502927). -
Удалены настройки
dom.webcomponents.shadowdom.enabled
иdom.webcomponents.customelements.enabled
— больше нельзя отключить поддержку Shadow DOM и Custom Elements черезabout:config
(Firefox bug 1503019). -
Удалено нестандартное событие DOM
text
, срабатывавшее, чтобы уведомить пользовательский интерфейс редактора браузера о строках данных композиции IME и диапазоне выбора (Firefox bug 1288640). -
Событие
keypress
больше не срабатывает для непечатаемых клавиш (Firefox bug 968056) за исключением клавишиEnter
и комбинаций
Shift
+
Enter
и
Ctrl
+
Enter
(сохранены для кроссбраузерной совместимости).
Безопасность
- К допустимым заголовкам запросов отныне применяются дополнительные ограничения CORS (Firefox bug 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
(Firefox bug 1502864).
Исправленные ошибки
- Команды для манипуляций окнами
WebDriver:FullscreenWindow
,WebDriver:MinimizeWindow
,WebDriver:MaximizeWindow
иWebDriver:SetWindowRect
стали более стабильными (Firefox bug 1492499). При определённых обстоятельствах они больше не вызывают бесконечное зависание, но ожидают в течение 5 секунд, если запрошенное состояние окна не может быть достигнуто (Firefox bug 1521527). WebDriver:ElementClick
отныне корректно высчитывает центр элемента для щелчка по нему, что позволяет взаимодействовать с элементами, имеющими размер 1x1 пиксель (Firefox bug 1499360).
Прочее
- При возникновении ошибки
unexpected alert open
выводятся более понятные сообщения (Firefox bug 1502268).
Прочее
-
Добавлена поддержка изображений в формате WebP (Firefox bug 1294490).
- Кроме того, для улучшения кросс-браузерной совместимости MIME-тип WebP (
image/webp
) был добавлен в стандартный заголовок HTTP-запросаAccept
для файлов HTML (Firefox bug 1507691).
- Кроме того, для улучшения кросс-браузерной совместимости MIME-тип WebP (
Изменения для разработчиков дополнений
Изменения API
Вкладки
-
tabs API обзавёлся поддержкой наследников вкладок — вкладке можно назначить ID вкладки-наследника, которая станет активной, когда первая вкладка закроется (Firefox bug 1500479, см. также эту запись в блоге для получения подробных сведений). В частности:
- Тип
tabs.Tab
получил свойствоsuccessorId
, используемое для хранения/получения ID вкладки-наследника. - Колбэк обработчика событий
tabs.onActivated
получил новый параметр,previousTabId
, содержащий ID предыдущей активированной вкладки, если она всё ещё открыта. - Объект
updateProperties
функцииtabs.update()
обзавёлся новым свойствомsuccessorTabId
, которое служит для его обновления. successorTabId
также возвращается функциями наподобиеtabs.get()
иtabs.query()
.- Новая функция
tabs.moveInSuccession()
позволяет массово манипулировать наследниками вкладок.
- Тип
Изменения манифеста
Без изменений.
Прочее
- Версия для Android теперь поддерживает свойства
headerURL
/theme_frame
для тем расширений (Firefox bug 1429488).
Предыдущие версии
- 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 для разработчиков
- Firefox 34 для разработчиков