Chrome Dev Summit – сводка по открытой веб-платформе

Грег Саймон и Эрик Сайдель

Blink — это движок рендеринга Chrome с открытым исходным кодом. Команда Blink развивает веб и решает проблемы, с которыми сталкиваются разработчики.

С момента нашего запуска в апреле был начат ряд скрытых улучшений.

Первое, что мы сделали, это удалили половину нашего источника, который нам не обязательно был нужен. Мы все еще не закончили! И мы не делаем это вслепую: удаление кода основано на анонимно предоставленной совокупной статистике от пользователей Chrome, которые согласились на предоставление отчетов.

Мы публикуем новый API для разработчиков каждые шесть недель: так же, как и график поставок Chrome.

Одно большое изменение, которое мы сделали, когда отделились от Blink, заключалось в добавлении системы намерений: каждый раз, прежде чем мы собираемся изменить веб-платформу, мы отправляем публичное объявление разработчикам Blink о нашем намерении добавить или удалить функцию. Затем мы идем и кодируем ее! И затем, на следующий день после проверки функции, она уже поставляется в наших сборках Canary. Эта функция отключена по умолчанию, но вы можете включить ее с помощью about:flags.

Затем в нашем общедоступном списке рассылки мы объявляем о намерении отправить .

На chromestatus.com вы можете увидеть функции, над которыми мы работали, функции, которые мы отправили, и те, которые мы планируем отменить. Вы также можете проверить блог Chromium Releases , в котором есть ссылки на ошибки и на нашу панель управления трекером.

Еще одно большое изменение заключается в том, что мы удаляем префиксы WebKit. Цель состоит не в том, чтобы использовать префиксы Blink, а в том, чтобы иметь флаги времени выполнения (а не только флаги времени компиляции).

Android WebView был большой проблемой – но HTML5Test показывает, что дела идут лучше. Мы намного ближе к десктопу в плане наличия одного набора API веб-платформы везде (Web Audio – отличный пример этого!)

Но как работает колбасная машина? Каждое изменение, которое мы вносим в Blink, немедленно проходит более 30 000 тестов, не говоря уже обо всех тестах Chromium, которые запускаются дополнительно позже. Мы используем 24-часовой шерифинг с тысячами ботов, тысячами бенчмарков и системами, которые бросают миллионы сломанных веб-страниц в наш движок, чтобы убедиться, что он не упадет. Мы знаем, что мобильные устройства значительно медленнее, и это то, над чем мы усердно работаем.

Так что же нового?

  • Веб-компоненты : ознакомьтесь с докладом Эрика Бидельмана!
  • Веб-анимация: сложная, синхронизированная, высокопроизводительная анимация, которая использует графический процессор везде, где это возможно.
  • Частичная компоновка: вычисляйте только то, что вам нужно!
  • CSS-сетка
  • Адаптивные изображения: srcset или srcN или ?
  • Более быстрое автоматическое изменение размера текста и единообразные субпиксельные шрифты
  • Skia, графическая система, используемая Blink, переходит с GDI на DirectWrite в Windows

Мы хотим знать, что вы скажете!

Если вы чувствуете C++ в своей крови и хотите писать C++ с нами, весь наш код открыт. Вам не нужно никому об этом рассказывать или проповедовать нам. Вы можете просто разместить патч или сообщить об ошибке !

Слайды: Мигание

Безопасность

Париса Тебриз

Сегодня к сети подключено больше людей, чем когда-либо прежде, и из большего количества мест.

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

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

Что такое SSL? Это сокращение от Secure Sockets Layer, и это криптографический протокол, разработанный для обеспечения безопасности связи через Интернет. Он гарантирует конфиденциальность с помощью шифрования и целостности, чтобы предотвратить слежку или вмешательство в ваше интернет-соединение. У SSL есть свои недостатки, но это ведущий способ — и на самом деле единственный способ — обеспечить любую безопасность передачи данных в Интернете.

По данным SSL Pulse , год назад уровень внедрения SSL составлял чуть менее 15%, сейчас этот показатель превышает 50%.

Две аббревиатуры:

  • TLS: для большинства намерений и целей то же самое, что и SSL. Если быть точным, SSL 3.1 был переименован в TLS, а TLS — это название стандарта IETF. Но они взаимозаменяемы!

  • HTTPS: это HTTP поверх SSL, просто наслоение возможностей безопасности SSL и стандартного HTTP. Сначала рукопожатие клиент-сервер, использующее криптографию открытого/закрытого ключа для создания общего ключа, который используется второй частью протокола SSL для шифрования связи.

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

