Firefox 74

Firefox теперь выходит в полтора раза чаще — каждые 4 недели. Таким образом, Firefox 100 нас ждёт уже через два года. А пока — о некоторых из интересных новшеств Firefox 74.

CSS

  • Поддержка свойства text-underline-position, позволяющего управлять положением подчёркивания относительно текста.
  • Свойства text-underline-offset и text-decoration-thickness теперь поддерживают процентные значения. Свойство text-underline-offset служит для сдвига линии подчёркивания относительно её положения по умолчанию. С помощью text-decoration-thickness можно задать толщину линии подчёркивания, перечёркивания или надчёркивания.
  • Поддержка значения auto свойства outline-style. Значение auto означает, что браузер может использовать собственный стиль рамки, который либо является стандартным для платформы, либо слишком сложен для описания средствами CSS.

JavaScript

  • Поддержка оператора ?. (optional chaining) для удобного обращения к многократно вложенным свойствам объектов без необходимости предварительной проверки существования каждого из них. При отсутствии одного из свойств в цепочке результатом будет undefined. Эта возможность также поддерживается механизмом автодополнения в консоли.
  • Поддержка определения размеров области отрисовки текста средствами элемента CANVAS. Для этого служат новые свойства объекта TextMetrics, возвращаемого методом measureText() объекта 2D-контекста:

  • Поддержка обработки смены предпочитаемого пользователем языка в скриптах Web Workers с помощью события languagechange или соответ­ствующего свойства onlanguagechange. Ранее эта функциональность ошибочно фигурировала в базе данных совместимости MDN как доступная начиная с Firefox 3.5.
  • Теперь можно удалять привязанные к расширению сочетания клавиш путём передачи пустой строки в качестве значения свойства shortcut объекта, передаваемого в качестве аргумента методу browser.commands.update().

Безопасность

  • Поддержка указания разрешённых возможностей (Feature Policy). Теперь можно использовать атрибут allow элементов IFRAME (и одноимённое свойство объектов HTMLIFrameElement) или HTTP-заголовок ответа сервера Feature-Policy для указания разрешений для документов, загружаемых во фреймы.
  • Ряд возможностей теперь отключён по умолчанию при загрузке во фрейм страниц сторонних сайтов и требует явного включения с помощью атрибута allow:

    • определение местоположения (Geolocation API): директива geolocation;
    • переход в полноэкранный режим (Fullscreen API): директива fullscreen;
    • доступ к камере и микрофону: директивы camera и microphone;
    • снятие скриншотов и видеозахват (Screen Capture API): директива display-capture.
  • Поддержка заголовка ответа сервера Cross-Origin-Resource-Policy (CORP) для управления разрешениями в отношении запросов, не входящих в категорию CORS. Поддерживаемые значения — same-site, same-origin и cross-origin.
  • В данных, возвращаемых обработчиками webrequest в расширениях, теперь содержится информация, распознан ли браузером запрос как используемый для отслеживания пользователя (fingerprinting, tracking).
  • Отключена поддержка устаревших механизмов TLS 1.0/1.1 шифрования страниц, доступных по протоколу HTTPS. Теперь при попытке открытия таких страниц будет отображаться сообщение об ошибке при установлении защищённого соединенияSecure Connection Failed») с возможностью при необходимости вручную разрешить загрузку конкретного сайта с использованием устаревшей версии протокола.

Прочее

  • Сочетание клавиш Ctrl+I теперь открывает окно с информацией о текущей странице. Ранее открывалась боковая панель «Закладки», что по-прежнему возможно с помощью сочетания клавиш Ctrl+B.

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