Chroom 125

Stabiele releasedatum: 14 mei 2024

Tenzij anders aangegeven, zijn de volgende wijzigingen van toepassing op de stabiele kanaalrelease van Chrome 125 voor Android, ChromeOS, Linux, macOS en Windows.

HTML en DOM

Declaratieve schaduw-DOM-serialisatie

Een functie waarmee ontwikkelaars DOM-bomen met schaduwwortels kunnen serialiseren, onlangs gestandaardiseerd in de HTML-standaard.

Trackingbug #41490936 | ChromeStatus.com-invoer | Spec

CSS

CSS-ankerpositionering

Met CSS-ankerpositionering kunnen ontwikkelaars een absoluut gepositioneerd element op een declaratieve manier aan een of meer andere elementen op de pagina (de ankers ) vastmaken , zonder het gebruik van JavaScript. Ankerpositionering werkt goed wanneer de ankers scrollbaar zijn. Een veelvoorkomend gebruiksscenario is het plaatsen van een popover, zoals een tooltip, naast het element dat deze heeft aangeroepen, of een selectiemenu en de lijst met popover-opties. Vóór de ankerpositioneringsfunctie hadden deze gebruiksscenario's JavaScript nodig om de popover dynamisch te positioneren en verankerd te houden terwijl het aanroepende element werd gescrolld, wat een prestatie-footgun is en moeilijk om goed te krijgen. Met ankerpositionering kunnen deze gebruiksscenario's performant en declaratief worden geïmplementeerd.

De ankerpositioneringsfunctie bestaat uit een groot aantal CSS-eigenschappen. Een aantal van de belangrijkste eigenschappen zijn als volgt:

  • anchor-name : stelt een element in als anker voor andere elementen.
  • position-anchor : beschrijft het "standaard" anker dat een verankerd element moet gebruiken voor ankerpositionering.
  • De functie anchor() : wordt gebruikt om te verwijzen naar de positie van het ankerelement, bij het positioneren van het verankerde element.
  • inset-area : een afkorting voor positionering, voor gemeenschappelijke relatieve posities.

Introductie van de CSS-ankerpositionerings-API | Trackingbug #40059176 | ChromeStatus.com-invoer | Spec

CSS-functies voor getrapte waarden round() , mod() en rem()

De functies met getrapte waarden, round() , mod() en rem() , transformeren allemaal een gegeven waarde volgens een andere "stapwaarde".

De CSS-functie round() retourneert een afgerond getal op basis van een geselecteerde afrondingsstrategie.

De CSS-functie mod() retourneert een modulus die overblijft wanneer de eerste parameter wordt gedeeld door de tweede parameter, vergelijkbaar met de JavaScript-restoperator (%). De modulus is de waarde die overblijft als een operand, het deeltal, wordt gedeeld door een tweede operand, de deler. Er is altijd het teken van de deler nodig.

De rem() CSS-functie retourneert een rest die overblijft wanneer de eerste parameter wordt gedeeld door de tweede parameter, vergelijkbaar met de JavaScript-restoperator (%). De rest is de waarde die overblijft als een operand, het deeltal, wordt gedeeld door een tweede operand, de deler. Er is altijd het teken van het dividend nodig.

Trackingbug #40253179 | ChromeStatus.com-invoer | Spec

Nieuwe syntaxis voor aangepaste CSS :state()

Met de aangepaste CSS-status kunnen aangepaste elementen hun eigen pseudo-klassen blootleggen. De syntaxis is nu gespecificeerd in de CSSWG en Chrome 125 ondersteunt nu de nieuwe syntaxis :state(foo) . Deze wijziging heeft een venster waarin Chrome zowel de oude syntaxis ( :--foo ) als de nieuwe syntaxis ondersteunt, zodat websites naar de nieuwe kunnen overschakelen.

ChromeStatus.com-invoer | Spec

Verwijder discontinuïteit voor Oklab- en Oklch-kleuren met een lichtheid van bijna 100% of 0

Vóór deze wijziging werden alle Lab-, LCH-, Oklab- en Oklch-kleuren met een helderheidswaarde van 100% weergegeven als wit, ongeacht de andere twee parameters. Alle kleuren in deze ruimtes met een lichtheidswaarde van 0 werden als zwart weergegeven. Deze twee mappings veroorzaakten discontinuïteiten in gradiënten en waren onverwacht voor webontwikkelaars.

