Chrome Dev Summit – Zusammenfassung der offenen Webplattform

von Greg Simon und Eric Seidel

Blink ist die Open-Source-Rendering-Engine von Chrome. Das Blink-Team entwickelt das Web weiter und behebt die Probleme, auf die Entwickler stoßen.

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

Als Erstes haben wir die Hälfte unserer Quelle gelöscht, die wir nicht unbedingt benötigten. Wir sind noch nicht fertig. Wir gehen dabei nicht blind vor: Die Entfernung von Code basiert auf anonym gemeldeten aggregierten Statistiken von Chrome-Nutzern, die die Funktion aktiviert haben.

Wir veröffentlichen alle sechs Wochen eine neue Entwickler-API, also im selben Rhythmus wie Chrome-Releases.

Eine große Änderung, die wir bei der Forkierung von Blink vorgenommen haben, war die Einführung eines Intent-Systems: Jedes Mal, bevor wir die Webplattform ändern, senden wir eine öffentliche Ankündigung an Blink dev, in der wir unsere Absicht ankündigen, eine Funktion hinzuzufügen oder zu entfernen. Dann gehen wir los und programmieren. Und schon am nächsten Tag nach dem Check-in der Funktion ist sie in unseren Canary-Builds verfügbar. Diese Funktion ist standardmäßig deaktiviert. Sie können sie aber über about:flags aktivieren.

Anschließend geben wir auf unserer öffentlichen Mailingliste eine Versandabsicht bekannt.

Auf chromestatus.com finden Sie Informationen zu den Funktionen, an denen wir arbeiten, die wir eingeführt haben und die wir bald einstellen werden. Sie können auch den Chromium-Release-Blog besuchen. Dort finden Sie Links zu Fehlern und zu unserem Tracker-Dashboard.

Eine weitere große Änderung ist, dass wir WebKit-Präfixe entfernen. Es ist nicht beabsichtigt, Blink-Präfixe zu verwenden, sondern Laufzeit-Flags (und nicht nur Compilezeit-Flags).

Android WebView war eine große Herausforderung – aber HTML5Test zeigt, dass es besser wird. Wir sind dem Desktop viel näher, da wir überall dieselben Webplattform-APIs verwenden. Web Audio ist ein gutes Beispiel dafür.

Aber wie funktioniert die Wurstmaschine? Jede einzelne Änderung, die wir an Blink vornehmen, wird sofort über 30.000 Mal getestet, ganz zu schweigen von den zusätzlichen Chromium-Tests, die später ausgeführt werden. Wir nutzen rund um die Uhr Sheriffing mit Tausenden von Bots, Tausenden von Benchmarks und Systemen, die Millionen von kaputten Webseiten an unsere Suchmaschine senden, um sicherzustellen, dass sie nicht zusammenbricht. Wir wissen, dass die Wiedergabe auf Mobilgeräten deutlich langsamer ist. Wir arbeiten intensiv daran, dies zu verbessern.

Was ist neu?

  • Webkomponenten: Sehen Sie sich den Vortrag von Eric Bidelman an.
  • Web-Animationen:Komplexe, synchronisierte, leistungsstarke Animationen, bei denen nach Möglichkeit die GPU verwendet wird
  • Teillayout:Berechnen Sie nur das, was Sie benötigen.
  • CSS-Raster
  • Responsive Bilder: srcset oder srcN oder ?
  • Schnellere automatische Textgrößenänderung und einheitliche Schriftarten auf Subpixelebene
  • Skia, das von Blink verwendete Grafiksystem, wechselt unter Windows von GDI zu DirectWrite

Wir würden gern wissen, was du darüber denkst.

Wenn Sie C++ lieben und mit uns C++-Code schreiben möchten, können Sie sich jederzeit an uns wenden. Sie müssen es niemandem erzählen oder uns davon überzeugen. Sie können einfach einen Patch posten oder einen Fehler melden.

