Chrome 139

Data wprowadzenia wersji stabilnej: 5 sierpnia 2025 r.

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

CSS i interfejs

Zwarcie var()attr()

Jeśli nie użyto wartości zastępczej, funkcje var()attr() są obliczane bez sprawdzania, czy w tej wartości zastępczej nie występują cykle.

Wpis na ChromeStatus.com

Obsługa deskryptora font-feature-settings w regule @font-face

Ta funkcja obsługuje składnię opartą na ciągach znaków dla font-feature-settings zgodnie z definicją w CSS Fonts Level 4. Nieprawidłowe lub nierozpoznane tagi funkcji będą ignorowane zgodnie ze specyfikacją. Nie obsługujemy formatów binarnych ani niestandardowych.

W miarę jak czcionki OpenType będą coraz powszechniej stosowane, to ulepszenie zwiększy kontrolę nad typografią, zmniejszy nadmiarowość i będzie wspierać bardziej skalowalne, nowoczesne podejście do projektowania stron internetowych.

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

Funkcje niestandardowe CSS

Funkcje niestandardowe są podobne do właściwości niestandardowych, ale zamiast zwracać jedną stałą wartość, zwracają wartości na podstawie innych właściwości niestandardowych, parametrów i warunków.

Tracking bug #325504770 | ChromeStatus.com entry | Spec

Kontynuowanie przejść po przełączeniu na początkową wartość przejścia

Gdy zmieniają się właściwości związane z przejściem, powinny one wpływać tylko na nowo rozpoczęte przejścia. Oznacza to, że jeśli zmienisz właściwości przejścia, ale nie zmienisz właściwości, które mają aktywne animacje przejścia, te animacje będą nadal działać z wcześniej określonym czasem trwania i wygładzaniem.

Chrome nieprawidłowo anulował przejścia, gdy właściwość przejścia była ustawiona na none, mimo że nie anuluje ich, jeśli zmienisz tylko transition-duration. Dzięki tej zmianie Chrome będzie działać tak samo jak Safari i Firefox. Aktywne przejścia będą działać do momentu, gdy zmieni się wartość właściwości, co spowoduje aktualizację przejścia.

Wpis na ChromeStatus.com | Specyfikacja

Kształtowanie narożników (corner-shape, superellipse, squircle)

Włącz stylizację rogów, oprócz istniejących border-radius, wyrażając kształt i krzywiznę rogu jako superelipsę.

Umożliwia to tworzenie kształtów takich jak zaokrąglone kwadraty, wycięcia i wklęsłe krawędzie oraz animowanie przejść między nimi.

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

Dodaj właściwość font-width i deskryptor oraz ustaw font-stretch jako starszy alias.

Obsługa atrybutu async w elemencie SVG <script>

Interfejs SVGScriptElement w SVG 2.0 wprowadza atrybut async, podobny do HTMLScriptElement. Ten atrybut umożliwia asynchroniczne wykonywanie skryptów, co poprawia wydajność i szybkość reakcji aplikacji internetowych korzystających z SVG.

Błąd monitorujący nr 40067618 | Wpis na ChromeStatus.com | Specyfikacja

Polecenie wywołujące request-close

Elementy okna dialogowego można zamykać na różne sposoby, a deweloperzy czasami chcą mieć możliwość zapobiegania zamknięciu. Aby to osiągnąć, okna te wywołują zdarzenie anulowania. Początkowo zdarzenie to było wywoływane tylko przez żądanie zamknięcia (np. naciśnięcie klawisza ESC). Ostatnio dodano funkcję JavaScript requestClose(), która również wywołuje zdarzenie anulowania.

Polecenie request-close wprowadza tę nową funkcję do interfejsu API poleceń wywołujących deklaratywnych.

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

Poprawka dotycząca priorytetu zakotwiczenia przewijania

Zmienia algorytm zakotwiczania przewijania. Zamiast wybierać kandydata o najwyższym priorytecie jako element zakotwiczenia, wybierz go jako zakres lub element główny zwykłego algorytmu wyboru elementu zakotwiczenia, który wybierze element znajdujący się najgłębiej na ekranie.

Wpis na ChromeStatus.com

Urządzenie

Ulepszenia wydajności wykrywania głębi w WebXR

Udostępnia kilka nowych mechanizmów dostosowywania działania funkcji wykrywania głębi w sesji WebXR, aby zwiększyć wydajność generowania lub wykorzystywania bufora głębi.

