Chrome 120 bèta

CSS-maskering, versoepelde regels voor CSS-nesten, maak accordeonpatronen met het <details> -element, de enterpictureinpicture actie voor de Media Session API.

Tenzij anders aangegeven, zijn de beschreven wijzigingen van toepassing op de nieuwste release van het Chrome-bètakanaal voor Android, ChromeOS, Linux, macOS en Windows. Lees meer over de hier genoemde functies via de aangeboden links of uit de lijst op chromestatus.com . Chrome 120 is vanaf 1 november 2023 een bètaversie. Je kunt het nieuwste downloaden op Google.com voor desktop of in de Google Play Store op Android.

CSS

Deze release voegt zeven nieuwe CSS-functies toe.

CSS <image> -syntaxis voor geregistreerde aangepaste eigenschappen

Ondersteunt het gebruik van de syntaxis <image> voor aangepaste eigenschappen die zijn geregistreerd met @property of registerProperty() . De syntaxis <image> kan worden gebruikt om de waarden van de aangepaste eigenschap te beperken tot url() waarden en gegenereerde afbeeldingen zoals verlopen.

CSS-syntaxis <transform-function> en <transform-list> voor geregistreerde aangepaste eigenschappen

Ondersteunt het gebruik van de syntaxis <transform-function> en <transform-list> voor aangepaste eigenschappen die zijn geregistreerd met @property of registerProperty() .

De syntaxis kan worden gebruikt om waarden van de aangepaste eigenschap te beperken om transformaties weer te geven. Dit maakt het ook mogelijk om overgangen en animaties rechtstreeks op deze geregistreerde aangepaste eigenschappen te gebruiken.

Mediaquery's: scriptfunctie

De functie voor scriptingmedia wordt gebruikt om te vragen of scripttalen, zoals JavaScript, worden ondersteund in het huidige document. Geldige opties zijn 'ingeschakeld', 'alleen initieel' en 'geen'. 'Initial-only' komt echter nooit overeen in een browser.

:dir() pseudo-klasse selector

De :dir() CSS pseudo-klasse selector matcht elementen op basis van directionaliteit, die wordt bepaald op basis van het HTML dir attribuut.

:dir(ltr) komt overeen met de tekstrichting van links naar rechts. :dir(rtl) matcht elementen met tekstrichting van rechts naar links.

Het is niet gelijkwaardig aan de [dir] attribuutselectors, omdat het overeenkomt met de richtingen die zijn geërfd van een voorouder met het dir attribuut, en omdat het overeenkomt met de richting die is berekend op basis van het gebruik van dir=auto (dat de richting bepaalt vanaf het eerste teken in de tekst met sterke gerichtheid).

Exponentiële CSS-functies

Voegt de exponentiële CSS-functies toe: pow() , sqrt() , hypot() , log() en exp() uit de CSS Values ​​and Units Level 4-specificatie.

CSS-maskering

CSS- mask en gerelateerde eigenschappen zoals mask-image en mask-mode worden gebruikt om een ​​element (gedeeltelijk of volledig) te verbergen door de afbeelding op specifieke punten te maskeren of af te knippen.

Deze functie verwijdert de voorvoegsels van de eigenschappen -webkit-mask* en brengt ze in overeenstemming met de huidige specificatie. Dit omvat mask-image , mask-mode , mask-repeat , mask-position , mask-clip , mask-origin , mask-size en mask-composite , evenals de mask -steno. Lokale verwijzingen naar mask-image worden ondersteund, serialisatie komt nu overeen met de specificatie en geaccepteerde waarden komen nu overeen met de specificatie ( add bijvoorbeeld toe in plaats van source-over voor mask-composite .)

Ontspannen CSS-nesten

Deze wijziging in de implementatie van CSS-nesten maakt het mogelijk dat geneste stijlregels beginnen met een element, bijvoorbeeld h1 in plaats van dat het & -symbool ervoor nodig is, of omwikkeld wordt met is() . Het volgende voorbeeld is nu geldig in de specificatie en werkt in Chrome 120.

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

HTML

Accordeonpatroon met naamattribuut op <details>

Deze functie voegt de mogelijkheid toe om accordeons te construeren met behulp van een reeks HTML- <details> -elementen. Het voegt een name-attribuut toe aan het <details> -element. Wanneer dit attribuut wordt gebruikt, vormen meerdere <details> -elementen met dezelfde naam een ​​groep. Er kan maximaal één element in de groep tegelijk open zijn.

Web-API's

