Firefox 65 для разработчиков
В этой статье перечислены ключевые изменения, которые касаются разработчиков. Firefox 64 был выпущен 29 января 2019 года.
Изменения для веб-разработчиков
Инструменты разработчика
- Включён по умолчанию инспектор Flexbox (en-US).
- Отладчик 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>
(en-US) с установленными атрибутамиdisabled
(баг 329509). - Как в Chrome и Safari, удаление атрибута
src
у элемента<iframe>
(en-US) загружает в негоabout:blank
(баг 1501418) . До этого удалениеsrc
не влияло на содержимоеiframe
. - Добавлена поддержка атрибута
referrerpolicy
у элементов<script>
(баг 1460920).
CSS
- Убран префикс у значения
crisp-edges
свойстваimage-rendering
(en-US) (баг 1496617). - Значение
auto
scrollbar-color
(en-US) теперь разрешается вauto
, а не в два цвета (баг 1501418). - Реализована поддержка свойств
break-*
(баг 775618): - Реализована поддержка значения
anywhere
у свойстваoverflow-wrap
(баг 1505786). - Добавлены новые ключевые слова
jump-start
,jump-end
,jump-none
иjump-both
, используемые внутри временной функции steps() (en-US) (баг 1496619). Функцияframes()
, ранее использовавшаяся для этого, объявлена устаревшей. - Для совместимости с прочими браузерами добавлены несколько новых значений
-webkit-appearance
. В частности:meter
, которое отныне используется в качестве значения по умолчанию для элементов<meter>
; существующее значениеmeterbar
теперь является псевдонимомmeter
(баг 1501483).progress-bar
, которое отныне используется в качестве значения по умолчанию для элементов<progress>
; существующее значениеprogressbar
теперь является псевдонимомprogress-bar
(баг 1501506).textarea
, которое отныне используется в качестве значения по умолчанию для элементов<textarea>
(en-US); существующее значение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
(en-US)) (баг 1462233).
Удалено
- Удалена настройка
layout.css.shape-outside.enabled
; поддержкуshape-outside
(en-US),shape-margin
(en-US) иshape-image-threshold
(en-US) больше нельзя отключить черезabout:config
(баг 1504387). - Удалены некоторые специфичные для Firefox значения
user-select
—-moz-all
,-moz-text
,tri-state
,element
,elements
иtoggle
. См. баг 1492958 и баг 1506547. - Как упоминалось выше, удалена временная функция
frames()
(баг 1496619).
SVG
Без изменений.
JavaScript
- Реализована поддержка
Intl.RelativeTimeFormat
(en-US) (баг 1504334). - Максимально допустимое значение length у строк отныне составляет
2^30 - 2
(~1 ГБ) вместо2^28 - 1
(~256 МБ) (баг 1509542). - Добавлена поддержка свойства
globalThis
(баг 1317422).
API
Новые API
- Включена по умолчанию поддержка Readable Streams (en-US) (баг 1505122).
- Включена по умолчанию поддержка Storage Access API (баг 1513021).
DOM
Performance.toJSON()
(en-US) доступен веб-воркерам (баг 1504958).- Запросы
XMLHttpRequest
будут выбрасыватьNetworkError
, если запрошено содержимое типаBlob
, а метод запроса отличен отGET
(баг 1502599). - Многие функции Fullscreen API с префиксом
-moz-
объявлены устаревшими и выдают предупреждение в консоль JavaScript (баг 1504946). createImageBitmap()
(en-US) отныне поддерживает изображения SVG (SVGImageElement
(en-US)) в качестве источника (баг 1500768).
События DOM
- За одно событие разрешено не более одного вызова
Window.open()
(en-US) (баг 675574). - События
keyup
иkeydown
в целях улучшения кроссбраузерной совместимости для пользователей CJKT отныне срабатывают во время композиции IME (баг 354358).
Веб-воркеры
- Поскольку событие
SharedWorkerGlobalScope.onconnect
(en-US) является экземпляромMessageEvent
(en-US), его свойствоdata
теперь представляет собой пустую строку, а неnull
(баг 1508824).
Fetch и сервис-воркеры
- Метод
Response.redirect()
(en-US) теперь корректно выбрасываетTypeError
, если в качестве первого параметра указан невалидный URL (баг 1503276). - Методы
ServiceWorkerContainer.register()
иWorkerGlobalScope.importScripts()
(когда они используется сервис-воркером) отныне принимают любые файлы с валидными MIME-типом JavaScript (баг 1354577). - Добавлена поддержка свойств
FetchEvent.replacesClientId
(en-US) иFetchEvent.resultingClientId
(en-US) (баг 1264177). - Реализована поддержка
ServiceWorkerGlobalScope.onmessageerror
иServiceWorkerContainer.onmessageerror
(баг 1399446). - Заголовок
Origin
больше не устанавливается у запросов Fetch с методомHEAD
илиGET
(баг 1508661).
Media, Web Audio и WebRTC
- Словарь WebRTC
RTCIceCandidateStats
(en-US) обновлён в соответствии с последними изменениями спецификации (баг 1324788, баг 1489040). - События
pause
иresume
MediaRecorder
(и соответствующие свойства обработчика событий —MediaRecorder.onpause
(en-US) иMediaRecorder.onresume
(en-US)) не были реализованы ранее, хотя таблицы совместимости утверждали обратное. Теперь они реализованы (баг 1458538, баг 1514016).
Canvas и WebGL
- В контекстах WebGL1 и WebGL2 доступно использование расширений сжатия текстур WebGL
EXT_texture_compression_bptc
(en-US) иEXT_texture_compression_rgtc
(en-US) (баг 1507263).
Удалено
- Отключена мутация событий (en-US) в теневых деревьях (баг 1489858).
- Удалено нестандартное свойство
currentTime
MediaStream
(баг 1502927). - Удалены настройки
dom.webcomponents.shadowdom.enabled
иdom.webcomponents.customelements.enabled
— больше нельзя отключить поддержку Shadow DOM и Custom Elements черезabout:config
(баг 1503019). - Удалено нестандартное событие DOM
text
, срабатывавшее, чтобы уведомить пользовательский интерфейс редактора браузера о строках данных композиции IME и диапазоне выбора (баг 1288640). -
Событие
keypress (en-US)
больше не срабатывает для непечатаемых клавиш (en-US) (баг 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 (en-US) (баг 1294490).
- Кроме того, для улучшения кросс-браузерной совместимости MIME-тип WebP (
image/webp
) был добавлен в стандартный заголовок HTTP-запросаAccept
для файлов HTML (баг 1507691).
- Кроме того, для улучшения кросс-браузерной совместимости MIME-тип WebP (
Изменения для разработчиков дополнений
Изменения API
Вкладки
- tabs API обзавёлся поддержкой наследников вкладок — вкладке можно назначить ID вкладки-наследника, которая станет активной, когда первая вкладка закроется (баг 1500479, см. также эту запись в блоге для получения подробных сведений). В частности:
- Тип
tabs.Tab
(en-US) получил свойствоsuccessorId
, используемое для хранения/получения ID вкладки-наследника. - Колбэк обработчика событий
tabs.onActivated
(en-US) получил новый параметр,previousTabId
, содержащий ID предыдущей активированной вкладки, если она всё ещё открыта. - Объект
updateProperties
функцииtabs.update()
(en-US) обзавёлся новым свойствомsuccessorTabId
, которое служит для его обновления. successorTabId
также возвращается функциями наподобиеtabs.get()
иtabs.query()
(en-US).- Новая функция
tabs.moveInSuccession()
позволяет массово манипулировать наследниками вкладок.
- Тип
Изменения манифеста
Без изменений.
Прочее
- Версия для Android теперь поддерживает свойства
headerURL
/theme_frame
для тем Webextension (en-US) (баг 1429488).
Предыдущие версии
- Firefox 65 для разработчиков
- Firefox 64 для разработчиков
- Firefox 63 для разработчиков
- Firefox 62 для разработчиков
- Firefox 61 для разработчиков (en-US)
- Firefox 60 для разработчиков (en-US)
- Firefox 59 для разработчиков (en-US)
- Firefox 58 для разработчиков (en-US)
- Firefox 57 для разработчиков (en-US)
- Firefox 56 для разработчиков (en-US)
- Firefox 55 для разработчиков (en-US)
- Firefox 54 для разработчиков (en-US)
- Firefox 53 для разработчиков
- Firefox 52 для разработчиков (en-US)
- Firefox 51 для разработчиков (en-US)
- Firefox 50 для разработчиков (en-US)
- Firefox 49 для разработчиков (en-US)
- Firefox 48 для разработчиков (en-US)
- Firefox 47 для разработчиков (en-US)
- Firefox 46 для разработчиков (en-US)
- Firefox 45 для разработчиков (en-US)
- Firefox 44 для разработчиков (en-US)
- Firefox 43 для разработчиков
- Firefox 42 для разработчиков (en-US)
- Firefox 41 для разработчиков (en-US)
- Firefox 40 для разработчиков (en-US)
- Firefox 39 для разработчиков (en-US)
- Firefox 38 для разработчиков (en-US)
- Firefox 37 для разработчиков (en-US)
- Firefox 36 для разработчиков (en-US)
- Firefox 35 для разработчиков (en-US)