Chrome 147

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, covercontain.

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 type to ciąg znaków reprezentujący typ pseudoelementu.
  • Atrybut element jest ostatecznym elementem źródłowym pseudoelementu.
  • Atrybut parent to element źródłowy pseudoelementu (Element lub CSSPseudoElement w 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*-style

Chrome 147 jest zgodny ze zaktualizowanymi specyfikacjami CSS dotyczącymi działania właściwości border-width, outline-widthcolumn-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-widthcolumn-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-widthcolumn-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:

  1. Jeśli dostępne są oba atrybuty path i href, geometria jest określana na podstawie atrybutu path.
  2. Jeśli występuje tylko atrybut path i zostanie on prawidłowo przeanalizowany, użyta zostanie definicja ścieżki wbudowanej.
  3. Jeśli atrybut path jest nieobecny lub nie można go przeanalizować, a podany jest atrybut href, jako wartość zastępczą używany jest element <path>, do którego odwołuje się atrybut href.
  4. Dotychczasowe działanie w przypadku href pozostaje 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

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 RequestFetchEvent 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.

Wpis na ChromeStatus.com

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, LocalNetworkAccessBlockedForUrlsLocalNetworkAccessRestrictionsTemporaryOptOut).

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%.

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