Präsentationen:Blink

Sicherheit

von Parisa Tabriz

Mehr Menschen als je zuvor sind heute mit dem Internet verbunden – und das von mehr Orten aus.

Wir sind mit unseren Laptops, Smartphones und Tablets verbunden und wahrscheinlich bald auch mit persönlichen Geräten und Zubehör. Wir greifen über nicht vertrauenswürdige und manchmal sogar feindliche Netzwerke auf das Internet zu. Da immer mehr Aspekte unseres Lebens online stattfinden, ist es unerlässlich, dass wir Maßnahmen ergreifen, um unsere Daten und die Daten unserer Nutzer zu schützen.

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

Was ist SSL? Die Abkürzung SSL steht für Secure Sockets Layer und ist ein kryptografisches Protokoll, das für die Kommunikationssicherheit über das Internet entwickelt wurde. Es garantiert den Datenschutz durch Verschlüsselung und Integrität, um das Ausspionieren oder Manipulieren Ihrer Internetverbindung zu verhindern. SSL hat seine Mängel, ist aber die führende und eigentlich einzige Möglichkeit, eine Datenkommunikation im Internet zu sichern.

Laut SSL Pulse lag die SSL-Akzeptanz vor einem Jahr bei knapp 15 %. Heute sind es über 50 %.

Zwei Akronyme:

  • TLS: Im Grunde dasselbe wie SSL. Genauer gesagt wurde SSL 3.1 in TLS umbenannt. TLS ist der IETF-Standardname. Aber sie sind austauschbar.

  • HTTPS: Dies ist HTTP über SSL, also die Schichtung der Sicherheitsfunktionen von SSL und Standard-HTTP. Zuerst findet der Client-Server-Handshake statt, bei dem mithilfe der Kryptografie mit öffentlichen/privaten Schlüsseln ein freigegebener Schlüssel erstellt wird. Dieser wird vom zweiten Teil des SSL-Protokolls zur Verschlüsselung der Kommunikation verwendet.

Networking im Internet kann sicher, unmittelbar und schnell erscheinen. Es fühlt sich an, als würden wir direkt mit der Website sprechen. In Wirklichkeit ist es jedoch keine direkte Verbindung. Unsere Kommunikation erfolgt über einen WLAN-Router, einen Internetanbieter und möglicherweise andere Proxy-Server zwischen Ihrem Gerät und der Website. Ohne HTTPS erfolgt die gesamte Kommunikation im Klartext.

Das Problem ist, dass Nutzer selten eine vollständige URL mit HTTPS eingeben oder auf einen Link mit HTTP klicken. Schlimmer noch: Es ist möglich, einen Man-in-the-Middle-Angriff auszuführen und HTTPS durch HTTP zu ersetzen. Genau das tut ein Tool namens SSLstrip, das 2009 eingeführt wurde. Firesheep aus dem Jahr 2010 hörte einfach in offenen WLANs nach, ob Cookies unverschlüsselt gesendet wurden. So konnten Sie sich in Chats einklinken oder in das Facebook-Konto einer anderen Person anmelden.

SSL ist jedoch (relativ) kostengünstig, schnell und einfach bereitzustellen (siehe ssllabs.com und das Buch „High Performance Browser Networking“ von Ilya Grigorik). Public-Key-Pinning soll Website-Betreibern die Möglichkeit geben, einzuschränken, welche Zertifizierungsstellen Zertifikate für ihre Websites ausstellen dürfen.

„Im Januar dieses Jahres (2010) hat Gmail standardmäßig auf HTTPS umgestellt. Dazu mussten wir keine zusätzlichen Maschinen und keine spezielle Hardware bereitstellen. Auf unseren Produktions-Frontend-Computern macht SSL weniger als 1% der CPU-Auslastung, 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 eine Sache merken: SSL ist nicht mehr rechenintensiv.“

Overclocking SSL, Adam Langley (Google)

