Chrome 129 w wersji beta

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ściinset-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()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.