Obsługa podsiatki siatki CSS, animacji wejścia i wyjścia dla arkuszy CSS, grupowania tablic, pomocników iteratora i nie tylko.
O ile nie zaznaczono inaczej, opisane zmiany dotyczą najnowszej wersji wersji beta Chrome na systemy Android, ChromeOS, Linux, macOS i Windows. Więcej informacji o funkcjach znajdziesz, klikając odpowiednie linki lub korzystając z listy na ChromeStatus.com. Od 16 sierpnia 2023 r. Chrome 117 jest w wersji beta. Najnowsze wersje możesz pobrać ze strony Google.com na komputer lub ze Sklepu Google Play na urządzeniu z Androidem.
CSS
W tej wersji dodaliśmy 6 nowych funkcji CSS. Pierwsze 3 właściwości stanowią część prac nad włączeniem przejść w oddzielnych usługach, które umożliwiają animacje wejścia i wyjścia.
Reguła @starting-style
Ta reguła umożliwia autorom uruchamianie przejść CSS przy pierwszej aktualizacji stylu.
Przejścia CSS nie wywołują przejścia ze stylów początkowych przy pierwszej aktualizacji stylu elementu lub gdy typ wyświetlania zmienia się z none
na inny. Pozwala to uniknąć nieoczekiwanych przejść ze stylów początkowych. Aby rozpocząć przejście od pierwszej aktualizacji stylu, możesz teraz stosować style z poziomu reguły @starting-style
. Na przykład ten kod CSS rozpoczyna przejście koloru tła z zielonego na limonkowy przy pierwszej aktualizacji stylu elementu div:
div {
transition: background-color 0.5s;
background-color: lime;
}
@starting-style {
div {
background-color: green;
}
}
Właściwość nakładki
Właściwość overlay
umożliwia programistom przechowywanie elementów w górnej warstwie, by umożliwić wyjście z aplikacji. Dodawana jest właściwość nakładki, by wskazać, czy element znajduje się w górnej warstwie, czy nie. Może ona przyjmować 2 wartości: none
i auto
.
Właściwość przejścia CSS
Właściwość CSS transition-behavior
to część składowa właściwości transition
, która umożliwia używanie w przejściach właściwości dyskretnych. Określenie wartości allow-discrete
dla zachowania przejścia sprawia, że dyskretne właściwości uruchamiają teraz animacje i odwracają się od wartości początkowej do końcowej wartości 50%. W przypadku przejść, w których display: none
i content-visibility: hidden
są jedną z wartości początkowych lub końcowych, wartość widoczna będzie widoczna przez cały czas trwania przejścia.
Wartość podsieci siatki CSS
Parametr subgrid
dla pól grid-template-columns
i grid-template-rows
jest teraz wdrożony w Chrome. Ta wartość umożliwia zagnieżdżonej siatce korzystanie ze ścieżek zdefiniowanych w jej elemencie nadrzędnym, zamiast tworzenia nowej definicji ścieżki dla wierszy, kolumn lub obu tych elementów.
CSS text-wrap: ładny
Wartość pretty
we właściwości CSS text-wrap
jest optymalizowana pod kątem najlepszego układu, a nie szybkości. Powinien zawierać wiele wierszy, dlatego musi być przeznaczony dla tekstu głównego. Korzystając z metody pretty
, deweloper wyraźnie wybiera metodę układu, która może być wolniejsza niż metoda wrap
, która optymalizuje skuteczność. Obecna implementacja w Chrome optymalizuje pod kątem sierot, aby zapobiec wyświetlaniu pojedynczego słowa u dołu akapitu.
W Chrome 117 wypróbuj tę wersję demonstracyjną „text-wrap: ale” i zobacz, jak zmienia się sposób prezentacji tekstu.
include-intrinsic-size: autobrak obsługi
Ta funkcja rozszerza istniejącą składnię contain-intrinsic-size
o auto && none
.
Internetowe interfejsy API
Grupowanie tablic
Grupowanie tablic to niezwykle powszechna operacja, której przykładem najlepiej jest klauzula GROUP BY w SQL i programowanie MapReduce (lepiej to jest nazwa map-group-reduce). Możliwość łączenia danych w grupy pozwala programistom obliczać zbiory danych wyższego rzędu, np. średni wiek kohorty lub dzienne wartości LCP strony. Jest to możliwe dzięki dodaniu metod statycznych Object.groupBy
i Map.groupBy
. Metoda Object zwraca zwykły obiekt, którego grupy są kluczami właściwości. Metoda Mapa zwraca wartość Mapę, w której klucze mogą być dowolnymi wartościami.
Wyczyść wskazówki klienta za pomocą nagłówka Clear-Site-Data
Witryny będą teraz mogły czyścić pamięć podręczną wskazówek dla klienta za pomocą polecenia Clear-Site-Data: "clientHints"
. Wskazówki dla klienta będą teraz usuwane także wtedy, gdy „pliki cookie”, „pamięć podręczna” lub „*” są kierowane według tego samego nagłówka. Wynika to z faktu, że jeśli użytkownik wyczyści pliki cookie we wskazówkach klienta interfejsu, pamięć podręczna wskazówek dla klienta będzie buforowana i będzie działać zgodnie z celami zawierającymi symbole wieloznaczne.
Składnia symbolu wieloznacznego nagłówka Clear-Site-Data
Strony będą teraz mogły usuwać wszystkie docelowe miejsca na dane („pliki cookie”, „pamięć podręczna” i „pamięć podręczna”), wysyłając Clear-Site-Data: "*"
. Pamiętaj, że Chrome nie obsługuje czyszczenia „executionContexts” na razie, ale gdyby dodać je w przyszłości, kierowanie na nagłówek „*” te treści również zostałyby usunięte.
customElements.getName
Metoda customElements.getName()
zwraca nazwę tagu danej definicji elementu niestandardowego.
Pomocnicze iteracje
Asystenty iteratora to nowe metody w prototypie iteratora, które pozwalają na ogólne wykorzystanie i traktowanie iteratorów.
Aplikacja CaptureController do pobierania danych z interfejsu EventTarget
Interfejs CaptureController umożliwia dalsze manipulowanie sesją przechwytywania ekranu. W przyszłości zdarzenia związane z sesją przechwytywania powinny być wysyłane do tego kontrolera. Aby można było zarządzać detektorami takich zdarzeń, w usłudze CaptureController
udostępniono metody EventTarget
.
Typ dostawy w czasie zasobu PerformanceResource
Właściwość deliveryType
właściwości PerformanceResourceTiming
zwraca informacje o sposobie dostarczenia zasobu. Na przykład zasoby pobrane z pamięci podręcznej (obecnie udostępniane przez transferSize
) i elementy nawigacyjne pobrane z wyprzedzeniem przez poprzednią stronę.
Sprawdzanie przepełnienia portu w mechanizmach dodawania adresów URL
Wartość portu zostanie sprawdzona podczas konfigurowania url.port
. Wszystkie wartości przekraczające 16-bitowy limit nie będą już prawidłowe. Na przykład ten skrypt działa inaczej po zmianie:
u = new URL("http://test.com");
u.port = 65536;
console.log(u.port);
Przed zmianą dane wyjściowe to 65 536. Po zmianie wynik będzie wynosić 80.
Interfejs Private State Token API
To nowy interfejs API do propagowania ograniczonych sygnałów prywatnych w witrynach bez używania trwałych identyfikatorów w różnych witrynach, takich jak pliki cookie innych firm. Metody zapobiegania oszustwom, które bazują na plikach cookie innych firm, przestaną działać po ich wycofaniu. Interfejs Private State Token API nie generuje ani nie definiuje sygnałów zapobiegających oszustwom: decyzja należy do odpowiedniego podmiotu i wydawców tokenów. Zamiast tego interfejs API dba o prywatność, narzucając limity informacji przesyłanych w ramach tych sygnałów. Interfejs API opiera się na wariantie protokołu Privacy Pass, który jest w trakcie standaryzacji IETF. Można go uznać za udostępnioną w internecie formę protokołów Privacy Pass. Specyfikacja interfejsu API zostanie zaktualizowana pod kątem nowych wersji i typów tokenów. Będzie ona aktualizowana zgodnie ze specyfikacjami grupy roboczej Privacy Pass. Spodziewamy się zmian w podstawowych protokołach kryptograficznych i kodzie wystawiania tokenów. Nie spodziewamy się żadnych zmian w interfejsach API pobierania przeznaczonych dla programistów. Interfejs Private State Token API nosił wcześniej nazwę Trust Token API. Jej nazwa została zmieniona tak, aby dokładniej odzwierciedlać jej semantykę i uwydatnić korzyści związane z prywatnością dla użytkowników.
Adres URL osadzony parser IPv4 hosta IPv4 zgodny ze standardem
Sposób analizowania parsera hosta IPv6 umieszczonego w protokole IPv4 zostanie zaktualizowany, aby zachować ścisłą zgodność ze standardem adresów URL internetowych. Wprowadzone ograniczenia dotyczące adresu IPv6:
- Umieszczony adres IPv4 zawsze powinien składać się z 4 części.
- Adresy zawierające mniej niż 4 części, takie jak
http://[::1.2]
, przestaną działać. Ta funkcja jest częścią interoperacyjności adresów URL z 2023 r.
URL: zezwól na „%00” jako prawidłową ścieżkę adresu URL
Chrome obecnie uważa adres URL za nieprawidłowy, jeśli jego ścieżka zawiera „%00” (lub null), co jest niezgodne ze standardem adresów URL. Na przykład poniższy test kończy się niepowodzeniem w Chrome, ponieważ new URL(...)
zgłasza wyjątek nieprawidłowego adresu URL.
assertEquals(new URL("http://example.com/%00").pathname, "/%00");
Zgodnie ze standardem adresów URL żadne znaki ani sekwencje bajtów w ścieżce adresu URL nie powinny powodować, że adres URL jest nieprawidłowy. Po wprowadzeniu tej zmiany Chrome będzie zgodny z tym standardem.
Kontrola rozszerzenia nagłówka RTP WebRTC
Rozszerz interfejs API WebRTC RTCRtpTransceiver
, aby zapewnić kontrolę nad tym, które rozszerzenia nagłówka RTP są negocjowane.
Kwantyzator na klatkę w VideoEncoder
Dodaje „kwantyfikator” VideoEncoderBitrateMode
w przypadku kodera VideoEncoder.
Umożliwia to określenie parametru kwantyzatora dla każdej klatki w kodekach wideo AV1, VP9 i AVC.
Opcja WebUSB exclusionFilters
w: requestDevice()
Opcja exclusionFilters
w usłudze navigator.usb.requestDevice()
umożliwia programistom stron internetowych wykluczanie niektórych urządzeń z selektora przeglądarki. Służy do wykluczania urządzeń, które pasują do szerszego filtra, ale nie są obsługiwane.
Trwa testowanie origin
W Chrome 117 możesz włączyć opisane poniżej testy origin.
Transport słownika kompresji za pomocą współdzielonego języka Brotli
Ta funkcja dodaje obsługę używania wyznaczonych wcześniejszych odpowiedzi jako zewnętrznego słownika do kompresowania odpowiedzi HTTP Brotli.
Zarejestruj się w programie testowania origin CompressionDictionaryTransport.
Okres próbny wycofania WebSQL
Usuwam bazę danych WebSQL z Chrome. Zachęcamy witryny korzystające z tego narzędzia do przejścia na SQLite – Wasm.
Dzięki temu próbnemu wycofaniu deweloperzy, którzy potrzebują więcej czasu na migrację, mogą korzystać z WebSQL do czasu wprowadzenia Chrome 123 (marzec 2024 r.). Zarejestruj się, aby skorzystać z okresu próbnego wycofywania WebSQL.
Aplikacje internetowe z kartami
Zezwól oknami aplikacji internetowych na pasek kart, aby np. edytować wiele dokumentów w tej samej aplikacji. Spowoduje to dodanie nowego trybu wyświetlania z kartami. oraz nowe pole manifestu, które umożliwia dostosowywanie paska kart.
Zarejestruj się w programie testowania origin aplikacji internetowych Tabbed.
Wycofania i usuwanie
Ta wersja Chrome wprowadza informacje o wycofaniach i usunięciach wymienionych poniżej. Na ChromeStatus.com znajdziesz listy planowanych wycofania, obecnie wycofanych funkcji i wcześniejszych usunięć.
W tej wersji Chrome wycofujemy 2 funkcje.
Wycofywanie zdarzenia wyładowania
Rozpocznie się proces wycofywania modułu obsługi zdarzeń unload
w Chrome 117. Jeśli używasz ich w swojej witrynie, zapoznaj się z specjalnym postem o wycofaniu unload
, w którym znajdziesz więcej informacji.
Wycofanie podpisów serwera TLS SHA-1
Chrome wycofuje obsługę algorytmów podpisu używających SHA-1 do podpisów serwera podczas uzgadniania połączenia TLS. Nie ma to wpływu na obsługę SHA-1 w certyfikatach serwera, które zostały już usunięte, ani w certyfikatach klienta, które nadal są obsługiwane.
W tej wersji Chrome usunęliśmy cztery funkcje.
[WebRTC] Wycofanie starszej wersji getStats() opartej na wywołaniach zwrotnych
Protokół RTCPeerConnection ma 2 wersje getStats()
: zgodną ze specyfikacją, która zwraca raport przez rozwiązanie obietnicy, i drugą, która niestandardowo zwraca zupełnie inny raport przez wywołanie zwrotne jako pierwszy argument. Strategia oparta na wywołaniu zwrotnym została usunięta.
Więcej informacji o migracji i o tym, co zrobić, jeśli potrzebujesz więcej czasu, znajdziesz w przewodniku po migracji starszego typu getStats().
Usunięcie wartości -1 dla WebRTC getStats datachannelIdentifier
Interfejs API getStats WebRTC ujawnia właściwość dataChannelIdentifier. Nie będzie już podawać wartości „-1”. w przypadkach, gdy wyszukiwane są statystyki przed nawiązaniem połączenia z kanałem danych. Członek słownika zostanie pominięty.
Usunięto koder implementacji getStats i implementację dekodera w WebRTC „nieznane”
Interfejs API getStats WebRTC ujawnia nazwy implementacji kodera i dekodera dla wideo wychodzącego i przychodzącego. Nie będzie już podawać wartości „unknown” (nieznane) w przypadkach, gdy dane statystyczne są wysyłane przed zakodowaniem lub zdekodowaniem klatki wideo. Członek słownika zostanie pominięty.
Właściwość CSS -webkit-highlight
Usuń właściwość CSS -webkit-highlight
, która ma wyróżniać tekst, ale nigdy nie jest ustandaryzowana. Nie ma to żadnego widocznego wpływu na chrom (jest on analizowany, ale nigdy nie jest używany podczas renderowania treści). Ta właściwość została usunięta z WebKit w 2014 roku, oznaczona jako wycofana w MDN i niedawno zastąpiona specyfikacją Pseudopodświetlenia CSS.