Chrome 120 (Beta)

CSS-Maskierung, lockere Regeln für CSS-Verschachtelungen, Erstellen von Akkordeonmustern mit dem Element <details>, der Aktion enterpictureinpicture für die Media Session API

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 120 ist seit dem 1. November 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 diesem Release werden sieben neue CSS-Funktionen hinzugefügt.

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

Unterstützt die Verwendung der Syntax <image> für benutzerdefinierte Eigenschaften, die bei @property oder registerProperty() registriert sind. Die <image>-Syntax kann verwendet werden, um die Werte der benutzerdefinierten Eigenschaft auf url()-Werte und generierte Bilder wie Farbverläufe zu 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 bei @property oder registerProperty() registriert sind.

Mit der Syntax können Werte der benutzerdefinierten Eigenschaft zur Darstellung von Transformationen eingeschränkt werden. Dadurch ist es auch möglich, Übergänge und Animationen direkt für diese registrierten benutzerdefinierten Eigenschaften zu verwenden.

Medienabfragen: Skriptfunktion

Mit der Medienfunktion für Scripting wird abgefragt, ob Scriptsprachen wie JavaScript im aktuellen Dokument unterstützt werden. Gültige Optionen sind „aktiviert“, „nur anfänglich“ und „keine“. "Nur anfänglich" in einem Browser nie.

Pseudoklassenauswahl für :dir()

Der CSS-Pseudoklassenselektor :dir() gleicht Elemente basierend auf der Direktionalität ab, die auf dem HTML dir-Attribut basiert.

:dir(ltr) entspricht der Textrichtung von links nach rechts. :dir(rtl) gleicht Elemente mit Textrichtung von rechts nach links ab.

Er entspricht nicht dem [dir]-Attributselektor, da er mit Routen abgeglichen wird, die von einem Vorgänger mit dem dir-Attribut übernommen wurden, und mit der Richtung, die aus der Verwendung von dir=auto berechnet wurde (die die Direktionalität vom ersten Zeichen im Text mit starker Direktionalität bestimmt).

CSS-Exponentialfunktionen

Fügt die CSS-Exponentialfunktionen pow(), sqrt(), hypot(), log() und exp() aus der Spezifikation „CSS-Werte und Einheitenebene 4“ hinzu.

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 Stellen maskiert oder zugeschnitten wird.

Diese Funktion entfernt das Präfix 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-Referenzen werden unterstützt, die Serialisierung entspricht jetzt der Spezifikation und die akzeptierten Werte entsprechen jetzt der Spezifikation (z. B. add statt source-over für mask-composite).

Lockere CSS-Verschachtelung

Durch diese Änderung an der Implementierung der CSS-Verschachtelung können verschachtelte Styleregeln mit einem Element beginnen, z. B. mit h1, anstatt das Symbol & am Anfang zu setzen, oder dass es in is() eingeschlossen ist. 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 mit dem Attribut „name“ auf <details>

Diese Funktion bietet die Möglichkeit, Akkordeons aus einer Abfolge von HTML-<details>-Elementen zu konstruieren. Damit wird dem Element <details> ein Attribut „name“ hinzugefügt. Bei Verwendung dieses Attributs 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

Die Methode check() von FontFaceSet prüft, ob Text mit den angegebenen Schriftarten angezeigt werden kann, ohne zu versuchen, Schriftarten in FontFaceSet zu verwenden, deren Ladevorgang noch nicht abgeschlossen ist. So können Nutzer die Schriftart sicher verwenden, ohne später eine Schriftart ersetzen zu müssen.

Schließanfragen und CloseWatcher

Schließen-Anfragen sind ein neues Konzept, das Nutzeranfragen zum Schließen eines aktuell geöffneten Elements über die Esc auf dem Computer oder die Zurück-Touch-Geste oder -Schaltfläche unter Android umfasst. Die Integration in Chrome bringt zwei Änderungen mit sich:

  • CloseWatcher, eine neue API für das direkte Überwachen und Beantworten von Schließanfragen.
  • Es wird ein Upgrade auf <dialog> und popover="" durchgeführt, um das neue Framework für Schließen-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 ein Dokument über document.requestStorageAccess() Speicherzugriff erhält und dann einen dedizierten Worker erstellt, hat der Worker auch Speicherzugriff (und kann auf nicht partitionierte Cookies zugreifen).

FedCM: Error API und AutoSelectedFlag API

