Представляем Chrome Dev Insider

Бен Гэлбрейт
Ben Galbraith

Разработчики часто говорят нам, что сложно следить за изменениями в сети и понимать, почему эти изменения происходят. Сегодня мы начинаем новую серию под названием Chrome Dev Insider , в которой мы поделимся (1) тем, что круто и интересно, (2) информацией о том, как мы приняли решение по ключевой теме (например , об изменении FLOC ) или подходе. нашу работу с экосистемой (например , Interop 2022 ) и (3) любые действительно важные вещи, о которых вам нужно знать (например , изменения в строках пользовательского агента ).

Когда мы делимся тем, над чем работаем, это будет в контексте наших четырех приоритетов на 2022 год:

  • Обеспечение приятного пользовательского опыта: сделайте все интуитивно понятным для пользователей; будь то производительность, транзакции, идентичность или переходы.
  • Расширение возможностей Интернета: поддержка развивающейся роли Интернета от платформы потребления контента до платформы для широкого спектра возможностей, включая те, которые требуют глубокой интеграции на уровне ОС и оборудования.
  • Упрощение веб-разработки: упростите принятие решений и повысьте производительность разработчиков.
  • Улучшение конфиденциальности в Интернете: оправдайте ожидания веб-пользователей в отношении лучшей защиты конфиденциальности данных в условиях постоянно растущей сложности разработчиков в отслеживании и таргетировании.

В новостях: Interop 2022

Планируя наши планы, мы обращаем внимание на отзывы разработчиков , чтобы, среди прочего, понять основные болевые точки и потребности веб-разработчиков. Ключевой темой, которая постоянно проявляется, является совместимость браузеров , благодаря которой взаимодействие во всех браузерах работает одинаково. В течение прошлого года мы работали с экосистемой над решением этой темы в рамках нашего приоритета «упрощение веб-разработки».

В прошлом году Microsoft, Chrome и участники экосистемы объявили о конкурсе Compat 2021 , в результате которого все популярные браузерные движки (Chromium, Gecko и Webkit) получили оценку 90+% в пяти ключевых областях , определенных на этот год. Помимо прочего, Compat 2021 привел к созданию прочной основы для таких мощных функций, как CSS Grid ( 12% использования и стабильный рост ) и CSS Flexbox ( 77% использования ).

А в прошлом месяце Apple, Bocoup, Google, Igalia, Microsoft и Mozilla объединились в качестве сторонников , чтобы решить основные проблемы совместимости браузеров, выявленные веб-разработчиками, и согласовать общий тест. Результатом стал Interop 2022 — проект, целью которого является привнесение большей однородности в платформу. Тест фокусируется на 15 приоритетных областях , определенных разработчиками как ключевые для повышения их производительности.

Инсайдерская информация: работа с коллегами по браузерам

Думая о Interop 2022, я поговорил с Робертом Найманом и Филипом Йегенстедтом , которые участвовали в этих беседах, чтобы узнать внутреннюю историю. Вот версия редактора того, как это получилось.

Каково происхождение этой инициативы?

Роберт: Все началось еще в 2019 году, когда мы провели опрос MDN DNA 2019 . Проблемы совместимости явно выделяются как основная проблема для разработчиков, создающих веб-приложения, и мы более подробно рассмотрели их в отчете MDN Browser Compatibility Report 2020 . Это дало нам достаточно информации и практических данных, чтобы начать работу над Compat 2021 , что, в свою очередь, привело как к продолжению этой работы, так и к расширению ее масштабов с помощью Interop 2022.

Филипп: Еще хотелось бы упомянуть тесты веб-платформы и State of CSS 2021 . На протяжении многих лет мы тесно сотрудничали с другими поставщиками браузеров при тестировании с использованием WPT, и нам очень хотелось в этом поучаствовать. Тесты для этих функций в основном уже написаны, поэтому нам просто нужно было просмотреть тесты и добавить недостающее покрытие. Google вложил много средств в wpt.fyi, но мы также должны поблагодарить Mozilla за то, что WPT достиг такого успеха, каким он является сегодня. Mozilla, конечно, также сыграла большую роль в исследованиях ДНК MDN. Помимо этого, есть еще State of CSS 2021. Чтобы реализовать такой проект, как Interop 2022, нам нужны свежие данные о потребностях веб-разработчиков, поэтому мы работали с сопровождающим опроса Сашей, чтобы включить несколько новых вопросов о проблемах совместимости браузеров. Это действительно помогло нам в процессе планирования Interop 2022.

Есть ли какие-нибудь уроки или отзывы о Compat 2021?

Роберт: Было действительно полезно измерять и получать оценки, а также понимать , как работает каждый движок браузера, чтобы мы могли следить за прогрессом и обязательно обсуждать и решать проблемы, которые были неясны или нуждались в приоритезации. Мы также быстро поняли, что «Interop» — лучшее название для этой инициативы. Термины «совместимость» и «взаимодействие» обычно различаются поставщиками браузеров, где «совместимость» относится к совместимости сайтов, а «взаимодействие» относится к двум или более браузерам, ведущим себя одинаково. В этой терминологии речь идет о совместимости, и поэтому проект соответствует этому названию.

