CSS-Raster-Unterraster, Unterstützung von Eingabe- und Exit-Animationen für CSS, Array-Gruppierung, Iterator-Hilfsprogramme und mehr.
Sofern nicht anders angegeben, gelten die beschriebenen Änderungen für die neueste 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 als Betaversion verfügbar. Die neuesten Versionen stehen unter Google.com für Computer und im Google Play Store für Android-Geräte zum Download bereit.
CSS
In dieser Version werden sechs neue CSS-Funktionen hinzugefügt. Die ersten drei Eigenschaften sind Teil der Arbeit zur Aktivierung von Übergängen bei diskreten Eigenschaften, die Einstiegs- und Exit-Animationen ermöglichen.
Die @starting-style-Regel
Mit dieser At-Regel können Autoren CSS-Übergänge beim ersten Stilupdate starten.
CSS-Übergänge lösen keine Übergänge von Anfangsstilen bei der ersten Stilaktualisierung für ein Element oder dann aus, wenn der Anzeigetyp von none
zu einem anderen Typ wechselt. Dadurch sollen unerwartete Übergänge von den ursprünglichen Stilen vermieden werden. Um einen Übergang von der ersten Stilaktualisierung zu starten, können Sie nun Stile in einer @starting-style
-Regel anwenden. Mit dem folgenden CSS-Code wird beispielsweise bei der ersten Stilaktualisierung für ein div-Element 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;
}
}
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 in der obersten Ebene befindet. Sie kann zwei Werte annehmen: none
oder auto
.
CSS-Eigenschaft „Übergangsverhalten“
Die CSS-Eigenschaft transition-behavior
ist eine Langfassung der Eigenschaft transition
, die die Verwendung diskreter Eigenschaften in Übergängen ermöglicht. Wenn Sie den allow-discrete
-Wert für das Übergangsverhalten angeben, starten diskrete Eigenschaften jetzt Animationen und wandern vom Anfangswert in ihren 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.
Wert des CSS-Raster-Subrasters
Der Wert subgrid
für grid-template-columns
und grid-template-rows
ist jetzt in Chrome implementiert. Mit diesem Wert kann ein verschachteltes Raster die Tracks des übergeordneten Rasters verwenden, anstatt eine neue Trackdefinition für Zeilen, Spalten oder beides zu erstellen.
CSS-Textumbruch: elegant
Der Wert pretty
für die CSS-Eigenschaft text-wrap
optimiert das Layout im Hinblick auf das beste Layout und nicht für die Geschwindigkeit. Sie ist für den Fließtext gedacht und erwartet mehrere Zeilen. Durch die Verwendung von pretty
aktiviert ein Entwickler explizit eine Layoutmethode, die unter Umständen langsamer ist als wrap
, wodurch die Leistung optimiert wird. Die aktuelle Implementierung in Chrome wurde für Verwaisen optimiert, um zu verhindern, dass am Ende eines Absatzes ein einzelnes Wort angezeigt wird.
Probieren Sie in Chrome 117 diese Demo von „text-wrap: elegant“ aus und sehen Sie, wie der Wert die Textdarstellung verändert.
include-intrinsic-size: Unterstützung für auto-keine
Diese Funktion erweitert die vorhandene contain-intrinsic-size
-Syntax um auto && none
.
Web APIs
Arraygruppierung
Die Array-Gruppierung ist ein sehr häufiger Vorgang, der am besten durch die GROUP BY-Klausel von SQL und die MapReduce-Programmierung (was besser als „map-group-reduce“ bezeichnet wird) veranschaulicht wird. Durch die Möglichkeit, Daten in Gruppen zu kombinieren, können Entwickler höherrangige Datensätze berechnen, z. B. das Durchschnittsalter einer Kohorte oder die täglichen LCP-Werte für eine Webseite. Dazu werden die statischen Methoden Object.groupBy
und Map.groupBy
hinzugefügt. Die Objekt-Methode gibt ein einfaches Objekt zurück, wobei die Gruppen Eigenschaftsschlüssel sind. Die Map-Methode gibt eine Zuordnung zurück, deren Schlüssel beliebige Werte sein können.
Löschen von Clienthinweisen über den Header „Websitedaten löschen“
Websites können den Cache für Clienthinweise jetzt mithilfe von Clear-Site-Data: "clientHints"
leeren. Clienthinweise werden jetzt auch gelöscht, wenn „cookies“, „cache“ oder „*“ dieselbe Kopfzeile, auf die sie ausgerichtet sind. Wenn der Nutzer Cookies in der Benutzeroberfläche löscht, sind auch bereits Clienthinweise geleert. Der Cache für Clienthinweise ist ein Cache, der mit Platzhalterzielen übereinstimmt.
Syntax des Headers zum Löschen von Websitedaten
Websites können jetzt alle Speicherziele („Cookies“, „Cache“ und „Speicher“) löschen, indem Clear-Site-Data: "*"
gesendet wird. Beachten Sie, dass Chrome das Löschen von „ExecutionContexts“ nicht unterstützt aber wenn wir es zu einem späteren Zeitpunkt hinzufügen würden, wäre ein Header-Targeting "*" würden sie ebenfalls löschen.
customElements.getName
Die Methode customElements.getName()
gibt den Tag-Namen der angegebenen Definition für das benutzerdefinierte Element zurück.
sie-helfer
Iterator-Hilfsprogramme sind neue Methoden für Iterator-Prototypen, die eine allgemeine Verwendung und Verbrauch von Iteratoren ermöglichen.
CaptureController aus der EventTarget-Schnittstelle ableiten
Die Schnittstelle CaptureController ermöglicht die weitere Bearbeitung einer Bildschirmaufnahmesitzung. Künftig werden Ereignisse, die sich auf eine Aufnahmesitzung beziehen, voraussichtlich auf diesem Controller ausgelöst. Damit Sie Listener für solche Ereignisse verwalten können, werden die EventTarget
-Methoden in CaptureController
zur Verfügung gestellt.
PerformanceResourceTiming deliveryType
Das Attribut deliveryType
von PerformanceResourceTiming
gibt Informationen darüber zurück, wie eine Ressource bereitgestellt wurde. Zum Beispiel Ressourcen, die aus dem Cache bereitgestellt wurden (derzeit über transferSize
verfügbar) und Navigationen, die von der vorherigen Seite vorab abgerufen wurden.
Portüberlauf-Prüfung in URL-Setters
Der Portwert wird beim Festlegen von url.port
geprüft. Alle Werte, die die 16-Bit-Zahl überschreiten, sind nicht mehr gültig. Das folgende Skript verhält sich nach der Änderung beispielsweise anders:
u = new URL("http://test.com");
u.port = 65536;
console.log(u.port);
Vor der Änderung wird als Ausgabe 65536 ausgegeben. Nach der Änderung ist die Ausgabe 80.
Private State Token API
Dies ist eine neue API zur Weitergabe von eingeschränkten privaten Signalen an Websites, ohne websiteübergreifende dauerhafte Kennungen wie Drittanbieter-Cookies zu verwenden. Methoden zum Schutz vor Betrug, die auf Drittanbieter-Cookies beruhen, funktionieren nach der Einstellung von Drittanbieter-Cookies nicht mehr. Die Private State Token API generiert oder definiert keine Signale zur Betrugsbekämpfung. Dies hängt vom entsprechenden Erstanbieter und den Tokenausstellern ab. Die API wahrt vielmehr den Datenschutz, indem die in diesen Signalen übertragenen Informationen beschränkt werden. Die API basiert auf einer Variante des Privacy Pass-Protokolls, das derzeit von der IETF standardisiert wird. Sie können als eine im Web offengelegte Form der Privacy Pass-Protokolle betrachtet werden. Die API-Spezifikation wird für neue Versionen und Tokentypen aktualisiert und wird gemäß den Spezifikationen der Privacy Pass-Arbeitsgruppen auf dem neuesten Stand gehalten. Zu erwartende Änderungen wären die zugrunde liegenden kryptografischen Protokolle und der Token-Ausstellungscode: Wir erwarten keine Änderungen bei den entwicklerseitigen Ausstellungs- und Einlösungs-Fetch APIs. Die Private State Token API hieß früher Trust Token API. Es wurde umbenannt, um die zugrunde liegende Semantik genauer abzubilden und die Vorteile des Datenschutzes für Nutzer hervorzuheben.
Mit URL-Standard kompatibler IPv6-Host-Parser mit eingebetteter IPv4-Adresse
Das Verhalten beim Parsen des eingebetteten IPv6-Host-Parsers von IPv4 wird aktualisiert, um dem URL-Standard des Webs strikt zu entsprechen. Die eingeführten Einschränkungen für die IPv6-Adresse sind:
- Die eingebettete IPv4-Adresse muss immer aus vier Teilen bestehen.
- Adressen, die weniger als vier Teile enthalten, z. B.
http://[::1.2]
, sind dann nicht mehr gültig. Die Funktion ist Teil der URL-Interoperabilität 2023.
URL: „%00“ zulassen als gültiger URL-Pfad
Chrome stuft eine URL derzeit als ungültig ein, wenn ihr Pfadteil „%00“ enthält. (oder null), was nicht mit dem URL-Standard konform ist. Der folgende Test schlägt beispielsweise in Chrome fehl, da new URL(...)
die Ausnahme „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. Mit dieser Änderung wird Chrome entsprechend diesem Standard aktualisiert.
Steuerung der WebRTC RTP-Header-Erweiterung
Erweitern Sie die WebRTC RTCRtpTransceiver
API, um zu steuern, welche RTP-Header-Erweiterungen ausgehandelt werden.
Quantisierer pro Frame in VideoEncoder
Fügt „Quantizer“ hinzu VideoEncoderBitrateMode
für VideoEncoder.
Dies bietet die Möglichkeit, für AV1-, VP9- und AVC-Video-Codecs einen Quantizer-Parameter für jeden Frame anzugeben.
WebUSB-Option exclusionFilters
in requestDevice()
Mit der Option exclusionFilters
in navigator.usb.requestDevice()
können Webentwickler einige Geräte aus der Browserauswahl ausschließen. Damit lassen sich Geräte ausschließen, die einem weiter gefassten Filter entsprechen, aber nicht unterstützt werden.
Ursprungstests laufen
In Chrome 117 können Sie die folgenden neuen Ursprungstests aktivieren.
Transport von Komprimierungswörterbüchern mit Shared Brotli
Diese Funktion unterstützt die Verwendung bestimmter vorheriger Antworten als externes Wörterbuch für die Brotli-Komprimierung von HTTP-Antworten.
Für den CompressionDictionaryTransport-Ursprungstest registrieren
Test zur Einstellung von WebSQL
WebSQL wird aus Chrome entfernt. Websites, die sich darauf verlassen, sollten über Wasm auf SQLite umsteigen.
Dieser Test zur Einstellung gibt Entwicklern, die mehr Zeit für die Migration benötigen, die Möglichkeit, WebSQL bis Chrome 123 (März 2024) weiterhin zu verwenden. Registrieren Sie sich für den Test zur Einstellung von WebSQL.
Web-Apps mit Tabs
Erlauben Sie Web-App-Fenstern eine Tableiste, um beispielsweise mehrere Dokumente in derselben App zu bearbeiten. Dadurch wird der Anzeigemodus und ein neues Manifest-Feld, um Anpassungen an der Tableiste zu ermöglichen.
Registrieren Sie sich für den Ursprungstest für Web-Apps mit Tabs.
Einstellung und Entfernung
Mit dieser Version von Chrome werden die unten aufgeführten Einstellungen und Entfernungen eingeführt. Unter ChromeStatus.com finden Sie eine Liste mit geplanten Einstellungen, aktuellen Einstellungen und früheren Löschungen.
In dieser Version von Chrome werden zwei Funktionen eingestellt.
Unload-Ereignis verwerfen
In Chrome 117 wird die Einstellung des unload
-Event-Handlers gestartet. Wenn Sie auf Ihrer Website solche Funktionen verwenden, empfehlen wir Ihnen dringend, den entsprechenden Beitrag zur Einstellung von unload
zu lesen, um weitere Informationen zu erhalten.
Einstellung von SHA-1-Serversignaturen in TLS
Chrome entfernt die Unterstützung für Signaturalgorithmen, die SHA-1 für Serversignaturen während des TLS-Handshakes verwenden. 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 alte getStats()-Methode entfernen
RTCPeerConnection verfügt über zwei Versionen von getStats()
: eine, die spezifikationskonform ist und den Bericht durch Auflösen eines Promise zurückgibt, und eine nicht standardmäßige Version, die über einen Callback als erstes Argument einen ganz anderen Bericht zurückgibt. Die Callback-basierte wird jetzt entfernt.
Weitere Informationen zur Migration und dazu, was Sie tun können, wenn Sie mehr Zeit benötigen, finden Sie in der Legacy getStats()-Migrationsanleitung.
Entfernung des Werts -1 für WebRTC getStats datachannelIdentifier
Die WebRTC getStats API stellt eine dataChannelIdentifier-Eigenschaft bereit. Der Wert „-1“ wird nicht mehr angegeben. in Fällen, in denen Statistiken abgefragt werden, bevor die Datenverbindungsverbindung hergestellt wurde. Stattdessen wird das Wörterbuchmitglied weggelassen.
Entfernen von WebRTC getStatsEncoderImplementation unddecderImplementation „unknown“
Die WebRTC getStats API macht die Implementierungsnamen des Encoders und des Decoders für aus- und eingehende Videos sichtbar. In Fällen, in denen Statistiken abgefragt werden, bevor ein Videoframe codiert oder decodiert wurde, wird nicht mehr der Wert "unknown" angezeigt. Stattdessen wird das Wörterbuchmitglied weggelassen.
CSS-Property „-webkit-highlight“
Entfernen Sie die CSS-Eigenschaft -webkit-highlight
, die Text hervorheben soll, aber nie standardisiert wurde. Es hat in Chromium keine sichtbaren Auswirkungen. Es wird geparst, aber nie beim Rendern von Inhalten verwendet. Die Property wurde 2014 aus WebKit entfernt, in MDN als veraltet gekennzeichnet und vor Kurzem durch die CSS Highlight Pseudo Spezifikation ersetzt.