Chrome 122 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, klikając linki lub listę na ChromeStatus.com. Od 24 stycznia 2024 r. Chrome 122 jest 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 3 nowe funkcje CSS.

Zapytania @container CSS z nieobsługiwanymi funkcjami nigdy nie pasują do siebie

Selektory @container zawierające nieobsługiwane zapytania nigdy nie wybierają żadnych kontenerów, co oznacza, że nigdy nie będą one pasować.

Oznacza to, że to zapytanie nigdy nie będzie pasować do żadnego kontenera, nawet jeśli istnieje też kontener rozmiaru, który pasuje do zapytania dotyczącego szerokości. Na przykład to zapytanie nigdy nie zostanie dopasowane z powodu nieznanej funkcji:

@container (width > 0px) or (unknown) {}

To ostatnia zmiana w specyfikacji, która ma na celu uniknięcie problemów ze zgodnością z wyprzedzeniem.

Pseudoelement CSS ::backdrop dziedziczący element źródłowy

Pseudoelement ::backdrop używany do dziedziczenia wartości z wartości początkowych. Oznacza to, że ::backdrop nie może używać wartości właściwości niestandardowych, chyba że zostaną one określone bezpośrednio w regule ::backdrop. Specyfikacja się zmieniła i ::backdrop dziedziczy dane z elementu źródłowego. W rezultacie implementacja Chrome będzie zgodna z nową specyfikacją.

Warunki CSS supports() dla @import

@import akceptuje teraz warunek supports(). Jeśli warunek supports() nie zostanie dopasowany, import nie zostanie pobrany.

@import "scroll-driven-animations.css" supports(animation-timeline: auto);

Zapytania dotyczące cech, które należy umieścić w polu supports(), są takie same jak zapytania dotyczące funkcji @supports

Internetowe interfejsy API

Async Clipboard API: odczyt niesprawdzonego kodu HTML

Dodaje opcję unsanitized w metodzie read(), aby uzyskać nieprzejrzysty format HTML. Jeśli witryny nie zawierają tej właściwości, odczyt ze schowka zostanie oczyszczony.

Domyślnie podczas odczytywania typów MIME text/html za pomocą asynchronicznego interfejsu API jest wywoływane narzędzie Sanitizer w celu usunięcia zawartości ze znaczników HTML ze względu na kwestie bezpieczeństwa, a style są wbudowane w kod HTML. Prowadzi to do znacznego ładunku kodu HTML i utraty wierności treści HTML podczas jej odczytywania przez programistów internetowych lub aplikacje mobilne.

Nie usuwaj obiektów rodzaju plików w metodzie dataTransfer.clearData()

Aktualizuje Chrome, aby pasował do spec, która określa, że clearData() nie ma wpływu na obiekty File. Usuwa tylko obiekty rodzaju text.

FedCM: odłączenie

Umożliwia odłączanie konta logowania sfederowanego przy użyciu witryny uzależnionej. Dzięki odłączeniu interfejsu API strona uzależniona może powiadomić dostawcę tożsamości, że wcześniej używane konto zostało rozłączone. Z tego powodu ponowne użycie tego konta ze sfederowanym logowaniem będzie wymagało traktowania go jako nowego konta.

Interoperacyjne anulowanie zdarzenia kursora myszy w elemencie iframe

Cele zdarzeń myszy powinny być niezależne od anulowania zdarzenia kursora myszy po przeciągnięciu wskaźnika poza element iframe. Po przeciągnięciu myszą poza element iframe wszystkie przeglądarki (w tym Chrome) wysyłają do tego elementu zdarzenia mousemove i mouseup. Jeśli jednak zdarzenie ruchu kursora myszy zostanie anulowane, Chrome zachowa stary wyjątek WebKit, zgodnie z którym zdarzenia ruchu kursora myszy i w górę myszy są wysyłane do ramki zewnętrznej. W zeszłym roku WebKit usunął ten wyjątek, a w ostatnich latach Mozilla nigdy nie pokazuje, jak działa to rozwiązanie. W tym szczególnym przypadku funkcja ta usunie wyjątek dotyczący tylko Chrome.

Pomocnicy iteratora

Funkcje pomocnicze iteratorów to nowe metody w prototypie iteratora, które umożliwiają ogólne wykorzystywanie i używanie iteratorów.

MessagePort.onclose

