Chrome 123 w wersji beta

O ile nie wskazano inaczej, poniższe zmiany dotyczą najnowszych wersji beta Chrome w wersji beta na Androida, ChromeOS, Linuxa, macOS i Windowsa. Dowiedz się więcej o funkcjach wymienionych tutaj, korzystając z podanych linków lub z listy na stronie ChromeStatus.com. Od 21 lutego 2024 roku wersja beta Chrome 123 jest dostępna w wersji beta. Najnowsze aktualizacje możesz pobrać z Google.com na komputer lub ze Sklepu Google Play na Androida.

CSS

W tej wersji dodaliśmy 5 nowych funkcji CSS.

Funkcja kolorów CSS light-dark()

Funkcja light-dark() w CSS pozwala deweloperom łatwiej dostosowywać schemat kolorów do preferencji użytkownika dotyczących trybu jasnego i ciemnego.

Użyj light-dark(), aby określić 2 różne wartości koloru w ramach jednej właściwości CSS. Przeglądarka (lub urządzenie) automatycznie wybierze odpowiedni kolor na podstawie obliczonej wartości color-scheme elementu. Na przykład w tym kodzie CSS:

  • Jeśli użytkownik wybrał jasny motyw, element .target będzie miał limonkowe tło.
  • Jeśli użytkownik wybrał ciemny motyw, element .target będzie miał zielone tło.
html {
  color-scheme: light dark;
}
.target {
    background-color: light-dark(lime, green);
}

Tryb wyświetlania obrazu w obrazie CSS

Dodaje obsługę funkcji mediów display-mode CSS w przypadku wartości picture-in-picture. Dzięki temu deweloperzy stron internetowych mogą pisać określone reguły CSS, które są stosowane tylko wtedy, gdy aplikacja internetowa jest widoczna (jako jej część) w trybie obrazu w obrazie.

Więcej informacji o tej funkcji multimediów znajdziesz w dokumentacji funkcji obraz w obrazie.

właściwość CSS wyrównania zawartości dla bloków

Właściwość CSS align-content jest teraz obsługiwana w kontenerach blokowych i komórkach tabeli. Wcześniej ta właściwość była obsługiwana tylko w przypadku elementów siatki i elastycznych. Na przykład pola display: block, display: list-item i display: table-cell można teraz wyrównać za pomocą parametru align-content.

Więcej informacji znajdziesz w artykule Obsługa align-content w układach bloków i tabel.

Właściwość CSS field-sizing

Za pomocą właściwości field-sizing deweloperzy mogą wyłączyć stałe domyślne rozmiary elementów sterujących formularza i dostosować ich rozmiar do treści. Pozwala to tworzyć automatycznie rosnące pola tekstowe.

Właściwość CSS text-spacing-trim

Ta właściwość stosuje kerning do znaków interpunkcyjnych w języku chińskim, japońskim i koreańskim (CJK), aby uzyskać przyjemną dla oka typografię zdefiniowaną przez JLREQ (wymagania dotyczące japońskiego układu tekstu) i CLREQ (wymagania dotyczące układu tekstu w języku chińskim).

Wiele znaków interpunkcyjnych CJK zawiera wewnętrzne odstępy glifami. Na przykład kropka CJK i nawias zamykający CJK mają zazwyczaj wewnętrzne odstępy między glifami w prawej połowie odstępów glifów, aby zapewnić im stałą przewagę nad innymi postaciami ideograficznymi. Ale gdy pojawiają się pod rząd, odstępy między glifami stają się zbyt duże. Ta funkcja koryguje takie nadmierne odstępy.

Właściwość text-spacing-trim może mieć jedną z tych 4 wartości: normal, trim-start, space-all i space-first. Więcej informacji znajdziesz w artykule Wprowadzenie 4 nowych funkcji międzynarodowych w CSS.

Internetowe interfejsy API

Zezwalaj na tworzenie danych logowania WebAuthn w elementach iframe z innych domen

Ta funkcja pozwala programistom stron internetowych na tworzenie danych logowania WebAuthn (czyli „kluczy publicznych”) w elementach iframe z innych domen. W przypadku tej nowej umiejętności wymagane są 2 warunki:

  • Element iframe ma zasadę uprawnień publickey-credentials-create-feature.
  • Element iframe ma chwilową aktywację użytkownika.

Dzięki temu deweloperzy będą mogli tworzyć klucze dostępu w osadzonych scenariuszach, na przykład po przejściu na proces przechodzenia na tożsamość, w ramach którego strona uzależniona udostępnia sfederowaną tożsamość.

Pakiet funkcji raportowania atrybucji

