Chrome Dev Summit – Zusammenfassung der offenen Webplattform

von Greg Simon & Eric Seidel

Blink ist das Open-Source-Rendering-Modul von Chrome. Das Blink-Team entwickelt das Web weiter und geht die Probleme von Entwicklern an.

Seit der Einführung im April haben wir eine Reihe von Verbesserungen im Hintergrund eingeführt.

Zuerst haben wir die Hälfte der Quelle gelöscht, was wir nicht unbedingt gebraucht haben. Wir sind noch nicht fertig! Und das ist nicht alles: Die Codeentfernung basiert auf anonym erfassten zusammengefassten Statistiken von Chrome-Nutzern, die sich für die Berichterstellung entschieden haben.

Wir veröffentlichen alle sechs Wochen eine neue Entwickler-API, genau wie der Versandplan von Chrome.

Eine große Änderung bei der Abspaltung von Blink war das Hinzufügen eines Intents-Systems: Jedes Mal, bevor wir die Webplattform ändern, senden wir eine öffentliche Ankündigung an Blink dev, in der wir unsere Absicht bekannt geben, eine Funktion hinzuzufügen oder zu entfernen. Dann legen wir los und programmieren es! Und schon am nächsten Tag, nachdem die Funktion eingecheckt wurde, ist sie bereits in unseren Canary-Builds verfügbar. Diese Funktion ist standardmäßig deaktiviert, Sie können sie aber mit „about:flags“ aktivieren.

Anschließend geben wir in unserer öffentlichen Mailingliste unsere Versandabsicht bekannt.

Unter chromestatus.com kannst du dir die Funktionen ansehen, an denen wir gearbeitet haben, welche Funktionen wir veröffentlicht haben und welche wir einstellen werden. Im Chromium Releases-Blog finden Sie Links zu Programmfehlern und unserem Tracker-Dashboard.

Eine weitere große Änderung besteht darin, dass wir WebKit-Präfixe entfernen. Ziel ist es nicht, Blink-Präfixe zu verwenden, sondern Laufzeit-Flags und nicht nur Compile-Zeit-Flags zu haben.

Android WebView war eine große Herausforderung, aber HTML5Test zeigt, dass alles besser wird. Wir sind viel näher an Desktop-Computern, wenn es darum geht, überall eine Reihe von Webplattform-APIs zu haben (Web Audio ist ein großartiges Beispiel dafür!)

Aber wie funktioniert die Wurstmaschine? Jede einzelne Änderung, die wir an Blink vornehmen, wird sofort über 30.000 Tests durchgeführt, ganz zu schweigen von den Chromium-Tests, die später noch hinzukommen. Wir arbeiten rund um die Uhr mit Tausenden von Bots, Tausenden von Benchmarks und Systemen, die Millionen defekter Webseiten in unsere Suchmaschine einspeisen, um sicherzustellen, dass sie nicht umfallen. Wir wissen, dass die Geschwindigkeit auf Mobilgeräten deutlich langsamer ist, und arbeiten daran, dies zu verbessern.

Was ist neu?

  • Web Components: Vortrag von Eric Bidelman
  • Web Animations: Komplexe, synchronisierte Hochleistungsanimationen, die nach Möglichkeit die GPU verwenden.
  • Partial-Layout:Es wird nur das berechnet, was Sie benötigen.
  • CSS-Raster
  • Responsive Bilder: srcset oder srcN oder ?
  • Schnellere automatische Textgrößenanpassung und konsistente Subpixel-Schriftarten
  • Skia, das von Blink verwendete Grafiksystem, wird von GDI auf DirectWrite unter Windows umgestellt

Wir würden gerne wissen, was du zu sagen hast.

Wenn Sie C++ im Blut haben und mit uns C++ schreiben möchten, ist der gesamte Code offen. Sie müssen es niemandem mitteilen und auch nicht bei uns aktiv werden. Sie können einfach ein Patch posten oder einen Fehler melden.

Präsentationen:Blinken

Sicherheit

von Parisa Tabriz

Heutzutage sind mehr Menschen online als je zuvor – und von immer mehr Orten aus.

