Tenzij anders aangegeven, zijn de volgende 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 via de lijst op ChromeStatus.com . Chrome 121 is vanaf 6 december 2023 een bètaversie. Je kunt het nieuwste downloaden op Google.com voor desktop, of in de Google Play Store voor Android.
CSS
Deze release voegt zes nieuwe CSS-functies toe.
CSS-markeringsovererving
Met CSS Highlight Inheritance nemen de CSS Highlight-pseudoklassen, zoals ::selection
en ::highlight
, hun eigenschappen over via de pseudo-highlightketen, in plaats van via de elementketen. Het resultaat is een intuïtiever model voor de overerving van eigenschappen in hooglichten.
Dit implementeert de vereiste uit de CSS Pseudos Level 4-specificatie :
"Als een ondersteunde eigenschap geen waarde krijgt van de cascade... wordt de gespecificeerde waarde bepaald door overerving van het overeenkomstige hoogtepunt-pseudo-element van het ouderelement van het oorspronkelijke element."
CSS-schuifbalken: scrollbar-color
en scrollbar-width
Met de CSS Scrollbars-specificatie kunnen ontwikkelaars schuifbalken vormgeven door hun kleuren en dikte op te geven. Deze specificatie voegt de volgende twee eigenschappen toe. De eigenschap scrollbar-color
biedt de mogelijkheid om het kleurenschema van schuifbalken te wijzigen, zodat deze beter passen in de specifieke stijl van een webpagina. De eigenschap scrollbar-width
maakt het gebruik van smallere schuifbalken mogelijk die geschikter kunnen zijn voor sommige gebruikssituaties, of zelfs om de schuifbalken volledig te verbergen zonder de schuifbaarheid te beïnvloeden.
CSS font-palette
voor kleurenlettertypen
Met de eigenschap CSS font-palette
kunt u een specifiek palet selecteren dat wordt gebruikt om een kleurlettertype weer te geven. Met de nieuw toegevoegde ondersteuning voor het animeren van deze eigenschap is de overgang tussen paletten niet langer een discrete stap, maar wordt het een vloeiende overgang tussen twee geselecteerde paletten. Dit werkt overal in CSS-animaties en overgangen.
CSS-spelling- en grammaticafuncties
CSS markeert pseudo-elementen voor het opmaken van tekst die de user-agent heeft gemarkeerd als verkeerd gespeld of grammaticaal incorrect, en lijnversieringen die de standaardversieringen van de user-agent blootleggen voor spelling- en grammaticafouten. Met deze functies kunnen ontwikkelaars beter leesbare kleuren kiezen voor de standaardspelling- en grammaticafouten, verkeerd gespelde woorden markeren met achtergrondkleuren of andere versieringen, en aangepaste spellingcontrole implementeren die past bij de apparaatervaring.
Verbeterde CSS-maskering voor SVG
Dit is een vervolg op de verbeterde CSS-maskerondersteuning in Chrome 120, waarbij nieuwe maskerondersteuning wordt toegevoegd aan SVG (meerdere maskers, evenals mask-mode
, mask-composite
, mask-position
en mask-repeat
). Bovendien worden externe SVG-maskers (bijvoorbeeld mask: url(masks.svg#star)
) nu ondersteund.
Ruby-specifieke weergavewaarden
Er zijn nieuwe CSS-weergave-eigenschapswaarden, ruby
en ruby-text
, toegevoegd. De standaardweergavewaarden van <ruby>
en <rt>
worden gewijzigd in respectievelijk ruby
en ruby-text
, en de ruby-indeling respecteert deze weergavewaarden. Webauteurs kunnen alle elementen zoals <div>
gebruiken om ruby weer te geven door de nieuwe weergavewaarden in te stellen.
Web-API's
Functiebundel voor attributierapportage: minder totale vertragingen, Epsilon-rapport op gebeurtenisniveau, gereserveerde sleutels
Chrome bevat wijzigingen in de Attribution Reporting API die gericht zijn op:
- Vermindering van transmissieverlies door verminderde totale rapportvertragingen te ondersteunen.
- Extra API-configureerbaarheid door ondersteuning van een epsilon-rapportageveld op gebeurtenisniveau.
- Verbeterde uitbreidbaarheid van de API door mislukte registraties bij het tegenkomen van gereserveerde sleutels.
Achterwaartse/voorwaartse cache notRestoredReason API
De notRestoredReason API rapporteert de lijst met redenen waarom een pagina niet vanuit bfcache wordt weergegeven met behulp van de PerformanceNavigationTiming API.
Vereist een gebruikersgebaar voor het wijzigen van de grootte van API's in Picture-in-Picture van documenten
Dit maakt de methoden resizeBy()
en resizeTo()
mogelijk in beeld-in-beeldvensters van documenten, maar met de toegevoegde beperking van een vereiste voor gebaren van de gebruiker om het misbruikpotentieel te beperken.
EditContext-API
De EditContext API vereenvoudigt het proces van het integreren van een webapp met geavanceerde tekstinvoermethoden zoals VK-vormschrijven, handschriftpanelen, spraakherkenning en IME-composities. Het verbetert de toegankelijkheid en prestaties en ontgrendelt nieuwe mogelijkheden voor webgebaseerde editors.
Functiedetectie voor ondersteunde klembordformaten
U kunt nu controleren of de Async Clipboard API een bepaald MIME-type ondersteunt door de nieuwe functie supports()
aan te roepen, waarbij u het MIME-type als argument doorgeeft, zoals bijvoorbeeld ClipboardItem.supports('image/png')
.
HTMLSelectElement showPicker()
De showPicker()
-methode van HTMLSelectElement biedt ontwikkelaars een manier om de optiekiezer van een <select>
-element programmatisch te openen, volgens het patroon van input.showPicker()
.
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, transferFunction.
Chromium implementeert zijn eigen tonemapping-algoritmen en retourneert dus altijd waar voor statische HDR10-metagegevens (smpteSt2086). smpteSt2094-40 (HDR10+) en smpteSt2094-10 dynamische metagegevens worden momenteel niet ondersteund en zullen daarom false retourneren.
Private Aggregation API: selectie van aggregatiecoördinator
Deze wijziging aan de Private Aggregation API biedt een mechanisme 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 gedeelde opslag run()
en selectURL()
aanroepen, en in runAdAuction()
en joinAdInterestGroup()
aanroepen van Protected Audience. De brede aanpak komt grotendeels overeen met die van de Attribution Reporting API.
API voor extern afspelen op desktop
Deze API breidt het HTMLMediaElement
uit waarmee u het op afstand afspelen van media vanaf een webpagina kunt regelen. Dit wordt geleverd op Android in Chrome 56 en is beschikbaar op desktop vanaf Chrome 121.
Speculatieregels API
Er zijn nieuwe functies voor de Speculation Rules API.
Ondersteuning van documentregels: Dit is een uitbreiding op de syntaxis van speculatieregels waarmee de browser de lijst met URL's kan verkrijgen voor speculatief laden uit <a>
-elementen op een pagina. Ze kunnen criteria bevatten waarvoor deze links kunnen worden gebruikt. Dit, in combinatie met een nieuw 'gretness'-veld voor speculatieregels, stelt ontwikkelaars in staat links op pagina's automatisch vooraf op te halen of vooraf weer te geven, door met de muis te bewegen of door met de muis omlaag te gaan.
Een afzonderlijke wijziging maakt het mogelijk om speculatieregels op te geven met behulp van de Speculation-Rules
HTTP-antwoordheader als alternatief voor het gebruik van inline <script>
-elementen. De waarde van deze header moet een URL zijn die verwijst naar een tekstbron met het MIME-type "application/speculationrules+json"
. De regels van de bron worden toegevoegd aan de regelset van het document.
Ten slotte zorgt de No-Vary-Search
hint ervoor dat speculatieve prefetches overeenkomen, zelfs als de URL-queryparameters veranderen. De HTTP-antwoordheader No-Vary-Search
verklaart dat sommige of alle delen van de zoekopdracht van een URL kunnen worden genegeerd voor matchingdoeleinden. Het kan verklaren dat de volgorde van de queryparametersleutels geen overeenkomsten mag voorkomen, dat specifieke queryparameters geen overeenkomsten mogen voorkomen, of dat alleen bepaalde bekende queryparameters tot mismatches mogen leiden.
Interface-objecten SpeechSynthesis en SpeechSynthesisVoice
Voegt de interfaceobjecten voor SpeechSynthesis
en SpeechSynthesisVoice
toe aan de reeds ondersteunde functies. Dit maakt functiedetectie met behulp van SpeechSynthesisVoice.prototype mogelijk.
API voor opslagbuckets
Storage Buckets geeft sites de mogelijkheid om gegevens op het apparaat in afzonderlijke ‘buckets’ te organiseren, waardoor user agents de gegroepeerde gegevens onafhankelijk van de gegevens in andere buckets kunnen verwijderen, en sites in staat worden gesteld semantisch gerelateerde gegevens ergonomisch te beheren. Elke opslagbucket kan gegevens bevatten die zijn gekoppeld aan gevestigde opslag-API's zoals IndexedDB en CacheStorage.
URLPattern: links overnemen, wildcard rechts
Gedragsveranderingen bij patronen die zijn opgebouwd met behulp van een basis-URL, de syntaxis van de constructortekenreeks of beide, maar niet bij patronen die componenten expliciet afzonderlijk specificeren zonder een basis-URL.
Componenten worden niet overgenomen van een basis-URL als er expliciet een 'eerdere' component is opgegeven. In het tekenreeksformaat worden niet-gespecificeerde "latere" componenten impliciet voorzien van jokertekens, in plaats van dat ze leeg moeten zijn (met uitzondering van de poort, die altijd wordt opgegeven als de hostnaam is). Gebruikersnaam en wachtwoord worden nooit impliciet gespecificeerd of overgenomen.
Dit maakt patronen uitgebreider dan voorheen, in gevallen waarin wildcards waarschijnlijk wenselijk zijn.
URLPattern: RegExp v
-vlag in plaats van u
Met de URL Pattern API kunnen ontwikkelaars patroonreeksen opgeven. Deze worden intern omgezet in reguliere expressies.
Toen de API voor het eerst werd geïmplementeerd, werden deze reguliere expressies gecompileerd met de vlag u
. Chrome 121 werkt het bij naar de v
vlag, waardoor Unicode-sets mogelijk worden.
Toevoegingen aan WebGPU
Met WebGPU kunnen ontwikkelaars nu toegangspunten tot shader-modules weglaten bij het maken van een pijplijn, wat de ergonomie verbetert. Als er geen standaard toegangspunt wordt gevonden, wordt zoals gebruikelijk een GPUValidationError geactiveerd.
Met WebGPU-tijdstempelquery's kunnen WebGPU-applicaties nauwkeurig meten (tot op de nanoseconde) hoeveel tijd het kost om hun GPU-opdrachten uit te voeren, vooral aan het begin en einde van de passages. Tijdstempelquery's worden intensief gebruikt om inzicht te krijgen in de prestaties en het gedrag van GPU-workloads.
Hoewel de WebGPU-specificatie tijdstempelquery's tot een optionele functie maakt vanwege zorgen over timingaanvallen, zijn wij van mening dat de kwantisering van tijdstempelquery's een goede middenweg biedt door de nauwkeurigheid van timers met een resolutie van 100 microseconden te verminderen.
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 121 kunt u zich aanmelden voor de volgende nieuwe Origin-proefversies .
De Element Capture-API
De Element Capture API biedt methoden voor het vastleggen van een subboom van de DOM.
Gegeven een video MediaStreamTrack verkregen via reeds bestaande middelen om tab-capture te initiëren, maakt Element Capture het mogelijk om de track te muteren om alleen een subboom van de DOM vast te leggen, beginnend bij een bepaald element.
De API vertoont enige gelijkenis met de Region Capture API, maar biedt meer flexibiliteit voor toepassingen, omdat occluderende en occlusieve inhoud beide worden uitgesloten van de capture.
Registreer u voor de ElementCapture origin-proefversie
Veranderingen in bestaand gedrag
Chrome 121 bevat de volgende wijziging in bestaand gedrag, hier opgenomen zodat ontwikkelaars op de hoogte zijn van de wijziging.
Gooi invoergebeurtenissen weg naar recent verplaatste cross-origin Iframes
Als een cross-origin iframe onlangs binnen de insluitingspagina is verplaatst, negeert Chrome stilzwijgend gebeurtenissen die op het iframe zijn gericht. De reden hiervoor is dat als het iframe onlangs is verplaatst, de gebruiker waarschijnlijk niet van plan was erop te klikken of erop te tikken.
Deze wijziging werd in 2019 in beperkte vorm doorgevoerd: het had alleen betrekking op iframes die script bevatten dat gebruik maakte van versie 2-functies van IntersectionObserver (dat wil zeggen occlusie- of effectdetectie). Deze lancering breidt dit gedrag uit naar alle cross-origin iframes en zal beginnen als een beperkt experiment in Chrome 121 en vervolgens worden opgevoerd.