Chrome 120 (Beta)

CSS-Maskierung, gelockerte Regeln für die CSS-Verschachtelung, Akkordeonmuster mit dem <details>-Element erstellen, der enterpictureinpicture-Aktion für die Media Session API.

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 finden Sie über die bereitgestellten Links oder in der Liste auf chromestatus.com. Chrome 120 ist seit dem 1. November 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

Diese Version umfasst sieben neue CSS-Funktionen.

CSS-<image>-Syntax für registrierte benutzerdefinierte Eigenschaften

Unterstützt die Verwendung der Syntax <image> für benutzerdefinierte Eigenschaften, die mit @property oder registerProperty() registriert wurden. Mit der Syntax <image> können Sie die Werte der benutzerdefinierten Eigenschaft auf url()-Werte und generierte Bilder wie Farbverläufe beschränken.

CSS-Syntax <transform-function> und <transform-list> für registrierte benutzerdefinierte Eigenschaften

Unterstützt die Verwendung der Syntax <transform-function> und <transform-list> für benutzerdefinierte Eigenschaften, die mit @property oder registerProperty() registriert wurden.

Die Syntax kann verwendet werden, um Werte der benutzerdefinierten Eigenschaft für die Darstellung von Transformationen einzuschränken. Dies ermöglicht auch die Verwendung von Übergängen und Animationen direkt auf diesen registrierten benutzerdefinierten Eigenschaften.

Medienabfragen: Skriptfunktion

Mit der Funktion für Skriptmedien wird abgefragt, ob Skriptsprachen wie JavaScript im aktuellen Dokument unterstützt werden. Gültige Optionen sind „aktiviert“, „nur Anfang“ und „keine“. Der Wert "nur Anfang" stimmt in einem Browser jedoch nie überein.

:dir()-Pseudoklassenauswahl

Der CSS-Pseudoklassenselektor :dir() gleicht Elemente anhand der Direktionalität ab, die anhand des HTML-Attributs „dir“ bestimmt wird.

:dir(ltr) gleicht die Schreibrichtung von links nach rechts ab. :dir(rtl) gleicht Elemente mit linksläufiger Textrichtung ab.

Sie ist nicht gleichbedeutend mit [dir]-Attributselektoren, da sie mit Routen abgeglichen werden, die von einem Ancestor mit dem dir-Attribut übernommen wurden, sowie mit der Richtung, die durch die Verwendung von dir=auto berechnet wurde (wodurch die Direktionalität vom ersten Zeichen im Text mit starker Direktionalität bestimmt wird).

CSS-Exponentialfunktionen

Fügt die CSS-Exponentialfunktionen aus der Spezifikation für CSS-Werte und -Einheiten der Ebene 4 hinzu: pow(), sqrt(), hypot(), log() und exp().

CSS-Maskierung

CSS-mask und zugehörige Eigenschaften wie mask-image und mask-mode werden verwendet, um ein Element (teilweise oder vollständig) auszublenden, indem das Bild an bestimmten Punkten maskiert oder abgeschnitten wird.

Diese Funktion entfernt die Präfixe der -webkit-mask*-Attribute und passt sie an die aktuelle Spezifikation an. Dazu gehören mask-image, mask-mode, mask-repeat, mask-position, mask-clip, mask-origin, mask-size und mask-composite sowie die Abkürzung mask. Lokale mask-image-Verweise werden unterstützt, die Serialisierung entspricht jetzt der Spezifikation und die akzeptierten Werte entsprechen jetzt der Spezifikation (z. B. add anstelle von source-over für mask-composite).

Einfache CSS-Verschachtelung

Durch diese Änderung an der CSS-Verschachtelungsimplementierung können verschachtelte Stilregeln mit einem Element beginnen (z. B. h1), anstatt das &-Symbol vorne zu erfordern oder mit is() umschlossen zu werden. Das folgende Beispiel ist jetzt in der Spezifikation gültig und funktioniert in Chrome 120.

.card {
  h1 {
    /* h1 does not start with a symbol */
  }
}

HTML

Akkordeonmuster unter Verwendung des Namensattributs auf <details>

Mit dieser Funktion kannst du Akkordeons mithilfe einer Abfolge von HTML-<details>-Elementen konstruieren. Es fügt dem <details>-Element ein Namensattribut hinzu. Wenn dieses Attribut verwendet wird, bilden mehrere <details>-Elemente mit demselben Namen eine Gruppe. Es kann höchstens ein Element in der Gruppe gleichzeitig geöffnet sein.

Web APIs

Übertragung von ArrayBuffer in VideoFrame-, AudioData-, EncodedVideoChunk-, EncodedAudioChunk- und ImageDecoder-Konstruktoren zulassen

