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