Wir sind mit unseren Laptops, Smartphones und Tablets und wahrscheinlich schon bald mit privaten Geräten und Zubehör verbunden. Wir greifen über nicht vertrauenswürdige und manchmal sogar schädliche Netzwerke auf das Internet zu. Da ein Großteil unseres Lebens ins Internet verlagert wird, müssen wir Maßnahmen zum Schutz unserer Daten und der Daten unserer Nutzer ergreifen.

Vor allem als Entwickler müssen wir die Notwendigkeit und Zweckmäßigkeit von SSL verstehen.

Was ist SSL? Es steht für Secure Sockets Layer und ist ein kryptografisches Protokoll, das für die Sicherheit der Kommunikation über das Internet entwickelt wurde. Der Schutz deiner Daten wird durch Verschlüsselung und Integrität sichergestellt, um Spionage oder Manipulation deiner Internetverbindung zu verhindern. SSL hat zwar seine Schwächen, aber es ist die führende – und wirklich einzige –, um die Sicherheit jeglicher Datenkommunikation im Internet zu gewährleisten.

Laut SSL Pulse setzten wir vor einem Jahr rund 15% der SSL-Nutzung um. Mittlerweile sind es bereits über 50 %.

Zwei Abkürzungen:

  • TLS: Entspricht für die meisten Intents und Zwecke der SSL-Verschlüsselung. Um genau zu sein, wurde SSL 3.1 in TLS umbenannt und TLS ist der IETF-Standardname. Aber sie sind austauschbar!

  • HTTPS: HTTP zu SSL, das lediglich die Sicherheitsfunktionen von SSL und Standard-HTTP erfüllt. Zuerst der Client-Server-Handshake, bei dem mit Public/Private-Key-Kryptografie ein freigegebener Schlüssel erstellt wird, der vom zweiten Teil des SSL-Protokolls zur Verschlüsselung der Kommunikation verwendet wird.

Networking im Internet kann sich sicher, unmittelbar und schnell anfühlen. Es fühlt sich an, als würden wir direkt mit der Website sprechen. Aber in Wirklichkeit ist es keine direkte Verbindung. Die Kommunikation erfolgt über einen WLAN-Router, einen Internetanbieter und möglicherweise andere Zwischen-Proxys zwischen deinem Gerät und der Website. Ohne HTTPS erfolgen unsere gesamte Kommunikation im Nur-Text-Format.

Das Problem ist, dass Nutzer selten eine vollständige URL mit HTTPS eingeben – oder sie klicken mit HTTP auf einen Link. Schlimmer noch, es ist möglich, einen (Wo)-Man-in-the-Middle-Angriff durchzuführen und HTTPS durch HTTP zu ersetzen. Genau das ermöglicht das 2009 eingeführte Tool SSLstrip. Firesheep aus dem Jahr 2010 hörte gerade offene WLANs nach Cookies, die im Klartext gesendet wurden. Das bedeutete, dass man sich beim Chatten mithören oder sich im Facebook-Konto eines Nutzers anmelden konnte.

SSL ist jedoch relativ günstig, schnell und einfach zu implementieren. Weitere Informationen finden Sie unter ssllabs.com und in dem Buch „High Performance Browser Networking“ von Ilya Grigorik. Public-Key-Pinning soll Website-Betreibern die Möglichkeit geben, einzuschränken, welche Zertifizierungsstellen tatsächlich Zertifikate für ihre Websites ausstellen können.

„Im Januar dieses Jahres (2010) verwendet Gmail standardmäßig HTTPS für alles. Dazu mussten wir keine zusätzlichen Maschinen und keine spezielle Hardware bereitstellen. Auf unseren Front-End-Maschinen in der Produktion macht SSL weniger als 1% der CPU-Last, weniger als 10 KB Arbeitsspeicher pro Verbindung und weniger als 2% des Netzwerk-Overheads aus.

Wenn Sie jetzt aufhören zu lesen, müssen Sie sich nur eines merken: SSL ist nicht mehr rechenintensiv.“

Overclocking SSL, Adam Langley (Google)