Overdracht van ArrayBuffer naar VideoFrame-, AudioData-, EncodedVideoChunk-, EncodedAudioChunk- en ImageDecoder-constructors toestaan

Hierdoor kunnen arraybuffers worden losgekoppeld en kunnen overeenkomstige buffers in VideoFrame, ImageDecoder, EncodedVideoChunk, EncodedAudioChunk en AudioData worden gebruikt zonder een kopie.

API voor het laden van CSS-lettertypen FontFaceSet: check() methode

De check() methode van FontFaceSet verifieert of het mogelijk is om tekst weer te geven met de opgegeven lettertypen zonder te proberen lettertypen in de FontFaceSet te gebruiken die nog niet zijn geladen. Hierdoor kunnen gebruikers het lettertype veilig gebruiken zonder later een lettertypevervanging te activeren.

Sluit verzoeken en CloseWatcher

Sluitingsverzoeken zijn een nieuw concept dat gebruikersverzoeken omvat om iets dat momenteel open is te sluiten, met behulp van de Esc- toets op het bureaublad of het teruggebaar of de knop op Android. De integratie ervan in Chrome brengt twee wijzigingen met zich mee:

  • CloseWatcher , een nieuwe API voor het direct luisteren naar en reageren op sluitingsverzoeken.
  • Upgrades naar <dialog> en popover="" om het nieuwe close request-framework te gebruiken, zodat ze reageren op de Android-terugknop.

Toegewijde werknemers en Storage Access API

Toegewijde werknemers nemen de opslagtoegangsstatus van de bovenliggende context over. Als een document opslagtoegang verkrijgt via document.requestStorageAccess() en vervolgens een speciale werker aanmaakt, heeft de werker ook toegang tot de opslag (en heeft hij toegang tot niet-gepartitioneerde cookies).

FedCM: Fout-API en AutoSelectedFlag-API

Speciale API's om ontwikkelaars en gebruikers te helpen de authenticatiestroom beter te begrijpen. Beide API's worden geactiveerd na toestemming van de gebruiker om in te loggen bij een website of applicatie (in deze context bekend als een Relying Party (RP)) met een identiteitsprovider. Met andere woorden, nadat de gebruiker op de knop Doorgaan als heeft geklikt.

Met de Error API kan de identiteitsprovider, als de inlogpoging van een gebruiker mislukt, de redenen delen met de browser om zowel gebruikers als RP-ontwikkelaars op de hoogte te houden.

Met de AutoSelectedFlag API kunnen zowel identiteitsproviders als RP-ontwikkelaars een beter inzicht krijgen in de aanmeldings-UX en dienovereenkomstig de prestaties en segmenteringsstatistieken evalueren.

Lees meer in de FedCM Chrome 120 blogpost .

Fenced Frames-functionaliteitsupdates

Er is een extra indelingsoptie voor macro's voor het advertentieformaat van Protected Audience in de Protected Audience API in de Privacy Sandbox. Met een opt-in-functie kunt u macro's gebruiken om de grootte van de advertentie die de veiling wint, in de URL van de advertentie op te geven, bijvoorbeeld:

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

Om consistenter te zijn met andere typen macro's in Protected Audience, zoals de macro's die worden gebruikt door deprecatedReplaceInURN en registerAdMacro() , voegen we in Chrome 120 de mogelijkheid toe om ${AD_WIDTH} en ${AD_HEIGHT} te gebruiken als de indeling voor de macro's in aanvulling op het huidige formaat.

Automatische bakens sturen nu naar alle geregistreerde URL's. Voorheen ontvingen alleen bestemmingen die zijn opgegeven bij het aanroepen van setReportEventDataForAutomaticBeacons() automatische bakens, zelfs als die bestemming registerAdBeacon() aanroept voor reserved.top_navigation in hun werklet. Nu krijgt elke bestemming die registerAdBeacon() aanroept voor reserved.top_navigation een automatisch baken, maar alleen bestemmingen die zijn opgegeven in setReportEventDataForAutomaticBeacons() krijgen samen met het baken automatische bakengegevens. De parameter once in setReportEventDataForAutomaticBeacons() bepaalt nu of de gegevens één keer worden verzonden, in plaats van te bepalen of het hele baken één keer wordt verzonden.

Snijpuntwaarnemer Scrollmarge

Met Intersection Observer scrollMargin kunnen ontwikkelaars doelen observeren in geneste scrollcontainers die momenteel worden weggeknipt door de scrollcontainers. Dit wordt bereikt door de clipping rect van de container uit te breiden met de scrollMargin bij het berekenen van het snijpunt.