Met deze terugdraaiing worden deze kleuren niet langer kunstmatig in kaart gebracht en zal de resulterende weergegeven kleur continu zijn met nabijgelegen kleuren en afhankelijk zijn van de gamut-toewijzing van het scherm.

ChromeStatus.com-invoer | Spec

Gebruikte root-schuifbalken in het kleurenschema

Zorgt ervoor dat de browser het voorkeurskleurenschema van de gebruiker gebruikt om de schuifbalken van de viewport weer te geven als de waarde van "ondersteunde kleurenschema's van de pagina" 'normaal' is of niet is opgegeven, en de berekende waarde van color-scheme voor het hoofdelement normal is. Viewport-schuifbalken kunnen worden beschouwd als buiten de webinhoud. Daarom moeten de user agents het voorkeurskleurenschema van de gebruiker respecteren bij het weergeven van schuifbalken in de viewport als de ontwikkelaar niet expliciet ondersteuning voor kleurenschema's heeft gespecificeerd.

Deze wijziging weerhoudt ontwikkelaars er niet van om het kleurenschema voor schuifbalken te beheren. Het nieuwe gedrag zorgt ervoor dat de browser het voorkeurskleurenschema van de gebruiker gebruikt om niet-overlay-schuifbalken in de viewport weer te geven, alleen als de ontwikkelaar het kleurenschema voor het hoofdelement niet heeft gespecificeerd.

titel | Trackingbug #40259909 | ChromeStatus.com-invoer | Spec

view-transitions klasse

Er is een nieuwe CSS-eigenschap view-transition-class waarmee u een of meer weergave-overgangsklassen kunt specificeren. Vervolgens kunt u de ViewTransition pseudo-elementen selecteren met behulp van deze klassen, bijvoorbeeld ::view-transition-group(*.class) .

Dit is een uitbreiding op de ViewTransition API die de stijl van pseudo-elementen voor weergaveovergangen vereenvoudigt op een vergelijkbare manier waarop CSS-klassen de stijl van reguliere DOM-elementen vereenvoudigen.

Trackingbug #41492972 | ChromeStatus.com-invoer | Spec

Laden

Accepteer HTTP- en HTTPS-URL's bij het bouwen van WebSocket

Deze update maakt HTTP- en HTTPS-schema's mogelijk in de WebSocket-constructor, waardoor ontwikkelaars ook relatieve URL's kunnen gebruiken. Deze zijn genormaliseerd naar de ws: en wss: interne schema's.

Trackingbug #325979102 | ChromeStatus.com-invoer | Spec

Web-API's

Toevoegingen aan de Attributierapportage-API

Er zijn functies toegevoegd aan de Attribution Reporting API om extra foutopsporingsmogelijkheden te creëren door het parseren van foutopsporingsrapporten te ondersteunen, de API-ergonomie te verbeteren door een veld te ondersteunen om het gewenste registratieplatform te specificeren en de privacy te verbeteren.

ChromeStatus.com-invoer

De Compute Pressure-API

De Compute Pressure API biedt statussen op hoog niveau die de CPU-belasting op het systeem vertegenwoordigen. Het maakt het voor de implementatie mogelijk om de juiste onderliggende hardware-metrieken te gebruiken om ervoor te zorgen dat gebruikers kunnen profiteren van alle beschikbare verwerkingskracht, zolang het systeem niet onder onbeheersbare stress staat.

Intel leidde het ontwerp- en implementatiewerk voor deze API, waarmee apps voor videoconferenties functies en prestaties dynamisch in evenwicht kunnen brengen.

Berekeningsdruk-API | Trackingbug #40683064 | ChromeStatus.com-invoer | Spec

Hiermee wordt de voorgestelde uitbreiding van de Storage Access API (achterwaarts compatibel en in de oorspronkelijke proeffase) gelanceerd om toegang tot niet-gepartitioneerde cookie- en niet-cookie-opslag in een context van derden mogelijk te maken. De huidige API biedt alleen toegang tot cookies, die andere gebruiksscenario's hebben dan niet-cookie-opslag.

Trackingbug #40282415 | ChromeStatus.com-invoer | Spec

FedCM CORS-vereiste op het eindpunt voor ID-bevestiging

De ophaalacties in de FedCM API zijn moeilijk te redeneren vanwege de vereiste eigenschappen. Hoewel er voortdurend wordt gediscussieerd over het eindpunt van de accounts, bestaat er ook grotendeels consensus dat het eindpunt voor de ID-bewering CORS moet gebruiken. Deze update lijnt de beveiligingseigenschappen van deze ophaalactie beter uit met andere ophaalacties op het webplatform.