Dedizierte APIs, die Entwicklern und Nutzern helfen, den Authentifizierungsvorgang besser zu verstehen. Beide APIs werden nach der Nutzerberechtigung ausgelöst, um sich mit einem Identitätsanbieter auf einer Website oder in einer Anwendung (in diesem Kontext als vertrauende Partei (Reliance Party, RP)) anzumelden. 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 mit der Error API die Gründe an den Browser weitergeben, damit sowohl Nutzer als auch RP-Entwickler auf dem Laufenden bleiben.

Mit der AutoSelectedFlag API können sowohl Identitätsanbieter als auch RP-Entwickler die Nutzererfahrung bei der Anmeldung besser verstehen und die Leistung entsprechend 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 in der Privacy Sandbox gibt es eine zusätzliche Formatoption für Protected Audience-Makros für die Anzeigengröße. Mit einer Aktivierungsfunktion können Sie mithilfe von Makros die Größe der Anzeige angeben, die die Auktion gewinnt, und zwar in der URL der Anzeige. Beispiele:

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

Zur Konsistenz mit anderen Arten von Makros in Protected Audience, z. B. denen von deprecatedReplaceInURN und registerAdMacro(), fügen wir in Chrome 120 zusätzlich zum aktuellen Format die Möglichkeit hinzu, ${AD_WIDTH} und ${AD_HEIGHT} als Format für die Makros zu verwenden.

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

Rand der Beobachtungsrollen-Kreuzung

Mit dem Intersection-Observer scrollMargin können Entwickler Ziele in verschachtelten Scroll-Containern beobachten, die derzeit von den Scroll-Containern entfernt werden. Dazu wird das Zuschneiderechteck des Containers bei der Berechnung der Schnittmenge um scrollMargin erweitert.

Berichte zu Verstößen gegen Berechtigungsrichtlinien

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

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

Media Session API: enterpictureinpicture-Aktion

Fügt der Media Session API eine enterpictureinpicture-Aktion 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 Automatischer Bild im Bild 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 den Parameter „shader-f16“ verwenden, der WebGPU-Spezifikation und der "f16"- Erweiterung der WGSL-Spezifikation, 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 von HDR-Rendering über drei neue VideoConfiguration-Wörterbuchfelder zu ermöglichen: hdrMetadataType, colorGamut und transferFunction. Chrome implementiert eigene Tone-Mapping-Algorithmen, sodass für statische HDR10-Metadaten (smpteSt2086) immer „true“ zurückgegeben wird. Dynamische Metadaten für HDR10+ (smpteSt2094-10) und Dolby Vision (smpteSt2094-40) werden derzeit nicht unterstützt, sodass „false“ zurückgegeben wird. Wir gehen davon aus, dass dynamische Metadaten in Zukunft unterstützt werden. Diese API ermöglicht es Entwicklern, die passenden Inhalte für supportberechtigte Nutzer auszuwählen.

MediaStreamTrack-Statistiken (Video)

Eine API, die Frame-Zähler (geliefert, verworfen, insgesamt) für MediaStreamTracks der Art Video anzeigt. Für Audiostatistiken wird eine separate Chrome-Funktion eingeführt.

Private Aggregation API: Auswahl des Aggregationskoordinators

Änderung an der Private Aggregation API, um einen Mechanismus bereitzustellen, mit dem ausgewählt wird, welcher Koordinator für die Nutzlastverschlüsselung (aus einer vom Anbieter angegebenen Zulassungsliste) verwendet werden soll. Die Auswahl des Dienstes wird mit einer zusätzlichen Option in den run()- und selectURL()-Aufrufen des freigegebenen Speichers sowie in den Protected Audience-Aufrufen runAdAuction() und joinAdInterestGroup() getroffen. Der breit gefasste Ansatz entspricht weitgehend dem der Attribution Reporting API.

Die 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 Nutzer an- oder abmelden.

Dies wird von FedCM verwendet, um einen stillen Timing-Angriff abzuwehren. Dadurch kann FedCM vollständig ohne Drittanbieter-Cookies arbeiten.

In Zukunft wird diese API möglicherweise für weitere Anwendungsfälle zur Verfügung gestellt.

Weitere Informationen finden Sie in unserem Blogpost zur Ankündigung.

Übergänge ansehen: Callback-Funktion so festlegen, dass keine Nullwerte zulässig sind

Der startViewTransition-Aufruf akzeptiert derzeit einen optionalen Callback-Typ, für den Nullwerte zulässig sind, mit dem Standardwert „null“: startViewTransition(optional UpdateCallback? callback = null).