Kluczowe mechanizmy to: możliwość żądania surowego lub wygładzonego bufora głębi, możliwość żądania, aby środowisko wykonawcze przestało lub wznowiło dostarczanie bufora głębi, oraz możliwość udostępniania bufora głębi, który nie jest dokładnie zgodny z widokiem użytkownika, dzięki czemu agent użytkownika nie musi wykonywać niepotrzebnych ponownych projekcji w każdej klatce.

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

DOM

Zezwalanie na większą liczbę znaków w interfejsach DOM API JavaScriptu

Parser HTML zawsze (lub od dłuższego czasu) zezwalał na używanie w elementach i atrybutach wielu różnych prawidłowych znaków i nazw, ale interfejsy API DOM JavaScriptu do tworzenia tych samych elementów i atrybutów są bardziej rygorystyczne i nie pasują do parsera.

Ta zmiana upraszcza weryfikację interfejsów DOM JavaScriptu, aby była zgodna z parserem HTML.

Tracking bug #40228234 | ChromeStatus.com entry | Spec

Grafika

WebGPU: obsługa tekstur 3D w przypadku formatów skompresowanych BC i ASTC

Funkcje texture-compression-bc-sliced-3dtexture-compression-astc-sliced-3d WebGPU dodają odpowiednio obsługę tekstur 3D w przypadku skompresowanych formatów BC i ASTC.

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

Potwierdzenie bezpiecznej płatności (SPC)

Interfejs API securePaymentConfirmationAvailability

Jest to interfejs API JavaScript, który ułatwia sprawdzanie dostępności funkcji Secure Payment Confirmation (SPC). W przypadku tego interfejsu API jedynym sposobem sprawdzenia dostępności SPC było utworzenie PaymentRequest z wymaganymi parametrami, co jest niewygodne i trudne, jeśli deweloper chce sprawdzić dostępność SPC przed rozpoczęciem przetwarzania płatności.

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

Potwierdzenie bezpiecznej płatności: klucze powiązane z przeglądarką

Dodaje dodatkowy podpis kryptograficzny do potwierdzeń bezpiecznej płatności i tworzenia danych logowania. Odpowiedni klucz prywatny nie jest synchronizowany między urządzeniami. Ułatwia to programistom spełnianie wymagań dotyczących powiązania urządzenia w przypadku transakcji płatniczych.

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

AI na urządzeniu

Interfejs On-device Web Speech API

Ta funkcja dodaje do interfejsu Web Speech API obsługę rozpoznawania mowy na urządzeniu, dzięki czemu witryny mogą mieć pewność, że ani dźwięk, ani transkrypcja mowy nie są wysyłane do usługi innej firmy w celu przetworzenia.

Witryny mogą sprawdzać dostępność rozpoznawania mowy na urządzeniu w przypadku określonych języków, prosić użytkowników o zainstalowanie niezbędnych zasobów do rozpoznawania mowy na urządzeniu oraz w razie potrzeby wybierać między rozpoznawaniem mowy na urządzeniu a rozpoznawaniem mowy w chmurze.

Wpis na ChromeStatus.com | Specyfikacja

Usuwanie nazwy okna w przypadku nawigacji między witrynami, która powoduje zmianę grupy kontekstu przeglądania

Usuwa wartość właściwości window.name, gdy nawigacja przełącza grupy kontekstów przeglądania, aby uniknąć wycieku informacji, które mogłyby zostać wykorzystane jako wektor śledzenia.

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

Sieć

Ograniczanie fingerprintingu w informacjach w nagłówku Accept-Language

Zmniejsza ilość informacji, które ciąg wartości nagłówka Accept-Language ujawnia w żądaniach HTTP i w navigator.languages. Zamiast wysyłać pełną listę preferowanych języków użytkownika w każdym żądaniu HTTP za pomocą nagłówka Accept-Language, Chrome wysyła tylko najbardziej preferowany język użytkownika.

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

Losowe przydzielanie portów TCP w systemie Windows

Wprowadzenie tej funkcji umożliwia losowanie portów TCP w wersjach systemu Windows (2020 r. lub nowszych), w których nie spodziewamy się problemów ze zbyt szybkim ponownym użyciem poprzednich portów (co powoduje odrzucenie z powodu przekroczenia limitu czasu ponownego użycia portu). Problem szybkiego ponownego wykorzystania portu wynika z problemu urodzinowego, w którym prawdopodobieństwo losowego ponownego wybrania portu, który już był używany, szybko zbiega się do 100% w przypadku każdego nowego wybranego portu w porównaniu z ponownym wykorzystaniem portu w modelu sekwencyjnym.

Śledzenie błędu nr 40744069 | Wpis na ChromeStatus.com

Wyniki

Szybsze blokowanie w tle na Androidzie

