Что такое намерения Blink?

Когда инженеры хотят внести изменения в механизм рендеринга Blink , они отправляют сообщение в список рассылки blink-dev, чтобы получить разрешение на продолжение работы. Эти сообщения в списке рассылки называются Blink Intents .

Веб-браузеры на основе Chromium используют механизм рендеринга Blink для преобразования кода и ресурсов в веб-страницы, которые вы можете просматривать и с которыми можете взаимодействовать.

Список рассылки blink-dev .

Узнайте, как работают Blink Intents, почему они важны и как новые функции появляются в Blink.

Chromium — это проект браузера с открытым исходным кодом, на основе которого созданы Chrome и некоторые другие браузеры и фреймворки. Blink — это движок рендеринга, используемый Chromium.

Чтобы новая функция попала в Blink, она должна пройти через открытый процесс разработки проекта Chromium. «Новая функция» — это любое изменение или дополнение к коду или архитектуре браузера. Это может быть новый API JavaScript, значительное повышение производительности кода Blink или какое-либо другое изменение внешнего вида или функциональности браузера.

Открытый и основанный на сотрудничестве процесс

Chromium — это огромный и сложный проект с тысячами участников. Каждый этап внесения изменений в Chromium предоставляет возможность пригласить более широкую веб-экосистему высказать свои комментарии по поводу дизайна и реализации.

По возможности новые функции должны быть совместимы на разных веб-платформах, а не реализованы исключительно в одном браузере. Веб-разработчики не хотят сюрпризов: когда браузеры работают не так, как ожидается, или когда приходится писать разный код для разных браузеров и платформ. Blink Intents помогают структурировать и регулировать процесс изменений, делая их более предсказуемыми и менее неожиданными, что очень полезно для веб-разработчиков.

Для удобства пользователей производителям браузеров необходимо следить за тем, чтобы изменения не приводили к сбоям в работе веб-сайтов. Владельцы сайтов довольно часто прекращают их поддержку. Некоторые сайты не обновлялись десятилетиями! Производителям браузеров следует учитывать это при внесении изменений, которые могут привести к поломкам.

От идеи к предложению

Предложения по изменениям и обновлениям веб-платформы возникают в результате исследований: консультаций с пользователями, представителями бизнеса, разработчиками браузеров, веб-разработчиками и другими заинтересованными сторонами. Эти исследования позволяют команде Chrome определить, чего не хватает платформе или что нужно изменить. Первоначально предложение по изменению или новой функции веб-платформы представляет собой просто текст на странице. Инженеры обмениваются документами для получения обратной связи и обсуждения со своими коллегами.

Пример: FedCM

Подробное описание FedCM на GitHub .

Федеративное управление учетными данными (FedCM) — это API, предлагающий ориентированный на конфиденциальность и удобный для пользователя подход к регистрации и входу в систему, известный как федеративная идентификация. Например, это относится к входу через Google и другие социальные сети.

Для создания API для браузера первым шагом является подготовка предложения для публичного обсуждения. Предложение FedCM было опубликовано на GitHub в качестве пояснения . Все желающие могут задавать вопросы или оставлять комментарии по поводу предлагаемых функций, создав задачу на GitHub в репозитории пояснения. Обратная связь может включать описания разработчиками дополнительных вариантов использования, ограничений, идей по улучшению или обещание поддержки.

После того как предложение будет принято органом по стандартизации, таким как W3C , заинтересованные стороны могут присоединиться к обсуждениям и посмотреть презентации в группах по веб-стандартам, например, в рабочих группах W3C .

При каждом этапе работы над новой функцией или изменением механизма рендеринга Blink инженеры публикуют сообщение в дискуссионной группе blink-dev , объясняя, что они намерены перейти к следующему этапу реализации этой функции. Эти сообщения называются «намерениями». Любой желающий может подписаться на группу blink-dev, чтобы получать уведомления о ходе разработки новых функций Blink, или подписаться на обновления для отдельной функции.

Намерение создать прототип

На этом этапе инженеры Chromium могут приступить к реализации функции. Это означает, что прототип функциональности функции может быть доступен для тестирования разработчиками за флагом функции , сначала в Chrome Canary, а затем и в других каналах выпуска. Любой пользователь может установить флаг на странице chrome://flags, чтобы активировать и протестировать функцию в своем браузере.

Однако не все флаги можно установить на странице chrome://flags. Для более точного управления можно запустить Chrome из терминала, используя флаги командной строки. Имейте в виду, что некоторые новые функции становятся доступны только после их тестирования в Chrome Canary — хотя это довольно редкое явление. У некоторых функций нет собственного флага, но они становятся доступными, если включен флаг experimental-web-platform-features . Как правило, это относится к «небольшим» функциям, реализация которых занимает не более трех-шести месяцев.

