Устаревшие и удаленные версии Chrome 99

Бета-версия Chrome 99 была выпущена 3 февраля 2022 года и, как ожидается, станет стабильной версией в начале марта 2022 года.

Удалить API состояния батареи в небезопасном источнике

API состояния батареи больше не поддерживается для небезопасных источников , таких как HTTP-страницы или HTTPS-iframe, встроенные в HTTP-страницы. API состояния батареи позволяет веб-разработчикам, среди прочего, получать доступ к уровню зарядки батареи системы и узнать, заряжается ли она. Это мощная функция, которая существует уже более десяти лет и поэтому изначально разрабатывалась с различными ограничениями безопасности.

Удалить семейство шрифтов -webkit-standard

В этой версии Chrome удалена поддержка значения font-family "-webkit-standard" . Это значение является просто псевдонимом проприетарного ключевого слова "-webkit-body" и доступно только потому, что оно унаследовано от WebKit. Удаление этого улучшает соответствие спецификациям CSS и Firefox.

Удалить список геймпадов

Метод navigator.getGamepads() теперь возвращает массив объектов Gamepad вместо GamepadList . GamepadList больше не поддерживается в Chrome. Это приводит Chrome в соответствие со спецификацией, а также с Gecko и Webkit. Дополнительную информацию о геймпадах см. в разделе «Играйте в динозавровую игру Chrome с помощью геймпада ».

Обновите WebCodecs, чтобы они соответствовали спецификации.

Chrome удалил два элемента из-за недавних изменений в спецификации WebCodecs.

Метод EncodedVideoChunkOutputCallback() принимает словарь EncodedVideoChunkMetadata . Ранее член с именем temporalLayerId находился по адресу EncodedVideoChunkMetadata.temporalLayerId . В соответствии со спецификацией он теперь расположен по адресу EncodedVideoChunkMetadata.SvcOutputMetadata.temporalLayerId .

Спецификация требует, чтобы конструктор VideoFrame() включал аргумент метки времени ( VideoFrameInit.timestamp ) для типов CanvasImageSource , которые неявно не имеют метки времени (например, HTMLCanvasElement ). Если не включить временную метку, это должно привести к ошибке TypeError , но Chrome ранее по умолчанию установил для временной метки нулевое значение. Это кажется полезным, но проблематично, если вы затем отправляете VideoFrame в VideoEncoder , где временные метки используются для управления битрейтом.

Политика прекращения поддержки

Чтобы поддерживать работоспособность платформы, мы иногда удаляем из веб-платформы API, которые отработали свой срок. Может быть много причин, по которым мы должны удалить API, например:

  • Они заменены более новыми API.
  • Они обновляются с учетом изменений в спецификациях, чтобы обеспечить согласованность и согласованность с другими браузерами.
  • Это ранние эксперименты, которые так и не были реализованы в других браузерах и, таким образом, могут увеличить нагрузку на веб-разработчиков.

Некоторые из этих изменений затронут очень небольшое количество сайтов. Чтобы устранить проблемы заранее, мы стараемся заранее уведомлять разработчиков, чтобы они могли внести необходимые изменения для поддержания работоспособности своих сайтов.

В настоящее время в Chrome существует процедура прекращения поддержки и удаления API , по сути:

  • Объявите об этом в списке рассылки Blink-dev .
  • Устанавливайте предупреждения и указывайте временные рамки в консоли Chrome DevTools, когда на странице обнаруживается использование.
  • Подождите, отслеживайте, а затем удаляйте эту функцию по мере снижения ее использования.

Вы можете найти список всех устаревших функций на сайте chromestatus.com, используя устаревший фильтр , а также удаленные функции, применив удаленный фильтр . В этих постах мы также попытаемся обобщить некоторые изменения, рассуждения и пути миграции.