Chrome 117 w wersji beta

Obsługa podrzędnej siatki CSS oraz animacji wejścia i wyjścia w przypadku CSS, grupowania tablic, pomocników iteratorów i nie tylko.

O ile nie wskazano inaczej, opisane zmiany dotyczą najnowszej wersji beta Chrome na Androida, ChromeOS, Linux, macOS i Windows. Dowiedz się więcej o funkcjach wymienionych tutaj, korzystając z podanych linków lub z listy na ChromeStatus.com. Od 16 sierpnia 2023 r. Chrome 117 jest w wersji beta. Najnowsze aktualizacje 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 to część prac nad włączeniem przejść w właściwościach dyskretnych, które umożliwiają korzystanie z animacji wejścia i wyjścia.

Reguła @starting-style

Ta reguła pozwala autorom rozpoczynać przejścia CSS już przy pierwszej aktualizacji stylu.

Przejścia CSS nie wywołują przejścia ze stylów początkowych podczas pierwszej aktualizacji stylu elementu lub przy zmianie typu wyświetlania z none na inny typ. Pozwoli to uniknąć nieoczekiwanych przejść między stylami początkowymi. 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 zmianę 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 na potrzeby przejścia wyjściowego. Jest dodawana właściwość Overlay, która wskazuje, czy element znajduje się w górnej warstwie, czy nie. Może przyjmować 2 wartości: none i auto.

Właściwość zachowania przejścia CSS

Właściwość CSS transition-behavior to obszerna właściwość transition, która umożliwia używanie właściwości dyskretnych w przejściach. Jeśli określisz wartość allow-discrete dotyczącą zachowania przejścia, właściwości dyskretne będą teraz uruchamiać animacje i przewracać z wartości początkowej do wartości końcowej wynoszącej 50%. W przypadku przejść, w których wartości display: none i content-visibility: hidden są jedną z wartości początkowych lub końcowych, przez cały czas trwania przejścia będzie używana wartość widoczna.

Wartość podrzędnej siatki CSS

Wartość subgrid dla grid-template-columns i grid-template-rows została zaimplementowana w Chrome. Dzięki tej wartości zagnieżdżona siatka może korzystać ze ścieżek zdefiniowanych w jej elemencie nadrzędnym, zamiast tworzyć nową definicję ścieżki dla wierszy, kolumn lub obu tych elementów.

CSS text-wrap: ładne

Wartość pretty właściwości CSS text-wrap optymalizuje układ, a nie szybkość. Jest przeznaczony do tekstu głównego, dlatego składa się z wielu wierszy. Używając elementu pretty, deweloper wyraźnie włącza metodę układu, która może być wolniejsza niż wrap, która zapewnia optymalizację pod kątem wydajności. Obecna implementacja w Chrome optymalizuje wyświetlanie pod kątem sierocińców, aby zapobiec wyświetlaniu pojedynczego słowa u dołu akapitu tekstu.

W Chrome 117 wypróbuj prezentację funkcji zawijania tekstu: „dos” i zobacz, jak ta wartość zmienia prezentację tekstu.

zawiera-intrinsic-size: automatyczne brak obsługi

Ta funkcja rozszerza istniejącą składnię contain-intrinsic-size o auto && none.

Internetowe interfejsy API

Grupowanie według tablicy

Grupowanie tablic to niezwykle popularna operacja, na przykład klauzula GROUP BY SQL i programowanie MapReduce (które lepiej wyobraża sobie map-group-reduce). Możliwość łączenia danych w grupy pozwala deweloperom obliczać zbiory danych o wyższej kolejności, takie jak średni wiek kohorty lub dzienne wartości LCP dla strony internetowej. Ta funkcja umożliwia to przez dodanie metod statycznych Object.groupBy i Map.groupBy. Metoda Object zwraca zwykły obiekt, gdzie grupy są kluczami właściwości. Metoda Map zwraca wartość Mapę, w której klucze mogą być dowolnymi wartościami.

Wyczyść wskazówki klienta za pomocą nagłówka Clear-Site-Data

Strony będą teraz mogły czyścić pamięć podręczną wskazówek klienta za pomocą polecenia Clear-Site-Data: "clientHints". Wskazówki klienta będą teraz usuwane także wtedy, gdy ten sam nagłówek jest kierowany na „pliki cookie”, „pamięć podręczna” lub „*”. Dzieje się tak, ponieważ jeśli użytkownik usunie pliki cookie w interfejsie użytkownika, też zostaną wyczyszczone wskazówki dotyczące klienta, pamięć podręczna wskazówek klienta jest pamięcią podręczną i zachowuje spójność z celami z symbolami wieloznacznymi.

Składnia symbolu wieloznacznego nagłówka Clear-Site-Data