Zum Schluss noch einige der häufigsten Fehler:

  • Gemischte Inhalte:Websites, auf denen sowohl HTTP als auch HTTPS verwendet wird. Ihre Nutzer werden genervt sein, weil sie auf eine Berechtigungsschaltfläche klicken müssen, um Inhalte zu laden. (Chrome und Firefox blockieren gemischte Inhalte in iFrames.) Achten Sie darauf, dass alle Ressourcen auf einer HTTPS-Seite über HTTPS geladen werden. Verwenden Sie dazu relative oder schemabereinigte URLs, z. B. <style src="//foo.com/style.css">
  • Unsichere Cookies:Sie werden unverschlüsselt über eine HTTP-Verbindung gesendet. Legen Sie das Attribut „secure“ für Cookie-Header fest, um dies zu vermeiden. Sie können auch einen neuen Header „Strict Transport Security“ verwenden, um SSL-Transport Security (HSTS) zu erzwingen.

Fazit

  • Wenn Sie die Daten Ihrer Nutzer schützen und für deren Integrität sorgen möchten, müssen Sie SSL verwenden. Es ist schneller, einfacher und günstiger als je zuvor.
  • Vermeiden Sie häufige Fallstricke bei der Implementierung, z. B. Fehler bei gemischten Inhalten oder das Nichtsetzen der richtigen HTTP-Header-Bits.
  • Verwenden Sie relative oder schemarelative URLs.
  • Coole neue Funktionen wie HSTS und Cert Pinning

Folien: SSL?

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

von Sam Dutton und Jan Linden

Neben der Verbreitung neuer Geräte und Plattformen im Web verzeichnen wir ein enormes Wachstum bei Audio-, Video- und Echtzeitkommunikation. Onlinemedien verändern die Art und Weise, wie wir Medien aller Art konsumieren.

Eine Studie der britischen Regierung hat ergeben, dass 53% der Erwachsenen beim Fernsehen „Medien-Multitasking“ betreiben: Sie nutzen Mobilgeräte, um Medien zu teilen und zu konsumieren. In vielen Ländern ist die Fernsehnutzung rückläufig und die Onlinenutzung steigt. In China sahen 2012 nur noch 30% der Haushalte in Peking fern, im Vergleich zu 70% im Jahr 2009. Laut den W3C Highlights 2013 hat sich das Ansehen von Videos auf Mobilgeräten im letzten Jahr verdoppelt. In diesem Jahr wird in den USA die durchschnittliche Zeit, die pro Tag mit digitalen Medien verbracht wird, die Zeit beim Fernsehen übertreffen. Das Fernsehen ist nicht mehr passiv. In den USA geben 87% der Unterhaltungskonsumenten an, dass sie beim Fernsehen mindestens ein zweites Bildschirmgerät verwenden. Laut Cisco wird Video bis 2017 etwa 80 bis 90 % des weltweiten Traffics von Verbrauchern ausmachen. Das entspricht fast 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.

Fazit

  • WebRTC ermöglicht die Echtzeitkommunikation im Browser und wird jetzt weithin auf Mobilgeräten und Computern unterstützt. Insgesamt gibt es bereits über 1,2 Milliarden WebRTC-Endpunkte.
  • Web Audio bietet ausgefeilte Tools zur Audiosynthese und -verarbeitung.
  • Web MIDI, das in Web Audio integriert ist, ermöglicht die Interaktion mit MIDI-Geräten.
  • Die Audio- und Videoelemente werden jetzt in über 85% der mobilen und Desktop-Browser unterstützt.
  • Media Source Extensions können für adaptives Streaming und Zeitverschiebung verwendet werden.
  • EME ermöglicht die Wiedergabe geschützter Inhalte.
  • Mit Transkripten, Untertiteln und dem Track-Element können Untertitel, Zeitmetadaten, Deeplinks und Deep Search verwendet werden.

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