Zmiana w interfejsie Channel Messaging API, która informuje jeden z portów MessagePort, że drugi port został oddzielony. Oznacza to, że wywoływany jest close(), dokument zostaje zniszczony lub port jest zbierany śmieci.

Rozszerzenia RTCRtpSender setParameters() do żądania wygenerowania ramki klucza

Dodaje do wywołania RTCRtpSender.setParameters WebRTC opcjonalny drugi parametr, którego można użyć, aby poprosić powiązany koder o wygenerowanie klatki kluczowej.

Metody ustawiania

Metody ustawiania to nowe metody, takie jak union i przecięcie, dodane do wbudowanej klasy Set JavaScriptu.

Interfejs API zasobników pamięci masowej

Zasobniki na dane umożliwiają witrynom porządkowanie danych na urządzeniu w osobne „zasobniki”, co pozwala klientom użytkownika usuwać zgrupowane dane niezależnie od tych, które znajdują się w innych zasobnikach, i umożliwia witrynom ergonomiczne zarządzanie danymi powiązanymi semantycznie. Każdy zasobnik na dane może zawierać dane powiązane z uznawanymi interfejsami API pamięci masowej, takimi jak IndexedDB i CacheStorage.

URLPattern: hasRegExpGroups

Umożliwia sprawdzenie, czy URLPattern używa co najmniej 1 grupy wyrażeń regularnych ECMAScript, więc może nie być odpowiedni do użycia w przypadkach, gdy mechanizm ECMAScript jest niedostępny (np. niektóre planowane interfejsy API, które mają zostać wkrótce zaplanowane). Zasadniczo odzwierciedla to coś, co deweloperzy mogą znać po zbadaniu wzorca, ale dostęp do implementacji takiej weryfikacji w UA znacznie ułatwia sprawę.

Rysunek WebGL w pamięci BufferStorage

WebGL umożliwia renderowanie w teksturach i buforach renderowania o wielu różnych formatach pikseli. Może to być na przykład obraz 8-bitowy, zmiennoprzecinkowy lub sRGB.

Bufor rysowania WebGL (bufor przekazywany do kompozytora) jest domyślnie 8-bitowy. Funkcja rysunekBufferStorage pozwala WebGL konfigurować format pikselowy tego bufora rysunków, dzięki czemu programiści mogą wykonać poniższe czynności.

  • Unikaj dodatkowej kopii przy konwertowaniu renderowania na domyślny format pikseli bufora rysowania.
  • Rysuj treści z dokładnością większą niż 8 bitów.

Ta ostatnia funkcja odblokowuje kilka dodatkowych aplikacji:

  • Bardzo szeroka gama kolorów bez utraty precyzji.
  • Zastosowania medyczne, które wymagają precyzji większej niż 8 bitów.
  • aplikacje o dużym zakresie dynamicznym (jeśli są dostępne).

Herbata klucza X25519Kyber768 dla protokołu TLS

Chroń bieżący ruch TLS w Chrome przed przyszłą kryptoanalizą kwantową, wdrażając algorytm kwantowego uzgadniania kluczy Kyber768. Jest to hybrydowa umowa kluczy X25519 i Kyber768 oparta na standardzie IETF. Ta specyfikacja i wdrożenie wykraczają poza zakres W3C. Ta umowa klucza zostanie uruchomiona jako szyfr TLS i powinna być przejrzysta dla użytkowników.

Testowanie origin w toku

W Chrome 122 możesz włączyć te nowe testy origin.

Rozszerzenia zakresu aplikacji internetowej

Zakres aplikacji internetowej (zdefiniowany w polu zakresu) można zdefiniować tylko za pomocą ścieżki z 1 źródła. Służy on do określania, czy bieżący dokument okna aplikacji jest częścią aplikacji, a także jakie adresy URL są dozwolone w innych elementach pliku manifestu.

Za pomocą metody scope_extensions deweloperzy mogą rozszerzyć działanie swojej aplikacji, aby uwzględnić inne źródła, jeśli istnieje zgodność między ich głównym źródłem a powiązanymi źródłami.

Zarejestruj się, aby wziąć udział w testowaniu origin rozszerzeń zakresu aplikacji internetowych

Przechwycona kontrola powierzchni

Interfejs Captured Surface Control API umożliwia aplikacjom internetowym wywoływanie zdarzeń koła na przechwyconej karcie lub oknie oraz odczytywanie lub zapisywanie poziomu powiększenia przechwyconej karty.

Zarejestruj się w programie testowania origin Captured Surface Control