Chrome 136 bèta

Gepubliceerd: 3 april 2025

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 uit de lijst op ChromeStatus.com . Chrome 136 is vanaf 3 april 2025 een bètaversie. Je kunt het nieuwste downloaden op Google.com voor desktop of in de Google Play Store op Android.

CSS en gebruikersinterface

Deze release voegt zes nieuwe CSS- en UI-functies toe.

CSS dynamic-range-limit eigenschap

Hiermee kan een pagina de maximale helderheid van HDR-inhoud beperken.

Negeer de letterafstand in cursief schrift

Deze functie voegt logica toe om de instelling voor de letterafstand voor cursieve scripts te negeren, zelfs als deze door de ontwikkelaar is gespecificeerd volgens de specificaties, om ervoor te zorgen dat de letterafstand de woorden niet afbreekt.

Om lekken in de browsegeschiedenis van gebruikers te elimineren, worden ankerelementen alleen opgemaakt als :visited als er eerder op deze site op het hoogste niveau en de oorsprong van het frame is geklikt.

Door alleen links te stylen waarop eerder op deze site en frame is geklikt, zijn de vele zijkanaalaanvallen die zijn ontwikkeld om informatie over de styling van :visited links te verkrijgen, nu achterhaald. Ze bieden sites niet langer nieuwe informatie over gebruikers.

Lees meer over deze verbeteringen aan de privacy van :visited links .

Hernoem string attr() type naar raw-string

De CSS-werkgroep heeft besloten het type string attr() te vervangen door raw-string .

Daarom heeft Chrome de syntaxis attr() gewijzigd, zodat attr(data-foo string) nu attr(data-foo raw-string) is.

Type-agnostische var() fallback

Het fallback-gedeelte van een var() functie valideert niet op basis van het type aangepaste eigenschap waarnaar wordt verwezen.

Onvooraf ingestelde print-color-adjust

Met de eigenschap print-color-adjust kunt u kleuren op afgedrukte webpagina's aanpassen. Dit is hetzelfde als het reeds ondersteunde -webkit-print-color-adjust van Chrome, maar met een gestandaardiseerde naam. De versie met het voorvoegsel -webkit wordt niet verwijderd.

Web-API's

AudioContext onderbroken status

Voegt een "interrupted" status toe aan AudioContextState . Met deze nieuwe status kan de UA het afspelen in deze scenario's pauzeren en kunnen webapplicaties op de juiste manier reageren.

Blob-URL-partitionering: ophalen/navigeren

Als voortzetting van Storage Partitioning implementeert dit het partitioneren van Blob-URL-toegang via Storage Key (site op het hoogste niveau, frame-oorsprong en de has-cross-site-ancestor boolean), met uitzondering van navigatie op het hoogste niveau, die alleen gepartitioneerd blijft op frame-oorsprong. Dit gedrag is vergelijkbaar met wat momenteel wordt geïmplementeerd door zowel Firefox als Safari, en stemt het gebruik van de Blob-URL af op het partitieschema dat door andere opslag-API's wordt gebruikt als onderdeel van Storage Partitioning.

Bovendien wordt noopener nu afgedwongen op door de renderer geïnitieerde navigatie op het hoogste niveau naar Blob-URL's waarbij de corresponderende site cross-site is naar de site op het hoogste niveau die de navigatie uitvoert. Hierdoor komt Chrome op één lijn met vergelijkbaar gedrag in Safari, en de relevante specificaties zijn bijgewerkt om deze wijzigingen weer te geven.

Oproepstapels in crashrapporten van niet-reagerende webpagina's

Deze functie legt de JavaScript-aanroepstack vast wanneer een webpagina niet meer reageert omdat JavaScript-code een oneindige lus of een andere zeer lange berekening uitvoert. Dit helpt ontwikkelaars de oorzaak van het niet reageren te identificeren. De JavaScript-aanroepstack wordt opgenomen in de crashrapportage-API als de reden niet reageert.

Vastgelegde API voor oppervlaktecontrole

Met de Captured Surface Control API kunnen webapplicaties gebeurtenissen naar een vastgelegd tabblad doorsturen en het zoomniveau van een vastgelegd tabblad lezen en wijzigen.

CapturedSurfaceResolution

Belicht de pixelverhouding van het vastgelegde oppervlak tijdens het delen van het scherm. Deze functie helpt applicaties hun systeembronnen te behouden of de wisselwerking tussen kwaliteit en bandbreedte aan te passen aan de fysieke en logische resoluties van het vastgelegde oppervlak.

Verzend klikgebeurtenissen naar de vastgelegde aanwijzer

Als een aanwijzer wordt vastgelegd terwijl de pointerup -gebeurtenis wordt verzonden, wordt de click verzonden naar het vastgelegde doel in plaats van naar de dichtstbijzijnde gemeenschappelijke voorouder van pointerdown en pointerup -gebeurtenissen volgens de UI Event-specificatie. Voor niet-vastgelegde verwijzingen blijft het click ongewijzigd.

