Data wprowadzenia wersji stabilnej: 7 kwietnia 2026 r.
O ile nie zaznaczono inaczej, poniższe zmiany dotyczą wersji stabilnej Chrome 147 na Androida, ChromeOS, Linuksa, macOS i Windows.
CSS i interfejs
Przejścia widoku w zakresie elementu
Udostępnia element.startViewTransition() w dowolnych elementach HTML.
Element określa zakres przejścia, co oznacza, że na pseudoelementy przejścia wpływają klipy i przekształcenia elementów nadrzędnych, a wiele przejść na oddzielnych elementach może działać jednocześnie.
Błąd śledzenia nr 394052227 | Wpis na ChromeStatus.com | Specyfikacja
CSS contrast-color()
Ta funkcja pomaga spełnić wymagania dotyczące kontrastu w zakresie ułatwień dostępu.
Funkcji contrast-color() możesz używać w dowolnym miejscu w CSS, w którym oczekiwana jest wartość koloru. Przyjmuje argument w postaci wartości koloru i zwraca wartość „black” lub „white” w zależności od tego, która z nich zapewnia najwyższy kontrast w stosunku do argumentu w postaci koloru.
Błąd śledzenia nr 40142548 | Wpis na ChromeStatus.com | Specyfikacja
Zakres nazwany osi czasu scroll
Ta funkcja rozszerza zestaw nazwanych zakresów osi czasu wyświetleń, dodając zakres scroll do istniejącego zestawu zakresów entry, exit, cover i contain.
Błąd śledzenia nr 41483848 | Wpis na ChromeStatus.com | Specyfikacja
Właściwość CSS border-shape
Właściwość CSS border-shape umożliwia tworzenie obramowań o dowolnym kształcie, np. wielokąta, koła lub shape().
Chociaż border-shape akceptuje te same kształty co clip-path, jest zasadniczo inne. border-shape określa kształt obramowania, dekoruje je i przycina tylko jego wnętrze.
border-shape ma 2 warianty: jeden, który obrysowuje kształt, i drugi, który wypełnia przestrzeń między dwoma kształtami.
Błąd śledzenia nr 370041145 | Wpis na ChromeStatus.com | Specyfikacja
CSSPseudoElement interfejs
Interfejs CSSPseudoElement reprezentuje pseudo-element w JavaScript.
CSSPseudoElement jest zwracana z Element.pseudo(type), gdzie type to obecnie ::after, ::before lub ::marker. CSSPseudoElement to obiekt proxy, który reprezentuje pseudoelement. W odróżnieniu od pseudoelementu element CSSPseudoElement zawsze istnieje.
Element CSSPseudoElement ma te atrybuty i metody:
- Atrybut
typeto ciąg znaków reprezentujący typ pseudoelementu. - Atrybut
elementjest ostatecznym elementem źródłowym pseudoelementu. - Atrybut
parentto element źródłowy pseudoelementu (ElementlubCSSPseudoElementw przypadku zagnieżdżonych pseudoelementów). - Metoda
pseudo(type)pobiera zagnieżdżone pseudoelementy.
Błąd śledzenia nr 40639103 | Wpis na ChromeStatus.com | Specyfikacja
Pseudocel w przypadku zdarzeń
Konkretne zdarzenia zawierają teraz symbol .pseudoTarget, który może być symbolem CSSPseudoElement (jeśli interakcja dotyczyła pseudoelementu) lub null.
Dostarcza to bardziej szczegółowych informacji o źródle zdarzenia. Na przykład wskazuje, że kliknięto ::after pseudo-element, a nie tylko element źródłowy (Event.target). Pamiętaj, że Event.target pozostaje bez zmian, więc zdarzenie zawiera tylko dodatkowe informacje o interakcji z pseudo-elementem.
Zdarzenia to UIEvent, AnimationEvent i TransitionEvent.
mouseover, mouseout, mouseenter, mouseleave i ich odpowiedniki pointer* nie są jeszcze obsługiwane.
Błąd śledzenia nr 40639103 | Wpis na ChromeStatus.com | Specyfikacja
Oddzielenie właściwości *-width i *-style
Chrome 147 jest zgodny ze zaktualizowanymi specyfikacjami CSS dotyczącymi działania właściwości border-width, outline-width i column-rule-width. Wcześniej, jeśli odpowiedni atrybut border-style, outline-style lub column-rule-style miał wartość none lub hidden, obliczona szerokość tych właściwości była wymuszana do wartości 0px niezależnie od podanej wartości.
Dzięki tej zmianie obliczone wartości border-width, outline-width i column-rule-width zawsze odzwierciedlają wartości określone przez autora, niezależnie od właściwości *-style. Dodatkowo rozwiązane wartości (zwracane przez getComputedStyle()) dla outline-width i column-rule-width również odzwierciedlają określone wartości.
Ta zmiana sprawia, że Chrome działa tak samo jak Firefox i WebKit, w których to przeglądarkach to zachowanie zostało już wdrożone.
Błąd śledzenia nr 393631108 | Wpis na ChromeStatus.com | Specyfikacja
Obsługa atrybutu path w elemencie SVG <textPath>
Ta zmiana dodaje obsługę atrybutu path w elemencie SVG <textPath>. Dzięki temu deweloperzy mogą definiować geometrię ścieżki tekstu wbudowanej za pomocą danych ścieżki SVG i ograniczać potrzebę stosowania osobno zdefiniowanych elementów <path>.
Element <textPath> rozwiązuje geometrię ścieżki tekstu, stosując te reguły:
- Jeśli dostępne są oba atrybuty
pathihref, geometria jest określana na podstawie atrybutupath. - Jeśli występuje tylko atrybut
pathi zostanie on prawidłowo przeanalizowany, użyta zostanie definicja ścieżki wbudowanej. - Jeśli atrybut
pathjest nieobecny lub nie można go przeanalizować, a podany jest atrybuthref, jako wartość zastępczą używany jest element<path>, do którego odwołuje się atrybuthref. - Dotychczasowe działanie w przypadku
hrefpozostaje bez zmian.
Ta implementacja jest zgodna z definicją atrybutu path w specyfikacji SVG 2 w odniesieniu do elementu <textPath>. Działanie rozdzielczości jest zgodne z innymi silnikami przeglądarek, co poprawia interoperacyjność i zgodność ze standardami. Uwaga: jeśli w przypadku elementu <textPath> określono zarówno path, jak i href, zgodnie ze specyfikacją SVG 2 pierwszeństwo ma teraz parametr path.
Błąd śledzenia nr 374010056 | Wpis na ChromeStatus.com | Specyfikacja
Urządzenie
Wykrywanie płaszczyzn WebXR
Interfejs WebXR Plane Detection API umożliwia witrynom pobieranie zestawu płaszczyzn wykrytych w środowisku użytkownika. Jest to mniej pracochłonne dla deweloperów i bardziej wydajne niż korzystanie z funkcji WebXR wykrywającej głębię. Na przykład płaszczyzny, takie jak ściany zasłonięte przez obiekty, mogą być w pełni reprezentowane, jeśli system zna ich granice. Mapa głębi pokazywałaby ścianę, ale obiekty przed nią przerywałyby ją, potencjalnie zasłaniając jej pełny zakres. Dodatkowo informacje o etykietach semantycznych są udostępniane, gdy urządzenie rozpoznaje takie etykiety i pasują one do predefiniowanych kategorii, co zapewnia lepszą wiedzę o świecie.
Błąd śledzenia nr 394636076 | Wpis na ChromeStatus.com | Specyfikacja
DOM
Obsługa formatu JSON i stylów w przypadku link rel=modulepreload
Dodaje obsługę typów modułów JSON i stylów jako <link rel="modulepreload">miejsc docelowych. <link rel="modulepreload"> jest już obsługiwane w Chromium (patrz funkcja w Chromestatus), ale obecnie obsługuje tylko wstępne wczytywanie skryptów modułów podobnych do skryptów. Ta funkcja wypełnia lukę w funkcjonalności, ponieważ skrypty modułów JSON i CSS są obsługiwane w Chromium w innych miejscach, ale nie jako <link rel="modulepreload"> miejsca docelowe. Możesz wstępnie wczytać moduły stylów za pomocą <link rel="modulepreload" as="style" href="..."> i moduły JSON za pomocą <link rel="modulepreload" as="json" href="...">.
Błąd śledzenia nr 466888680 | Wpis na ChromeStatus.com | Specyfikacja
Analizowanie XML w Rust w scenariuszach innych niż XSLT
Implementuje parser XML w Rust w sytuacjach, w których nie jest wymagane przetwarzanie XSLT.
Parser XML w Rust zwiększa bezpieczeństwo, eliminując błędy uszkodzenia pamięci podczas analizowania XML. Zastępuje użycie funkcji libxml2 (napisanej w języku C) bezpieczną alternatywą.
Wycofujemy XSLT. Podczas gdy ten proces jest w toku, możesz już używać bezpiecznego parsowania XML w Rust w sytuacjach, w których nie jest wymagane XSLT.
Błąd śledzenia nr 466303347 | Wpis na ChromeStatus.com
Grafika
Warstwy WebXR
WebXR Layers to wydajniejszy sposób renderowania treści immersyjnych.
Oprócz obsługi natywnych tekstur kolorów i głębi oraz tablic tekstur zapewnia też obsługę różnych typów warstw zarządzanych przez kompozytor systemowy (w przeciwieństwie do JavaScriptu).
Błąd śledzenia nr 409255534 | Wpis na ChromeStatus.com | Specyfikacja
JavaScript
Math.sumPrecise
Wdraża propozycję TC39 dotyczącą dodania metody sumowania wielu wartości w JavaScript.
Dodaj metodę Math.sumPrecise, która przyjmuje obiekt iterowalny i zwraca sumę wartości w tym obiekcie, korzystając z dokładniejszego algorytmu niż proste sumowanie.
Błąd śledzenia nr 374310075 | Wpis na ChromeStatus.com | Specyfikacja
Sieć / łączność
Request.isReloadNavigation atrybut
Dodaje atrybut logiczny tylko do odczytu isReloadNavigation do interfejsu Request interfejsu Fetch API. Ten atrybut wskazuje, czy bieżące żądanie nawigacji zostało zainicjowane jako ponowne wczytanie wywołane przez użytkownika (np. za pomocą przycisku Odśwież, location.reload() lub history.go(0)). Ten sygnał jest udostępniany głównie w obiekcie Request w FetchEvent Service Workera.
Błąd śledzenia nr 40487194 | Wpis na ChromeStatus.com | Specyfikacja
Wyniki
Aktualizowanie limitów interfejsu Device Memory API
Aktualizacje nowego zestawu możliwych wartości interfejsu Device Memory API:
- Android: 1, 2, 4, 8
- Inne: 2, 4, 8, 16, 32. Te wartości zastępują stare wartości 0,25, 0,5, 1, 2, 4 i 8, które stały się nieaktualne.
Zmniejsza to ryzyko fingerprintingu w przypadku urządzeń o mniejszych możliwościach, ponieważ od czasu ustalenia tych limitów ich możliwości się zwiększyły. Umożliwia też lepsze wykorzystanie i segmentowanie urządzeń z wyższej półki, o co prosili deweloperzy. Więcej informacji znajdziesz w artykule Problem z pamięcią urządzenia.
Błąd śledzenia nr 454354290 | Wpis na ChromeStatus.com | Specyfikacja
Dostęp przez sieć lokalną (LNA)
Więcej informacji o LNA znajdziesz w artykule Dostęp do sieci lokalnej.
Ograniczenia dostępu do sieci lokalnej w przypadku komponentu service workerWindowClient.navigate()
Ograniczenia dostępu do sieci lokalnej zostały niedawno dodane, aby uniemożliwić witrynom jednostronne wysyłanie żądań do sieci lokalnych i urządzeń lokalnych. Te ograniczenia
zostały dodane w przypadku żądań pobierania zainicjowanych przez proces roboczy usługi, ale nie w przypadku nawigacji
wykonywanych przez procesy robocze usługi za pomocą interfejsu WindowClient.navigate().
Wprowadzenie tych zmian pozwoli wyeliminować tę lukę, ponieważ dodamy ograniczenia LNA do połączeń z WindowClient.navigate(). Używa on WindowClient jako inicjatora nawigacji, aby określić, czy nawigacja jest żądaniem LNA.
Dotyczy to tylko sytuacji, gdy WindowClient, po której się poruszasz, jest ramką podrzędną. Chrome nie egzekwuje obecnie żadnych ograniczeń LNA w przypadku nawigacji w głównej ramce.
Ograniczenia dostępu do sieci lokalnej w przypadku WebTransport
Ogranicza możliwość wysyłania żądań do sieci lokalnej użytkownika za pomocą WebTransport, która jest chroniona przez prośbę o uprawnienia.
Żądanie sieci lokalnej to każde żądanie z witryny publicznej do lokalnego adresu IP lub pętli zwrotnej albo z witryny lokalnej (np. intranetu) do pętli zwrotnej. Ograniczenie możliwości wykonywania tych żądań przez witryny za pomocą uprawnień zmniejsza możliwość wykorzystywania tych żądań przez witryny do tworzenia odcisków cyfrowych sieci lokalnej użytkownika.
To uprawnienie jest ograniczone do bezpiecznych kontekstów.
Błąd śledzenia nr 421216834 | Wpis na ChromeStatus.com | Specyfikacja
Ograniczenia dostępu do sieci lokalnej w przypadku protokołu WebSocket
Ograniczenia dostępu do sieci lokalnej (LNA) zostaną rozszerzone o protokół WebSocket. Połączenia WebSocket z adresami lokalnymi będą teraz wywoływać prośby o uprawnienia.
Wszystkie obecne zasady dotyczące przedsiębiorstw LNA nadal obowiązują w przypadku ograniczeń LNA WebSockets (LocalNetworkAccessAllowedForUrls, LocalNetworkAccessBlockedForUrls i LocalNetworkAccessRestrictionsTemporaryOptOut).
Błąd śledzenia nr 421156866 | Wpis na ChromeStatus.com | Specyfikacja
Izolowane aplikacje internetowe (IWA)
Web Printing API
Ten interfejs API umożliwia głębszą integrację z funkcjami związanymi z drukarką w izolowanych aplikacjach internetowych.
Ten interfejs API jest przeznaczony tylko dla izolowanych aplikacji internetowych i jest zgodny z procesem izolowanych aplikacji internetowych.
Ten interfejs API udostępnia zestaw metod JavaScript, które umożliwiają programistom wysyłanie zapytań do drukarek lokalnych, przesyłanie zadań drukowania do najbardziej odpowiednich drukarek oraz zarządzanie opcjami i stanem zadań drukowania. Aby przedstawić te koncepcje, korzysta z nazw atrybutów i semantyki ze specyfikacji protokołu IPP (Internet Printing Protocol).
Błąd śledzenia nr 302505962 | Wpis na ChromeStatus.com | Specyfikacja
Wersje próbne origin
Wstępne renderowanie elementów iframe z różnych domen
Wstępnie renderuje międzyźródłowe elementy iframe za pomocą nagłówka odpowiedzi z wyrażeniem zgody.
Przeglądarki wstępnie renderują teraz wszystkie ramki z innych domen, jeśli odpowiedź HTTP ramki najwyższego poziomu zawiera Supports-Loading-Mode: prerender-cross-origin-frames.
Testowanie źródła | Błąd śledzenia nr 440387014 | Wpis na ChromeStatus.com | Specyfikacja
Zdarzenie autouzupełniania
Autouzupełnianie to kluczowa funkcja internetowa, która codziennie ułatwia życie milionom użytkowników. Jednak zapewnienie niezawodnego działania autouzupełniania w przypadku formularzy dynamicznych w różnych implementacjach wymaga znacznego wysiłku.
Ta funkcja dodaje zdarzenie autofill, które umożliwia deweloperom modyfikowanie formularzy w celu dopasowania ich do automatycznie wypełnionych danych i powiadamiania przeglądarki o zakończeniu tych działań.
Testowanie funkcji | Śledzenie błędu nr 466333215 | Wpis na ChromeStatus.com | Specyfikacja
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 użytkownika. Ułatwia to wdrażanie w internecie spójnych, wydajnych i niezawodnych rozwiązań opartych na uczeniu maszynowym.
Origin Trial | Tracking bug #40206287 | ChromeStatus.com entry | Spec
Wycofania i usunięcia
Usuwanie wbudowanego XSLT na potrzeby generowania SVG
Specjalnie przygotowany plik XML może zawierać arkusz stylów XSL, który przekształca ogólne dane XML w plik SVG.
Na przykład zobacz gist.github.com.
Jest to szczególny przypadek przetwarzania XSLT, który według niedawno wprowadzonych liczników użycia XSLPIInSVGImage (UseCounter ID 5777) i XSLPIInSVGStandaloneDoc (UseCounter ID 5778) praktycznie nie występuje w internecie. Chcemy wycofać i usunąć tę funkcję przed całkowitym wycofaniem XSLT.
Wprowadzamy tę zmianę równolegle z eksperymentalnym testowaniem parsera XML opartego na języku Rust. W Chrome 147 nie zostanie ona od razu wdrożona w 100%.