FedCM-updates: Button Mode API-oorsprongproef, CORS en SameSite | Trackingbug #40284123 | ChromeStatus.com-invoer

FedCM verzendt nu ID-bevestigingsverzoeken met CORS. Deze wijziging betekent dat Chrome niet langer SameSite=Strict cookies naar het ID-bevestigingseindpunt verzendt, hoewel Chrome nog steeds SameSite=None verzendt. Aangezien het geen zin heeft om een ​​andere set cookies naar het eindpunt van het account en het eindpunt voor het bevestigen van de ID te sturen, zorgt deze wijziging ervoor dat ze consistent zijn.

Het niet verzenden van SameSite=Strict cookies komt ook overeen met requestStorageAccess gedrag en cross-site verzoeken in het algemeen.

Trackingbug #329145816 | ChromeStatus.com-invoer | Spec

Interoperabele standaardactie voor muisbewegingen

Chrome stond het annuleren van muisbewegingsgebeurtenissen toe om andere API's zoals tekstselectie (en in het verleden zelfs slepen en neerzetten) te voorkomen. Dit komt niet overeen met andere grote browsers; het voldoet ook niet aan de UI Event-specificatie. Nu is tekstselectie niet langer de standaardactie bij muisbeweging. Tekstselectie en slepen en neerzetten kunnen nog steeds worden voorkomen door respectievelijk selectstart en dragstart gebeurtenissen te annuleren.

Deze functie wordt langzaam uitgerold vanaf Chrome 125 en zal naar verwachting vanaf Chrome 126 voor alle gebruikers beschikbaar zijn.

Demonstratie | Trackingbug #40078978 | ChromeStatus.com-invoer | Spec

Modificatoren voor reguliere expressies

Modifiers voor reguliere expressies voegen de mogelijkheid toe om de i , m en s ' vlaggen binnen een patroon lokaal te wijzigen.

Om een ​​vlag voor een subexpressie in te schakelen, gebruikt u (?X:subexpr) waarbij X een van i , m of s is. Om een ​​vlag voor een subexpressie uit te schakelen, gebruikt u (-X:subexpr) .

Voor de hoofdletterongevoeligheid markeer i bijvoorbeeld:

const re1 = /^[a-z](?-i:[a-z])$/i;
re1.test("ab"); // true
re1.test("Ab"); // true
re1.test("aB"); // false

const re2 = /^(?i:[a-z])[a-z]$/;
re2.test("ab"); // true
re2.test("Ab"); // true
re2.test("aB"); // false

ChromeStatus.com-invoer | Spec

Duplicaat van reguliere expressies met de naam capture-groepen

Met het dupliceren van benoemde vastleggroepen kunt u dezelfde vastleggroepnaam gebruiken voor alternatieven. Bijvoorbeeld

const re = /(?<year>[0-9]{4})-[0-9]{2}|[0-9]{2}-(?<year>[0-9]{4})/;

In dit geval is year geldig voor het eerste alternatief ( (?<year>[0-9]{4})-[0-9]{2} ), of het tweede alternatief ( [0-9]{2}-(?<year>[0-9]{4}) ).

ChromeStatus.com-invoer | Spec

Chrome-apps

Direct Sockets API in Chrome-apps

Deze update helpt de overgang van gespecialiseerde apps van Chrome-apps naar geïsoleerde web-apps te vergemakkelijken door Direct Sockets in Chrome-apps in te schakelen, waardoor web-apps directe transmissiecontroleprotocol (TCP) en user datagram protocol (UDP)-communicatie tot stand kunnen brengen met netwerkapparaten en -systemen.

ChromeStatus.com-invoer | Spec

Nieuwe oorsprongsproeven

FedCM-knopmodus-API en gebruik andere account-API

Deze origin-proefversie bevat de volgende twee FedCM API's.

Met de Button Mode API kunnen websites FedCM aanroepen met één druk op de knop, bijvoorbeeld door op de knop Aanmelden bij IdP te klikken. Dit vereist dat FedCM garandeert dat het altijd reageert met een zichtbare gebruikersinterface, in tegenstelling tot de widgetmodus, die geen gebruikersinterface toont wanneer gebruikers uitloggen. Door de FedCM API in de knopmodus aan te roepen, moeten gebruikers inloggen op de IdP (in een dialoogvenster) wanneer gebruikers zijn uitgelogd.

