Узнайте, как 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 127 были удалены события мутации . Сайты, которым требовалось дополнительное время перед удалением этих событий, могли зарегистрироваться для участия в пробном периоде устаревания , чтобы временно повторно включить эти события на определенных сайтах, предоставив им больше времени для перехода на альтернативные функции.
Для некоторых устаревших функций предоставляется специальный флаг Chrome , обеспечивающий временный доступ к этой функции для отдельного пользователя, например, для разработчиков, работающих над миграцией на альтернативные решения.
Примите меры
Разработчику необходимо быть готовым к изменениям веб-платформы.
Вы можете проверять примечания к выпуску каждой новой версии каждого браузера, но также следует использовать каналы предварительной стабильной версии браузера для тестирования и адаптации ваших сайтов, чтобы они были готовы к предстоящим изменениям, включая удаление старых версий. Как минимум, убедитесь, что ваша команда разработчиков использует как канал Chrome Dev , так и Chrome Stable для доступа к сайтам, над которыми вы работаете. Как разработчик, вы можете одновременно использовать несколько каналов. Это позволяет тестировать сайт с будущими версиями Chrome, а также проверять его работу в Chrome Stable, который, вероятно, будет использоваться подавляющим большинством ваших пользователей.
Регулярно проверяйте консоль инструментов разработчика Chrome на наличие предупреждений об устаревших функциях. Инструменты разработчика предоставляют информацию и ссылки на ресурсы, которые помогут вам отказаться от устаревших функций. Также следует использовать несколько каналов Chrome для автоматического и ручного тестирования.