Chrome 117 Beta

Unterstützung für CSS-Rasterunterraster, Animationsunterstützung für Ein- und Ausstiege für CSS, Array-Gruppierung, Iterationshilfen und mehr

Sofern nicht anders angegeben, gelten die beschriebenen Änderungen für den neuesten Release der Chrome-Betaversion für Android, ChromeOS, Linux, macOS und Windows. Weitere Informationen zu den hier aufgeführten Funktionen finden Sie über die bereitgestellten Links oder in der Liste auf ChromeStatus.com. Chrome 117 ist seit dem 16. August 2023 eine Betaversion. Du kannst die neuesten Inhalte auf Google.com für Computer oder im Google Play Store für Android herunterladen.

CSS

In dieser Version werden sechs neue CSS-Funktionen hinzugefügt. Die ersten drei Eigenschaften sind Teil der Arbeit, um Übergänge auf diskreten Eigenschaften zu ermöglichen. So werden Ein- und Ausstiegsanimationen ermöglicht.

Die @starting-style-Regel

Diese At-Regel ermöglicht Autoren, CSS-Übergänge bei der ersten Stilaktualisierung zu starten.

CSS-Übergänge lösen keine Übergänge von den ursprünglichen Stilen bei der ersten Stilaktualisierung eines Elements aus oder wenn der Anzeigetyp von none zu einem anderen Typ wechselt. So lassen sich unerwartete Übergänge bei den ursprünglichen Stilen vermeiden. Um einen Übergang von der ersten Stilaktualisierung aus zu starten, können Sie jetzt Stile innerhalb einer @starting-style-Regel anwenden. Mit dem folgenden CSS wird beispielsweise bei der ersten Stilaktualisierung eines div-Elements ein Übergang der Hintergrundfarbe von Grün zu Gelb gestartet:

div { 
  transition: background-color 0.5s; 
  background-color: lime; 
} 

@starting-style {
  div { 
    background-color: green; 
  } 
}

Die Overlay-Eigenschaft

Mit der Eigenschaft overlay können Entwickler Elemente für einen Exit-Übergang auf der obersten Ebene belassen. Die Overlay-Eigenschaft wird hinzugefügt, um anzugeben, ob sich ein Element auf der obersten Ebene befindet oder nicht. Sie kann zwei Werte annehmen: none oder auto.

Property für das CSS-Übergangsverhalten

Die CSS-Eigenschaft transition-behavior ist eine Langhand der transition-Eigenschaft, mit der diskrete Eigenschaften in Übergängen verwendet werden können. Wenn Sie den Wert allow-discrete für das Übergangsverhalten angeben, starten diskrete Eigenschaften jetzt Animationen und wechseln von ihrem ursprünglichen Wert zum endgültigen Wert bei 50%. Bei Übergängen, bei denen display: none und content-visibility: hidden einer der Anfangs- oder Endwerte sind, wird der sichtbare Wert für die gesamte Dauer des Übergangs verwendet.

Der Wert des CSS-Rasters für das Subraster

Der subgrid-Wert für grid-template-columns und grid-template-rows ist jetzt in Chrome implementiert. Mit diesem Wert kann ein verschachteltes Raster die für das übergeordnete Element definierten Tracks verwenden, anstatt eine neue Trackdefinition für Zeilen, Spalten oder beides zu erstellen.

CSS text-wrap: schöne

Mit dem pretty-Wert für die CSS-Eigenschaft text-wrap wird nicht die Geschwindigkeit, sondern das beste Layout optimiert. Sie ist für Textkörper vorgesehen und erfordert daher mehrere Zeilen. Durch die Verwendung von pretty aktiviert ein Entwickler explizit eine Layoutmethode, die möglicherweise langsamer ist als die von wrap. Dadurch wird die Leistung optimiert. Die aktuelle Implementierung in Chrome ist für verwaiste Personen optimiert, um zu verhindern, dass ein einzelnes Wort am Ende eines Textabschnitts erscheint.