Durch diese Funktion 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 mit dem quantenresistenten Schlüsselvereinbarungs-Algorithmus Kyber768 vor zukünftigen Quantenkryptografieanalysen. Dies ist eine hybride Schlüsselvereinbarung zwischen X25519 und Kyber768, die auf einem IETF-Standard basiert. Diese Spezifikation und deren Einführung liegen außerhalb des Geltungsbereichs von W3C. Diese Schlüsselvereinbarung wird als TLS-Verschlüsselung eingeführt und sollte für Nutzer transparent sein.

Ursprungstests laufen

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

'Priority' [Priorität] HTTP-Anfrageheader

Diese Funktion fügt den priority-Anfrageheader allen HTTP-Anfragen mit den Prioritätsinformationen für die Anfrage zum Zeitpunkt des Sendens hinzu.

RFC 9218 (Extensible Prioritization Scheme for HTTP) definiert eine „Priorität“. HTTP-Anfrageheader zur Signalisierung der Anfragepriorität für Ursprünge (und Vermittler). Außerdem werden Verhandlungsprozesse und Frames auf Protokollebene für HTTP/2 und HTTP/3 definiert, damit sie dieselben Prioritätsinformationen enthalten. Der Header kann nur die anfängliche Priorität für eine Ressource signalisieren, wenn sie zum ersten Mal angefordert wurde, während die Frame-basierten Mechanismen die nachträgliche Änderung der Priorität ermöglichen. Der Header kann von Ende zu Ende für die Ursprungsserver eingesetzt werden (und einen Mechanismus bereitstellen, mit dem der Ursprung die Priorität überschreiben kann, wenn er von Vermittlern erkannt wird), während die Frames auf die Linkebene beschränkt sind. Diese Funktion dient speziell zur Unterstützung des Header-basierten Priorisierungsschemas.

Wir schlagen eine Erweiterung der Storage Access API (abwärtskompatibel) vor, um den Zugriff auf nicht partitionierte Speicher (mit und ohne Cookies) für Drittanbieter zu ermöglichen.

Berechtigung für privaten Netzwerkzugriff, um gemischte Inhalte zu lockern

Zum Herstellen von Verbindungen zu Geräten in einem lokalen Netzwerk, die keine global eindeutigen Namen haben und daher keine TLS-Zertifikate erhalten können, wird mit dieser Funktion eine neue Option für fetch() eingeführt, mit der die die Absicht haben, mit einem solchen Gerät zu kommunizieren, eine neue richtliniengesteuerte Funktion, um die Zugriff auf diese Funktion und neue Header für die Preflight-Antwort des Servers, um zusätzliche Metadaten bereitzustellen.

Registrieren Sie sich für den Ursprungstest für die Eingabeaufforderung für den privaten Netzwerkzugriff.

Uneingeschränkter Zugriff auf performance.measureUserAgentSpecificMemory()

„performance.measureUserAgentSpecificMemory()“ wurde so angegeben, dass sie nur in ursprungsübergreifend isolierten Umgebungen (hinter COOP/COEP) verfügbar ist. Mit dieser Funktion wird die COOP/COEP-Einschränkung aufgehoben, sodass Regressionstests und die Messung der Auswirkungen möglich sind, wenn COOP/COEP nicht vollständig bereitgestellt werden kann. Bitte beachten Sie, dass performance.memory (Legacy-API) nicht zu diesem Zweck verwendet werden kann, da die Funktion auf Workern nie aktiviert wurde.

performance.measureUserAgentSpecificMemory()

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

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 wird eine Funktion eingestellt.

Theora-Unterstützung einstellen und entfernen

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

In dieser Version von Chrome werden zwei Funktionen entfernt.

Daten entfernen: URL in SVGUseElement

Das Zuweisen einer „data:“-URL in SVGUseElement kann zu XSS führen. Das führte auch zu einer Umgehung von vertrauenswürdigen Typen. Daher planen wir, den Support dafür einzustellen.

Vollständige Erzwingung der Same-Origin-Richtlinie in CSPEE entfernen

Bei der CSP-Eingebettete Erzwingung wird eine Sonderbehandlung für iFrames mit demselben Ursprung entfernt. Dadurch wird das Verhalten bei der Erzwingung der CSP Embedded Enforcement für ursprungsübergreifende und Same-Origin-iFrames angeglichen.