Expliciete compileertips met magische opmerkingen

Maakt het mogelijk om informatie toe te voegen over welke functies graag geparseerd en gecompileerd moeten worden in JavaScript-bestanden. De informatie wordt gecodeerd als magisch commentaar.

FedCM-updates: ondersteuning voor meerdere IdP's, verwijdering van de functie "nog een account toevoegen" in passieve modus

Met deze update kan FedCM meerdere identiteitsproviders in hetzelfde dialoogvenster tonen. Dit biedt ontwikkelaars een handige manier om alle ondersteunde identiteitsproviders aan gebruikers te presenteren. We zijn van plan om eerst het eenvoudige geval aan te pakken waarbij alle providers in dezelfde get() aanroep zitten. We verwijderen ook de ondersteuning voor de functie 'nog een account toevoegen' in de passieve modus van FedCM. Deze functie maakt het mogelijk om naast andere IdP-accounts in de kiezer een knop 'gebruik een ander account' weer te geven. De functie is momenteel ongebruikt en UX-gesprekken hebben ons doen geloven dat het ondersteunen hiervan leidt tot een ingewikkelder stroom zonder veel voordeel. Deze functie werkt nog steeds in de actieve FedCM-modus.

Vloeiende schuifbalken.

Deze functie moderniseert de Chrome-schuifbalken (zowel overlay als niet-overlay) op Windows en Linux zodat ze passen bij de Windows 11 Fluent-ontwerptaal. Vloeiende schuifbalken zonder overlay zijn standaard ingeschakeld in Linux en Windows. Deze wijziging is ook van toepassing op Linux, omdat het Linux-schuifbalkontwerp van Chrome historisch gezien is afgestemd op wat er op Windows wordt geleverd.

H265 (HEVC) codec-ondersteuning in WebRTC

Vanaf Chrome 136 voegt HEVC zich bij VP8, H.264, VP9 en AV1 als ondersteunde codecs in WebRTC. Ondersteuning kan worden opgevraagd met behulp van de MediaCapabilities API.

Deze nieuwere codec heeft een verhoogde compressie-efficiëntie (hogere kwaliteit per bitrate) vergeleken met codecs van de oudere generatie, zoals VP8 en H264, en zeer sterke hardware-ondersteuning die al meer dan tien jaar teruggaat. Dit vertaalt zich in een langere levensduur van de batterij en een verminderd risico op prestatieproblemen, en zal, afhankelijk van de prestaties van de onderliggende hardware-encoder, vaak de visuele ervaring verbeteren in gevallen waarin hardware VP9- of AV1-encoders niet beschikbaar zijn.

H26x Codec-ondersteuningsupdates voor MediaRecorder

De MediaRecorder API ondersteunt nu HEVC-codering, introduceert de codec-string hvc1.* en voegt nieuwe codecs toe ( hev1.* en avc3.* ) die video met variabele resolutie in MP4 ondersteunen. Ondersteuning voor HEVC-platformcodering is toegevoegd in WebCodecs in Chrome 130. Als vervolg hierop is ondersteuning toegevoegd aan de MediaRecorder API in Chromium. De API ondersteunt nu zowel MP4- als Matroska-muxertypen met verschillende HEVC- en H.264 mime-typespecificaties. HEVC-codering wordt alleen ondersteund als het apparaat en het besturingssysteem van de gebruiker over de benodigde mogelijkheden beschikken.

IP-adresregistratie en rapportage in Chrome Enterprise

Chrome Enterprise verbetert de mogelijkheden voor beveiligingsmonitoring en respons op incidenten door lokale en externe IP-adressen te verzamelen en te rapporteren en deze IP-adressen naar de Security Investigation Logs (SIT) te sturen. Daarnaast biedt Chrome Enterprise beheerders de mogelijkheid om de IP-adressen optioneel naar eigen en externe SIEM-providers te sturen met behulp van de Chrome Enterprise Reporting-connector. Dit zal beschikbaar zijn voor Chrome Enterprise Core-klanten.

Neem de navigatie-initiator op in de HTTP-cachepartitiesleutel

Het HTTP-cache-sleutelschema van Chrome is bijgewerkt met een is-cross-site-main-frame-navigation boolean om cross-site lekaanvallen met navigatie op het hoogste niveau te verminderen. Dit voorkomt met name cross-site-aanvallen waarbij een aanvaller een navigatie op het hoogste niveau naar een bepaalde pagina kan initiëren en vervolgens naar een bron kan navigeren waarvan bekend is dat deze door de pagina wordt geladen om gevoelige informatie uit de laadtijd af te leiden. Deze wijziging verbetert ook de privacy door te voorkomen dat een kwaadwillende site navigatie gebruikt om af te leiden of een gebruiker een bepaalde site eerder heeft bezocht.