Проблема в том, что пользователи редко вводят полный URL-адрес, указывающий HTTPS, или нажимают на ссылку, использующую HTTP. Хуже того, можно организовать атаку (wo)man-in-the-middle и заменить HTTPS на HTTP. Инструмент под названием SSLstrip, представленный в 2009 году, делает именно это. Firesheep с 2010 года просто прослушивал открытые сети Wi-Fi на предмет отправки файлов cookie в открытом виде: это означало, что вы могли прослушивать чат или входить в чей-то аккаунт Facebook.

Но SSL (относительно) дешев, быстр и прост в развертывании (посмотрите ssllabs.com и книгу Ильи Григорика High Performance Browser Networking). Закрепление открытого ключа предназначено для того, чтобы дать операторам веб-сайтов возможность ограничить, какие центры сертификации могут фактически выдавать сертификаты для их сайтов.

«В январе этого года (2010) Gmail перешел на использование HTTPS для всего по умолчанию. Для этого нам не пришлось развертывать никаких дополнительных машин и специального оборудования. На наших производственных машинах с интерфейсом SSL составляет < 1% нагрузки ЦП, < 10 КБ памяти на соединение и < 2% сетевых издержек…

Если вы сейчас прекратите читать, вам нужно запомнить только одно: SSL больше не требует больших вычислительных затрат».

Разгон SSL , Адам Лэнгли (Google)

Наконец, несколько ошибок, которые мы видим чаще всего:

  • Смешанный контент: сайты, которые используют HTTP и HTTPS. Ваш пользователь будет раздражаться, потому что ему придется нажимать кнопку разрешения для загрузки контента. (Chrome и Firefox на самом деле запрещают смешанный контент из iframes.) Убедитесь, что все ваши ресурсы на странице HTTPS загружаются по HTTPS, используя относительные или относительные к схеме URL-адреса, например <style src="//foo.com/style.css">
  • Небезопасные файлы cookie: отправляются в открытом виде через HTTP-соединение. Избегайте этого, установив атрибут secure в заголовках файлов cookie. Вы также можете использовать новый заголовок "Strict Transport Security", чтобы потребовать SSL Transport Security (HSTS).

Выносы

  • Если вы заботитесь о конфиденциальности и целостности данных ваших пользователей, вам нужно использовать SSL. Это быстрее, проще и дешевле, чем когда-либо.
  • Избегайте распространенных ошибок реализации, таких как ошибки смешанного содержимого или неправильная установка битов заголовка HTTP.
  • Используйте относительные или относительные по схеме URL-адреса.
  • Ознакомьтесь с некоторыми новыми интересными функциями, такими как HSTS и закрепление сертификатов.

Слайды: Есть SSL?

API-интерфейсы мультимедиа для многоустройственного Интернета

Сэм Даттон и Джен Линден

Наряду с распространением новых устройств и платформ в Интернете, мы наблюдаем огромный рост аудио, видео и общения в реальном времени. Онлайн-медиа трансформируют способ потребления медиа всех видов.

Исследование правительства Великобритании показало, что 53% взрослых «многозадачны в медиа» во время просмотра телевизора: используют мобильные устройства для обмена и потребления медиа. Во многих странах просмотр телевидения снизился, а просмотр онлайн вырос. Например, в Китае в 2012 году только 30% домохозяйств в Пекине смотрели телевизор, по сравнению с 70% в 2009 году. Согласно W3C Highlights 2013 , «за последний год просмотр видео на мобильных устройствах удвоился . В этом году в США среднее время, проводимое с цифровыми медиа в день, превзойдет просмотр телевизора . Просмотр больше не является пассивным действием. В США 87% потребителей развлечений говорят, что используют по крайней мере одно устройство со вторым экраном во время просмотра телевизора». По данным Cisco , «видео ... будет находиться в диапазоне от 80 до 90 процентов мирового потребительского трафика к 2017 году». Это равно почти миллиону минут видео каждую секунду.

Итак, что у нас есть для веб-разработчиков? Экосистема медиа-API для открытого Интернета: стандартизированные, совместимые технологии, работающие на нескольких платформах.

Выносы

  • WebRTC обеспечивает связь в реальном времени в браузере и теперь широко поддерживается на мобильных устройствах и настольных компьютерах. В общей сложности уже более 1,2 миллиарда конечных точек WebRTC.
  • Web Audio предоставляет сложные инструменты для синтеза и обработки звука.
  • Web MIDI, интегрированный с Web Audio, позволяет взаимодействовать с MIDI-устройствами.
  • Аудио- и видеоэлементы теперь поддерживаются более чем в 85% мобильных и настольных браузеров .
  • Расширения Media Source Extensions можно использовать для адаптивной потоковой передачи и сдвига во времени.
  • EME позволяет воспроизводить защищенный контент.
  • Транскрипты, титры и элемент дорожки позволяют использовать субтитры, хронометрированные метаданные, глубокие ссылки и глубокий поиск.

Слайды: API-интерфейсы мультимедиа для многоустройственного Интернета