Chrome 146

Data wprowadzenia wersji stabilnej: 10 marca 2026 r.

O ile nie zaznaczono inaczej, poniższe zmiany dotyczą wersji stabilnej Chrome 146 na Androida, ChromeOS, Linuksa, macOS i Windowsa.

CSS i interfejs

Animacje wywoływane przewijaniem

Ta funkcja dodaje sterowanie animacjami na podstawie pozycji przewijania, np. odtwarzanie, wstrzymywanie i resetowanie animacji.

Częstym wzorcem na stronach internetowych jest rozpoczynanie animacji po osiągnięciu określonej pozycji przewijania. Deweloperzy często robią to za pomocą JavaScriptu, aby ręcznie wykryć, że element znajduje się w obszarze widocznym kontenera przewijania, i uruchomić odpowiednią animację (np. przesunięcie tego elementu do widoku). Wiele z tych przypadków użycia opiera się na informacjach podanych deklaratywnie. Ta funkcja umożliwia deklaratywne tworzenie takich interakcji za pomocą CSS, co pozwala klientowi użytkownika odciążyć tę interakcję do wątku instancji roboczej. Interfejs API zawiera też interfejsy JavaScript, które umożliwiają rozszerzenie tej funkcji na animacje internetowe oprócz animacji CSS.

Błąd śledzenia nr 390314945 | Wpis na ChromeStatus.com | Specyfikacja

Usługa trigger-scope

Właściwość trigger-scope umożliwia ograniczenie nazw animation triggers zadeklarowanych przez trigger-instantiating properties.

Trigger-instantiating properties, np. timeline-trigger, deklaruje nazwy, do których usługa animation-trigger może się odwoływać, aby dołączać animacje do aktywatorów. Domyślnie są one jednak globalne (podobnie jak anchor-name), a często przydaje się ograniczenie ich widoczności, aby odizolować interakcje animacji z wyzwalaczem.

Błąd śledzenia nr 466134208 | Wpis na ChromeStatus.com | Specyfikacja

meta name="text-scale"

Domyślny rozmiar czcionki root element jest skalowany proporcjonalnie do ustawień skalowania tekstu w systemie operacyjnym i przeglądarce. Dzięki temu strony, które są zgodne z najlepszymi praktykami dotyczącymi font-relative units (czyli używają jednostek remem w przypadku rozmiarów czcionek i elementów strony, które dostosowują się do preferencji użytkownika dotyczących rozmiaru tekstu), będą uwzględniać ustawienie skali tekstu na poziomie systemu operacyjnego użytkownika. Wyłącza to też istniejące mechanizmy przeglądarki (np. powiększanie całej strony w systemie Windows) i heurystyki (np. automatyczne dopasowywanie rozmiaru tekstu na urządzeniach mobilnych). Możesz poinformować przeglądarkę, że strona jest skonstruowana w taki sposób (czyli za pomocą elementów remem), aby dobrze skalować się w przypadku różnych preferencji użytkowników dotyczących rozmiaru czcionki. Podobnie jak env(preferred-text-scale), które umożliwia dostęp do skali tekstu, ten interfejs API rozszerza tę funkcję, umożliwiając skalowanie przy użyciu domyślnego rozmiaru czcionki root element i rezygnację z automatycznego skalowania tekstu.

Błąd śledzenia nr 430566925 | Wpis na ChromeStatus.com | Specyfikacja

Rejestr elementów niestandardowych w zakresie

Ta funkcja umożliwia umieszczenie na stronie wielu definicji elementów niestandardowych dla jednej nazwy tagu. Zapobiega to konfliktom nazw elementów niestandardowych, gdy aplikacja internetowa korzysta z bibliotek z wielu źródeł. Jest to możliwe dzięki umożliwieniu kodu użytkownika tworzenia wielu rejestrów elementów niestandardowych i powiązania ich z zakresami drzewa oraz elementami, które działają jako obiekty zakresu.

