Chrome 116 (Beta)

CSS-Bewegungspfad, Back-Forward-Cache, NotRestoredReason API, Bild im Bild dokumentieren und mehr.

Sofern nicht anders angegeben, gelten die beschriebenen Änderungen für die neueste Betaversion der Chrome-Betaversion für Android, ChromeOS, Linux, macOS und Windows. Weitere Informationen zu den hier aufgeführten Funktionen findest du über die bereitgestellten Links oder in der Liste auf ChromeStatus.com. Chrome 116 ist seit dem 19. Juli 2023 als Betaversion verfügbar. Du kannst die neuesten Versionen unter Google.com für Computer oder im Google Play Store auf Android herunterladen.

CSS

In dieser Version wurden zwei neue CSS-Funktionen hinzugefügt.

CSS-Bewegungspfad

Mit Bewegungspfaden können Autoren jedes grafische Objekt positionieren und entlang eines vom Entwickler angegebenen Pfads animieren. Dies ermöglicht eine Reihe leistungsstarker neuer Transformationsmöglichkeiten, z. B. die Positionierung mithilfe von polaren Koordinaten (mit der ray()-Funktion) anstelle der von der translate()-Funktion verwendeten standardmäßigen rechteckigen Koordinaten oder das Animieren eines Elements entlang eines definierten Pfades. So lassen sich komplexe und schöne räumliche 2D-Übergänge leichter definieren. Ein Pfad kann als circle(), ellipse(), rect(), inset(), xywh(), polygon(), ray() und url() angegeben werden.

Animationen für Anzeige und Sichtbarkeit von Inhalten

Chrome 116 unterstützt die Eigenschaften display und content-visibility in Keyframe-Animationen. Dank dieser Unterstützung können Entwickler Exit-Animationen erstellen, nach denen das Element automatisch zu display: none oder content-visibility: hidden wird, ohne dass JavaScript geschrieben werden muss, um diesen Wechsel nach Abschluss der Animation zu verarbeiten. Dadurch können Exit-Animationen für Elemente nur in CSS hinzugefügt werden.

Web APIs

AbortSignal.any()

Gibt ein Signal zurück, das abgebrochen wird, wenn eines der Quellsignale abgebrochen wird. Entwickler können damit unabhängige Abbruchquellen kombinieren, z. B. mit AbortSignal.timeout() angegebene Zeitüberschreitungen und mit einem AbortController verknüpfte Signale, und diese an asynchrone APIs wie fetch() übergeben.

BYOB-Unterstützung für Abruf

Die Chrome-Implementierung von ReadableStream unterstützt BYOB-Leser (Bring-your-own-buffer) für lesbare Bytestreams. Jetzt ist Response.body auch ein lesbarer Bytestream anstelle eines „standardmäßig lesbaren“ Streams. Dadurch kann die Fetch API mit BYOB-Readern verwendet werden, wodurch der Aufwand für die automatische Speicherbereinigung reduziert und die Reaktionsfähigkeit für Nutzer verbessert wird. Blob.stream() profitiert nun auch von dieser Optimierung.

Back-Forward-Cache NotRestoredReason API

Die NotRestoredReason API meldet eine Liste der Gründe, warum eine Seite nicht aus BFcache in einer Frame-Baumstruktur über die PerformanceNavigationTiming API bereitgestellt wird.

Bild im Bild dokumentieren

Dokument-Bild im Bild fügt eine neue API hinzu, um ein Always-On-Fenster zu öffnen, das mit beliebigen HTMLElements gefüllt werden kann. Dies ist eine Erweiterung der bestehenden HTMLVideoElement API, die lediglich ermöglicht, ein HTMLVideoElement in ein Bild-im-Bild-Fenster (BiB) einzufügen. So können Webentwickler Nutzern ein besseres BiB-Erlebnis bieten.

Erweiterte Platzhalter in den Ursprüngen der Berechtigungsrichtlinie

Subdomain-Platzhalter in Zulassungslisten boten zwar einige wertvolle Flexibilität, weichen jedoch von den bisherigen Platzhalterparsern ab und erforderten einen neuen Code und neue Spezifikationen. Dieser Intent reduziert diesen Aufwand, indem Teile der vorhandenen Content Security Policy-Spezifikation wiederverwendet und scheme + wildcard domain und wildcard port auf die Zulassungsliste gesetzt werden. Insbesondere würde dieser Intent in der Zulassungsliste der Definition von „host-source“ und „schema-source“ anstelle von „origin“ die Definition von „origin“ übernehmen. Gleichzeitig muss der Pfadteil leer sein, da Berechtigungsrichtlinien für übereinstimmende Ursprünge gelten.

FedCM-Paket: Login Hint API, User Info API und RP Context API

Dieses gebündelte Update ermöglicht Anpassungen föderierter Anmeldevorgänge, die die Federated Credential Management API (FedCM) verwenden.