Каково наше видение здесь?

Роберт: Чтобы Интернет оставался открытым, разнообразие браузеров и механизмов рендеринга имеет решающее значение. К сожалению, в настоящее время это дорого обходится нашим разработчикам, которым приходится поддерживать разные уровни поддержки функций в каждом движке. Наше видение заключается в том, что разработчики рассматривают веб-платформу как наиболее жизнеспособный и наиболее привлекательный выбор для своих нужд и что они могут сосредоточиться на создании наилучшего возможного опыта, а не тратить много времени на решение проблем совместимости. И совершенно очевидно, что для достижения этой цели наиболее востребованные функции должны быть реализованы во всех основных браузерных движках, чтобы действительно позволить разработчикам добиться успеха на веб-платформе.

Как нам коллективно двигаться вперед, когда браузеры с (иногда) разными целями объединяются?

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

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

Возвращаясь к Interop 2022, увидим ли мы в какой-то момент в конвейере появление функций, не связанных с дизайном или макетированием?

Филипп: Абсолютно! Interop 2022 не ограничивался функциями стиля и макета, но в конечном итоге очень сильно опирался на CSS. Частично потому, что State of CSS 2021 был свежим, но также и потому, что веб-разработчики сказали нам, что именно здесь у них больше всего проблем с различиями между браузерами. Множество областей внимания, таких как элементы форм и диалогов, выходят за рамки CSS, и мы также предпринимаем некоторые усилия по исследованию редактирования API и событий указателя и мыши. Я надеюсь, что к Interop 2023 у нас будет больше свежих данных о потребностях разработчиков в Интернете, и мы добавим больше таких функций.

Ключевые предстоящие изменения

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

Ниже указаны сроки, когда мы ожидаем, что эти изменения произойдут. Однако вполне возможно, что версии выпуска функций могут измениться.

Сокращение пользовательского агента

Заголовок User-Agent и связанные с ним JS-интерфейсы передают не только полезную информацию о браузере и устройстве, но также несут с собой наследие происхождения и неточную информацию. Более проблематичным, чем почти бесконечное количество ошибок анализа строк UA, является тот факт, что они пассивно отправляются на серверы для всех запросов навигации и подресурсов. Это представляет собой примерно 10 бит энтропии, которую серверы могут использовать для создания стабильных идентификаторов отслеживания, когда пользователи перемещаются по сети.

Наш текущий план состоит в том, чтобы сократить существующую строку UA, продолжив поставлять основную версию браузера с низкой энтропией, название платформы и мобильность , заморозив информацию с высокой энтропией . Для случаев использования, требующих дополнительной информации, кроме содержащейся в заголовке, мы поставляем API User-Agent Client Hints, начиная с Chrome 89.

Мы провели пробную версию Origin в течение 6 месяцев для экспериментов и получения отзывов и были рады, что не получили никаких отзывов о поломке, несмотря на то, что у нас было более 200 участников.

API доступа к локальным шрифтам

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

Локальные шрифты уже давно известны как вектор отпечатков пальцев. Хотя этот новый API не расширяет возможности использования шрифтов для снятия отпечатков пальцев, Chrome требует, чтобы пользователь предоставил новое разрешение "local-fonts" для сайта, прежде чем он сможет использовать новый API локального доступа к шрифтам.

В будущем мы планируем потребовать предоставления такого же разрешения «local-fonts» перед использованием любого другого API, обеспечивающего доступ к локальным шрифтам.

Заставить BFCache работать с Cache-control: no-store

Мы обнаружили значительную возможность улучшить частоту, с которой кэш «Назад/Вперед» может обеспечивать мгновенную навигацию вперед/назад. Для этого необходимо изменить поведение BFCache на страницах, обслуживаемых с HTTP-заголовком Cache-control: no-store . У нас есть публичное предложение, призванное предотвратить значительные неожиданности путем мониторинга различных сигналов (например, удаление страниц из BFCache при каждом изменении файлов cookie только для HTTP) и исключений (например, групповая политика для клиентов Enterprise/Edu) для уникальных контекстов. Это сложная, но захватывающая возможность, и мы будем рады дополнительному изучению и отзывам!

  • Сроки: выход Chrome 104 (22 июля) при условии отсутствия серьезных сюрпризов.
  • Призыв к действию: ознакомьтесь с предложением для получения более подробной информации, в том числе о том, как обеспечить реализацию незавершенной работы, а также о способах обмена отзывами, например о реальных сценариях, в которых наш подход может создать новые препятствия.

Я надеюсь, что благодаря этой серии статей я смогу дать нашему сообществу разработчиков ощущение сосредоточенности и связи, приблизив их к моей команде и их работе. Так что следите за обновлениями и следите за обновлениями в этом пространстве.

А пока, счастливого пути.

Что вы думаете о первом выпуске The Chrome Dev Insider? Поделитесь своим отзывом .