Błąd śledzenia nr 40826514 | Wpis na ChromeStatus.com | Specyfikacja

Uprawnienia

Wypełnianie targetURL podczas obsługi pliku

Implementacja Launch Handler zapewnia teraz, że w przypadku uruchomienia progresywnej aplikacji internetowej z obsługą plików pole LaunchParams.targetURL jest wypełnione. Przed tą zmianą właściwość była wartością null, gdy uruchomienie pliku było kierowane do istniejącego okna. Ta zmiana zapewnia, że URL z pola action w pliku manifestu (ten sam URL, który musi obecnie wczytywać dokument) jest dostępny dla konsumenta launchQueue.

Błąd śledzenia nr 464314997 | Wpis na ChromeStatus.com | Specyfikacja

Zatrzymaj ponowne kolejkowanie LaunchParams przy ponownym załadowaniu

Zapobiega ponownemu wysyłaniu przez launchQueue ostatniego LaunchParams (w tym uchwytów plików), gdy użytkownik ponownie załaduje stronę. Wcześniej odświeżenie strony powodowało ponowne uruchomienie aplikacji z danymi z pierwotnego uruchomienia. Ta zmiana sprawia, że ponowne wczytanie jest traktowane jako standardowa nawigacja, a nie „ponowne uruchomienie”. W związku z tym w launchQueue nie będą się pojawiać zduplikowane pliki, chyba że nastąpi nowe zdarzenie uruchomienia pliku.

Błąd śledzenia nr 40204185 | Wpis na ChromeStatus.com

DOM

Navigation API: dodawanie post-commit handlerprecommit

Podczas przechwytywania nawigacji za pomocą zdarzenia navigate, precommitHandlers i zwykłe moduły obsługi po zatwierdzeniu są przekazywane oddzielnie.

Sprawdza się to, gdy występuje tylko jeden z tych elementów, ale może być uciążliwe, gdy przepływ obejmuje obiekt precommitHandler, który prowadzi do obiektu post-commit handler.

To niewielkie ulepszenie ergonomiczne, które umożliwia zarejestrowanie procedury obsługi po zatwierdzeniu podczas wywoływania procedury obsługi przed zatwierdzeniem.

Błąd śledzenia nr 465487215 | Wpis na ChromeStatus.com | Specyfikacja

Grafika

WebGPU: zmienne tekstury i samplera

Dodaj do WGSL funkcję językową texture_and_sampler_let, która umożliwia przechowywanie obiektów texturesampler w deklaracji let w WGSL.

Błąd śledzenia nr 459500757 | Wpis na ChromeStatus.com | Specyfikacja

WebGPU: przejściowe przyłącza

Ta funkcja dodaje funkcjonalność do specyfikacji WebGPU po jej pierwszym udostępnieniu w przeglądarce.

Nowa funkcja TRANSIENT_ATTACHMENT GPUTextureUsage umożliwia tworzenie załączników, które pozwalają operacjom przekazywania renderowania pozostawać w pamięci kafelków, co pozwala uniknąć ruchu w pamięci VRAM i potencjalnie uniknąć przydzielania pamięci VRAM na tekstury.

Błąd śledzenia nr 462620664 | Wpis na ChromeStatus.com | Specyfikacja

Tryb zgodności WebGPU

Ten tryb dodaje opcjonalny, lekko ograniczony podzbiór interfejsu WebGPU API, który może uruchamiać starsze interfejsy graficzne, np. OpenGLDirect3D11. Włączając ten tryb i przestrzegając jego ograniczeń, możesz zwiększyć zasięg swoich WebGPUaplikacji, aby docierały do wielu starszych urządzeń, które nie mają nowoczesnych, jawnych interfejsów API grafiki, jakich wymaga podstawowy WebGPU. W przypadku prostych aplikacji jedyną wymaganą zmianą jest określenie compatibility featureLevel podczas wywoływania requestAdapter. W przypadku bardziej zaawansowanych aplikacji konieczne mogą być pewne modyfikacje, aby dostosować je do ograniczeń tego trybu. Tryb zgodności jest podzbiorem WebGPU Core, więc aplikacje utworzone w tym trybie są też prawidłowe i działają nawet w przeglądarkach, które nie obsługują trybu zgodności.