Dadurch können Array-Zwischenspeicher getrennt und entsprechende Puffer in VideoFrame, ImageDecoder, EncodedVideoChunk, EncodedAudioChunk und AudioData ohne Kopie verwendet werden.

CSS-Font Loading API – FontFaceSet: check()-Methode

Mit der Methode check() von FontFaceSet wird überprüft, ob Text in den angegebenen Schriftarten angezeigt werden kann, ohne zu versuchen, Schriftarten in FontFaceSet zu verwenden, die noch nicht vollständig geladen wurden. So können Nutzer die Schriftart sicher verwenden, ohne später einen Austausch der Schriftart auslösen zu müssen.

Schließanfragen und CloseWatcher

Schließanfragen sind ein neues Konzept, das Nutzeranfragen zum Schließen eines aktuell geöffneten Bereichs umfasst, über die Esc-Taste auf dem Computer oder die Schaltfläche „Zurück“ auf Android-Geräten. Für die Integration in Chrome gibt es zwei Änderungen:

  • CloseWatcher, eine neue API zum direkten Überwachen und Beantworten von Schließanfragen.
  • Upgrades auf <dialog> und popover="", um das neue Framework für Schließanfragen zu verwenden, damit sie auf die Android-Schaltfläche „Zurück“ reagieren.

Dedizierte Worker und Storage Access API

Dedizierte Worker übernehmen den Speicherzugriffsstatus des übergeordneten Kontexts. Wenn also ein Dokument Speicherzugriff über document.requestStorageAccess() erhält und dann einen dedizierten Worker erstellt, hat der Worker ebenfalls Speicherzugriff und kann auf nicht partitionierte Cookies zugreifen.

FedCM: Error API und AutoSelectedFlag API

Dedizierte APIs, die Entwicklern und Nutzern helfen, den Authentifizierungsablauf besser zu verstehen. Beide APIs werden nach der Nutzerberechtigung zur Anmeldung bei einer Website oder Anwendung (in diesem Kontext als vertrauende Partei (Relying Party, RP)) bei einem Identitätsanbieter ausgelöst. Das heißt, nachdem der Nutzer auf die Schaltfläche Weiter als geklickt hat.

Wenn der Anmeldeversuch eines Nutzers fehlschlägt, kann der Identitätsanbieter mithilfe der Error API dem Browser die Gründe mitteilen, damit Nutzer und RP-Entwickler auf dem neuesten Stand bleiben.

Mit der AutoSelectedFlag API können sowohl Identitätsanbieter- als auch RP-Entwickler die Nutzererfahrung bei der Anmeldung besser verstehen und die Leistung bewerten und Messwerte entsprechend segmentieren.

Weitere Informationen finden Sie im FedCM-Blogpost zu Chrome 120.

Funktionsupdates für Fenced Frames

In der Protected Audience API der Privacy Sandbox gibt es eine zusätzliche Formatoption für Protected Audience-Makros für die Anzeigengröße. Bei einer Aktivierungsfunktion können Sie mithilfe von Makros die Größe der Anzeige, die die Auktion gewinnt, in der URL der Anzeige angeben. Beispiel:

https://ad.com?width={/%AD_WIDTH%}&height={/%AD_HEIGHT%}

Um die Übereinstimmung mit anderen Makros in Protected Audience zu gewährleisten, z. B. den von deprecatedReplaceInURN und registerAdMacro() verwendeten Makros in Chrome 120, haben wir neben dem aktuellen Format die Möglichkeit hinzugefügt, ${AD_WIDTH} und ${AD_HEIGHT} als Format für die Makros zu verwenden.

Automatische Beacons senden jetzt an alle registrierten URLs. Bisher empfangene nur beim Aufrufen von setReportEventDataForAutomaticBeacons() angegebene Ziele automatische Beacons, auch wenn das Ziel im Worklet registerAdBeacon() für reserved.top_navigation lautete. Nun erhält jedes Ziel, das registerAdBeacon() für reserved.top_navigation aufruft, ein automatisches Beacon, aber nur Ziele, die in setReportEventDataForAutomaticBeacons() angegeben sind, erhalten zusammen mit dem Beacon auch automatische Beacon-Daten. Der once-Parameter in setReportEventDataForAutomaticBeacons() bestimmt nun, ob die Daten nur einmal gesendet werden. So wird nicht mehr bestimmt, ob das gesamte Beacon gesendet wird.

Scrollrand für Kreuzung und Beobachter

Mit Intersection Observer scrollMargin können Entwickler Ziele in verschachtelten Scrollcontainern beobachten, die derzeit von den Scrollcontainern abgeschnitten sind. Dazu wird das Beschneidungsrechteck des Containers bei der Berechnung der Kreuzung um scrollMargin erweitert.

Berichte zu Verstößen gegen die Berechtigungsrichtlinie