Skraca czas zamrażania stron w tle (i powiązanych z nimi procesów roboczych) z 5 minut do 1 minuty na urządzeniach z Androidem.

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

Bezpieczeństwo

Wywoływanie zdarzenia błędu w przypadku zablokowanego przez standard Content Security Policy (CSP) procesu roboczego

Sprawia, że Chrome jest zgodny ze specyfikacją, sprawdzając CSP podczas pobierania i uruchamiając zdarzenie błędu asynchronicznie zamiast zgłaszać wyjątek, gdy skrypt uruchamia „new Worker(url)” lub „new SharedWorker(url)”.

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

WebRTC

Poziom dźwięku dla ramek zakodowanych w RTC

Ta funkcja udostępnia w internecie poziom dźwięku zakodowanej ramki przesyłanej za pomocą RTCPeerConnection i udostępnianej za pomocą przekształcenia zakodowanego WebRTC.

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

Interfejsy Web API

Rozszerzenia zakresu aplikacji internetowej

Dodaje pole scope_extensionspliku manifestu aplikacji internetowej, które umożliwia rozszerzenie zakresu aplikacji internetowych na inne źródła.

Dzięki temu witryny, które kontrolują wiele subdomen i domen najwyższego poziomu, mogą być prezentowane jako jedna aplikacja internetowa.

Wymaga potwierdzenia skojarzenia z aplikacją internetową za pomocą pliku konfiguracyjnego .well-known/web-app-origin-association.

Błąd śledzenia #detail?id=1250011 | Wpis na ChromeStatus.com | Specyfikacja

Wykrywanie typu MIME JSON zgodne ze specyfikacją

Chrome rozpoznaje teraz wszystkie prawidłowe typy MIME JSON zgodnie ze specyfikacją WHATWG mimesniff. Obejmuje to wszystkie typy MIME, których podtyp kończy się na +json, a także application/jsontext/json. Ta zmiana sprawia, że interfejsy API i funkcje internetowe, które korzystają z wykrywania JSON, działają zgodnie ze standardem platformy internetowej i innych przeglądarek.

Wpis na ChromeStatus.com | Specyfikacja

WebGPU core-features-and-limits

core-features-and-limits oznacza, że adapter WebGPU i urządzenie obsługują podstawowe funkcje i limity specyfikacji.

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

Interfejs Crash Reporting API: określ crash-reporting, aby otrzymywać tylko raporty o awariach.

Ta funkcja zapewnia deweloperom otrzymywanie tylko raportów o awariach, ponieważ określa punkt końcowy o nazwie crash-reporting. Domyślnie raporty o awariach są dostarczane do punktu końcowego default, który otrzymuje wiele innych rodzajów raportów oprócz raportów o awariach. Deweloperzy mogą podać osobny adres URL do znanego punktu końcowego o nazwie crash-reporting, aby kierować tam raporty o awariach zamiast do punktu końcowego default.

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

Wersje próbne origin

Prompt API

Interfejs API przeznaczony do interakcji z modelem językowym AI za pomocą tekstu, obrazów i dźwięku. Obsługuje różne zastosowania, od generowania podpisów do obrazów i przeprowadzania wyszukiwań wizualnych po transkrypcję dźwięku, klasyfikację zdarzeń dźwiękowych, generowanie tekstu zgodnie z określonymi instrukcjami oraz wyodrębnianie informacji lub wniosków z tekstu. Obsługuje dane wyjściowe o strukturze, które zapewniają, że odpowiedzi są zgodne z wcześniej zdefiniowanym formatem, zwykle wyrażonym jako schemat JSON. Zwiększa to zgodność odpowiedzi i ułatwia bezproblemową integrację z aplikacjami podrzędnymi, które wymagają standardowych formatów danych wyjściowych.

Ten interfejs API jest też dostępny w rozszerzeniach do Chrome. Ten wpis funkcji śledzi wyświetlenia w internecie. Dostępna jest zasada firmy (GenAILocalFoundationalModelSettings), która umożliwia wyłączenie pobierania modelu bazowego, co spowoduje niedostępność tego interfejsu API.

Origin Trial | Post na blogu o programie Origin Trial | Błąd śledzenia nr 417530643 | Wpis na ChromeStatus.com

Współpracownicy o wydłużonym czasie życia

Do konstruktora SharedWorker dodaliśmy nową opcję extendedLifetime: true. Powoduje to, że współdzielony proces roboczy pozostaje aktywny nawet po zamknięciu wszystkich bieżących klientów. Głównym zastosowaniem jest umożliwienie stronom wykonywania asynchronicznych działań wymagających JavaScriptu po zwolnieniu strony, bez konieczności korzystania z service workera.

