Chrome 149 bèta

Gepubliceerd: 6 mei 2026

Tenzij anders vermeld, zijn de volgende wijzigingen van toepassing op de nieuwste Chrome-bètaversie voor Android, ChromeOS, Linux, macOS en Windows. Meer informatie over de hier vermelde functies vindt u via de meegeleverde links of in de lijst op ChromeStatus.com. Chrome is sinds 6 mei 2026 in bèta. U kunt de nieuwste versie downloaden op Google.com voor desktop of in de Google Play Store voor Android.

CSS en UI

Verwijder de expliciete randkleurregel uit de UA-stijlsheet voor tabellen.

Deze wijziging verwijdert de foutieve CSS-regel border-color: gray uit het UA-stijlbestand voor het <table> `-element.

De HTML-specificatie bevat deze regel niet, waardoor de randen ten onrechte niet standaard de currentColor krijgen. Noch Firefox, noch Webkit hebben deze regel voor gray randkleur in hun user agent-stylesheet, wat tot interoperabiliteitsproblemen leidt.

Ondersteuning voor path() en shape() in shape-outside

Voegt ondersteuning toe voor de vormfuncties path() en shape() in de CSS-eigenschap shape-outside . Met deze functies kunnen ontwikkelaars vormen definiëren die zwevende-komma-uitsluitingen uitsluiten, met behulp van rechthoekcoördinaten.

Ondersteuning voor rect() en xywh() in shape-outside

Voegt ondersteuning toe voor de basisvormfuncties rect() en xywh() in de CSS-eigenschap shape-outside . Met deze functies kunnen ontwikkelaars vormen definiëren die zwevende objecten uitsluiten, met behulp van rechthoekcoördinaten. Dit sluit aan bij Chrome en Firefox en Safari, die deze functie al ondersteunen.

Accentkleur van het bereiksysteem van de webapp

Beperkt de toegang tot de systeemaccentkleur voor CSS-trefwoorden en accent-color: auto tot alleen binnen een webapp en de initiële profielcontext.

De CSS-trefwoorden AccentColor en AccentColorText vormen een aanzienlijk risico voor het identificeren van gebruikersprofielen wanneer de systeemkleuren van de gebruiker breed worden weergegeven op het web. Daarom zijn ze alleen beschikbaar in de context van geïnstalleerde webapplicaties. Formulierbesturingselementen met accent-color: auto voldoen ook aan deze eisen met deze nieuwe functie. Dit zorgt voor consistentere verwachtingen bij ontwikkelaars en gebruikers ten aanzien van systeemkleuren en sluit aan bij de beperkingen voor het identificeren van gebruikersprofielen voor AccentColor[Text] .

Knip tekstoverloop bij gebruikersinteractie

Wanneer een gebruiker interactie heeft (bewerken of cursornavigatie) met tekst die is ingesteld met text-overflow: ellipsis , verandert de tekst tijdelijk van ellipsis naar een afgeknipte tekst, waardoor de gebruiker de verborgen overloopinhoud kan zien en ermee kan interageren. Deze functie is van toepassing op alle bewerkbare en niet-bewerkbare elementen. Voor formulierbesturingselementen ( textarea , input ) wordt dit gedrag al ondersteund.

CSS-afstandsdecoraties

Met CSS-gapdecoraties kun je de ruimte tussen elementen in containerlay-outs zoals grid en flexbox vormgeven, vergelijkbaar met column-rule in lay-outs met meerdere kolommen. Deze functie is zeer gewild bij webontwikkelaars die tegenwoordig vaak trucjes moeten gebruiken om de ruimte tussen elementen in grid- en flexboxlay-outs te stylen.

image-rendering: crisp-edges

image-rendering: crisp-edges geeft aan dat de afbeelding zodanig geschaald moet worden dat het contrast en de randen behouden blijven, en dat er geen kleurvervaging of onscherpte in de afbeelding optreedt.

Gebruikersactie pseudo-klasse bovenste laag grens

Deze functie vertegenwoordigt het gedrag zoals beschreven in de CSS Selectors Level 4-specificatie , die stelt dat :hover , :active en :focus-within overeenkomen met de ouders van elementen, maar alleen tot en met het eerste element op de bovenste laag in de ouderketen. De wijziging voor Chromium implementeert deze beperking voor elementen op de bovenste laag.

Concreet betekent dit dat in de volgende structuur, als de gebruiker met de muis over de <button> beweegt, de pseudo-klasse :hover overeenkomt met de <button> en de popover, maar niet met het <main> -element.

<main>
  <div popover>
    <button></button>
  </div>
</main>
<script>document.querySelector('[popover]').showPopover();</script>

De reden voor deze wijziging is dat elementen op de bovenste laag doorgaans "elders" worden weergegeven, op een locatie die visueel losstaat van het ouderelement. Het is daarom meestal niet zinvol om de stijlen van het ouderelement aan te passen wanneer er bijvoorbeeld met de muis over het element op de bovenste laag wordt bewogen of wanneer het wordt geactiveerd.

De aanpasbare select-implementatie die in Chromium wordt meegeleverd, heeft deze logica hardgecodeerd voor het specifieke geval van de select ::picker() popover. Deze speciale logica wordt verwijderd ten gunste van het meer algemene gedrag met deze functie.

Ondersteuning voor path-length als CSS-eigenschap

Deze wijziging introduceert een nieuwe CSS-eigenschap, path-length , die overeenkomt met het bestaande SVG-presentatiekenmerk pathLength . Deze is van toepassing op SVG-geometrie-elementen die pathLength ondersteunen (waaronder <path> , <circle> , <rect> , <line> , <polyline> , <polygon> ` en <ellipse> `).

Door pathLength als CSS-eigenschap beschikbaar te stellen, kunnen ontwikkelaars deze specificeren in stylesheets, inline stijlen en animaties, waardoor deze kan deelnemen aan normale CSS-cascading, specificiteit, overgangen en animaties. De eigenschap beïnvloedt alle berekeningen die afhankelijk zijn van de totale padlengte, inclusief het renderen van stroke dashes en het positioneren van tekst langs een <textPath> .

CSS-declaraties overschrijven het presentatiekenmerk volgens de standaard CSS-prioriteitsregels. De initiële waarde van path-length is none , wat aangeeft dat er geen door de auteur opgegeven padlengte is en verschilt van een expliciete numerieke waarde zoals 0 .

Het bestaande gedrag dat alleen op attributen gebaseerd is, blijft behouden wanneer de functie wordt uitgeschakeld.

Web-API's

Intl.Locale.prototype.variants

Voeg Intl.Locale.prototype.variants toe zoals vermeld in het TC39-voorstel en accepteer ook "variants" in de optiebag in Intl.Locale constructor zoals in de TC39-update voor taal-ID's . De wijzigingen in ECMA402 zijn samengevoegd in pull request 960 en de testcode in test262 is samengevoegd in pull request 4474.

Programmatische scrollbeloftes

Webontwikkelaars hebben momenteel geen manier om te weten wanneer een programmatisch soepel scrollproces is voltooid. Deze functie biedt een oplossing voor dat probleem: de programmatische scrollmethoden retourneren Promise-objecten die worden afgehandeld zodra het scrollproces is voltooid, met een status die aangeeft of het scrollproces is onderbroken.

Betalingsverzoek: hiermee kunnen betalingsverwerkers interne fouten rapporteren.

Hiermee kunnen betalingsverwerkers die via de Payment Request API worden benaderd, verschillende foutmeldingen retourneren voor "gebruiker geannuleerd" versus "interne fout in de betalingsapplicatie". Dit stelt webontwikkelaars in staat betere workflows voor gebruikers te bouwen, bijvoorbeeld door een nieuwe poging te wagen of terug te vallen op een andere workflow wanneer er een interne applicatiefout optreedt, terwijl de workflow correct wordt gestopt als de gebruiker wil annuleren.

De webgebaseerde Payment Handler API kan dit verschil aangeven op basis van de foutmelding die wordt gebruikt om de promise die aan PaymentRequestEvent.respondWith wordt doorgegeven, te weigeren. Als de promise wordt geweigerd met een OperationError , wordt "interne app-fout" ( OperationError ) teruggestuurd naar de handelaar via de PaymentRequest.show() -methode; anders wordt "gebruiker annuleert" ( AbortError ) teruggestuurd.

De infrastructuur voor betalingsverwerking in native apps wordt eveneens bijgewerkt, maar valt buiten het toepassingsgebied van web-API's.

Respecteer autocorrect="off" voor het Windows-touchtoetsenbord in TSF

Het HTML-attribuut autocorrect stelt webontwikkelaars in staat om te bepalen of automatische correctie moet worden toegepast op gebruikersinvoer in bewerkbare elementen, zoals <input> , <textarea> en `contenteditable`-hosts. Op Windows negeert het virtuele toetsenbord dit attribuut en corrigeert het woorden altijd automatisch. Als je bijvoorbeeld "truf" typt, gevolgd door een spatie in een element met autocorrect="off" krijg je "true " in plaats van "truf " . Deze functie zorgt ervoor dat de TSF-integratie van Chrome automatische correcties van het virtuele toetsenbord detecteert en ongedaan maakt wanneer het geselecteerde bewerkbare element autocorrect="off" heeft ingesteld.

WebSockets verbreken bij bfcache-vermelding

Actieve WebSocket-verbindingen voorkomen niet langer dat een pagina in de Back/Forward Cache (bfcache) terechtkomt. Door verbindingen te sluiten bij het binnenkomen van de bfcache in plaats van het document als niet-toegankelijk te markeren, zorgt de browser ervoor dat pagina's met actieve websockets kunnen worden opgeslagen en hersteld.

Het Request.isReloadNavigation-attribuut

Voegt het alleen-lezen boolean-attribuut isReloadNavigation toe aan de Request-interface van de Fetch API. Dit attribuut geeft aan of het huidige navigatieverzoek is geïnitieerd als een door de gebruiker geactiveerde herlaadactie (bijvoorbeeld met behulp van de vernieuwingsknop, location.reload() of history.go(0) ). Dit signaal wordt voornamelijk beschikbaar gesteld op het Request-object binnen de FetchEvent van een Service Worker.

Schakel SVG-filters uit voor plug-ins, cross-origin iframes en beperkte iframes.

Deze functie voorkomt dat SVG-filters worden toegepast op iframes met een andere oorsprong of beperkte iframes (bijvoorbeeld iframes in een sandbox) en ingesloten plug-ins (bijvoorbeeld pdf's). Wanneer een frame of plug-in zou worden weergegeven met een SVG-filtereffect, wordt de effectstructuur doorlopen om de hoogste voorouder zonder SVG-filters te vinden, waarna dat effect in plaats daarvan wordt toegepast.

Nieuwe oorsprongsproeven

In Chrome 149 kun je je aanmelden voor de volgende nieuwe Origin-proefversies .

Toestemmingsbeleid: focus-zonder-gebruikersactivering

Hiermee kunnen ontwikkelaars van ingesloten content de focus van programma's beheren met het beleid focus-without-user-activation . Wanneer dit beleid voor een frame is geweigerd, worden programmatische focusoproepen ( element.focus() , autofocus , window.focus() , dialog.showModal() en focus op popovers) geblokkeerd, tenzij ze door de gebruiker worden geactiveerd. Focus die door de gebruiker wordt geïnitieerd, zoals klikken of tabben, wordt hierdoor nooit beïnvloed.

Het beleid kan worden ingesteld met behulp van een Permissions-Policy HTTP-antwoordheader of het allow attribuut van de iframe. Focusdelegatie wordt ondersteund: een ouderframe dat de focus heeft, kan programmatisch de focus doorgeven aan een kind-iframe, zelfs als het kind-iframe het beleid 'weigeren' heeft. Zodra een frame de focus heeft, kan het de focus binnen zijn eigen substructuur verplaatsen.

Gamepad-gebeurtenisgestuurde invoer-API

Dit voorstel breidt de Gamepad API uit met een nieuw, gebeurtenisgestuurd model waarmee applicaties gamepad-input met een lagere latentie kunnen ontvangen. In plaats van te vertrouwen op frequent pollen met navigator.getGamepads() , kunnen ontwikkelaars nu luisteren naar een rawgamepadinputchange gebeurtenis, die wordt geactiveerd wanneer er nieuwe invoergegevens van het apparaat beschikbaar zijn. Dit zorgt voor een snellere verwerking van invoer, met name in applicaties die gevoelig zijn voor latentie.

WebAssembly aangepaste beschrijvingen

Hiermee kan WebAssembly gegevens die zijn gekoppeld aan brontypes efficiënter opslaan in nieuwe aangepaste descriptorobjecten . Deze aangepaste descriptors kunnen worden geconfigureerd met prototypes voor de WebAssembly-objecten van dat brontype. Dit maakt het mogelijk om methoden te installeren in de prototypeketen van een WebAssembly-object en deze rechtstreeks vanuit JavaScript aan te roepen met behulp van de normale methodeaanroepsyntaxis. De prototypes en methoden kunnen declaratief worden geconfigureerd met behulp van een geïmporteerde ingebouwde functie.