Dadurch wird die Permissions Policy API in die Reporting API eingebunden. So können Webentwickler Endpunkte konfigurieren, an die Berichte zu Berechtigungsrichtlinienverstößen gesendet werden. So können Websiteinhaber sehen, wenn unzulässige Funktionen auf ihren Seiten angefordert werden.

Außerdem enthält er den Header „Permissions-Policy-Report-Only“. Damit können Berichte basierend auf einer vorgeschlagenen Richtlinie (ähnlich zu Content-Security-Policy-Report-Only) gesendet werden. So können Richtlinienänderungen auf potenzielle Fehler geprüft werden, bevor sie im regulären Modus für die Erzwingung implementiert werden.

Media Session API: enterpictureinpicture Aktion

Fügt der Media Session API die Aktion enterpictureinpicture hinzu. Websites können einen Aktions-Handler registrieren, der zum Öffnen eines Bild-im-Bild-Fensters oder eines Dokument-Bild-im-Bild-Fensters verwendet werden kann.

Weitere Informationen finden Sie unter Automatische Bild-im-Bild-Funktion für Web-Apps.

Unterstützung von WebGPU f16

Ermöglicht die Verwendung des Gleitkommatyps f16 mit halber Genauigkeit in WebGPU-Shadern (WGSL).

Entwickler können die Funktion "Shader-f16" aus der WebGPU-Spezifikation und die "F16"-Erweiterung aus der WGSL-Spezifikation verwenden, um auf 16-Bit-Gleitkommavariablen und APIs in ihren Shadern zuzugreifen.

MediaCapabilities: HDR-Unterstützung mit decodingInfo() abfragen

Erweitert die Media Capabilities API, um die Erkennung der Unterstützung für HDR-Rendering über drei neue VideoConfiguration-Wörterbuchfelder zu ermöglichen: hdrMetadataType, colorGamut und transferFunction. Chrome implementiert eigene Tone-Mapping-Algorithmen und gibt für statische HDR10-Metadaten (smpteSt2086) immer „true“ zurück. Die dynamischen Metadaten von HDR10+ (smpteSt2094-10) und Dolby Vision (smpteSt2094-40) werden derzeit nicht unterstützt, deshalb wird „false“ zurückgegeben. Wir gehen davon aus, dass wir die Unterstützung für dynamische Metadaten in Zukunft hinzufügen werden. Mit dieser API können Entwickler daher die passenden Inhalte für unterstützende Nutzer auswählen.

MediaStreamTrack-Statistiken (Video)

Eine API, die Frame-Zähler (ausgeliefert, verworfen, insgesamt) für MediaStreamTracks einer Art Video verfügbar macht. Audiostatistiken werden im Rahmen einer separaten Chrome-Funktion eingeführt.

Private Aggregation API: Auswahl des Aggregationskoordinators

Änderung an der Private Aggregation API, um einen Mechanismus zur Auswahl des Koordinators für die Nutzlastverschlüsselung (aus einer anbieterspezifischen Zulassungsliste) bereitzustellen. Die Dienstauswahl wird mit einer zusätzlichen Option in den Aufrufen run() und selectURL() SharedStorage sowie in den Protected Audience-Aufrufen runAdAuction() und joinAdInterestGroup() getroffen. Der allgemeine Ansatz entspricht weitgehend dem Ansatz der Attribution Reporting API.

Login Status API in FedCM

Mit der Login Status API (früher IdP Sign-in Status API) können Identitätsanbieter dem Browser signalisieren, wenn sich ihre Nutzer an- oder abmelden.

Dies wird von FedCM verwendet, um einen stillen Timing-Angriff entgegenzuwirken, wodurch FedCM ganz ohne Drittanbieter-Cookies auskommt.

In Zukunft wird diese API möglicherweise für weitere Anwendungsfälle verfügbar sein.

Weitere Informationen finden Sie im Blogpost zur Ankündigung.

Übergänge ansehen: Callback so konfigurieren, dass kein Nullwert zulässig ist

Der startViewTransition-Aufruf verwendet derzeit einen optionalen Rückruftyp, für den Nullwerte zulässig sind, mit dem Standardwert null: startViewTransition(optional UpdateCallback? callback = null).

Durch dieses Feature wird der Typ in einen Typ geändert, der keine Nullwerte zulässt: startViewTransition(optional UpdateCallback callback).

X25519Kyber768-Schlüsselkapselung für TLS

Schützen Sie den aktuellen Chrome-TLS-Traffic vor zukünftigen Quantenkryptoanalysen, indem Sie den quantengeschützten Schlüsselvereinbarungsalgorithmus Kyber768 bereitstellen. Dies ist eine hybride X25519- und Kyber768-Schlüsselvereinbarung, die auf einem IETF-Standard basiert. Diese Spezifikation und die Einführung liegen außerhalb des Geltungsbereichs von W3C. Diese Schlüsselvereinbarung wird als TLS-Chiffre eingeführt und sollte für Nutzer transparent sein.