Błąd śledzenia nr 442618060 | Wpis na ChromeStatus.com | Specyfikacja

JavaScript

Sekwencjonowanie iteratora

Propozycja TC39 dotycząca tworzenia iterators przez sekwencjonowanie istniejących iterators. Wprowadza to Iterator.concat (...items).

Błąd śledzenia nr 434977727 | Wpis na ChromeStatus.com | Specyfikacja

Interwencja dotycząca selektywnych uprawnień

Gdy przyznajesz witrynie uprawnienia dostępu do zaawansowanego interfejsu API (np. Bluetooth, Camera, Clipboard, DisplayCapture, Geolocation, Microphone, SerialUSB), Twoja zgoda jest przeznaczona dla witryny, a niekoniecznie dla każdego skryptu zewnętrznego działającego na stronie. W szczególności osadzone skrypty reklamowe działające w głównej ramce lub w ramkach iframe z tej samej domeny mogą wykorzystywać uprawnienia strony do oportunistycznego uzyskiwania dostępu do tych danych wrażliwych. Możesz nie wiedzieć, że reklama uzyskuje dostęp do Twoich informacji.

Działanie to ma na celu lepsze dopasowanie przyznanego uprawnienia do Twoich intencji przez uniemożliwienie skryptowi reklamy w kontekście z uprawnieniami interfejsu API korzystania z niego. Zwiększa to Twoje zaufanie i kontrolę nad danymi.

Błąd śledzenia nr 435214052 | Wpis na ChromeStatus.com | Specyfikacja

Zachowywanie wartości dropEffect w zdarzeniach dragoverdrop

Interfejs HTML5 Drag and Drop API umożliwia aplikacjom internetowym obsługę operacji przeciągania i upuszczania za pomocą serii zdarzeń: dragstart, dragenter, dragover, dragleave, dropdragend. Podczas tych zdarzeń właściwość dataTransfer.dropEffect wskazuje, która operacja (copy, move, link lub none) powinna zostać wykonana.

Zgodnie z HTML5 specification wartość dropEffect ustawiona przez aplikacje internetowe podczas ostatniego zdarzenia dragover powinna być zachowana i dostępna w kolejnym zdarzeniu drop.

Przeglądarki oparte na Chromium nadpisywały jednak wartość dropEffect aplikacji internetowej własną wynegocjowaną operacją przed wywołaniem zdarzenia drop, co naruszało zgodność ze specyfikacją i ograniczało kontrolę nad zachowaniem funkcji przeciągnij i upuść. To zachowanie zostało zmienione.

Błąd śledzenia nr 40068941 | Wpis na ChromeStatus.com | Specyfikacja

Multimedia

API statystyk odtwarzania dla WebAudio

Ta funkcja dodaje atrybut AudioContext.playbackStats, który zwraca obiekt AudioPlaybackStats. Ten obiekt zawiera statystyki odtwarzania dźwięku, np. average latency, minimum/maximum latency, underrun duration i underrun count. Ten interfejs API umożliwia aplikacjom internetowym monitorowanie jakości odtwarzania dźwięku i wykrywanie usterek.

Błąd śledzenia nr 475838360 | Wpis na ChromeStatus.com | Specyfikacja

Sieć

Zachowanie parametru typu MIME w adresie URL danych

Zachowaj MIME type parameters (np. charset, boundary) w nagłówkach adresu URL danych Content-Type zgodnie z opisem w Fetch Standard.

