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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Слайды: Мигать

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вынос

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

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

Медиа API для Интернета с несколькими устройствами

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

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

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

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

Вынос

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

Слайды: Медиа API для работы в Интернете с несколькими устройствами