Probiere in Chrome 117 diese Demo von text-wrap: prima aus, um zu sehen, wie sich der Wert auf die Textdarstellung auswirkt.

"enthält-intrinsic-size": automatisch keine Unterstützung

Mit dieser Funktion wird die vorhandene contain-intrinsic-size-Syntax um auto && none erweitert.

Web APIs

Arraygruppierung

Die Array-Gruppierung ist eine äußerst gängige Operation, am besten beispielhaft durch die GROUP BY-Klausel von SQL und die MapReduce-Programmierung (die besser von Map-Group-Reduce betrachtet wird). Durch die Möglichkeit, Daten in Gruppen zu kombinieren, können Entwickler höherrangige Datasets berechnen, z. B. das Durchschnittsalter einer Kohorte oder die täglichen LCP-Werte für eine Webseite. Bei dieser Funktion ist dies durch Hinzufügen der statischen Methoden Object.groupBy und Map.groupBy möglich. Die Methode "Object" gibt ein einfaches Objekt zurück, wobei die Gruppen Eigenschaftsschlüssel sind. Die Map-Methode gibt eine Map zurück, wobei die Schlüssel beliebige Werte sein können.

Löschen von Clienthinweisen über den Header „Clear-Site-Data“

Websites können jetzt den Cache für Clienthinweise mit Clear-Site-Data: "clientHints" leeren. Client-Hinweise werden jetzt auch gelöscht, wenn derselbe Header auf Cookies, „cache“ oder „*“ abzielt. Das liegt daran, dass, wenn der Nutzer Cookies in den Client-Hinweisen der Benutzeroberfläche löscht, ebenfalls gelöscht sind, der Cache für Client-Hinweise ebenfalls ein Cache ist, was den Platzhalterzielen entspricht.

Syntax des Platzhalters für Clear-Site-Data-Header

Websites können jetzt alle Speicherziele („Cookies“, „Cache“ und „Speicher“) löschen, indem sie Clear-Site-Data: "*" senden. Das Löschen von „ExecutionContexts“ wird in Chrome derzeit nicht unterstützt. Wenn wir dies jedoch später hinzufügen, werden sie auch durch jedes Header-Targeting „*“ gelöscht.

customElements.getName

Die Methode customElements.getName() gibt den Tag-Namen der angegebenen Definition des benutzerdefinierten Elements zurück.

Parser-Hilfsprogramme

Wrapper-Hilfsmittel sind neue Methoden für den Iterator-Prototyp, die die allgemeine Verwendung und Verwendung von Iteratoren ermöglichen.

CaptureController von der EventTarget-Schnittstelle ableiten

Die Schnittstelle CaptureController ermöglicht die weitere Bearbeitung einer Bildschirmaufnahmesitzung. In Zukunft werden Ereignisse im Zusammenhang mit einer Aufnahmesitzung voraussichtlich über diesen Controller gesendet. Damit Listener für solche Ereignisse verwaltet werden können, werden die EventTarget-Methoden in CaptureController verfügbar gemacht.

PerformanceResourceTiming DeliveryType

Die Eigenschaft deliveryType von PerformanceResourceTiming gibt Informationen darüber zurück, wie eine Ressource bereitgestellt wurde. Dazu gehören z. B. Ressourcen, die aus dem Cache bereitgestellt wurden (derzeit über transferSize verfügbar), und Navigationen, die von der vorherigen Seite vorab abgerufen wurden.

Port-Überlaufprüfung in URL-Setter

Beim Festlegen von url.port wird der Portwert geprüft. Alle Werte, bei denen das numerische 16-Bit-Limit überschritten wird, sind nicht mehr gültig. Beispielsweise verhält sich das folgende Skript nach der Änderung anders:

u = new URL("http://test.com"); 
u.port = 65536; 
console.log(u.port); 

Vor der Änderung lautet die Ausgabe 65536. Nach der Änderung lautet die Ausgabe 80.

Private State Token API

