Chrome 117 bèta

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 eigenschap waarmee discrete eigenschappen in overgangen kunnen worden gebruikt. Door de allow-discrete waarde voor transitiegedrag op te geven, starten discrete eigenschappen nu animaties en schakelen ze van hun initiële waarde naar hun uiteindelijke waarde op 50%. 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 weeskinderen 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 zich voordoen 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 .

Proefversie van WebSQL-beëindiging

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 .