Omdat de knopmodus wordt aangeroepen binnen een expliciet gebruikersgebaar, kan de gebruikersinterface ook prominenter zijn (bijvoorbeeld gecentreerd en modaal) vergeleken met de gebruikersinterface van de widgetmodus (die niet zo'n expliciete bedoeling heeft). Leer meer over hoe de Button Mode API werkt in FedCM-updates: Button Mode API origin-proefversie, CORS en SameSite

Met de Use Other Account API kan een identiteitsprovider gebruikers toestaan ​​zich aan te melden bij andere accounts.

Origin-proef | Demonstratie | Trackingbug #40284792 | ChromeStatus.com-invoer | Spec

Opvouwbare API's

Deze origin-proefversie omvat de Device Posture API en Viewport Segments Enumeration API. Deze API's zijn ontworpen om ontwikkelaars te helpen zich te richten op opvouwbare apparaten.

Origin-proef | Origin-proefversie voor opvouwbare API's | ChromeStatus.com-invoer | Spec

Beëindigingsproef voor HTMLVideoElement-eigenschappen en -methoden met voorvoegsel

Met deze beëindigingsproef kunt u zich opnieuw aanmelden voor ondersteuning voor de vooraf ingestelde HTMLVideoElement-eigenschappen en -methoden als u meer tijd nodig heeft om uw code aan te passen.

Origin-proef | ChromeStatus.com-invoer

Scannen vóór laden overslaan

Slaat de vooraf geladen scanner over om prestatieafwegingen te onderzoeken voor pagina's zonder ophaalacties van subbronnen.

De stap van het vooraf laden van de scanner verbetert de prestaties van pagina's met het ophalen van subbronnen, door de implementatie van de speculatieve prefetch. Voor pagina's die geen profijt hebben van deze stap, dat wil zeggen voor pagina's zonder subbronnen, is dit echter extra verwerkingsoverhead met weinig voordeel.

Voor geavanceerde webgebruikers die willen profiteren van het verminderen van deze overhead, biedt dit experiment een besturingselement op paginaniveau om de vooraf geladen scanner uit te schakelen. Gegevens verzameld uit dit experiment kunnen evalueren of een aangepaste API of een andere implementatie van de vooraf geladen HTML-scanner nuttig zou zijn.

Origin-proef | Trackingbug #330802493 | ChromeStatus.com-invoer | Spec

Beëindigingen en verwijderingen

Verwijder de alias "window-placement" voor toestemming en toestemmingsbeleid "window-management"

Verwijdert de alias "window-placement" voor toestemming en het toestemmingsbeleid "window-management". Dit maakt deel uit van een grotere poging om de tekenreeksen te hernoemen door uiteindelijk "window-placement" af te schaffen en te verwijderen . De terminologiewijziging verbetert de levensduur van de descriptor naarmate de Window Management API in de loop van de tijd evolueert.

titel | Trackingbug #40842072 | ChromeStatus.com-invoer | Spec

Verwijdering van Enterprise-beleid: NewBaseUrlInheritanceBehaviorAllowed

De onderliggende codewijziging (nieuw overervingsgedrag van basis-URL's inschakelen) die door dit bedrijfsbeleid wordt overschreven, is sinds augustus 2023 in stabiele releases ingeschakeld (Chrome 118). Omdat bekende problemen zijn opgelost, is dit ondernemingsbeleid verwijderd in Chrome 125.

ChromeStatus.com-invoer

Verwijdering van vooraf ingestelde HTMLVideoElement-eigenschappen en -methoden op volledig scherm

De HTMLVideoElement API's op volledig scherm vooraf zijn verouderd sinds Chrome 38. Ze zijn vervangen door Element.requestFullscreen() , dat in 2018 voor het eerst zonder prefix werd geleverd in Chrome 71.

De volgende eigenschappen en methoden worden verwijderd uit HTMLVideoElement:

  • webkitSupportsFullscreen
  • webkitDisplayingFullscreen
  • webkitEnterFullscreen()
  • webkitExitFullscreen()
  • webkitEnterFullScreen() (let op de verschillende hoofdletters van de "S" in FullScreen)
  • webkitExitFullScreen()

Registreer u voor de beëindigingsproef die in dit bericht wordt vermeld, als uw site hier nog steeds van afhankelijk is en u meer tijd nodig heeft voor het updaten van de code.

ChromeStatus.com-invoer

Verder lezen

Op zoek naar meer? Bekijk deze aanvullende bronnen.

Google Chrome downloaden

Download Chrome voor Android , Desktop of iOS .