Узнайте, как Chrome удаляет функции, которые работают некорректно, сводя к минимуму неудобства для конечных пользователей и разработчиков.
Chrome постоянно добавляет новые функции и возможности, но иногда некоторые функции приходится удалять.
Удаление ненужных функций может снизить сложность кода браузера и помочь обеспечить его безопасность за счет уменьшения потенциальных векторов атак. Тщательно скоординированный подход на всей веб-платформе гарантирует, что производители браузеров смогут удалять неэффективные функции, минимизируя при этом неудобства для конечных пользователей и разработчиков.
Удаление функций браузера
Если бы браузеры удаляли функции без предупреждения, это привело бы к сбоям в работе веб-сайтов и затруднило бы разработчикам планирование перехода на альтернативные технологии. Вместо этого производители браузеров применяют систематический подход, предоставляя предупреждения, вспомогательные ресурсы и подробные графики задолго до удаления функций.
Устаревание и удаление
Процесс удаления функции из Chrome состоит из двух основных этапов:
- Устаревание: Предупредите разработчиков о планируемом удалении функции и предоставьте ресурсы для помощи сайтам в переходе на альтернативные решения. Предупреждения отображаются на панели «Проблемы» в инструментах разработчика Chrome при использовании устаревших функций, а информация о сроках устаревания и поддержке публикуется в разделе «Состояние платформы Chrome» , а также в статьях и сообщениях блога Chrome для разработчиков .
- Удаление : Первоначально отключите эту функцию по умолчанию, но разрешите разработчикам временно продолжать её использовать, установив соответствующий флаг в Chrome или приняв участие в пробном периоде отказа от неё . Как только сайты перестанут зависеть от отключенной функции, удалите соответствующий код.
Намерения моргания
Веб-браузеры на основе Chromium , такие как Chrome, используют механизм рендеринга Blink для преобразования кода и ресурсов в веб-страницы, которые можно просматривать и с которыми можно взаимодействовать. Когда инженеры хотят внести изменения в Blink, они отправляют сообщения в список рассылки blink-dev, чтобы получить разрешение на продолжение работы. Эти сообщения в списке рассылки называются Blink Intents.
Когда инженеры намереваются объявить о прекращении поддержки, а затем удалить функцию из Blink, они публикуют сообщение о намерении объявить о прекращении поддержки в списке рассылки blink-dev , а затем сообщение о намерении удалить. Эти два сообщения часто объединяются в одно: « Намерение объявить о прекращении поддержки» и «Намерение удалить» .
Намерение обесценить
Сообщение «Intent to Deprecate» (Намерение об устаревании) публикуется инженерами Blink, когда они хотят предупредить разработчиков о планируемом удалении той или иной функции браузера. На данный момент функция останется доступной, но разработчикам будет предоставляться поддержка и информация через Chrome DevTools, а также в сообщениях блога , на chromestatus.com и в документации по функции на MDN и в других местах.
Пример: Намерение устареть: События мутации
Намерение удалить
Сообщение «Намерение удалить» (Intent to Remove) публикуется, когда инженеры Blink намереваются деактивировать функцию и удалить соответствующий код. Часто «Намерение удалить» объединяется с «Намерением устареть» (Intent to Deprecate), образуя «Намерение устареть и удалить» (Intent to Deprecate and Remove).
Пример: Намерение объявить о прекращении поддержки и удалении: Web SQL
Свести к минимуму неудобства для пользователей и разработчиков.
Chrome по возможности избегает удаления некоторых функций.
Инженеры Chrome всегда анализируют показатели использования функций и другие данные, прежде чем приступать к их удалению. Функция будет удалена только в том случае, если, например, ею пользуется очень небольшая часть пользователей и существуют лучшие альтернативы, или если изменения в экосистеме приводят к тому, что эта функция может представлять серьезные уязвимости в системе безопасности. Функция обычно не удаляется из Chrome, если другие браузеры планируют продолжать ее поддерживать: удаление функций должно быть скоординировано между движками браузеров .
Помимо сообщений в списке рассылки blink-dev , информация об устаревших функциях публикуется в блоге разработчиков Chrome . Предупреждения и информация о поддержке также предоставляются в инструментах разработчика Chrome и в документации по функциям. Сроки обновления информации об устаревших функциях также публикуются в записи на chromestatus.com .
Временно включить устаревшую функцию.
Существует несколько способов временно восстановить доступ к той или иной функции после того, как её поддержка по умолчанию была отключена в Chrome.
Испытание на амортизацию
Это своего рода пробный период , позволяющий временно повторно включить функцию, которая была изменена или отключена по умолчанию до удаления. Например, начиная с Chrome 127, была удалена поддержка событий мутации . Сайты, которым требовалось дополнительное время перед переходом на использование этих событий, могли зарегистрироваться для участия в пробном периоде , чтобы временно повторно включить эти события на указанных сайтах. Это давало разработчикам дополнительное время для внедрения альтернативных решений.Политика Chrome для предприятий
Иногда предоставляется политика, позволяющая сайтам временно возобновить использование устаревшей или удаленной функции. Например, для версий Chrome с 124 по 136 была предоставлена политикаMutationEventsEnabled.Хромовый флаг
Для некоторых устаревших функций Chrome предоставляет временный доступ к ним для локальной разработки. Например, флагenable-unsafe-swiftshaderбыл предоставлен, чтобы позволить разработчикам повторно включить использование SwiftShader в качестве резервного варианта для программного WebGL.
Примите меры
Разработчику необходимо быть готовым к изменениям веб-платформы.
Вы можете проверять примечания к выпуску каждой новой версии каждого браузера, но также следует использовать каналы предварительной стабильной версии браузера для тестирования и адаптации ваших сайтов, чтобы они были готовы к предстоящим изменениям, включая удаление старых версий. Как минимум, убедитесь, что ваша команда разработчиков использует как канал Chrome Dev , так и Chrome Stable для доступа к сайтам, над которыми вы работаете. Как разработчик, вы можете одновременно использовать несколько каналов. Это позволяет тестировать сайт с будущими версиями Chrome, а также проверять его работу в Chrome Stable, который, вероятно, будет использоваться подавляющим большинством ваших пользователей.
Регулярно проверяйте консоль инструментов разработчика Chrome на наличие предупреждений об устаревших функциях. Инструменты разработчика предоставляют информацию и ссылки на ресурсы, которые помогут вам отказаться от устаревших функций. Также следует использовать несколько каналов Chrome для автоматического и ручного тестирования.