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.
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.