API-Einstellungen und -Entfernungen in Chrome 57

Joe Medley
Joe Medley

In fast jeder Version von Chrome gibt es eine beträchtliche Anzahl von Updates und Verbesserungen des Produkts, seiner Leistung und auch der Funktionen der Web-Plattform. In diesem Artikel werden die Einstellungen in Chrome 57 beschrieben, das sich seit Anfang Februar in der Betaphase befindet. Diese Liste kann sich jederzeit ändern.

BluetoothDevice.uuids-Attribut entfernen

Das Attribut BluetoothDevice.uuids wird entfernt, um die Web Bluetooth API auf die aktuelle Spezifikation abzustimmen. Sie können alle zulässigen GATT-Dienste abrufen, indem Sie device.getPrimaryServices() aufrufen.

Chromium-Fehler

Element für Schlüsselgenerierung entfernen

Seit Chrome 49 gibt <keygen> standardmäßig einen leeren String zurück, sofern dieser Seite keine Berechtigung gewährt wurde. IE/Edge unterstützt <keygen> nicht und hat keine öffentlichen Signale zur Unterstützung von <keygen> angegeben. In Firefox wird <keygen> bereits hinter einer Nutzergeste blockiert, dies wird jedoch öffentlich unterstützt. Safari versendet <keygen> und hat keine öffentliche Meinung über seine fortwährende Unterstützung geäußert. In Chrome 57 wird dieses Element entfernt.

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler

API für die Zwischenspeicherverwaltung von Ressourcen mit Präfix entfernen

Zwei Methoden und ein Event-Handler, webkitClearResourceTimings(), webkitSetResourceTimingBufferSize() und onwebkitresourcetimingbufferfull, sind veraltet und anbieterspezifisch. Die Standardversionen dieser APIs werden seit Chrome 46 unterstützt. Auch die Funktionen mit dem Präfix wurden in dieser Version eingestellt. Diese Funktionen wurden ursprünglich in WebKit implementiert, wurden aber von Safari nicht aktiviert. Firefox, IE 10 oder höher und Edge haben nur eine API-Version ohne Präfix. Daher werden die Webkit-Versionen entfernt.

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler

ServiceWorkerMessageEvent zugunsten der Verwendung von MessageEvent entfernen

Die HTML-Spezifikation hat MessageEvent so erweitert, dass ServiceWorker als Typ für das Attribut source zulässig ist. client.postMessage() und das Erstellen von benutzerdefinierten Nachrichtenereignissen werden so geändert, dass MessageEvent anstelle von ServiceWorkerMessageEvent verwendet wird. ServiceWorkerMessageEvent wurde entfernt.

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler

Globale IndexedDB-Aliasse mit webkit-Präfix entfernen

Der Einstiegspunkt für IndexedDB und globale Konstruktoren wurden um Chrome 11 herum mit webkit-Präfixen verfügbar gemacht. Die Versionen ohne Präfix wurden in Chrome 24 hinzugefügt und die Versionen mit Präfix wurden in Chrome 38 eingestellt. Folgende Oberflächen sind betroffen:

  • webkitIndexedDB (Haupteinstiegspunkt)
  • webkitIDBKeyRange (nicht aufrufbarer globaler Konstruktor, verfügt aber über nützliche statische Methoden)
  • webkitIDBCursor
  • webkitIDBDatabase
  • webkitIDBFactory
  • webkitIDBIndex
  • webkitIDBObjectStore
  • webkitIDBRequest
  • webkitIDBTransaction (nicht aufrufbare globale Konstruktoren)

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler

WebAudio: Präfix „AudioContext“ und „OfflineAudioContext“ entfernen

Chrome unterstützt WebAudio seit Mitte 2011, darunter AudioContext. OfflineAudioContext wurde im folgenden Jahr hinzugefügt. Angesichts der Tatsache, wie lange die Standardschnittstellen unterstützt werden und das langfristige Ziel von Google, Funktionen mit Präfixen zu entfernen, wurden die mit Präfixen versehenen Versionen dieser Schnittstellen Ende 2014 eingestellt und jetzt entfernt.

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler

„webkitCancelRequestAnimationFrame“ verwerfen und entfernen

Die Methode webkitCancelRequestAnimationFrame() ist eine veraltete, anbieterspezifische API. Der Standard-cancelAnimationFrame() wird schon lange in Chromium unterstützt. Daher wird die Webkit-Version entfernt.

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler

Abgleich ohne Berücksichtigung der Groß-/Kleinschreibung für das Usemap-Attribut einstellen

Für das Attribut usemap wurde zuvor die Groß-/Kleinschreibung definiert. Leider war die Implementierung so kompliziert, dass sie von keinem Browser korrekt implementiert wurde. Untersuchungen schlugen vor, dass ein so komplizierter Algorithmus unnötig ist und selbst kein Abgleich ohne Berücksichtigung der Groß-/Kleinschreibung in ASCII erforderlich ist.

Aus diesem Grund wurde die Spezifikation aktualisiert, sodass die Groß-/Kleinschreibung berücksichtigt wird. Das alte Verhalten wurde in Chrome 57 eingestellt und wird in Chrome 58 voraussichtlich entfernt.

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler

FileReaderSync in Service Workern einstellen

In der Service Worker-Spezifikation wurde schon immer der (nicht normative) Hinweis angezeigt, dass keine synchronen Anfragen innerhalb eines Service Workers initiiert werden dürfen, um eine Blockierung des Service Workers zu vermeiden. Durch das Blockieren des Service Workers werden alle Netzwerkanfragen von kontrollierten Seiten blockiert. Leider ist die FileReaderSync API schon lange in Service Workern verfügbar.

Derzeit stellen nur Firefox und Chrome FileReaderSync in Service Workern bereit. Firefox stimmt in der Diskussion der Spezifikationen überein, dass dieses Problem behoben werden sollte. Diese Funktion wird voraussichtlich in Chrome 59 entfernt.

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler

Alte Aufrufer für HTMLEmbedElement und HTMLObjectElement werden eingestellt

Da eine Schnittstelle einen Legacy-Aufrufer hat, kann eine Instanz als Funktion aufgerufen werden. Derzeit unterstützen HTMLEmbedElement und HTMLObjectElement diese Funktion. In Chrome 57 wurde diese Funktion eingestellt. Nach dem Entfernen, wie es in Chrome 58 erwartet wird, wird durch den Aufruf eine Ausnahme ausgelöst.

Diese Änderung passt Chrome an die letzten Spezifikationsänderungen an. Das bisherige Verhalten wird in Edge oder Safari nicht unterstützt und wird aus Firefox entfernt.

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler

RTCRtcpMuxPolicy für „Verhandlung“ wird eingestellt

Das rtcpMuxPolicy wird von Chrome verwendet, um die bevorzugte Richtlinie für die Verwendung von RTP/RTCP-Multiplexing anzugeben. In Chrome 57 haben wir den standardmäßigen rtcpMuxPolicy in „require“ geändert und den Wert „negotiation“ aus den folgenden Gründen eingestellt:

  • Nicht muxiertes RTCP verbraucht zusätzliche Netzwerkressourcen.
  • Das Entfernen von „negotiation“ wird die API-Oberfläche einfacher machen, da „RtpSender“/„RtpReceiver“ dann immer nur einen einzigen Transport hat.

In Chrome 57 wurde die Option „Verhandlungen“ eingestellt. Wir gehen davon aus, dass dies eine abwärtskompatible Änderung ist, da der Nutzer eine Nachricht zur Einstellung erhält und RTCPeerConnection weiterhin erstellt werden kann. Diese Funktion wird in Chrome 63 entfernt.

Abzueinstellungsabsicht | Chromium-Fehler

Eingebettete Anmeldedaten in Anfragen von Unterressourcen werden nicht mehr unterstützt

Anmeldedaten in Unterressourcenanfragen fest zu codieren, ist aus Sicherheitsperspektive problematisch, da Hacker in der Vergangenheit Brute-Force-Anmeldedaten ausführen konnten. Für Anfragen von Unterressourcen mit Anmeldedaten, die interne IP-Bereiche (Ihre Router usw.) erreichen, werden diese Gefahren noch verstärkt. Angesichts der geringen Nutzung erscheint es angemessen, diese (kleine) Sicherheitslücke zu schließen.

Entwickler können Ressourcen einbetten, für die keine Basic-/Digest-Authentifizierung erforderlich ist, sondern sich stattdessen auf Cookies und andere Mechanismen zur Sitzungsverwaltung stützen.

Entfernungsabsicht | Chromestatus-Tracker | Chromium-Fehler