W interfejsie Attribution Reporting API w wersji 123 dodajemy możliwość dostosowywania danych dotyczących reguł i agregacji filtrów wartości do interfejsu Attribution Reporting API. Wykorzystuje on:

  • Dodatkowa możliwość konfigurowania interfejsu API w przypadku raportowania na poziomie zdarzenia dzięki obsłudze dostosowania zbioru danych aktywujących moc zbioru i wartości.
  • Dodatkową możliwość konfigurowania raportów podsumowujących przez interfejs API dzięki obsłudze filtrów w wartościach zbiorczych.

Pomiary atrybucji w różnych aplikacjach i w internecie

Rozszerza interfejs Attribution Reporting API, aby umożliwić przypisywanie konwersji zachodzących w internecie do zdarzeń spoza przeglądarki, w ramach innych aplikacji.

Oferowana tu oferta korzysta z obsługi atrybucji na poziomie systemu operacyjnego. W szczególności daje deweloperowi możliwość zezwolenia na łączenie zdarzeń w przeglądarce mobilnej ze zdarzeniami z Piaskownicy prywatności na Androida. Można też jednak wdrożyć obsługę innych platform.

blocking=render w skryptach modułu wbudowanego

To niewielka zmiana, która usuwa sztuczne ograniczenie z <script blocking="render">. Przed tą zmianą <script blocking="render"type="module"> wymaga atrybutu src, nawet jeśli src jest to identyfikator URI danych. Jest to niepotrzebne ograniczenie, ponieważ skrypty modułu wbudowanego, które importują inne skrypty, nadal powinny mieć możliwość renderowania blokady.

Powodem jest to, że przejścia między widokami danych często opierają się na dostosowaniach skryptów blokujących renderowanie, więc ułatwienie tworzenia skryptów blokujących renderowanie będzie obsługiwać tę funkcję.

Obraz w obrazie dokumentu: zezwalaj interfejsowi API focus() na wybieranie elementu otwierającego

Możesz teraz używać funkcji opener.focus() z poziomu okna obrazu w obrazie dokumentu, aby przenieść zaznaczenie na poziomie systemu na kartę, do której należy okno obrazu w obrazie dokumentu.

Dzięki temu w razie potrzeby deweloperzy mogą przywrócić oryginalną kartę na pierwszy plan. Na przykład gdy użytkownik potrzebuje dostępu do interfejsu, który nie mieści się w mniejszym oknie obrazu w obrazie.

Składnia importowania atrybutów with

Atrybuty importowania to funkcja JavaScript umożliwiająca dodawanie adnotacji do deklaracji importu, np. import xxx from "mod" with { type: "json" }. Zespół Chrome po raz pierwszy wysłał poprzednią wersję oferty pakietowej (w Chrome 91), używając słowa kluczowego assert. Ta wersja została potem zaktualizowana do with ze względu na konieczność wprowadzenia pewnych zmian podczas integracji z kodem HTML w przypadku modułów JSON i CSS.

jitterBufferTarget

Atrybut jitterBufferTarget pozwala aplikacjom określić docelowy czas trwania (w milisekundach) czasu trwania multimediów, jaki ma być przechowywany przez bufor zakłóceń RTCRtpReceiver. Ma to wpływ na ilość buforowania wykonywanego przez klienta użytkownika, co z kolei wpływa na ponowne przesyłanie i odzyskiwanie pakietów. Zmiana wartości docelowej pozwala aplikacjom kontrolować kompromis między opóźnieniem odtwarzania a ryzykiem wyczerpania klatek audio lub wideo w wyniku zakłóceń w sieci.

Czas trwania długiej animacji

Interfejs Long Animation Frames API jest rozszerzeniem Long Tasks API. Mierzy ono zadanie wraz z kolejną aktualizacją renderowania, dodając takie informacje jak długotrwałe skrypty, czas renderowania oraz czas w przypadku wymuszonego układu i stylu, co tzw. miotanie układu.

Deweloperzy mogą użyć tych danych do wykrywania „powolnego działania” mierzonego za pomocą parametru INP, który znajduje przyczyny zatoru w wątku głównym, które często jest przyczyną nieprawidłowego wartości INP.

Interfejs nawigacji aktywacji dodaje element navigation.activation. Zawiera on informacje o tym, kiedy bieżący dokument został aktywowany (np. kiedy został zainicjowany lub przywrócony z pamięci podręcznej stanu strony internetowej).

Oznacza to, że deweloperzy mogą oferować dostosowane strony na podstawie miejsca, z którego przeszedł użytkownik. Możesz np. uruchomić inną animację, jeśli pochodzi ze strony głównej.

wydarzenie pagereveal

Zdarzenie pagereveal jest wywoływane w obiekcie okna dokumentu przy pierwszej możliwości renderowania po tym, jak dokument jest: początkowy wczytywany, przywrócony z pamięci podręcznej stanu strony internetowej lub aktywowany w wyniku renderowania wstępnego.

Autor strony może użyć jej do skonfigurowania sposobu wyświetlania strony, na przykład przejścia z poprzedniego stanu.