Сбор отзывов о прототипах

После начала прототипирования новой функции инженеры Chromium приглашают к обсуждению и ранним экспериментам. Обратная связь на этом этапе имеет решающее значение для проверки и доработки предложений. Раздел "Ошибки Chromium" — это место, где можно оставлять комментарии по поводу реализации в Chrome.

Создайте заявку в системе отслеживания ошибок Chromium .

Цель эксперимента: тестирование в реальном мире

Если инженеры Chrome хотят запросить запуск пробной версии в Origin , следующим шагом будет размещение сообщения о намерении провести эксперимент на blink-dev.

Намерение провести эксперимент для FedCM .

Пробные версии — это способ протестировать новую или экспериментальную функцию веб-платформы. Вы регистрируетесь для участия в пробной версии функции, а затем получаете токен для пробного периода. Функция будет активирована на любой странице, предоставляющей этот токен.

Список доступных пробных версий Chrome Origin .

Для продвижения реализации той или иной функции владельцы API Blink должны дать свое одобрение, ответив на намерение сообщением типа «мне это нравится», известным как LGTM.

Владельцы API Blink — это небольшая группа разработчиков Chromium, обладающих большим опытом работы с веб-платформой и её API, и признанных сообществом Blink как добросовестные участники, приверженные миссии и ценностям Blink. Помимо одобрения (или отклонения!) новых функций, владельцы API контролируют сам процесс создания намерений Blink.

Для подачи заявки на проведение эксперимента необходимо получить как минимум одно одобрение на запуск (LGTM) от владельцев API.

LGTMs в сообщении FedCM о намерении провести эксперимент .

Ценность испытаний происхождения

Разработчики могут зарегистрироваться для участия в первоначальной пробной версии функции, а затем протестировать её в реальных условиях, с реальными пользователями — без необходимости каких-либо действий со стороны пользователей для активации функции. Разработчики могут делиться результатами своих тестов, что предоставляет ценную информацию и данные для дальнейшего совершенствования и развития функции.

Планирование отгрузки: заключительный этап

Сигнал «Намерение к выпуску» означает, что функция завершена и готова к внедрению для общего доступа всех пользователей Chrome Stable без необходимости использования флага или пробного токена. Для начала реализации сигнал «Намерение к выпуску» должен получить три подтверждения LGTM от владельцев API.

Внедрение новых функций

После утверждения функция объединяется с предстоящим релизом и затем продвигается по каналам выпуска Chrome . Тестирование и внедрение новых функций часто осуществляется с особой тщательностью. Некоторые функции внедряются постепенно, для все большего числа пользователей. Функции также могут быть отменены и доработаны, если возникнут неожиданные побочные эффекты.

Управление устареванием и удалением

Существуют ещё два типа намерений Blink:

  • Намерение обесценить
  • Намерение удалить

Возможно, это прозвучит немного грустно, но на самом деле это крайне важно для успеха разработки Blink.

Сообщение о намерении прекратить поддержку функции публикуется инженерами, когда они хотят предупредить разработчиков о том, что та или иная функция планируется к устареванию. Например, путем предоставления поддержки и информации об устаревании в консоли инструментов разработчика Chrome.

Сообщение о намерении удалить код публикуется, когда инженеры планируют отключить его по умолчанию.

LGTM сообщает о намерениях прекратить поддержку blink.dev .

Важность амортизации и удаления

Устаревание и удаление функций имеют решающее значение для здоровья веб-платформы. Они позволяют Chrome удалять функции, которые плохо работают для конечных пользователей или веб-разработчиков, и помогают снизить сложность кодовой базы. Например, проблемы с дизайном AppCache были обнаружены после его использования на рабочих сайтах в стабильных браузерах, и в итоге API был удален. Устаревание и удаление также помогают обеспечить безопасность Chrome, уменьшая потенциальные векторы атак.

Как и в случае со всеми интентами Blink, команда Chrome старается подходить к принятию решений с осторожностью. Перед тем, как продолжить, они анализируют показатели использования функций и другие данные. Критерии удаления функций невероятно высоки, и функция будет удалена только в том случае, если ею пользуется очень, очень небольшая часть пользователей и если существуют лучшие альтернативы.

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

План развития новых функций Chrome на сайте chromestatus.com .

Чтобы следить за новыми функциями, подпишитесь на блог Chromium и присоединитесь к дискуссионной группе blink-dev . В группе может быть много писем, поэтому вам, возможно, будет удобнее подписаться на один конкретный интент. Вы можете посмотреть таблицу с интентами Blink .

Если вам действительно нравится Blink Intents, вы можете даже расширить функциональность автоматизированных сервисов Blink Intent Tracker .

Следующие шаги

Ознакомьтесь со статьей «Что такое каналы выпуска Chrome?» .