Опубликовано: 3 апреля 2025 г.
Когда приходит время внедрять новую функцию в Chrome, существует множество сдержек и противовесов, чтобы обеспечить работающую, совместимую и надежную функцию. Одним из таких балансов являются эксперименты Финча. Не позволяйте части названия «эксперимент» обмануть вас, заставив думать, что это небезопасно, все совсем наоборот. Развертывания Finch помогают нам безопасно добавлять функции, которые потенциально могут вызвать проблемы совместимости, поскольку они позволяют нам быстро отключить функцию, если мы столкнемся с непредвиденными проблемами. В этой статье объясняется, как и почему мы используем Finch для некоторых выпусков функций Chrome.
Как правило, включить функцию в Chrome просто означает переключить логическое значение с выключенного на включенное внутри Chrome. Когда новая функция «поставляется», это просто означает, что это логическое значение по умолчанию изменено на «включено» для всех пользователей. Есть несколько способов сделать это:
- Включите функцию «в коде» : это означает, что сам исполняемый файл Chrome имеет настройку, которая включена по умолчанию.
- Включите функцию «пробная версия Origin» . Пробная система Origin позволяет определенному сайту включить всех пользователей Chrome в эксперимент, который включает определенную функцию только на этом сайте.
- Включить функцию «с помощью Finch» . Chrome периодически получает файл конфигурации с сервера, и этот файл может содержать инструкции по включению или отключению функции.
- «Выключатель Finch» : является противоположностью включения «использования Finch». В этом случае функция включается «в коде», но затем отключается с помощью системы Finch, обычно из-за проблем, обнаруженных после запуска.
Варианты использования Финча
Темой этой статьи в блоге является Finch, поэтому мы не будем больше обсуждать включение «в коде» или «исходную пробную версию». Но у Finch есть несколько интересных вариантов использования.
Тестирование на небольшой группе пользователей (A/B-тестирование).
Часто Finch используется для проведения « A/B-тестирования » функции или оптимизации. В этом случае функция включена для небольшого процента пользователей, поэтому можно собрать данные о разнице в производительности, поведении или использовании, когда функция включена и отключена.
Примером A/B-тестирования является запуск спекулятивного декодирования изображений . Это улучшение производительности, которое не должно быть заметно ни разработчикам, ни пользователям, за исключением того, что Chrome загружает страницы быстрее. Но чтобы убедиться, что ничего неожиданного не произошло, а также иметь возможность точно измерить влияние на производительность, мы использовали Finch для A/B-тестирования.
Отключите проблемную функцию
В целях безопасности продукта и удобства пользователей Chrome может использовать систему Finch для удаленного отключения проблемных функций, которые были включены «в коде». Например, если функция была включена по умолчанию, но проблемы возникли только после того, как Chrome достиг статуса «Стабильный», нам нужен способ быстро отключить эту функцию, чтобы вернуть пользователей и компании обратно в безопасное состояние. Это может быть необходимо, если в функции есть необнаруженные ошибки или когда функция по непредвиденным причинам нарушает работу существующих сайтов.
Включайте рискованные функции более безопасным способом
Для большинства функций, которые запускает Chrome, риск невелик, поскольку мы можем протестировать и убедиться, что новый код работает на всех сайтах.
Однако иногда запуск функций может быть весьма рискованным из-за неизвестных проблем совместимости или других сложных взаимодействий. В этом случае систему Finch можно использовать для фактического включения этой функции, а не просто держать ее в резерве в качестве аварийного выключателя.
Например, «расслабление» парсера HTML было изменением, связанным с новой функцией настраиваемого выбора, которая позволяла размещать внутри элемента <select>
больше контента, чем раньше. Поскольку вполне возможно, что это изменение может привести к поломке существующих сайтов, нам нужно было внедрять его осторожно.
Включение функций с помощью Finch может быть безопаснее, чем использование Finch для их удаления, поскольку Finch не достигает 100% пользователей по разным причинам. Например, у некоторых корпоративных пользователей есть политика, которая полностью запрещает настройку Finch. Эти пользователи останутся под угрозой в случае, если функция будет включена в коде, а затем произойдет аварийное переключение с помощью Finch, поскольку эти пользователи не получат настройки Finch и продолжат активировать эту функцию. Вместо этого включив эту функцию с помощью Finch, мы можем гарантировать возможность отключить ее абсолютно для всех пользователей в случае чрезвычайной ситуации.
Как проверить, участвуете ли вы в эксперименте Финча?
Пользователям сложно сделать это напрямую. Рекомендуемый способ — связаться с инженером Chrome (чаще всего в случае ошибки Chromium ) и отправить ему «список вариантов». Это список специальных закодированных версий всех настроек Finch для данного браузера. Его можно легко получить:
- Перейдите по адресу
chrome://version
. - Скопируйте весь текстовый список (да, он может быть довольно длинным), указанный рядом с «Активные варианты».
- Вставьте этот текст в текстовый файл (например,
variations.txt
) и прикрепите его к ошибке.
С помощью этого списка вариантов инженеры Chrome могут расшифровать его и посмотреть, какие функции включены или отключены в вашем браузере.
Что произойдет, когда эксперимент Финча достигнет 100% и будет готов к продолжению?
Как только мы убедились, что наш эксперимент «успешен» и рассматриваемая функция не представляет риска для разработчиков или пользователей, мы всегда включаем эту функцию «в коде». На этом этапе можно безопасно завершить настройку конфигурации Finch, чтобы она перестала оказывать влияние на браузеры после версии, в которой эта функция была включена в коде.