Zu guter Letzt gibt es noch einige Programmfehler, die wir am häufigsten beobachten:

  • Gemischte Inhalte:Websites, die sowohl HTTP als auch HTTPS verwenden. Die Nutzenden werden genervt, weil sie zum Laden von Inhalten auf eine Berechtigungsschaltfläche klicken müssen. In Chrome und Firefox werden gemischte Inhalte aus iFrames blockiert. Achte darauf, dass alle Ressourcen auf einer HTTPS-Seite über HTTPS geladen werden. Verwende dazu relative oder schemarelative URLs wie <style src="//foo.com/style.css">.
  • Unsichere Cookies: werden im Klartext über eine HTTP-Verbindung gesendet. Dies lässt sich vermeiden, indem Sie das Attribut „secure“ in Cookie-Headern festlegen. Sie können auch einen neuen Header „Strict Transport Security“ verwenden, um SSL Transport Security (HSTS) anzufordern.

Takeaways

  • Wenn Ihnen der Datenschutz und die Integrität der Daten Ihrer Nutzer wichtig sind, müssen Sie SSL verwenden. Das ist schneller, einfacher und kostengünstiger als je zuvor.
  • Vermeiden Sie häufig auftretende Fehler bei der Implementierung, z. B. Fehler bei gemischten Inhalten oder falsche HTTP-Header-Bits.
  • Verwenden Sie relative oder Schema-relative URLs.
  • Entdecke tolle neue Sachen, z. B. HSTS und „Certificate Pinning“

Google Präsentationen:Sie verwenden SSL?

Medien-APIs für das Multi-Device-Web

von Sam Dutton und Jan Linden

Parallel zur Verbreitung neuer Geräte und Plattformen im Web verzeichnen wir einen enormen Zuwachs bei der Audio-, Video- und Echtzeitkommunikation. Onlinemedien verändern die Art und Weise, wie wir verschiedene Medien konsumieren.

Eine britische Regierungsstudie ergab, dass 53% aller Erwachsenen Medien beim Fernsehen über ein Mobilgerät nutzen, um Medien zu teilen und zu nutzen. In vielen Ländern wird ferngesehen und weniger online angesehen. So sahen China beispielsweise 2012 nur 30% der Haushalte in Peking fern. 2009 waren es noch 70 %. Laut den W3C-Highlights 2013 hat sich die Videowiedergabe auf Mobilgeräten im letzten Jahr verdoppelt. Dieses Jahr wird in den USA pro Tag mehr Zeit mit digitalen Medien verbracht als im Fernsehen. Das Ansehen von Videos ist keine passive Handlung mehr. In den USA geben 87% der Unterhaltungsnutzer an, dass sie beim Fernsehen mindestens ein Gerät mit einem zweiten Bildschirm verwenden. Laut Cisco wird „Video ... bis 2017 zwischen 80 und 90 % des weltweiten Verbraucherverkehrs liegen“. Das entspricht einer Million Minuten Videomaterial pro Sekunde.

Was haben wir also für Webentwickler? Ein Ökosystem von Medien-APIs für das offene Web: standardisierte, interoperable Technologien, die auf mehreren Plattformen funktionieren.

Takeaways

  • WebRTC ermöglicht Echtzeitkommunikation im Browser und wird inzwischen sowohl auf Mobilgeräten als auch auf Desktop-Computern weithin unterstützt. Insgesamt gibt es bereits über 1,2 Milliarden WebRTC-Endpunkte.
  • Web Audio bietet hochentwickelte Tools für die Audiosynthese und -verarbeitung.
  • Web-MIDI ist in Web Audio integriert und ermöglicht die Interaktion mit MIDI-Geräten.
  • Die Audio- und Videoelemente werden inzwischen in mehr als 85% der mobilen und Desktop-Browser unterstützt.
  • Medienquellenerweiterungen können für adaptives Streaming und zeitversetztes Fernsehen verwendet werden.
  • EME ermöglicht die Wiedergabe geschützter Inhalte.
  • Transkripte, Untertitel und das Track-Element ermöglichen Untertitel, zeitgesteuerte Metadaten, Deeplinks und Deeplinks.

Google Präsentationen:Media APIs für das Multi-Device-Web