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>
undpopover=""
, 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.
Storage Access API (SAA) auf Nicht-Cookie-Speicher erweitern
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.
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.