Witryny mogą teraz usuwać wszystkie cele przechowywania danych („pliki cookie”, „pamięć podręczna” i „pamięć”), wysyłając żądanie Clear-Site-Data: "*". Pamiętaj, że Chrome obecnie nie obsługuje usuwania elementów „executionContexts”, ale jeśli dodamy je w przyszłości, kierowanie na nagłówek „*” również je usunie.

customElements.getName

Metoda customElements.getName() zwraca nazwę tagu określonej definicji elementu niestandardowego.

Pomocnicy iteratora

Asystentki do wprowadzania danych to nowe metody tworzenia prototypów iteratorów, które umożliwiają ogólne wykorzystywanie i używanie iteratorów.

Dopilnuj, aby aplikacja CaptureController generowała dane z interfejsu EventTarget.

Interfejs CaptureController umożliwia sterowanie sesją zrzutu ekranu. W przyszłości zdarzenia związane z sesją przechwytywania będą wysyłane na ten kontroler. Aby można było zarządzać detektorami takich zdarzeń, metody EventTarget zostały udostępnione w CaptureController.

Typ dostawy zasobu PerformanceResource czasu

Właściwość deliveryType obiektu PerformanceResourceTiming zwraca informacje o sposobie dostarczenia zasobu. Mogą to być na przykład zasoby dostarczone z pamięci podręcznej (obecnie udostępniane przez transferSize) oraz elementy nawigacyjne pobrane z wyprzedzeniem przez poprzednią stronę.

Sprawdzanie przepełnienia portów w narzędziach ustawiających adresy URL

Wartość portu zostanie sprawdzona podczas ustawiania url.port. Wszystkie wartości przekraczające 16-bitowy limit liczbowy przestaną być prawidłowe. Na przykład po zmianie ten skrypt zachowuje się inaczej:

u = new URL("http://test.com"); 
u.port = 65536; 
console.log(u.port); 

Przed zmianą pojawi się wartość 65536. Po zmianie wynik będzie miał wartość 80.

Private State Token API

To nowy interfejs API służący do rozpowszechniania ograniczonych sygnałów prywatnych w witrynach bez używania trwałych identyfikatorów w różnych witrynach, takich jak pliki cookie innych firm. Metody przeciwdziałania oszustwom, które opierają się na plikach cookie innych firm, nie będą działać po ich wycofaniu. Interfejs Private State Token API nie generuje ani nie definiuje sygnałów mających na celu zapobieganie oszustwom: decyzja o tym zależy od odpowiednich podmiotów własnych i wydawców tokenów. Interfejs API zapewnia natomiast ochronę prywatności, egzekwując limity informacji przekazywanych w tych sygnałach. Interfejs API jest oparty na wariancie protokołu Privacy Pass, który jest obecnie ustandaryzowany przez IETF. Można je uznać za ujawnianą w internecie formę protokołu ochrony prywatności. Specyfikacja interfejsu API będzie aktualizowana pod kątem nowych wersji i typów tokenów oraz będzie aktualizowana zgodnie ze specyfikacjami grupy roboczej Privacy Pass. Spodziewane zmiany dotyczą podstawowych protokołów kryptograficznych i kodu wystawiania tokenów. Nie przewidujemy zmian w interfejsach API pobierania dotyczących wystawiania i wykorzystywania tokenów. Interfejs Private State Token API nosił wcześniej nazwę Trust Token API. Nazwa została zmieniona, aby dokładniej odzwierciedlić semantykę i uwydatnić użytkownikom korzyści związane z ochroną prywatności.

Adres URL zgodny ze standardem IPv4 osadzony w parserze hosta IPv6

Sposób analizy parsera hosta IPv4 osadzonego IPv6 zostanie zaktualizowany tak, aby był zgodny ze standardem internetowego adresu URL. Wprowadzone ograniczenia dotyczące adresu IPv6 to:

  • Umieszczony adres IPv4 zawsze składa się z 4 części.
  • Adresy zawierające mniej niż 4 części, takie jak http://[::1.2], nie będą już prawidłowe. Ta funkcja jest częścią interfejsu URL w 2023 r.

Adres URL: zezwól na „%00” jako prawidłową ścieżkę adresu URL

Chrome obecnie uznaje adres URL za nieprawidłowy, jeśli część jego ścieżki zawiera ciąg „%00” (lub wartość null), co jest niezgodne ze standardem URL-i. Na przykład poniższy test w Chrome kończy się niepowodzeniem, ponieważ element new URL(...) zgłasza wyjątek Nieprawidłowy adres URL.

assertEquals(new URL("http://example.com/%00").pathname, "/%00"); 

