CSS-rastersubraster, ondersteuning voor entry- en exit-animaties voor CSS, array-groepering, iterator-helpers en meer.
Tenzij anders aangegeven, zijn de beschreven 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 117 is vanaf 16 augustus 2023 een bètaversie. Je kunt het nieuwste downloaden op Google.com voor desktop of in de Google Play Store op Android.
CSS
Deze release voegt zes nieuwe CSS-functies toe. De eerste drie eigenschappen maken deel uit van het werk om overgangen op discrete eigenschappen mogelijk te maken, waardoor entry- en exit-animaties mogelijk worden gemaakt .
De @startstijlregel
Met deze at-regel kunnen auteurs CSS-overgangen starten bij de eerste stijlupdate.
CSS-overgangen activeren geen overgangen van initiële stijlen bij de eerste stijlupdate voor een element, of wanneer het weergavetype verandert van none
naar een ander type. Dit is om onverwachte overgangen van initiële stijlen te voorkomen. Om een overgang vanaf de eerste stijlupdate te starten, kunt u nu stijlen toepassen vanuit een @starting-style
. De volgende CSS start bijvoorbeeld een achtergrondkleurovergang van groen naar limoen bij de eerste stijlupdate voor een div:
div {
transition: background-color 0.5s;
background-color: lime;
}
@starting-style {
div {
background-color: green;
}
}
De overlay-eigenschap
Met de overlay
eigenschap kunnen ontwikkelaars elementen in de bovenste laag behouden voor een exit-overgang. De overlay-eigenschap wordt toegevoegd om aan te geven of een element zich in de bovenste laag bevindt of niet, en kan twee waarden aannemen: none
of auto
.
CSS-eigenschap voor overgangsgedrag
De CSS transition-behavior
is een afgeleide van de transition
waarmee discrete eigenschappen in overgangen kunnen worden gebruikt. Door de allow-discrete
waarde voor transitiegedrag op te geven, zullen discrete eigenschappen nu animaties starten en van hun initiële waarde naar hun uiteindelijke waarde op 50% overschakelen. Voor overgangen waarbij display: none
en content-visibility: hidden
een van de begin- of eindwaarden zijn, wordt de zichtbare waarde gebruikt voor de gehele duur van de overgang.
De subrasterwaarde van het CSS-raster
De subgrid
voor grid-template-columns
en grid-template-rows
is nu geïmplementeerd in Chrome. Met deze waarde kan een genest raster de sporen gebruiken die zijn gedefinieerd op het bovenliggende raster, in plaats van een nieuwe spoordefinitie te maken voor rijen, kolommen of beide.
CSS-tekstomloop: mooi
De pretty
waarde voor de CSS text-wrap
optimaliseert voor de beste lay-out, in plaats van voor snelheid. Het is bedoeld voor hoofdtekst en verwacht daarom meerdere regels. Door pretty
te gebruiken, kiest een ontwikkelaar expliciet voor een lay-outmethode die mogelijk langzamer is dan wrap
, wat de prestaties optimaliseert. De huidige implementatie in Chrome optimaliseert voor wezen om te voorkomen dat een enkel woord onderaan een alinea tekst wordt weergegeven.
Probeer in Chrome 117 deze demo van tekstomloop: mooi en kijk hoe de waarde de tekstpresentatie verandert.
contain-intrinsic-size: automatische geen ondersteuning
Deze functie breidt de bestaande syntaxis contain-intrinsic-size
uit om ook auto && none
op te nemen.
Web-API's
Arraygroepering
Arraygroepering is een zeer veel voorkomende bewerking, die het best wordt geïllustreerd door de GROUP BY-clausule van SQL en MapReduce-programmering (wat beter kan worden gedacht aan map-group-reduce). Dankzij de mogelijkheid om gegevens in groepen te combineren, kunnen ontwikkelaars datasets van hogere orde berekenen, zoals de gemiddelde leeftijd van een cohort of dagelijkse LCP-waarden voor een webpagina. Deze functie maakt dit mogelijk door de statische methoden Object.groupBy
en Map.groupBy
toe te voegen. De Object-methode retourneert een gewoon object, waarbij de groepen eigenschapssleutels zijn. De Map-methode retourneert een Map, waarbij de sleutels willekeurige waarden kunnen zijn.
Duidelijke klanttips via de Clear-Site-Data-header
Websites kunnen nu de cache met clienthints wissen met behulp van Clear-Site-Data: "clientHints"
. Cliënthints worden nu ook gewist wanneer "cookies", "cache" of "*" het doelwit zijn van dezelfde header. Dit komt omdat als de gebruiker cookies in de gebruikersinterface wist, de clienthints ook al zijn gewist, de cache van de clienthints een cache is en consistent is met respectievelijk jokertekendoelen.
Wildcard-syntaxis van Clear-Site-Data-header
Websites kunnen nu alle opslagdoelen ("cookies", "cache" en "opslag") wissen door Clear-Site-Data: "*"
te verzenden. Houd er rekening mee dat Chrome op dit moment het wissen van "executionContexts" niet ondersteunt, maar als we dit in de toekomst zouden toevoegen, zou elke header die gericht is op "*" deze ook wissen.
customElements.getName
De methode customElements.getName()
retourneert de tagnaam van de gegeven aangepaste elementdefinitie.
Iterator-helpers
Iterator-helpers zijn nieuwe methoden op het iterator-prototype om algemeen gebruik en verbruik van iterators mogelijk te maken.
Zorg ervoor dat CaptureController is afgeleid van de EventTarget-interface
De CaptureController- interface maakt verdere manipulatie van een schermopnamesessie mogelijk. In de toekomst wordt verwacht dat de gebeurtenissen die verband houden met een opnamesessie naar die controller worden verzonden. Om luisteraars voor dergelijke gebeurtenissen te kunnen beheren, zijn de EventTarget
methoden beschikbaar gesteld op CaptureController
.
PerformanceResourceTiming deliveryType
De eigenschap deliveryType
van PerformanceResourceTiming
retourneert informatie over hoe een resource is geleverd. Bijvoorbeeld bronnen die zijn geleverd vanuit de cache (momenteel beschikbaar via transferSize
) en navigatie die vooraf is opgehaald door de vorige pagina.
Poortoverloopcontrole in URL-setters
De poortwaarde wordt gecontroleerd bij het instellen url.port
. Alle waarden die de numerieke limiet van 16 bits overschrijden, zijn niet langer geldig. Het volgende script gedraagt zich bijvoorbeeld anders na de wijziging:
u = new URL("http://test.com");
u.port = 65536;
console.log(u.port);
Vóór de wijziging is de uitvoer 65536. Na de wijziging is de uitvoer 80.
Private State Token-API
Dit is een nieuwe API voor het verspreiden van beperkte privésignalen tussen sites, zonder gebruik te maken van cross-site persistent identifiers zoals cookies van derden. Antifraudemethoden die afhankelijk zijn van cookies van derden zullen niet meer werken zodra cookies van derden zijn afgeschreven. De Private State Token API genereert of definieert geen antifraudesignalen: dit is aan de overeenkomstige eerste partij en de tokenuitgevers. In plaats daarvan handhaaft de API de privacy door limieten op te leggen aan de informatie die via deze signalen wordt overgedragen. De API is gebaseerd op een variant van het Privacy Pass- protocol, dat momenteel wordt gestandaardiseerd door de IETF. Het kan worden beschouwd als een web-blootgestelde vorm van de Privacy Pass-protocollen. De API-specificatie moet worden bijgewerkt voor nieuwe versies en typen tokens, en zal up-to-date worden gehouden met de specificaties van de Privacy Pass-werkgroep. De verwachte veranderingen zouden plaatsvinden in de onderliggende cryptografische protocollen en de tokenuitgiftecode: we verwachten geen veranderingen in de Fetch-API's van de ontwikkelaar die te maken krijgt met uitgifte en inwisseling. De Private State Token API stond voorheen bekend als de Trust Token API. De naam is gewijzigd om de onderliggende semantiek nauwkeuriger weer te geven en de privacyvoordelen voor gebruikers te benadrukken.
URL Standaard-compatibele IPv4 ingebedde IPv6-hostparser
Het gedrag van het parseren van de in IPv4 ingebedde IPv6-hostparser wordt bijgewerkt om strikt de web- URL-standaard te volgen. De geïntroduceerde beperkingen op het IPv6-adres zijn:
- Het embedded IPv4-adres zal altijd uit 4 delen bestaan.
- Adressen met minder dan 4 delen, zoals
http://[::1.2]
zijn niet langer geldig. De functie maakt deel uit van de URL-interop 2023.
URL: Sta "%00" toe als een geldig URL-pad
Chrome beschouwt een URL momenteel als ongeldig als het padgedeelte van de URL '%00' (of null) bevat, wat niet in overeenstemming is met de URL-standaard . De volgende test mislukt bijvoorbeeld in Chrome, omdat new URL(...)
een ongeldige URL-uitzondering genereert.
assertEquals(new URL("http://example.com/%00").pathname, "/%00");
Volgens de URL-standaard mag een reeks tekens of bytes in het URL-pad de URL niet ongeldig maken. Deze wijziging zorgt ervoor dat Chrome die standaard volgt.
WebRTC RTP-headerextensiecontrole
Breid de WebRTC RTCRtpTransceiver
API uit om controle te bieden over welke RTP-headerextensies worden onderhandeld.
Kwantiseerder per frame in VideoEncoder
Voegt "quantizer" VideoEncoderBitrateMode
toe voor VideoEncoder. Dit biedt de mogelijkheid om voor elk frame een kwantiseringsparameter op te geven voor AV1-, VP9- en AVC-videocodecs.
WebUSB- exclusionFilters
-optie in requestDevice()
Met de optie exclusionFilters
in navigator.usb.requestDevice()
kunnen webontwikkelaars bepaalde apparaten uitsluiten van de browserkiezer. Het kan worden gebruikt om apparaten uit te sluiten die aan een breder filter voldoen, maar niet worden ondersteund.
Oorsprongsproeven zijn aan de gang
In Chrome 117 kunt u zich aanmelden voor de volgende nieuwe origin-proefversies .
Compressiewoordenboektransport met gedeelde Brotli
Deze functie voegt ondersteuning toe voor het gebruik van aangewezen eerdere antwoorden, als een extern woordenboek voor Brotli-comprimerende HTTP-antwoorden.
Schrijf u in voor de CompressionDictionaryTransport origin-proefperiode .
Proefperiode voor beëindiging van WebSQL
WebSQL wordt verwijderd uit Chrome. Sites die hiervan afhankelijk zijn, worden aangemoedigd om via Wasm naar SQLite te verhuizen.
Deze beëindigingsproef geeft ontwikkelaars die meer tijd nodig hebben voor de migratie de mogelijkheid om WebSQL te blijven gebruiken tot Chrome 123 (maart 2024). Registreer u voor de proefversie van WebSQL .
Web-apps met tabbladen
Sta toe dat web-app-vensters een tabbladstrook hebben, zodat u bijvoorbeeld meerdere documenten in dezelfde app kunt bewerken. Dit voegt een nieuwe weergavemodus "met tabbladen" toe en een nieuw manifestveld om aanpassingen aan de tabbladstrook mogelijk te maken.
Registreer u voor de oorspronkelijke proefversie van Tabbed Web Apps .
Beëindigingen en verwijderingen
Deze versie van Chrome introduceert de hieronder vermelde 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.
Beëindig de unload-gebeurtenis
Chrome 117 start het proces voor het beëindigen van de gebeurtenishandler unload
. Als uw site deze gebruikt, wordt u ten zeerste aangeraden het speciale bericht over het beëindigen unload
te lezen voor meer informatie.
Beëindig TLS SHA-1-serverhandtekeningen
Chrome verwijdert de ondersteuning voor handtekeningalgoritmen die SHA-1 gebruiken voor serverhandtekeningen tijdens de TLS-handshake. Dit heeft geen invloed op de SHA-1-ondersteuning in servercertificaten, die al zijn verwijderd, of in clientcertificaten, die nog steeds worden ondersteund.
Deze versie van Chrome verwijdert vier functie(s).
[WebRTC] Op callback gebaseerde verouderde getStats() verwijderen
RTCPeerConnection heeft twee versies van getStats()
, een versie die voldoet aan de specificaties en het rapport retourneert via het oplossen van een belofte, en een versie die niet-standaard is en een heel ander rapport retourneert via een callback als eerste argument. De op callback gebaseerde versie is nu verwijderd.
Voor meer informatie over migratie en wat u kunt doen als u meer tijd nodig heeft, raadpleegt u de Legacy getStats() migratiegids .
Verwijdering van de waarde -1 voor WebRTC getStats datachannelIdentifier
De WebRTC getStats API maakt een dataChannelIdentifier eigenschap beschikbaar. Het zal niet langer de waarde "-1" bieden in gevallen waarin statistieken worden opgevraagd voordat de datakanaalverbinding tot stand is gebracht. In plaats daarvan wordt het woordenboeklid weggelaten.
Verwijdering van WebRTC getStats encoderImplementatie en decoderImplementatie "onbekend"
De WebRTC getStats API maakt de implementatienamen van de encoder en decoder zichtbaar voor uitgaande en inkomende video . Het zal niet langer de waarde "onbekend" bieden in gevallen waarin statistieken worden opgevraagd voordat een videoframe werd gecodeerd of gedecodeerd. In plaats daarvan wordt het woordenboeklid weggelaten.
CSS-eigenschap -webkit-highlight
Verwijder de CSS-eigenschap -webkit-highlight
die bedoeld is om tekst te markeren, maar nooit gestandaardiseerd. Het heeft geen zichtbaar effect in chroom (het wordt ontleed maar nooit gebruikt bij het weergeven van inhoud). De eigenschap is in 2014 uit WebKit verwijderd , is gemarkeerd als verouderd op MDN en is onlangs vervangen door de CSS Highlight Pseudo-specificatie .