Ursprungstests laufen

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

HTTP-Anfrageheader „Priority“

Diese Funktion fügt den Anfrageheader priority für alle HTTP-Anfragen mit den Prioritätsinformationen für die Anfrage zum Zeitpunkt hinzu, zu dem sie gesendet wurde.

RFC 9218 (Extensible Prioritization Scheme for HTTP) definiert einen HTTP-Anfrageheader mit der Priorität, der zur Angabe der Priorität von Anfragen an Ursprünge (und Mittler) verwendet werden soll. Außerdem werden Verhandlungsprozesse und Frames auf Protokollebene für HTTP/2 und HTTP/3 definiert, damit dieselben Prioritätsinformationen bereitgestellt werden. Der Header kann die anfängliche Priorität einer Ressource nur bei der ersten Anforderung signalisieren, während die Frame-basierten Mechanismen die nachträgliche Änderung der Priorität ermöglichen. Der Header kann durchgängig mit den Ursprungsservern arbeiten (und einen Mechanismus bereitstellen, mit dem der Ursprung die Priorität überschreiben kann, wenn er von einem Vermittler erkannt wird), während die Frames auf eine Linkebene beschränkt sind. Diese Funktion wurde speziell für die Unterstützung des headerbasierten Priorisierungsschemas entwickelt.

Wir schlagen eine Erweiterung der Storage Access API (abwärtskompatibel) vor, um den Zugriff auf nicht partitionierten (Cookie- und Nicht-Cookie)-Speicher in Drittanbieterkontexten zu ermöglichen.

Berechtigung für privaten Netzwerkzugriff zum Lockern gemischter Inhalte

Damit Verbindungen zu Geräten in einem lokalen Netzwerk hergestellt werden können, die keine global eindeutigen Namen haben und daher keine TLS-Zertifikate abrufen können, wird mit dieser Funktion eine neue Option für fetch() eingeführt, mit der Entwickler die Absicht, mit einem solchen Gerät zu kommunizieren, deklarieren. Außerdem gibt es eine neue richtliniengesteuerte Funktion, mit der der Zugriff jeder Website auf diese Funktion eingeschränkt wird, sowie neue Header für die Preflight-Antwort des Servers, um zusätzliche Metadaten bereitzustellen.

Registrieren Sie sich für den Ursprungstest für die Berechtigungsaufforderung für den Zugriff auf private Netzwerke.

Uneingeschränkter Zugriff auf „performance.measureUserAgentSpecificMemory()“

„performance.measureUserAgentSpecificMemory()“ ist so konfiguriert, dass sie nur in ursprungsübergreifend isolierten Umgebungen (hinter COOP/COEP) verfügbar ist. Mit dieser Funktion wird die COOP/COEP-Einschränkung aufgehoben, um Regressionstests und die Messung der Auswirkungen zu ermöglichen, wenn COOP/COEP nicht vollständig bereitgestellt werden kann. Beachten Sie, dass performance.memory (Legacy-API) zu diesem Zweck nicht verwendet werden kann, da es nie für Worker aktiviert wurde.

performance.measureUserAgentSpecificMemory()

Das Feature fügt eine performance.measureUserAgentSpecificMemory()-Funktion hinzu, die die Arbeitsspeichernutzung der Webseite schätzt. Die Website muss ursprungsübergreifend isoliert sein, um die API nutzen zu können.

Einstellungen und Löschungen

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

In dieser Version von Chrome wird eine Funktion eingestellt.

Theora-Support einstellen und entfernen

Aufgrund neuer Sicherheitsrisiken stellt Chrome die Unterstützung für den Theora-Video-Codec in der Desktopversion von Chrome ein. Die geringe (und oft falsche) Nutzung von Theora rechtfertigt für die meisten Nutzer keine Unterstützung mehr.

In dieser Version von Chrome stehen zwei Funktionen nicht mehr zur Verfügung.

Daten entfernen: URL in SVGUseElement

Das Zuweisen einer „data:“-URL in „SVGUseElement“ kann XSS verursachen. Dies führte auch zu einer Umgehung vertrauenswürdiger Typen. Daher planen wir, die Unterstützung dafür einzustellen.

Vollständige Erzwingung für denselben Ursprung in CSPEE entfernen

Entfernt eine spezielle Behandlung für iFrames desselben Ursprungs aus der CSP Embed Erzwingung. Dadurch wird das Verhalten bei der Erzwingung der eingebetteten CSP-Erzwingung für ursprungsübergreifende iFrames und iFrames desselben Ursprungs angeglichen.