PointerEvent.deviceId w przypadku pisma odręcznego wielorysunkowego

Urządzenia z zaawansowanymi funkcjami wprowadzania danych piórem stają się coraz bardziej powszechne, dlatego platforma internetowa stale się rozwija, aby w pełni obsługiwać te zaawansowane funkcje. Dzięki temu użytkownicy i deweloperzy mogą korzystać z zaawansowanych funkcji. Jednym z rozwiązań jest możliwość digitalizacji urządzenia w celu rozpoznawania więcej niż jednego pióra w tym samym czasie. Ta funkcja jest rozszerzeniem interfejsu PointerEvent i zawiera nowy atrybut deviceId, który reprezentuje stały i izolowany od dokumentów unikalny identyfikator. Programista może używać go do identyfikowania pojedynczych piór, które korzystają ze strony.

Kontrole dostępu do sieci prywatnej na potrzeby żądań nawigacyjnych: tryb „tylko ostrzeżenie”

Zanim witryna A przejdzie do innej witryny B w sieci prywatnej użytkownika, funkcja wykona te działania:

  1. Sprawdza, czy żądanie zostało zainicjowane z bezpiecznego kontekstu.
  2. Wysyła żądanie procesu wstępnego i sprawdza, czy B odpowiada z nagłówkiem zezwalającym na dostęp do sieci prywatnej.

Istnieją już funkcje dla zasobów podrzędnych i instancji roboczych, ale ta funkcja została dodana konkretnie do żądań nawigacji.

Te kontrole mają na celu ochronę sieci prywatnej użytkownika. Ponieważ jest to tryb „tylko ostrzeżenie”, żądania nie będą odrzucane, jeśli któryś z testów się nie powiedzie. Zamiast tego w Narzędziach deweloperskich pojawi się ostrzeżenie, które pomoże deweloperom przygotować się na nadchodzące zmiany.

Wskazówka dla klienta Sec-CH-UA-Form-Factor

Wskazówka ta wskazuje „format” klienta użytkownika lub urządzenia, co umożliwia witrynie dostosowanie reakcji.

Interfejs API routingu statycznego Service Worker

Ten interfejs API umożliwia programistom konfigurowanie routingu i umożliwia odciążenie prostych czynności wykonywanych przez mechanizmy Service Worker. Jeśli warunek zostanie spełniony, nawigacja odbywa się bez uruchamiania mechanizmów Service Worker ani wykonywania JavaScriptu, co pozwala stronom internetowym uniknąć kar dotyczących wydajności spowodowanych przechwyceniem przez mechanizmy Service Worker. Więcej informacji znajdziesz w poprzednim poście na blogu o tym interfejsie API.

Aktualizacja pamięci współdzielonej

Ta aktualizacja obsługuje uruchamianie workletów z innych domen bez konieczności tworzenia elementu iframe.

kodowanie treści zstd

Zstandard lub zstd to mechanizm kompresji danych opisany w dokumencie RFC8878. Jest to algorytm szybkiej bezstratnej kompresji, który kieruje reklamy na scenariusze kompresji w czasie rzeczywistym na poziomie zlib i mają wyższe współczynniki kompresji. Token zstd został dodany jako zarejestrowany przez IANA token Content-Encoding.

Dodanie obsługi kodu zstd w ramach kodowania treści przyspieszy ładowanie stron i zmniejszy wykorzystanie przepustowości, a także skróci czas pracy, wykorzystanie procesora i obciążenie serwerów, co obniży koszty serwerów.

Nowe wersje próbne origin

W Chrome 123 możesz włączyć te nowe wersje próbne źródła.

Integracja obietnicy JavaScript WebAssembly

Aby obsługiwać elastyczne aplikacje napisane w WebAssembly, musisz udostępnić funkcje, które umożliwiają zawieszanie i wznawianie programów WebAssembly.

Podstawowym początkowym przypadkiem użycia obietnej integracji jest umożliwienie programom WebAssembly, których źródło bazuje na synchronicznych interfejsach API, na używanie asynchronicznych interfejsów API, które są coraz częstsze na platformie sieciowej.

Zarejestruj się, aby wziąć udział w testowaniu origin integracji w ramach obiecywania.

Usunięcia

Chrome 123 usuwa tę funkcję.

Alias window-placement zasad uprawnień i uprawnień window-management

W Chrome 111 dodano window-management jako alias dla uprawnień window-placement i ciągów zasad dotyczących uprawnień. Było to częścią szeroko zakrojonych działań związanych ze zmianą nazwy ciągów znaków, które polegało na wycofaniu i usunięciu parametru window-placement. Zmiana terminologii poprawia trwałość deskryptora w miarę ewoluowania interfejsu Window Management API.

Ostrzeżenia o wycofaniu dotyczące aliasu window-placement zaczęły pojawiać się w Chrome 113 i teraz zostaną usunięte.