Mit der Login Hint API kann die vertrauende Partei einen Hinweis zu dem Nutzerkonto angeben, das in der FedCM-Benutzeroberfläche angezeigt werden soll. Dies dient hauptsächlich dazu, wiederkehrenden Nutzern eine bessere UX zu bieten.

Mit der User Info API kann der Identitätsanbieter die Nutzerinformationen abrufen, um die Anmeldung für wiederkehrende Nutzer zu personalisieren, z. B. über personalisierte Schaltflächen „Mit IdP anmelden“.

Mit der RP Context API kann der RP im FedCM-Dialogfeld anfordern, dass der Titel „Anmelden“ durch „Registrieren“, „Verwenden“ oder „Weiter“ ersetzt wird, um die tatsächliche Absicht für den Nutzer abzugleichen.

Nicht kombinierte Ereignisse zum Eingeben/Verlassen der Maus und des Mauszeigers

Legen Sie die event.composed-Property in den mouseenter-, mouseleave-, pointerenter- und pointerleave-Ereignissen "false" so fest, dass sie den Spezifikationen entspricht und Interoperabilitätslücken geschlossen werden. Sowohl bei der Spezifikation für UI-Ereignisse für Mausereignisse als auch bei der Spezifikation für Zeigerereignisse werden diese Ereignisse als nicht zusammengesetzt definiert. Beide Spezifikationen haben sich vor einigen Jahren von ihren ursprünglichen Definitionen geändert: https://github.com/w3c/uievents/pull/210 https://github.com/w3c/pointerevents/pull/461 Mit dieser Änderung wird nicht nur die Interoperabilitätslücke gelöst, sondern auch eine fehlerhafte doppelte oder dreifache Abfertigung dieser Ereignisse behoben, um ein Shadow DOM-Ereignis in Chromium zu überwachen, wenn das Shadow DOM-Host in Chromium auch das Shadow DOM-Ereignis überwacht.

„document.open“-Sandbox-Übernahme entfernen

Derzeit werden Sandbox-Flags des Aufrufers derzeit auf den Aufgerufenen angewendet, wenn document.open ein anderes Fenster als Ziel verwendet. Nach dieser Änderung ist das nicht mehr der Fall.

Critical-CH verursacht einen Neustart in NavigationTiming melden

Websites können angeben, dass ein bestimmter Clienthinweis für die Seite wichtig ist, indem sie ihn in einen Critical-CH-HTTP-Antwortheader aufnehmen. Dies löst einen Neustart der Verbindung aus, wenn der im Critical-CH-HTTP-Antwortheader enthaltene Hinweis in der ursprünglich gesendeten HTTP-Anfrage enthalten sein könnte, aber nicht war. Dieser Intent schlägt vor, der Schnittstelle PerformanceNavigationTiming readonly attribute DOMHighResTimeStamp criticalCHRestart; hinzuzufügen.

Ursprungstests laufen

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

COOP: Properties einschränken

„Cross-Origin-Opener-Policy“ wird verwendet, um die Beziehung zwischen Pop-up-Fenstern und Öffnenden aufzulösen, um die Sicherheit zu erhöhen. "restrict-properties" ist ein vorgeschlagener Wert, der die Beziehung einschränkt, anstatt sie vollständig zu trennen. Bei einer Verknüpfung mit COEP würde „crossOriginIsolated“ aktiviert werden.

Registrieren Sie sich für den Ursprungstest des COOP-Einschränkungen für Properties.

FedCM Sign-in Status API

Über die IdP Sign-in Status API der Federated Credential Management API (FedCM) kann ein Identitätsanbieter (Identity Provider, IdP) dem Browser signalisieren, wenn sich seine Nutzer an- oder abmelden. So kann FedCM seine Datenschutzeigenschaften durch optimierte UX erhöhen.

Für den Ursprungstest mit dem FedCM-Anmeldestatus registrieren

EditContext API

Die EditContext API vereinfacht die Integration einer Webanwendung in erweiterte Texteingabemethoden wie VK-Formenschrift, Handschriftfelder, Spracherkennung und IME-Kompositionen. Die API verbessert die Zugänglichkeit und Leistung und bietet neue Funktionen für webbasierte Editoren.

Für den Ursprungstest der EditContext API registrieren

Frame-Timing der langen Animation

Dies ist eine Erweiterung langer Aufgaben. Die Aufgabe wird zusammen mit dem anschließenden Rendering-Update gemessen. Dabei werden Informationen wie lange laufende Skripts, Renderingzeit und die für das erzwungene Layout und den Stil aufgewendete Zeit hinzugefügt, was auch als Layout-Chrashing bezeichnet wird.

Entwickler können dies als Diagnose für die „Langsamkeit“ verwenden, die von INP gemessen wird, indem sie die Ursachen für eine Überlastung des Hauptthreads ermitteln, die oft die Ursache für fehlerhaften INP ist.

Für den Ursprungstest für das lange Animationsframe-Timing registrieren