Błąd śledzenia nr 40487194 | Wpis na ChromeStatus.com | Specyfikacja

Wyniki

LCP: dopasowanie do określonego zachowania w przypadku wysyłania kandydatów

Algorytm LCP generuje teraz kandydatów na podstawie największego wyrenderowanego obrazu, a nie największego obrazu oczekującego na wyrenderowanie. Może to spowodować, że na osi czasu wydajności pojawi się więcej kandydatów pośrednich.

W każdej klatce animacji, po jej wyświetleniu, algorytm LCP emituje na osi czasu wydajności nowego kandydata (co najwyżej jednego), jeśli w tej klatce pojawił się nowy największy tekst lub obraz. Algorytm śledzi też „największy oczekujący obraz”, czyli największy obraz, który wciąż się wczytuje, i na podstawie jego rozmiaru określa, czy nowy kandydat jest największy. Oznacza to, że wolno ładujący się duży obraz może uniemożliwić wysyłanie kandydatów do LCP, a kandydaci ci często dostarczają przydatnych informacji, które pomagają zrozumieć postęp ładowania.

To zachowanie pojawiło się podczas Interop 2025 jako różnica w stosunku do innych silników. Zespół zgodził się na dostosowanie do emitowania co najwyżej jednego kandydata na ramkę na podstawie zestawu wyrenderowanych elementów obrazu i tekstu dla tej ramki.

Błąd śledzenia nr 482261053 | Wpis na ChromeStatus.com | Specyfikacja

Bezpieczeństwo

Sanitizer API

Interfejs Sanitizer API umożliwia usuwanie z dowolnych treści HTML dostarczonych przez użytkownika treści, które mogą wykonywać skrypty. Chcemy ułatwić tworzenie aplikacji internetowych wolnych od XSS.

Błąd śledzenia nr 40138584 | Wpis na ChromeStatus.com | Specyfikacja

Wersje próbne origin

WebNN

WebNN umożliwia aplikacjom i platformom internetowym korzystanie z natywnych usług systemu operacyjnego na potrzeby uczenia maszynowego oraz z możliwości sprzętowych dostępnych na komputerze, aby wdrażać spójne, wydajne i niezawodne rozwiązania ML w internecie.

Origin Trial | Tracking bug #40206287 | ChromeStatus.com entry | Spec

CPU Performance API

Ten interfejs API udostępnia informacje o zasilaniu urządzenia. Ten interfejs API jest przeznaczony dla aplikacji internetowych, które wykorzystują te informacje do zwiększania wygody użytkowników, być może w połączeniu z interfejsem Compute Pressure API, który dostarcza informacji o obciążeniu lub wykorzystaniu procesora urządzenia i umożliwia aplikacjom reagowanie na zmiany obciążenia procesora.

Błąd śledzenia nr 449760252 | Wpis na ChromeStatus.com | Specyfikacja

Reguły spekulacyjne: pole form_submission

Rozszerza to składnię speculation rules, umożliwiając określenie pola form_submission dla prerender.

To pole nakazuje przeglądarce przygotowanie prerender jako przesłania formularza, aby można było je aktywować za pomocą rzeczywistych nawigacji związanych z przesyłaniem formularza. Na przykład prosty formularz wyszukiwania powoduje nawigację z użyciem żądania /search?q=XXX GET. Deweloperzy stron internetowych prosili o obsługę tej funkcji.

Błąd śledzenia nr 346555939 | Wpis na ChromeStatus.com | Specyfikacja

Focusgroup

Funkcja Focusgroup ułatwia nawigację za pomocą klawiatury między zestawem elementów, na których można ustawić fokus, przy użyciu klawiszy strzałek.

Więcej informacji o grupie fokusowej znajdziesz w artykule Prośba o opinię deweloperów: grupa fokusowa.

Testowanie funkcji | Błąd śledzenia nr 1286127 | Wpis na ChromeStatus.com | Specyfikacja