Zgodnie ze standardem URL żadne znaki ani sekwencje bajtów w ścieżce adresu URL nie powinny sprawiać, że adres URL jest nieprawidłowy. Ta zmiana aktualizuje Chrome zgodnie z tym standardem.

Kontrola rozszerzenia nagłówka WebRTC RTP

Rozszerz interfejs API RTCRtpTransceiver WebRTC, aby zapewnić kontrolę nad negocjowanymi rozszerzeniami nagłówka RTP.

Kwantyzator na klatkę w VideoEncoder

Dodaje parametr „kwantyzator” VideoEncoderBitrateMode na potrzeby funkcji VideoEncoder. Dzięki temu możesz określić parametr kwantyzatora dla każdej klatki w przypadku kodeków wideo AV1, VP9 i AVC.

Opcja WebUSB exclusionFilters w: requestDevice()

Opcja exclusionFilters w narzędziu navigator.usb.requestDevice() umożliwia programistom stron internetowych wykluczanie niektórych urządzeń z selektora przeglądarki. Może służyć do wykluczania urządzeń, które pasują do szerszego filtra, ale nie są obsługiwane.

Testowanie origin w toku

W Chrome 117 możesz włączyć te nowe wersje próbne.

Transport słownika kompresji za pomocą Shared Brotli

Ta funkcja dodaje obsługę używania wyznaczonych wcześniejszych odpowiedzi jako zewnętrznego słownika dla odpowiedzi HTTP kompresowanego przez Brotli.

Zarejestruj się, aby wziąć udział w testowaniu originDictionaryTransport.

Próba wycofania WebSQL

Usuwam bazę danych WebSQL z Chrome. Zachęcamy do przejścia na SQLite przez Wasm w witrynach korzystających z tej funkcji.

Ten okres próbny wycofania daje deweloperom, którzy potrzebują więcej czasu na migrację, możliwość korzystania z WebSQL do wersji Chrome 123 (marzec 2024 r.). Zarejestruj się, aby wziąć udział w próbie wycofania bazy danych WebSQL.

Aplikacje internetowe z kartami

Zezwalaj na używanie w oknach aplikacji internetowych paska kart, aby na przykład edytować wiele dokumentów w tej samej aplikacji. Spowoduje to dodanie nowego trybu wyświetlania z kartami oraz nowego pola manifestu, które umożliwia dostosowywanie tego paska.

Zarejestruj się, aby wziąć udział w testowaniu origin aplikacji internetowych z kartami

Elementy wycofane i usunięte

W tej wersji Chrome wprowadziliśmy wymienione poniżej funkcje wycofywania i usuwania treści. Na stronie ChromeStatus.com znajdziesz listę planowanych wycofań, obecnie wycofywanych rozwiązań i wcześniejszych usunięć.

W tej wersji Chrome wycofujemy 2 funkcje.

Wycofaj zdarzenie unload

W Chrome 117 rozpocznie się proces wycofywania modułu obsługi zdarzeń unload. Jeśli Twoja witryna ich używa, zdecydowanie zalecamy zapoznanie się ze specjalnym postem na temat wycofywania unload.

Wycofanie podpisów serwera TLS SHA-1

Chrome wycofuje obsługę algorytmów podpisu przy użyciu 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 są nadal obsługiwane.

W tej wersji Chrome usunięto cztery funkcje.

[WebRTC] Cofnij wysłanie starszej funkcji getStats() z wywołaniem zwrotnym

RTCPeerConnection ma 2 wersje obiektu getStats(): jedną zgodną ze specyfikacją zwracającą raport przez rozwiązanie obietnicy, a drugą, która zwraca zupełnie inny raport przez wywołanie zwrotne jako pierwszy argument. Usługa 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 starszej wersji getStats().

Usunięto wartość -1 dla WebRTC getStats datachannelIdentifier

Interfejs API getStats WebRTC ujawnia właściwość dataChannelIdentifier. Nie będzie już podawać wartości „-1” w przypadku zapytań o statystyki przed nawiązaniem połączenia z kanałem danych. Zamiast tego użytkownik słownika zostanie pominięty.

Usunięcie nieznanej implementacji kodera getStats w WebRTC

Interfejs API getStats w WebRTC ujawnia nazwy implementacji kodera i dekodera w przypadku wideo wychodzącego i przychodzącego. Nie będzie już podawać wartości „nieznane” w przypadkach, gdy statystyki są wysyłane do statystyk przed zakodowaniem lub zdekodowaniem klatki wideo. Zamiast tego użytkownik 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 nie jest ustandaryzowana. Nie ma widocznego efektu w Chromium (jest analizowany, ale nigdy nie jest używany w renderowaniu treści). Właściwość ta została usunięta z WebKit w 2014 r., oznaczona jako wycofana w MDN i niedawno zastąpiona specyfikacją pseudopodświetlenia CSS.