Testowanie pochodzenia | Post na blogu o testowaniu pochodzenia | Błąd śledzenia nr 400473072 | Wpis na ChromeStatus.com

Wpis dotyczący skuteczności SoftNavigation

Udostępnia deweloperom stron internetowych (eksperymentalne) heurystyki miękkiej nawigacji za pomocą zarówno PerformanceObserver, jak i osi czasu wydajności.

Ta funkcja raportuje 2 nowe rodzaje danych o skuteczności:

  • soft-navigation w przypadku interakcji użytkownika, które powodują przejście na inną stronę. Definiuje nowy timeOrigin, który pomaga dzielić oś czasu wydajności.
  • interaction-contentful-paint, który raportuje wydajność wczytywania interakcji (nie tylko kolejnego wyrenderowania) i jest używany jako LCP w przypadku miękkiej nawigacji.

Testowanie w wersji próbnej | Post na blogu o testowaniu w wersji próbnej | Błąd śledzenia nr 1338390 | Wpis na ChromeStatus.com | Specyfikacja

Natychmiastowe pośrednictwo w przypadku uwierzytelniania w sieci

Tryb pośredniczenia dla navigator.credentials.get(), który powoduje wyświetlanie użytkownikowi interfejsu logowania w przeglądarce, jeśli przeglądarka od razu zna klucz dostępu lub hasło do witryny. W przeciwnym razie odrzuca żądanie z kodem NotAllowedError, jeśli nie ma dostępnych takich danych logowania. Dzięki temu witryna może uniknąć wyświetlania strony logowania, jeśli przeglądarka może zaoferować wybór danych logowania, które prawdopodobnie zadziałają. Jednocześnie nadal umożliwia ona proces logowania na stronie w przypadku, gdy takich danych nie ma.

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

Atrybut blokowania renderowania przy pełnej liczbie klatek na sekundę

Dodaje do atrybutów blokujących nowy token blokujący renderowanie w pełnej liczbie klatek na sekundę. Gdy moduł renderujący jest zablokowany za pomocą tokena pełnej liczby klatek, będzie działać z mniejszą liczbą klatek, aby zarezerwować więcej zasobów na wczytywanie.

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

Tryb zgodności WebGPU

Dodaje opcjonalny, lekko ograniczony podzbiór interfejsu WebGPU API, który może uruchamiać starsze interfejsy API grafiki, takie jak OpenGL i Direct3D11. Wybierając ten tryb i przestrzegając jego ograniczeń, deweloperzy mogą zwiększyć zasięg swoich aplikacji WebGPU, aby docierać do wielu starszych urządzeń, które nie mają nowoczesnych, jawnych interfejsów API grafiki wymaganych przez podstawową wersję WebGPU.

Testowanie źródła | Błąd śledzenia nr 40266903 | Wpis na ChromeStatus.com | Specyfikacja

Wycofania i usunięcia

Przestań wysyłać nagłówek Purpose: prefetch z wstępnego pobierania i wstępnego renderowania

Teraz, gdy pobieranie z wyprzedzeniem i renderowanie wstępne korzystają z nagłówka Sec-Purpose, usuniemy starszy nagłówek Purpose: prefetch, który jest nadal przekazywany. Będzie to ukryte za flagą funkcji lub wyłącznikiem, aby zapobiec problemom z kompatybilnością.

Będzie to dotyczyć wstępnego pobierania i wstępnego renderowania zgodnie z regułami spekulacyjnymi, <link rel=prefetch> i niestandardowej funkcji <link rel=prerender> w Chrome.

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

Usunięcie obsługi systemu macOS 11

Chrome 138 to ostatnia wersja obsługująca system macOS 11. Od Chrome w wersji 139 system macOS 11 nie jest obsługiwany.

Na komputerach Mac z systemem macOS 11 Chrome będzie nadal działać i wyświetlać pasek informacyjny z ostrzeżeniem, ale nie będzie już aktualizowany. Aby zaktualizować Chrome, musisz zaktualizować komputer do obsługiwanej wersji macOS.

W przypadku nowych instalacji od wersji Chrome 139 wymagany będzie system macOS 12 lub nowszy.

Wpis na ChromeStatus.com

Usuwanie automatycznego wykrywania zestawu znaków ISO-2022-JP w HTML

Wykryto znane problemy z bezpieczeństwem związane z automatycznym wykrywaniem zestawu znaków w przypadku ISO-2022-JP. Ze względu na bardzo niskie wykorzystanie i brak obsługi automatycznego wykrywania ISO-2022-JP w Safari obsługa została usunięta z Chrome 139.

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