Taalondersteuning voor CanvasTextDrawingStyles

Het <canvas> DOM-element accepteert, net als alle DOM-elementen, een lang attribuut dat wordt gebruikt om taalspecifieke behandeling voor lettertypeselectie te definiëren (wanneer lettertypen landspecifieke glyphs hebben). Browsers respecteren dit kenmerk. Wanneer een OffscreenCanvas echter wordt gemaakt, is er geen manier om landinstellingen in te stellen, wat mogelijk kan resulteren in een toestand waarin een offscreen canvas gerenderde resultaten produceert die verschillen van het canvas waarin de uitvoer ervan wordt gebruikt. Deze functie voegt een lang IDL-attribuut toe aan CanvasTextDrawingStyles om directe controle te geven over de taal voor de teksttekening en metrieken.

Machtigingenbeleidsrapporten voor iframes

Introduceert een nieuw overtredingstype met de naam 'Potentiële schending van het machtigingsbeleid', waarbij alleen wordt gekeken naar het machtigingenbeleid (inclusief het beleid voor alleen rapporteren) en het allow attribuut dat is ingesteld in iframes om het conflict te detecteren tussen het afgedwongen machtigingsbeleid en de machtigingen die worden doorgegeven aan iframes.

Voorspelbaar gerapporteerd opslagquotum

Rapporteer een voorspelbaar opslagquotum via de Estimate API van StorageManager voor sites die geen onbeperkte opslagrechten hebben. Het is mogelijk om de browsermodus van een gebruiker te detecteren met behulp van de gerapporteerde opslagquota, omdat de beschikbaar gestelde opslagruimte aanzienlijk kleiner is in de incognitomodus dan in de normale modus.

Private Aggregation API: Geaggregeerde foutrapportage

Er zijn een aantal foutcondities die kunnen optreden bij het gebruik van de Private Aggregation API. Het privacybudget zou bijvoorbeeld kunnen opraken, waardoor verdere histogrambijdragen niet meer mogelijk zijn. Met deze functie kunnen ontwikkelaars histogrambijdragen registreren die alleen mogen worden verzonden als er een bepaald type fout optreedt. Deze functie ondersteunt het meten van de frequentie van de foutcondities en het opsplitsen van deze metingen op relevante door de ontwikkelaar gespecificeerde dimensies (bijvoorbeeld de versie van de geïmplementeerde code). Omdat de fouten zelf cross-site-informatie kunnen zijn, kunnen we ze niet eenvoudigweg aan de pagina blootstellen aan gebruikers zonder cookies van derden. In plaats daarvan hergebruikt deze functie de bestaande geaggregeerde, geruisde rapportagepijplijnen via de aggregatieservice.

RegExp.escape

RegExp.escape is een statische methode die een tekenreeks gebruikt en een ontsnapte versie retourneert die als patroon binnen een reguliere expressie kan worden gebruikt. Bijvoorbeeld:

const str = prompt("Please enter a string");
const escaped = RegExp.escape(str);
const re = new RegExp(escaped, 'g'); // handles reg exp special tokens with the replacement.

console.log(ourLongText.replace(re));

Speculatieregels: tagveld

Stelt ontwikkelaars in staat een field toe te voegen aan speculatieregels. Dit optionele veld kan worden gebruikt om de bron van speculatieregels bij te houden. Om ze bijvoorbeeld anders te behandelen op een tussenliggende server. Alle tags die aan een speculatie zijn gekoppeld, worden verzonden met de Sec-Speculation-Tags -header.

Strikt beleid voor dezelfde oorsprong voor de Storage Access API

Past de semantiek van de Storage Access API aan om strikt het Same Origin-beleid te volgen. Dat wil zeggen dat het gebruik van document.requestStorageAccess() in een frame standaard alleen cookies koppelt aan verzoeken aan de oorsprong van het iframe (niet aan de site). Houd er rekening mee dat het CookiesAllowedForUrls -beleid of de Storage Access Headers nog steeds kunnen worden gebruikt om cross-site cookies te deblokkeren.

Update ProgressEvent om dubbel type te gebruiken voor loaded en total

De ProgressEvent heeft attributen loaded en total die de voortgang aangeven, en hun type is nu unsigned long long . Met deze functie wordt het type voor deze twee attributen in plaats daarvan gewijzigd in double , waardoor de ontwikkelaar meer controle krijgt over de waarde. De ontwikkelaars kunnen nu bijvoorbeeld een ProgressEvent maken waarbij het total 1 is en de loaded geleidelijk toeneemt van 0 naar 1. Dit komt overeen met het standaardgedrag van het <progress> HTML-element als het max-attribuut wordt weggelaten.

