O ile nie zaznaczono inaczej, poniższe zmiany dotyczą najnowszej wersji Chrome w kanale beta na Androida, ChromeOS, Linuxa, macOS i Windowsa. Więcej informacji o funkcjach wymienionych w tym artykule znajdziesz, klikając odpowiednie linki lub przeglądając listę na stronie ChromeStatus.com. Od 21 sierpnia 2024 r. Chrome 129 jest w wersji beta. Najnowszą wersję możesz pobrać na Google.com na komputerze lub w Sklepie Google Play na urządzeniu z Androidem.
CSS
Ta wersja zawiera 2 nowe funkcje CSS i 3 funkcje zaktualizowane.
Funkcja CSS interpolate-size property
i calc-size()
Właściwość CSS interpolate-size
umożliwia stronie korzystanie z animacji i przejść z kluczowymi słowami dotyczącymi rozmiarów wbudowanych w CSS, takimi jak auto
, min-content
i fit-content
, w przypadkach, gdy można je animować.
Funkcja CSS calc-size()
to funkcja CSS podobna do funkcji calc()
, ale obsługująca też operacje na dokładnie 1 obsługiwanym słowie kluczowym rozmiaru. Obecnie obsługiwane słowa kluczowe dotyczące rozmiarów to auto
, min-content
, max-content
i fit-content
. Inne słowa kluczowe dotyczące rozmiarów, które mogą być obsługiwane w przyszłości, to stretch
(obecnie obsługiwane z prefiksem -webkit-fill-available
) i contain
. Ta funkcja służy do reprezentowania wartości w środku animacji dozwolonych przez właściwość interpolate-size
.
Zmień nazwę pozycji kotwicy CSS inset-area
na position-area
Grupa robocza CSS zadecydowała o zmianie nazwy tej właściwości z inset-area
na position-area
. W Chrome 129 udostępniamy position-area
, a nazwa inset-area
zostanie usunięta w przyszłej wersji.
Umieszczenie kotwicy CSS: nieopakowane inset-area()
Zastępuje funkcję inset-area()
wartościami obszaru wstawki bezpośrednio w funkcji position-try-fallbacks
. Na przykład zamiast position-try-fallbacks:inset-area(top)
użyj position-try-fallbacks:top
.
Zaktualizuj filtr tła CSS, aby używać trybu krawędzi lustrzanej
Właściwość CSS backdrop-filter
stosuje co najmniej 1 filtr do tła elementu. Tłoko to namalowany element, który znajduje się za elementem.
Typowym filtrem jest rozmycie, które pozwala projektantom tworzyć „mrożone szyby”, okna dialogowe, nakładki wideo i przezroczyste nagłówki nawigacyjne.
Początkowo funkcja ta była implementowana tak samo jak zwykłe rozmycie, ale próbkowanie poza krawędziami elementu pozwalało na przenikanie kolorów z krawędzi. Specyfikacja została zmieniona tak, aby próbkować piksele poza krawędziami tła przez powielanie pikseli na krawędzi. Jednak powoduje to duże migotanie treści, gdy wchodzi ona na krawędź tła. Najnowsza zmiana specyfikacji odzwierciedla tło podczas próbkowania poza krawędzią, co umożliwia płynne stopniowe wprowadzanie nowych kolorów na krawędziach bez przeciążania pojedynczych linii kolorów.
Interfejsy Web API
Obsługa blobów w kanałach danych WebRTC
Wdrożono RTCDataChannel.send(Blob)
, a zdarzenie onMessage
może teraz opcjonalnie otrzymywać dane typu Blob
za pomocą atrybutu binaryType
.
Oprócz obsługi wysyłania ciągów znaków i tablic ArrayBuffer możesz teraz wysyłać obiekty Blob
, o ile ich rozmiar nie przekracza limitu transportu SCTP (maxMessageSize
) określonego w specyfikacji WebRTC.
Gdy atrybut binaryType
ma wartość "blob"
, atrybut danych zdarzenia onMessage będzie mieć typ Blob
zamiast obecnie obsługiwanego ArrayBuffer
.
Polecenia rozszerzenia Compute Pressure WebDriver
Udostępnia polecenia WebDriver do tworzenia, usuwania i aktualizowania próbek źródeł ciśnienia dla wirtualnych źródeł ciśnienia. Takie źródła ciśnienia, które nie zależą od sprzętu lub systemu operacyjnego, i mogą być używane do testowania.
Intl.DurationFormat
Określa sposób formatowania czasu trwania, np. „1 godz. 40 min. 30 sek.”, który obsługuje wiele lokalizacji.
Private Aggregation API: scalanie danych po stronie klienta
Modyfikuje interfejs Private Aggregation API, aby zgrywać dane histogramu z tym samym zbiorem i identyfikatorem filtrowania, zanim zostaną one umieszczone w zaszyfrowanym ładunku raportu podlegającego agregacji.
Prywatyzacja agregacji narzuca limit liczby danych, które można umieścić w pojedynczym raporcie podlegającym agregacji. Dodatkowe dane zostaną odrzucone. Łącząc w miarę możliwości wkłady, możemy uzyskać dodatkową użyteczność w ramach limitu. Pamiętaj, że pomijając odrzucenie nadmiaru danych, scalenie tego rodzaju danych nie powinno mieć wpływu na ostateczne wyniki, np. raporty podsumowujące.
scheduler.yield()
Udostępnia metodę przekazywania kontroli przeglądarce, która może służyć do dzielenia długich zadań. Oczekiwanie na obietnicę zwracaną przez scheduler.yield()
powoduje, że bieżące zadanie ustępuje miejsca nowemu zadaniu w przeglądarce. Możesz go użyć, aby poprawić szybkość reakcji spowodowaną długim wykonywaniem zadań. Kontynuacje mają priorytet, aby ograniczyć problemy z wydajnością dotychczasowych alternatyw.
Web Authentication API: metody serializacji JSON
Metody WebAuthn PublicKeyCredential.toJSON()
, parseCreationOptionsFromJSON()
i parseRequestOptionsFromJSON()
umożliwiają deweloperom serializację odpowiedzi WebAuthn w obiekcie JSON lub deserializację obiektu żądania WebAuthn z jego reprezentacji JSON.
Obsługa rozszerzonego zakresu (HDR) WebGPU
Do konfiguracji kanwy WebGPU dodaje parametry mapowania tonów oraz opcje standard
(obecne zachowanie polegające na ograniczeniu treści do zakresu SDR wyświetlacza) jako domyślne i extended
(nie nakładające tej restrykcji) jako nowe zachowanie. Pozwala to treściom WebGPU korzystać z pełnego zakresu wyświetlacza.
Trwające wersje próbne origin
W Chrome 129 możesz wziąć udział w tych nowych testach wersji.
Interfejs FileSystemObserver
Interfejs FileSystemObserver informuje witryny o zmianach w systemie plików. Strony monitorują zmiany plików i katalogów na lokalnym urządzeniu użytkownika (jak określono w WICG/file-system-access) lub w systemie plików wiadra (jak określono w fs.spec.whatwg.org) i są powiadamiane o podstawowych informacjach o zmianach, takich jak typ zmiany.
Zarejestruj się, aby skorzystać z wersji próbnej źródła FileSystemObserver.
Wycofanie i usunięcie
W tej wersji Chrome wprowadzamy wycofanie i usunięcie funkcji wymienionych poniżej. Na stronie ChromeStatus.com znajdziesz listy planowanych i aktualnych wycofań oraz wcześniejszych usunięcia.
W tej wersji Chrome wycofujemy jedną funkcję.
Wycofanie obsługi 0.0.0.0
w przypadku dostępu z sieci prywatnej
Chrome zablokuje dostęp do adresu IP 0.0.0.0
przed pełnym wdrożeniem dostępu z sieci prywatnej (PNA).
Chrome wycofuje bezpośredni dostęp do punktów końcowych sieci prywatnej z publicznych witryn internetowych w ramach specyfikacji PNA.
Usługi nasłuchujące na localhost (127.0.0.0/8
) są zgodnie ze specyfikacją uważane za prywatne. Ochrona PNA w Chrome może zostać ominięta, gdy użyjesz adresu IP 0.0.0.0
, aby uzyskać dostęp do usług nasłuchujących na localhost w systemach macOS i Linux.
Można go też wykorzystać w atakach polegających na ponownym wiązaniu DNS, które mają na celu aplikację internetową nasłuchującą na localhost.
W tej wersji Chrome usunęliśmy 3 funkcje.
Usuń argument includeShadowRoots
w DOMParser
Argument includeShadowRoots
to nigdy niestandardowy argument funkcji DOMParser.parseFromString()
, który umożliwiał imperatywną analizę zawartości HTML zawierającej deklaratywny shadow DOM. Zostało to wdrożone w Chrome 90 w ramach pierwszej wersji deklaratywnego shadow DOM.
Standardowa wersja tej funkcji jest teraz dostępna w metodach setHTMLUnsafe()
i parseHTMLUnsafe()
, więc niestandardowy argument includeShadowRoots
zostanie usunięty. Kod należy zaktualizować w ten sposób:
Zamiast:
((new DOMParser()).parseFromString(html,'text/html',{includeShadowRoots: true});
Użycie:
Document.parseHTMLUnsafe(html);
Usuwanie niestandardowej deklaratywnej serializacji shadow DOM
Prototypowa implementacja deklaratywnego shadow DOM zawierała metodę getInnerHTML()
, która służyła do serializacji drzew DOM zawierających korzenie shadow. Ta część prototypu nie została znormalizowana z resztą deklaratywnego dom schatten, dlatego zamiast niego zaprojektowano element getHTML()
.
Dlatego stara metoda getInnerHTML()
jest teraz usuwana z Chrome. W jej miejsce zalecamy użycie metody getHTML()
, która wkrótce będzie działać we wszystkich przeglądarkach.
Usuń PointerEvent.getCoalescedEvents()
z kontekstów niezabezpieczonych
Ponad 4 lata temu grupa robocza ds. zdarzeń wskaźnika ograniczyła interfejs PointerEvent.getCoalescedEvents()
do bezpiecznych kontekstów, co spowodowało usunięcie go z kontekstów niezabezpieczonych. Chrome początkowo zachowywał się tak samo jak w starszych wersjach i nie wprowadził zmian w specyfikacji od razu ze względu na problemy z kompatybilnością.
Teraz usuwamy ją z kontekstów niezabezpieczonych, ponieważ okazało się, że Chrome jest w nich bardzo rzadko używany.