Gepubliceerd: 5 maart 2025
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 135 is een bètaversie vanaf 5 maart 2025. U kunt de nieuwste versie downloaden op Google.com voor desktop of in de Google Play Store voor Android.
CSS en UI
Deze release voegt dertien nieuwe CSS- en UI-functies toe.
Ankerpositie onthouden scroll-offset
Voeg ondersteuning toe voor het concept van een onthouden scroll-offset . Wanneer een gepositioneerd element een standaardanker heeft en aan één kant aan dit anker is gekoppeld en aan de andere kant tegen het oorspronkelijke blok aanligt, wordt de scroll-offset meegenomen bij het bepalen van de grootte van het element. Dit betekent dat u alle zichtbare ruimte (met behulp van position-area ) kunt gebruiken voor het verankerde element wanneer het document met een bepaalde scroll-offset wordt gescrollt. Om te voorkomen dat de lay-out (het formaat van het element) telkens opnieuw wordt aangepast wanneer het document wordt gescrollt, gebruikt de browser de onthouden scroll-offset in plaats van altijd de huidige scroll-offset. De onthouden scroll-offset wordt bijgewerkt op een punt waar het anker opnieuw wordt berekend . Dit is ofwel de positie waar het gepositioneerde element initieel wordt weergegeven, ofwel wanneer een andere positioneringsoptie (` position-try-fallbacks ) wordt gekozen.
CSS-inertie
Het inert maken van een element heeft invloed op de mogelijkheid om het te focussen, bewerken, selecteren en doorzoeken via de zoekfunctie op de pagina. Het heeft ook invloed op de zichtbaarheid ervan in de toegankelijkheidsstructuur. De eigenschap interactivity specificeert of een element en de bijbehorende elementen in de platte boomstructuur (inclusief tekstblokken) inert zijn of niet. De eigenschap interactivity accepteert één van de twee waarden: auto of ` inert .
Logische overloopeigenschappen
Met de CSS-eigenschappen overflow-inline en overflow-block kunt u de overloop in de inline- en blokrichting instellen ten opzichte van de schrijfmodus. In een horizontale schrijfmodus komt overflow-inline overeen met overflow-x , terwijl dit in een verticale schrijfmodus overeenkomt met overflow-y .
Functies gerelateerd aan het teken: abs() en sign()
De eigenschap van de dynamic-range-limit
Hiermee kan een pagina de maximale helderheid van HDR-content beperken.
De shape() -functie
De functie shape() maakt het mogelijk om responsieve, vrije vormen te definiëren in de clip-path eigenschap. Hiermee kunt u een reeks opdrachten definiëren, vergelijkbaar met de opdrachten in path() . De opdrachten accepteren echter responsieve eenheden (bijvoorbeeld % of vw ), evenals alle CSS-waarden zoals aangepaste eigenschappen.
Het pseudo-element ::column
Een ::column pseudo-element waarmee een beperkte set stijlen kan worden toegepast op de gegenereerde fragmenten. Concreet gaat het hierbij om stijlen die geen invloed hebben op de lay-out en dus na de lay-out kunnen worden toegepast.
::scroll-button() pseudo-elementen
Maak het mogelijk om interactieve scrollknoppen als pseudo-elementen te creëren. Bijvoorbeeld:
.scroller {
overflow: auto;
}
.scroller::scroll-button(inline-start) {
content: "<";
}
.scroller::scroll-button(inline-end) {
content: ">";
}
Deze elementen moeten focusseerbaar zijn en zich gedragen als een knop (inclusief hun UA-stijlen). Wanneer ze geactiveerd worden, moet er in de betreffende richting gescrold worden. Als scrollen in die richting niet mogelijk is, moeten ze uitgeschakeld zijn (en gestyled met :disabled ), anders zijn ze ingeschakeld (en gestyled met :enabled ). Met de selector kun je knoppen definiëren in vier logische richtingen: block-start , block-end , inline-start , inline-end ; en in vier fysieke richtingen: up , down , left , right .
::scroll-marker en ::scroll-marker-group
Voegt de pseudo-elementen ::scroll-marker en ::scroll-marker-group toe voor scrollende containers. Met deze pseudo-elementen kunt u een set focusseerbare markers maken voor alle bijbehorende items binnen de scrollende container.
Stijl van geneste pseudo-elementen
Hiermee kan de styling van pseudo-elementen die binnen andere pseudo-elementen zijn genest, worden aangepast. Tot nu toe wordt ondersteuning geboden voor ::before::marker en ::after::marker ; ::column::scroll-marker zal in de toekomst worden toegevoegd.
Indeling :visited links
Om te voorkomen dat de browsegeschiedenis van gebruikers uitlekt, worden anker-elementen alleen als :visited weergegeven als er eerder op deze site en frame is geklikt. Door alleen links weer te geven die eerder op deze site en in dit frame zijn aangeklikt, zijn de vele side-channel-aanvallen die zijn ontwikkeld om informatie over de ` :visited -linkstijl te verkrijgen, nu overbodig, omdat ze sites geen nieuwe informatie meer verschaffen over gebruikers.
Er is een uitzondering voor zelflinks , waarbij links naar eigen pagina's van een site de stijl :visited kunnen krijgen, zelfs als er nog niet eerder op deze pagina is geklikt binnen hetzelfde hoofdframe en dezelfde oorsprong. Deze uitzondering is alleen van toepassing op hoofdframes of subframes met dezelfde oorsprong als het hoofdframe. De privacyvoordelen blijven behouden, omdat sites al weten welke subpagina's een gebruiker heeft bezocht, waardoor er geen nieuwe informatie wordt vrijgegeven. Deze uitzondering is door de community aangevraagd en verbetert de gebruikerservaring.
Functionele notatie voor interpolatievoortgang: CSS *progress() functie
safe-area-max-inset- * variabelen
Naast de omgevingsvariabelen safe-area-inset ondersteunt Chrome nu ook max-area-safe-inset- * varianten van deze variabelen. In tegenstelling tot de dynamische insets, veranderen de max-insets niet en vertegenwoordigen ze de maximaal mogelijke safe-area-inset.
Deze waarden zijn essentieel voor het bouwen van performante, naadloze webervaringen.
Web-API's
Voeg MediaStreamTrack ondersteuning toe aan de Web Speech API.
Voeg MediaStreamTrack ondersteuning toe aan de Web Speech API. De Web Speech API is een webstandaard-API waarmee ontwikkelaars spraakherkenning en -synthese in hun webpagina's kunnen integreren. Momenteel gebruikt de Web Speech API de standaardmicrofoon van de gebruiker als audio-input. MediaStreamTrack-ondersteuning stelt websites in staat om de Web Speech API te gebruiken voor het ondertitelen van andere audiobronnen, waaronder externe audiotracks.
Blob-URL-partitionering: ophalen en navigeren
Als voortzetting van de opslagpartitionering implementeert deze functie de partitionering van Blob-URL-toegang op basis van opslagsleutel (topsite, frame-oorsprong en de boolean-waarde 'heeft-cross-site-ancestor'), met uitzondering van navigaties op het hoogste niveau, die alleen gepartitioneerd blijven op basis van frame-oorsprong.
CSP require-sri-for scripts
De require-sri-for richtlijn geeft u de mogelijkheid om te eisen dat elke resource van een bepaald type op integriteit moet worden gecontroleerd. Als een resource van dat type wordt geladen zonder integriteitsmetadata, mislukt die poging en wordt een CSP-schendingsrapport gegenereerd. Deze intentie dekt de waarde "script" van deze richtlijn.
Maak een service worker client aan en erf de service worker controller over voor srcdoc iframe.
Srcdoc-contextdocumenten zijn momenteel geen service worker-clients en vallen niet onder de service worker van hun bovenliggende document. Dit leidt tot enkele inconsistenties (bijvoorbeeld: Resource Timing rapporteert de URL's die deze documenten laden, maar de service worker onderschept deze niet). Dit is bedoeld om deze inconsistenties op te lossen door service worker-clients te creëren voor srcdoc iframes en ervoor te zorgen dat ze de service worker-controller van hun bovenliggende document overnemen.
Klikgebeurtenissen verzenden naar de vastgelegde aanwijzer.
Als een aanwijzer wordt onderschept terwijl de pointerup -gebeurtenis wordt verzonden, wordt de click -gebeurtenis verzonden naar het onderschepte doel in plaats van naar de dichtstbijzijnde gemeenschappelijke voorouder van de pointerdown en pointerup gebeurtenissen, zoals beschreven in de UI Event-specificatie. Voor niet-onderschepte aanwijzers blijft het click ongewijzigd.
Float16Array
Voegt een array van het type Float16Array toe. Getalwaarden worden afgerond naar IEEE fp16 bij het schrijven naar Float16Array instanties.
Het opnemen van de navigatie-initiator in de HTTP-cachepartitiesleutel
Het HTTP-cache-sleutelschema van Chrome is bijgewerkt met een boolean is-cross-site-main-frame-navigation plaatsvindt. Dit is bedoeld om aanvallen met datalekken tussen sites via de hoofdpagina te beperken. Concreet voorkomt dit cross-site-aanvallen waarbij een aanvaller via de hoofdpagina naar een bepaalde pagina navigeert en vervolgens naar een bron navigeert waarvan bekend is dat deze door die pagina wordt geladen. Op die manier kan de aanvaller gevoelige informatie achterhalen via het laadtijdstip. Deze wijziging verbetert ook de privacy, omdat een kwaadwillende site geen navigatiegegevens meer kan gebruiken om te achterhalen of een gebruiker een bepaalde site eerder heeft bezocht.
HSTS-tracering preventie
Beperkt de mogelijkheid voor derden om gebruikers te volgen via de HSTS-cache.
Deze functie staat alleen HSTS-upgrades toe voor navigatie op het hoogste niveau en blokkeert HSTS-upgrades voor verzoeken aan subbronnen. Hierdoor wordt het voor websites van derden onmogelijk om de HSTS-cache te gebruiken om gebruikers op het web te volgen.
Aanroeperopdrachten: de attributen command en commandfor
Met de attributen command en commandfor op <button> `-elementen kunt u op een toegankelijkere en meer declaratieve manier gedrag toewijzen aan knoppen, waardoor bugs worden verminderd en de hoeveelheid JavaScript die nodig is voor interactiviteit wordt vereenvoudigd. Knoppen met de attributen commandfor en command zullen – wanneer erop wordt geklikt, aangeraakt of een toets wordt ingedrukt – een CommandEvent verzenden naar het element waarnaar commandfor verwijst, met enkele standaardgedragingen zoals het openen van dialoogvensters en pop-ups.
Link rel="facilitated-payment" om pushbetalingen te ondersteunen
Voegt ondersteuning toe voor <link rel="facilitated-payment" href="..."> als een hint dat de browser geregistreerde betaalclients moet informeren over een pushbetaling die in behandeling is.
De NavigateEvent sourceElement eigenschap
Wanneer een navigatie wordt geïnitieerd door een Element (bijvoorbeeld door een klik op een link of het verzenden van een formulier), geeft de eigenschap sourceElement van de NavigateEvent het initiërende element terug.
Naamswijziging van de NotRestoredReasons API-reden
De NotRestoredReasons API wijzigt een aantal redenteksten om ze in lijn te brengen met de gestandaardiseerde namen. Ontwikkelaars die deze redenen monitoren, kunnen een wijziging in de redenteksten opmerken.
Webspraak-API op het apparaat
Service Worker client-URL negeert wijzigingen history.pushState
Wijzigt de Client.url eigenschap van de service worker zodat wijzigingen in de document-URL die worden gebruikt met history.pushState() en andere vergelijkbare history-API's, worden genegeerd. De Client.url eigenschap is bedoeld als de aanmaak-URL van het HTML-document dat dergelijke wijzigingen negeert.
Ondersteuning voor de attributen rel en relList voor SVGAElement
De SVGAElement-interface in SVG 2.0 maakt het mogelijk om <a> -elementen op een vergelijkbare manier te manipuleren als HTML-anker-elementen. De ondersteuning van de attributen rel en relList verbetert de beveiliging en privacy voor ontwikkelaars. Deze afstemming met HTML-anker-elementen zorgt voor consistentie en gebruiksgemak in verschillende webtechnologieën.
Tijdstempels voor RTC-gecodeerde frames
Deze functie houdt in dat bepaalde tijdstempels die aanwezig zijn in WebRTC-gecodeerde frames die via RTCPeerConnection worden verzonden, beschikbaar worden gesteld aan het web. De betreffende tijdstempels zijn:
- Opnametijdstempel: het tijdstempel waarop een frame oorspronkelijk is vastgelegd.
- Ontvangsttijdstempel: het tijdstempel waarop een frame is ontvangen.
Update ProgressEvent zodat het type double wordt gebruikt voor 'loaded' en 'total'.
De ProgressEvent heeft attributen loaded en total die de voortgang aangeven, en hun type is momenteel unsigned long long . Met deze nieuwe functie wordt het type voor deze twee attributen gewijzigd naar double , waardoor ontwikkelaars meer controle krijgen over de waarde. Ontwikkelaars kunnen bijvoorbeeld nu een ProgressEvent maken met een ` total van 1 en een loaded die geleidelijk van 0 naar 1 oploopt. Dit komt overeen met het standaardgedrag van het HTML-element ` <progress> als het `max`-attribuut wordt weggelaten.
De fetchLater API
De fetchLater() -API is een JavaScript-API voor het aanvragen van een uitgestelde fetch, met name handig voor betrouwbaardere beaconing aan het einde van de levensduur van een pagina. Na aanroep in een document wordt een uitgestelde aanvraag door de browser in de wachtrij geplaatst in de status `PENDING` en wordt deze uitgevoerd zodra zich een van de volgende situaties voordoet:
Het document wordt vernietigd. Na een door de gebruiker ingestelde tijd. Om privacyredenen worden alle openstaande verzoeken verwijderd zodra het document in de bfcache terechtkomt, ongeacht hoeveel tijd er nog over is. De browser bepaalt wanneer het tijd is om het te verzenden.
De API retourneert een FetchLaterResult met een boolean-veld genaamd ' activated Dit veld kan worden bijgewerkt om aan te geven of het uitgestelde verzoek al dan niet is verzonden. Bij een succesvolle verzending negeert de browser het volledige antwoord, inclusief de body en headers.
Houd er rekening mee dat vanuit het oogpunt van de API-gebruiker het exacte verzendtijdstip onbekend is.
Nieuwe oorsprongsproeven
In Chrome 135 kun je je aanmelden voor de volgende nieuwe Origin-proefversies .
Aanleidinggevenden
Deze functie voegt een interesttarget attribuut toe aan <button> en <a> `-elementen. Het interesttarget attribuut voegt 'interesse'-gedrag toe aan het element, zodat wanneer de gebruiker 'interesse toont' in het element, acties worden geactiveerd op het doelelement. Acties kunnen bijvoorbeeld het tonen van een pop-upvenster omvatten. De user agent detecteert wanneer de gebruiker 'interesse toont' in het element, bijvoorbeeld door met de muis over het element te bewegen, speciale sneltoetsen op het toetsenbord in te drukken of het element lang ingedrukt te houden op touchscreens. Wanneer interesse wordt getoond of verloren gaat, wordt een InterestEvent geactiveerd op het doelelement. Deze gebeurtenissen hebben standaardacties in het geval van pop-upvensters: het tonen en verbergen van het pop-upvenster.
Integriteit op basis van handtekeningen
Deze functie biedt webontwikkelaars een mechanisme om de herkomst van de bronnen waarvan ze afhankelijk zijn te verifiëren, waardoor een technische basis voor vertrouwen in de afhankelijkheden van een site wordt gelegd. Kort gezegd: servers kunnen reacties ondertekenen met een Ed25519-sleutelpaar en webontwikkelaars kunnen de user agent verplichten de handtekening te verifiëren met behulp van een specifieke publieke sleutel. Dit is een nuttige aanvulling op de URL-gebaseerde controles van Content Security Policy enerzijds en de inhoudsgebaseerde controles van Subresource Integrity anderzijds.
Afschrijvingen en verwijderingen
Deze versie van Chrome introduceert de onderstaande afschrijvingen en verwijderingen. Ga naar ChromeStatus.com voor lijsten met geplande afschrijvingen, huidige afschrijvingen en eerdere verwijderingen.
Deze versie van Chrome verwijdert één nieuwe functie.
Verwijder getters van Intl Locale Info.
De Intl Locale Info API is een Stage 3 ECMAScript TC39-voorstel om het Intl.Locale object te verbeteren door informatie over de landinstellingen beschikbaar te stellen, zoals weekgegevens (eerste dag van de week, begin- en einddag van het weekend, kortste dag van de eerste week) en de uurcyclus voor de tekstrichting die in de landinstelling wordt gebruikt. Chrome heeft een implementatie hiervan in Chrome 99 geïmplementeerd, maar het voorstel is gewijzigd, waardoor verschillende getters naar functies zijn verplaatst. We moeten de verouderde getters verwijderen en de hernoemde functies opnieuw lanceren.
In deze versie van Chrome zijn drie functies verwijderd.
Verwijder de verouderde methode navigator.xr.supportsSession
De methode navigator.xr.supportsSession werd in september 2019 in de WebXR-specificatie vervangen door de methode navigator.xr.isSessionSupported na feedback van de TAG over de structuur van de API. Sindsdien is deze methode in Chrome als verouderd gemarkeerd, wat resulteert in een waarschuwing in de console die ontwikkelaars doorverwijst naar de bijgewerkte API. Het gebruik van de methode is zeer laag en alle belangrijke frameworks die worden gebruikt om WebXR-content te bouwen, zijn inmiddels geüpdatet om de nieuwere methode te gebruiken.
Verwijder de eigenschap canTransition NavigateEvent
In Chrome 108 werden de transitionWhile() -methode en de canTransition eigenschap van NavigateEvent vervangen door de nieuwe intercept() -methode en de canIntercept eigenschap. De transitionWhile() `-methode werd toen verwijderd. We vergaten echter de canTransition eigenschap te verwijderen: in plaats daarvan lieten we deze bestaan als alias voor canIntercept . In Chrome 135 corrigeren we dit en verwijderen we canTransition . Elk gebruik van canTransition kan worden vervangen door canIntercept , zonder dat dit het gedrag verandert.
Verwijder de WebGPU-limiet maxInterStageShaderComponents
De limiet maxInterStageShaderComponents wordt opgeheven vanwege een combinatie van factoren:
- Redundantie met
maxInterStageShaderVariables: Deze limiet dient al een vergelijkbaar doel, namelijk het beheersen van de hoeveelheid gegevens die tussen shaderfasen wordt doorgegeven. - Kleine verschillen: Hoewel er kleine verschillen zijn in de manier waarop de twee limieten worden berekend, zijn deze verschillen gering en kunnen ze effectief worden beheerd binnen de
maxInterStageShaderVariables limit. - Vereenvoudiging: Het verwijderen van
maxInterStageShaderComponentsstroomlijnt de shader-interface en vermindert de complexiteit voor ontwikkelaars. In plaats van twee afzonderlijke limieten te beheren (die beide tegelijkertijd van toepassing zijn, maar met subtiele verschillen), kunnen ze zich concentreren op de beter benoemde en uitgebreideremaxInterStageShaderVariables.