API-Einstellungen und -Entfernungen in Chrome 57

Joe Medley
Joe Medley

Bei fast jeder Chrome-Version gibt es eine große Anzahl von Updates und Verbesserungen am Produkt, an seiner Leistung und auch an den Funktionen der Webplattform. In diesem Artikel werden die Einstellung und Entfernung von Funktionen in Chrome 57 beschrieben, die seit Anfang Februar in der Betaversion verfügbar ist. Diese Liste kann sich jederzeit ändern.

Attribut „BluetoothDevice.uuids“ entfernen

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

Chromium-Fehler

Schlüsselgenerierungselement entfernen

Seit Chrome 49 gibt <keygen> standardmäßig den leeren String zurück, es sei denn, dieser Seite wurde eine Berechtigung erteilt. IE/Edge unterstützen <keygen> nicht und haben keine öffentlichen Signale zur Unterstützung von <keygen> angegeben. In Firefox ist <keygen> bereits durch eine Nutzergeste geschützt, aber wir unterstützen öffentlich die Entfernung. Safari wird mit <keygen> ausgeliefert und es gibt keine öffentlichen Äußerungen zur weiteren Unterstützung. In Chrome 57 wird dieses Element entfernt.

Entfernung geplant | Chromestatus-Tracker | Chromium-Fehler

API zur Verwaltung von Puffern für die Zeitmessung von Ressourcen mit Präfix entfernen

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

Entfernung geplant | Chromestatus-Tracker | Chromium-Fehler

ServiceWorkerMessageEvent wird durch MessageEvent ersetzt

Die HTML-Spezifikation hat MessageEvent erweitert, um ServiceWorker als Typ für das source-Attribut zuzulassen. Für client.postMessage() und das Erstellen benutzerdefinierter Nachrichtenereignisse wird MessageEvent anstelle von ServiceWorkerMessageEvent verwendet. ServiceWorkerMessageEvent wurde entfernt.

Entfernung geplant | Chromestatus-Tracker | Chromium-Fehler

Globale IndexedDB-Aliase mit WebKit-Präfix entfernen

Der IndexedDB-Einstiegspunkt und die globalen Konstruktoren wurden ungefähr in Chrome 11 mit webkit-Präfixen freigegeben. 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, aber nützliche statische Methoden)
  • webkitIDBCursor
  • webkitIDBDatabase
  • webkitIDBFactory
  • webkitIDBIndex
  • webkitIDBObjectStore
  • webkitIDBRequest
  • webkitIDBTransaction (nicht aufrufbare globale Konstruktoren)

Entfernung geplant | Chromestatus-Tracker | Chromium-Fehler

WebAudio: AudioContext und OfflineAudioContext ohne Präfix

Chrome unterstützt WebAudio seit Mitte 2011, einschließlich AudioContext. OfflineAudioContext wurde im darauffolgenden Jahr hinzugefügt. Angesichts der langen Unterstützung der Standardoberflächen und des langfristigen Ziels von Google, Funktionen mit Präfixen zu entfernen, wurden die Versionen dieser Oberflächen mit Präfix seit Ende 2014 eingestellt und werden jetzt entfernt.

Entfernung geplant | Chromestatus-Tracker | Chromium-Fehler

webkitCancelRequestAnimationFrame einstellen und entfernen

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

Entfernung geplant | Chromestatus-Tracker | Chromium-Fehler

Groß- und Kleinschreibung beim Attribut „usemap“ nicht mehr berücksichtigen

Das usemap-Attribut wurde früher als groß- und kleinschreibungsempfindlich definiert. Leider war die Implementierung so kompliziert, dass sie von keinem Browser richtig implementiert wurde. Studien haben gezeigt, dass ein so komplizierter Algorithmus nicht erforderlich ist und selbst die zeicheninsensitive ASCII-Übereinstimmung nicht notwendig ist.

Daher wurde die Spezifikation aktualisiert, sodass die Groß- und Kleinschreibung beim Abgleich berücksichtigt wird. Das alte Verhalten wird in Chrome 57 eingestellt und voraussichtlich in Chrome 58 entfernt.

Entfernung geplant | Chromestatus-Tracker | Chromium-Fehler

FileReaderSync in Service Workern wird eingestellt

In der Service Worker-Spezifikation gab es immer den (nicht normativen) Hinweis, dass „keine Art von synchronen Anfragen innerhalb eines Service Workers gestartet werden darf“, um das Blockieren des Service Workers zu vermeiden. Wenn Sie den Service Worker blockieren, werden alle Netzwerkanfragen von verwalteten Seiten blockiert. Leider ist die FileReaderSync API schon lange in Service Workern verfügbar.

Derzeit stellen nur Firefox und Chrome FileReaderSync in Serviceworkern bereit. In der Diskussion zur Spezifikation wurde von Firefox zugestimmt, dass dies behoben werden sollte. Die Entfernung ist für Chrome 59 geplant.

Entfernung geplant | Chromestatus-Tracker | Chromium-Fehler

Ältere Aufrufer für HTMLEmbedElement und HTMLObjectElement eingestellt

Wenn eine Schnittstelle einen Legacy-Caller hat, kann eine Instanz als Funktion aufgerufen werden. Derzeit wird diese Funktion von HTMLEmbedElement und HTMLObjectElement unterstützt. In Chrome 57 ist diese Funktion nicht mehr verfügbar. Nach der Entfernung, die voraussichtlich in Chrome 58 erfolgt, wird beim Aufruf eine Ausnahme ausgelöst.

Durch diese Änderung wird Chrome an die aktuellen Spezifikationsänderungen angepasst. Das alte Verhalten wird in Edge oder Safari nicht unterstützt und wird aus Firefox entfernt.

Entfernung geplant | Chromestatus-Tracker | Chromium-Fehler

Einstellung „Verhandeln“ für RTCRtcpMuxPolicy eingestellt

Mit der rtcpMuxPolicy gibt Chrome seine bevorzugte Richtlinie für die Verwendung von RTP/RTCP-Multiplex an. In Chrome 57 haben wir die Standardeinstellung für rtcpMuxPolicy in „erforderlich“ geändert und „verhandeln“ aus den folgenden Gründen eingestellt:

  • Nicht gemultiplexte RTCP-Streams verbrauchen zusätzliche Netzwerkressourcen.
  • Durch das Entfernen von „negotiate“ wird die API-Oberfläche einfacher, da ein „RtpSender“/„RtpReceiver“ dann immer nur einen einzigen Transport hat.

In Chrome 57 wird „negotiate“ nicht mehr unterstützt. Wir sind der Meinung, dass diese Änderung keine Auswirkungen auf die Nutzer hat, da sie eine entsprechende Benachrichtigung erhalten und RTCPeerConnection weiterhin erstellt werden kann. Die Funktion wird in Chrome 63 entfernt.

Beabsichtigte Einstellung | Chromium-Fehler

Unterstützung für eingebettete Anmeldedaten in Anfragen von Unterressourcen wird eingestellt

Das Einbetten von Anmeldedaten in Subressourcenanfragen ist aus Sicherheitsgründen problematisch, da es Hackern in der Vergangenheit ermöglicht hat, Anmeldedaten per Brute-Force-Methode zu knacken. Diese Gefahren sind bei Anfragen für Unterressourcen mit Anmeldedaten noch größer, wenn sie in interne IP-Bereiche (z. B. Ihre Router) reichen. Angesichts der geringen Nutzung erscheint es durchaus sinnvoll, diese (kleine) Sicherheitslücke zu schließen.

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

Entfernung geplant | Chromestatus-Tracker | Chromium-Fehler