Rapporten over schendingen van het machtigingsbeleid

Dit integreert de Permissions policy API met de Reporting API, waardoor webontwikkelaars eindpunten kunnen configureren waarnaar rapporten over schending van het permissiebeleid worden verzonden, zodat site-eigenaren kunnen zien wanneer niet-toegestane functies worden aangevraagd op hun pagina's in het veld.

Het bevat ook de header Permissions-Policy-Report-Only , waarmee rapporten kunnen worden verzonden op basis van een voorgesteld beleid (analoog aan Content-Security-Policy-Report-Only ), zodat beleidswijzigingen kunnen worden geëvalueerd op mogelijke schendingen voordat ze worden geïmplementeerd. in de reguliere, dwingende modus.

Mediasessie-API: enterpictureinpicture actie in

Voegt een actie enterpictureinpicture toe aan de Media Session API. Websites kunnen een actie-handler registreren die kan worden gebruikt om een ​​Picture-in-Picture- of Document Picture-in-Picture-venster te openen.

Meer informatie vindt u in Automatische Picture-in-Picture voor web-apps .

WebGPU f16-ondersteuning

Maakt het gebruik van het drijvende-kommatype f16 met halve precisie mogelijk in WebGPU-shaders (WGSL).

Ontwikkelaars kunnen de 'shader-f16'-functie uit de WebGPU-specificatie en de 'f16'-extensie uit de WGSL-specificatie gebruiken om toegang te krijgen tot 16-bit drijvende-kommavariabelen en API's in hun shaders.

MediaCapabilities: HDR-ondersteuning opvragen met decodingInfo()

Breidt de Media Capabilities API uit om detectie van HDR-renderingondersteuning mogelijk te maken via drie nieuwe VideoConfiguration-woordenboekvelden: hdrMetadataType , colorGamut en transferFunction . Chrome implementeert zijn eigen tonemapping-algoritmen en retourneert dus altijd waar voor statische HDR10-metagegevens (smpteSt2086). De dynamische metagegevens van HDR10+ (smpteSt2094-10) en Dolby Vision (smpteSt2094-40) worden momenteel niet ondersteund en zullen dus false retourneren. We verwachten in de toekomst ondersteuning voor dynamische metadata toe te voegen, zodat ontwikkelaars met deze API de juiste inhoud kunnen selecteren voor gebruikers met ondersteuning.

MediaStreamTrack-statistieken (video)

Een API die frametellers (geleverd, weggegooid, totaal) voor MediaStreamTracks van soort video blootlegt. Audiostatistieken worden gedekt door een afzonderlijke lancering van Chrome-functies.

Private Aggregation API: selectie van aggregatiecoördinator

Aanpassing van de Private Aggregation API om een ​​mechanisme te bieden waarmee u kunt selecteren welke coördinator u wilt gebruiken voor de versleuteling van de payload (vanaf een door de leverancier opgegeven toelatingslijst). De servicekeuze wordt gemaakt met een extra optie in de run() en selectURL() SharedStorage-aanroepen, en in de runAdAuction() en joinAdInterestGroup() Protected Audience-aanroepen. De brede aanpak komt grotendeels overeen met de aanpak van de Attribution Reporting API.

De inlogstatus-API in FedCM

Met de Login Status API (voorheen IdP Sign-in Status API) kunnen identiteitsproviders aan de browser doorgeven wanneer hun gebruikers in- of uitloggen.

Dit wordt door FedCM gebruikt om een ​​stille timingaanval aan te pakken, waardoor FedCM geheel zonder cookies van derden kan werken.

In de toekomst kan deze API beschikbaar komen voor meer gebruiksscenario's.

Lees meer in de aankondigingsblogpost .

Overgangen bekijken: callback niet-nullable maken

De startViewTransition aanroep heeft momenteel een optioneel null-callback-type met de standaardwaarde null: startViewTransition(optional UpdateCallback? callback = null) .

Deze functie verandert dit in een niet-nullable type: startViewTransition(optional UpdateCallback callback) .

X25519Kyber768-sleutelinkapseling voor TLS

Bescherm het huidige Chrome TLS-verkeer tegen toekomstige kwantumcryptanalyse door het Kyber768 kwantumbestendige algoritme voor sleutelovereenkomsten te implementeren. Dit is een hybride X25519 + Kyber768-sleutelovereenkomst gebaseerd op een IETF-standaard. Deze specificatie en lancering vallen buiten de reikwijdte van W3C. Deze sleutelovereenkomst zal worden gelanceerd als een TLS-code en moet transparant zijn voor gebruikers.