Mit dieser neuen API können begrenzte private Signale über Websites weitergegeben werden, ohne websiteübergreifende dauerhafte Kennungen wie Drittanbieter-Cookies zu verwenden. Methoden zur Betrugsbekämpfung, die auf Drittanbieter-Cookies basieren, funktionieren nach der Abschaffung von Drittanbieter-Cookies nicht mehr. Die Private State Token API generiert oder definiert keine Signale zur Betrugsbekämpfung. Die Entscheidung liegt beim jeweiligen Erstanbieter und dem Tokenaussteller. Vielmehr wird durch die API der Datenschutz gewahrt, indem Einschränkungen für die über diese Signale übertragenen Informationen erzwungen werden. Die API basiert auf einer Variante des Privacy Pass-Protokolls, das derzeit von der IETF standardisiert wird. Es kann als eine über das Web zugängliche Form der Privacy Pass-Protokolle betrachtet werden. Die API-Spezifikation muss für neue Versionen und Tokentypen aktualisiert und mit den Spezifikationen der Privacy Pass-Arbeitsgruppe auf dem neuesten Stand gehalten werden. Erwartete Änderungen würden sich auf die zugrunde liegenden kryptografischen Protokolle und den Code zur Tokenausgabe auswirken: Wir erwarten keine Änderungen bei den Abruf-APIs für die Ausstellung und Einlösung für Entwickler. Die Private State Token API hieß früher Trust Token API. Es wurde umbenannt, um die zugrunde liegende Semantik genauer zu erfassen und die Vorteile für den Datenschutz für Nutzer hervorzuheben.

URL-Standard-kompatibler eingebetteter IPv4-Host-Parser

Das Verhalten des Parsings des eingebetteten IPv4-IPv6-Host-Parsers wird aktualisiert, um genau dem URL-Standard für das Web zu folgen. Für die IPv6-Adresse gelten die folgenden Einschränkungen:

  • Die eingebettete IPv4-Adresse muss immer aus 4 Teilen bestehen.
  • Adressen, die aus weniger als vier Teilen bestehen, z. B. http://[::1.2], sind dann nicht mehr gültig. Die Funktion ist Teil der URL-Interoperabilität 2023.

URL: "%00" als gültigen URL-Pfad zulassen

Chrome stuft eine URL derzeit als ungültig ein, wenn ihr Pfadteil „%00“ oder null enthält. Das ist nicht mit dem URL-Standard konform. Der folgende Test schlägt beispielsweise in Chrome fehl, da new URL(...) eine Ausnahme für eine ungültige URL auslöst.

assertEquals(new URL("http://example.com/%00").pathname, "/%00"); 

Gemäß dem URL-Standard darf die URL durch Zeichen oder Bytesequenzen im URL-Pfad nicht ungültig werden. Durch diese Änderung wird Chrome entsprechend aktualisiert.

Steuerung der WebRTC-RTP-Header-Erweiterung

Erweitern Sie die WebRTC RTCRtpTransceiver API, um zu steuern, welche RTP-Header-Erweiterungen ausgehandelt werden.

Quantizer pro Frame in VideoEncoder

Fügt „quantizer“ VideoEncoderBitrateMode für VideoEncoder hinzu. Dadurch kann für jeden Frame ein Quantizer-Parameter für AV1-, VP9- und AVC-Video-Codecs angegeben werden.

WebUSB exclusionFilters-Option in requestDevice()

Mit der Option exclusionFilters in navigator.usb.requestDevice() können Webentwickler bestimmte Geräte aus der Browserauswahl ausschließen. Damit lassen sich Geräte ausschließen, die einem breiter gefassten Filter entsprechen, aber nicht unterstützt werden.

Ursprungstests laufen

In Chrome 117 können Sie die folgenden neuen Ursprungstests aktivieren.

Komprimierungswörterbuchtransport mit freigegebenem Brotli

Mit dieser Funktion wird die Verwendung festgelegter vorheriger Antworten als externes Wörterbuch für die Brotli-Komprimierung von HTTP-Antworten unterstützt.