Gebruik DOMPointInit voor getCharNumAtPosition , isPointInFill , isPointInStroke

Deze wijziging brengt Chromium-code in lijn met de nieuwste W3C-specificatie voor SVGGeometryElement en SVGPathElement wat betreft het gebruik van DOMPointInit via SVGPoint voor getCharNumAtPosition , isPointInFill , isPointInStroke .

Voorwaardelijke creatie van webauthenticatie (toegangssleutelupgrades)

Met voorwaardelijke aanmaakverzoeken van WebAuthn kunnen websites bestaande wachtwoordreferenties upgraden naar een wachtwoordsleutel.

WebGPU: GPUAdapterInfo isFallbackAdapter -kenmerk

Het Booleaanse kenmerk GPUAdapterInfo isFallbackAdapter geeft aan of een adapter aanzienlijke prestatiebeperkingen heeft in ruil voor bredere compatibiliteit, voorspelbaarder gedrag of verbeterde privacy. Houd er rekening mee dat een fallback-adapter mogelijk niet op alle systemen aanwezig is.

Nieuwe oorsprongsproeven

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

API voor audio-uitvoerapparaten: setDefaultSinkId()

Deze functie voegt setDefaultSinkId() toe aan MediaDevices, waardoor het frame op het hoogste niveau het standaard audio-uitvoerapparaat kan wijzigen dat door de subframes wordt gebruikt.

Laat webapplicaties de timing van bimodale prestaties begrijpen

Webapplicaties kunnen last hebben van bimodale distributie in de laadprestaties van pagina's, als gevolg van factoren waarover de webapplicatie geen controle heeft. Bijvoorbeeld:

  • Wanneer een user-agent voor het eerst wordt gestart (een "koude start"-scenario), moet deze veel dure initialisatietaken uitvoeren die strijden om bronnen op het systeem.
  • Browserextensies kunnen de prestaties van een website beïnvloeden. Sommige extensies voeren bijvoorbeeld extra code uit op elke pagina die u bezoekt, wat het CPU-gebruik kan verhogen en kan resulteren in langzamere reactietijden.
  • Wanneer een machine bezig is met het uitvoeren van intensieve taken, kan dit leiden tot het langzamer laden van webpagina's.

In deze scenario's concurreert de inhoud die de webapp probeert te laden met ander werk dat op het systeem plaatsvindt. Dit maakt het moeilijk om te detecteren of er prestatieproblemen zijn binnen de webapplicaties zelf, of vanwege externe factoren.

Een nieuw confidence op het PerformanceNavigationTiming -object stelt ontwikkelaars in staat te onderscheiden of de navigatietimings representatief zijn voor hun webapplicatie.

Apparaatgebonden sessiereferenties

Een manier voor websites om een ​​sessie veilig aan één apparaat te koppelen.

Hiermee kunnen servers een sessie hebben die veilig aan een apparaat is gekoppeld. De browser zal de sessie periodiek vernieuwen zoals gevraagd door de server, met bewijs van bezit van een privésleutel.

Update van de implementatie van canvastekstweergave

De interne onderdelen van CanvasRenderingContext2D en OffscreenCanvasRenderingContext2D's measureText() , fillText() en strokeText() zijn vervangen door een nieuwe implementatie die RTL-tekst en caching beter ondersteunt. Dit kan van invloed zijn op de prestaties en de BIDI-tekstuitvoer, dus deze originele proefversie maakt het mogelijk dat tekstintensieve canvastoepassingen de nieuwe implementatie uitproberen en eventuele problemen melden die ze tegenkomen.

Beëindigingen en verwijderingen

Deze versie van Chrome introduceert de volgende 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 worden twee functies beëindigd.

Schrap getters van internationale lokale informatie

Intl Locale Info API is een Stage 3 ECMAScript TC39-voorstel om het Intl.Locale object te verbeteren door locale-informatie weer te geven, zoals weekgegevens (eerste dag van de week, begindag van het weekend, einddag van het weekend, minimumdag in de eerste week) en de uurcyclus van de tekstrichting die in de landinstelling wordt gebruikt. Met deze wijziging worden enkele getters verwijderd die zijn verouderd in een specificatiewijziging sinds ze zijn verzonden.

Verwijder HTMLFencedFrameElement.canLoadOpaqueURL() .

canLoadOpaqueURL() werd in 2023 vervangen door navigator.canLoadAdAuctionFencedFrame() en het aanroepen ervan heeft geresulteerd in een waarschuwing voor de beëindigingsconsole sinds de ontwikkelaars naar de nieuwe API werden verwezen. Het heeft geen zin om de functie aan HTMLFencedFrameElement te koppelen, maar zou in plaats daarvan aan het navigator moeten worden gekoppeld (dat andere afgeschermde frame- en advertentieveilingmethoden bevat).