Firefox 66

Firefox 66 — весеннее обновление передового веб-браузера.

HTML

  • Автоматическое воспроизведение аудиозаписей и видеороликов теперь не работает до щелчка пользователя (баг 1487844). По сути атрибут autoplay элементов AUDIO и VIDEO упраздняется, за исключением видеороликов без звука (используемых, например, в роли анимированного фона) или при отключении звука с помощью атрибута muted.

    Управлять этой функцией можно в настройках Firefox: «Настройки» → «Приватность и защита» → «Разрешения» → «Не разрешать веб-сайтам автоматически воспроизводить звук». Там же можно настроить список сайтов-исключений. Новшество предполагается применять не сразу, а поэтапно увеличивая количество затронутых пользователей в течение недели спустя неделю после выпуска стабильной версии.

  • Удалена поддержка нестандартного атрибута x-moz-errormessage элементов форм, позволявшего задать сообщение об ошибке для неправильно заполненного поля. Рекомендуется использовать стандартный механизм на основе JS-метода setCustomValidity(), вызываемого в обработчиках событий invalid и input.
  • Удалена поддержка атрибута xml:base, в том числе в SVG-файлах. Из Chromium (Blink) поддержку xml:base удалили в 2015-м году, другие браузеры этот атрибут не поддерживали.

CSS

  • Поддержка селекторов атрибутов с принудительной регистро­зависимой выборкой по значениям атрибутов (для символов в пределах набора ASCII) с помощью модификатора s из спецификации «Selectors Level 4». Модификатор s позволяет включить регистро­зависимый режим даже в случаях, когда предполагается независимость от регистра: например, в HTML значение атрибута type списков определено как не зависящее от регистра, но с помощью модификатора s это можно изменить. Поддержка выборки без учёта регистра — с помощью модификатора i — доступна начиная с Firefox 47.

  • Теперь предотвращается сдвиг субъективной позиции прокрутки страницы при подгрузке изображений, расположенных выше просматриваемой в конкретный момент части страницы. Данная функциональность описывается в спецификации CSS Scroll Anchoring и включена по умолчанию. Для веб-разработчиков предусмотрен способ при необходимости исключить отдельные элементы из числа элементов, участвующих в отслеживании позиции прокрутки: для этого служит свойство overflow-anchor со значением none вместо значения auto, используемого по умолчанию.
  • Ключевые слова min-content и max-content в значениях свойств width, height и flex-basis теперь доступны без префикса. Поддержка прежних вариантов с префиксом -moz- пока сохранится.

JavaScript, DOM

  • Снижен приоритет обработчиков setTimeout() и setInterval() при загрузке страницы, что призвано её ускорить.
  • Элемент BUTTON в отношении обработки событий теперь аналогичен другим элементам согласно свежим спецификациям.
  • Поддержка метода HTMLSlotElement.assignedElements(), в отличие от assignedNodes() возвращающего не узлы, а элементы, привязанные к слоту Shadow DOM.
  • Поддержка доступного только для чтения DOM-свойства inputType объекта InputEvent, соответствующего событиям input элементов с редактируемым содержимым (элементы форм и WYSIWYG-элементы с атрибутом contenteditable="true"). Свойство inputType может помочь определить характер внесённых пользователей изменений. Спецификация «Input Events Level 1» предусматривает множество значений свойства, в том числе insertText, deleteContentBackward, insertFromPaste и formatBold.
  • Поддержка DOM-свойств Window.event и Event.returnValue для улучшения совместимости с устаревшими веб-страницами, созданными в расчёте на браузер Internet Explorer.
  • Теперь при нулевом (0) значении свойства keyCode объекта KeyboardEvent, соответствующего событию keypress, вместо него возвращается значение свойства charCode, и наоборот. В терминологии спецификации UI Events это означает переход от раздельной (split) модели обработки событий к объединённой (conflated).

Прочее

  • Для хранения настроек дополнений теперь используется база данных IndexedDB вместо JSON-файлов, что призвано повысить быстродействие. Возможно, именно с этим связана произошедшая некоторое время назад в Firefox Developer Edition потеря настроек расширений, в том числе пользовательских скриптов и таблиц стилей, но есть надежда, что стабильных версий Firefox это не коснётся.
  • Теперь автоматически определяется кодировка UTF-8 в открываемых напрямую локальных файлах без BOM-сигнатуры и без метаэлемента с атрибутом charset. Это удобно, например, для быстрого просмотра фрагментов HTML-кода, хранящихся в статичных псевдо-XML-файлах, формально самодостаточными HTML-документами не являющихся. Ранее приходилось вручную выбирать кодировку в браузере не только после открытия каждого такого HTML-файла, но и после его обновления нажатием клавиши F5 или соответствующей кнопкой браузера.
  • HTTP-заголовок запроса Accept теперь имеет значение */*.
  • Включена по умолчанию поддержка нового видеоформата AV1 в 32-разрядных версиях Firefox для Windows и в Firefox для macOS. Для 64-разрядных Windows поддержка была включена в Firefox 65.
  • Количество процессов Firefox, предназначенных для обработки контента, увеличено вдвое: с 4-х до 8-ми. Предполагается, что это повысит быстродействие и снизит количество аварийных завершений работы браузера.

См. также официальные примечания к выпуску и информацию для разработчиков.