Registrieren Sie sich für den Ursprungstest von CompressionDictionaryTransport.

Test zur Einstellung von WebSQL

WebSQL wird aus Chrome entfernt. Für Websites, die darauf angewiesen sind, wird empfohlen, zu SQLite über Wasm zu wechseln.

Mit diesem Test zur Einstellung können Entwickler, die mehr Zeit für die Migration benötigen, WebSQL bis Chrome 123 (März 2024) weiter verwenden. Registrieren Sie sich für den Test zur Einstellung von WebSQL.

Web-Apps mit Tabs

Web-App-Fenster dürfen eine Tableiste haben, um beispielsweise mehrere Dokumente in derselben App zu bearbeiten. Dadurch werden ein neuer Anzeigemodus mit Tabs sowie ein neues Manifestfeld hinzugefügt, über das Sie die Tableiste anpassen können.

Registrieren Sie sich für den Ursprungstest mit Tabs für Web-Apps.

Einstellungen und Entfernungen

In dieser Version von Chrome werden die unten aufgeführten Einstellungen und Entfernungen eingeführt. Unter ChromeStatus.com finden Sie eine Liste der geplanten und aktuellen Einstellungen sowie früherer Entfernungen.

In dieser Version von Chrome werden zwei Funktionen eingestellt.

Unload-Ereignis verwerfen

In Chrome 117 wird der Event-Handler unload eingestellt. Falls diese auf Ihrer Website verwendet werden, empfehlen wir Ihnen dringend, den Artikel zur Einstellung von unload zu lesen, um weitere Informationen zu erhalten.

TLS-SHA-1-Serversignaturen verwerfen

In Chrome werden Signaturalgorithmen, die SHA-1 für Serversignaturen während des TLS-Handshakes verwenden, nicht mehr unterstützt. Dies hat keine Auswirkungen auf die SHA-1-Unterstützung in Serverzertifikaten, die bereits entfernt wurden, oder in Clientzertifikaten, die weiterhin unterstützt wird.

In dieser Version von Chrome werden vier Funktionen entfernt.

[WebRTC] Callback-basierte Legacy-getStats()-Methode aufheben

RTCPeerConnection hat zwei Versionen von getStats(). Eine ist spezifikationskonform und gibt den Bericht durch Auflösen eines Promise-Werts zurück. Die andere ist nicht Standard und gibt einen ganz anderen Bericht über einen Callback als erstes Argument zurück. Die Callback-basierte Funktion wurde entfernt.

Weitere Informationen zur Migration und dazu, was Sie tun können, wenn Sie mehr Zeit benötigen, finden Sie in der Migrationsanleitung für alte getStats()-Methode.

Der Wert -1 für WebRTC getStats datachannelIdentifier wurde entfernt.

Die WebRTC getStats API stellt die Eigenschaft dataChannelIdentifier bereit. Der Wert „-1“ wird nicht mehr zurückgegeben, wenn Statistiken abgefragt werden, bevor die Datenverbindung hergestellt wurde. Stattdessen wird das Wörterbuchmitglied weggelassen.

Entfernung der WebRTC-getStats-Encoder-Implementierung und ‐Decoderimplementierung „unbekannt“

Die WebRTC getStats API zeigt die Implementierungsnamen für Encoder und Decoder für aus- und eingehende Videos an. Der Wert "unknown" wird nicht mehr angezeigt, wenn Statistiken abgefragt werden, bevor ein Videoframe codiert oder decodiert wurde. Stattdessen wird das Wörterbuchmitglied weggelassen.

CSS-Eigenschaft „-webkit-highlight“

Entfernen Sie die CSS-Eigenschaft „-webkit-highlight“, die Text hervorheben soll, aber nie standardisiert wurde. Es hat keine sichtbare Wirkung in Chromium (es wird geparst, aber nie zum Rendern von Inhalten verwendet). Die Property wurde 2014 aus WebKit entfernt, in MDN als veraltet markiert und vor Kurzem durch die Spezifikation „CSS Highlight Pseudo“ ersetzt.