Oorsprongsproeven zijn aan de gang

In Chrome 120 kunt u zich aanmelden voor de volgende nieuwe Origin-proefversies .

'prioriteit' HTTP-verzoekheader

Deze functie voegt de header van het priority toe voor alle HTTP-verzoeken met de prioriteitsinformatie voor het verzoek op het moment dat het werd verzonden.

RFC 9218 (Extensible Prioritization Scheme for HTTP) definieert een HTTP-verzoekheader met 'prioriteit' die moet worden gebruikt voor het signaleren van de prioriteit van verzoeken aan de oorsprong (en tussenpersonen). Het definieert ook onderhandelingsprocessen en frames op protocolniveau voor HTTP/2 en HTTP/3 om dezelfde prioriteitsinformatie te bevatten. De header kan alleen de initiële prioriteit voor een hulpbron signaleren wanneer deze voor het eerst werd aangevraagd, terwijl de framegebaseerde mechanismen het mogelijk maken om de prioriteit achteraf te wijzigen. De header kan end-to-end werken met de oorsprongservers (en een mechanisme bieden waarmee de oorsprong de prioriteit kan overschrijven als deze door tussenpersonen wordt herkend), terwijl de frames beperkt zijn tot werking op linkniveau. Deze functie is specifiek bedoeld voor het ondersteunen van het op headers gebaseerde prioriteringsschema.

We stellen een uitbreiding voor van de Storage Access API (achterwaarts compatibel) om toegang tot niet-gepartitioneerde (cookie en niet-cookie) opslag in een context van derden mogelijk te maken.

Privénetwerktoegangsrechten om gemengde inhoud te ontspannen

Om verbindingen tot stand te brengen met apparaten op een lokaal netwerk die geen globaal unieke namen hebben en daarom geen TLS-certificaten kunnen verkrijgen, introduceert deze functie een nieuwe optie fetch() om de intentie van een ontwikkelaar aan te geven om met een dergelijk apparaat te praten, een nieuwe beleidsgestuurde functie om de toegang van elke site tot deze mogelijkheid te beperken, en nieuwe headers voor de preflight-reactie van de server om aanvullende metagegevens te leveren.

Meld u aan voor de oorspronkelijke proefversie van Private Network Access Permission Prompt .

Onbeperkte toegang tot performance.measureUserAgentSpecificMemory()

performance.measureUserAgentSpecificMemory() is gespecificeerd om alleen beschikbaar te zijn in geïsoleerde cross-origin-omgevingen (achter COOP/COEP). Deze functie verwijdert de COOP/COEP-beperking om regressietests en het meten van de impact mogelijk te maken wanneer COOP/COEP niet volledig kan worden ingezet. Houd er rekening mee dat performance.memory (verouderde API) niet voor dit doel kan worden gebruikt, omdat deze nooit is ingeschakeld voor werkrollen.

performance.measureUserAgentSpecificMemory()

De functie voegt een functie performance.measureUserAgentSpecificMemory() toe die het geheugengebruik van de webpagina schat. De website moet cross-origin geïsoleerd zijn om de API te kunnen gebruiken.

Beëindigingen en verwijderingen

Deze versie van Chrome introduceert de hieronder vermelde beëindigingen en verwijderingen. Ga naar ChromeStatus.com voor een lijst met geplande beëindigingen, huidige beëindigingen en eerdere verwijderingen.

In deze versie van Chrome wordt één functie beëindigd.

Beëindig en verwijder Theora-ondersteuning

Chrome zal de ondersteuning voor de Theora-videocodec in desktop-Chrome beëindigen en verwijderen vanwege opkomende beveiligingsrisico's. Het lage (en nu vaak onjuiste) gebruik van Theora rechtvaardigt niet langer ondersteuning voor de meeste gebruikers.

In deze versie van Chrome worden twee functies verwijderd.

Gegevens verwijderen: URL in SVGUseElement

Een data toewijzen: URL in SVGUseElement kan XSS veroorzaken. En dit leidde ook tot een Trusted Types-bypass. Daarom zijn we van plan de ondersteuning ervoor af te schaffen en te verwijderen.

Verwijder de algemene handhaving van dezelfde oorsprong in CSPEE

Verwijdert een speciale behandeling voor iframes van dezelfde oorsprong uit CSP Embedded Enforcement. Hierdoor wordt het gedrag van het afdwingen van CSP Embedded Enforcement voor cross-origin iframes en iframes van dezelfde oorsprong op één lijn gebracht.