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). -
Значение
autoscrollbar-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иresumeMediaRecorder(и соответствующие свойства обработчика событий —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).
-
Удалено нестандартное свойство
currentTimeMediaStream(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 для разработчиков