Data publikacji: 25 czerwca 2025 r.
O ile nie zaznaczono inaczej, poniższe zmiany dotyczą najnowszej wersji beta Chrome na Androida, ChromeOS, Linuxa, macOS i Windowsa. Więcej informacji o funkcjach wymienionych poniżej znajdziesz w podanych linkach lub na liście na stronie ChromeStatus.com. Chrome 139 jest w wersji beta od 25 czerwca 2025 r. Najnowszą wersję możesz pobrać na Google.com na komputer lub w Sklepie Google Play na Androida.
CSS
Ta wersja zawiera 6 nowych funkcji CSS i interfejsu.
Zwarcie var()
i attr()
Jeśli nie używasz wartości zastępczej, funkcje var()
i attr()
obliczają wynik bez sprawdzania, czy w tej wartości zastępczej nie ma cykli. Poniższy kod CSS działa, ponieważ istnieją elementy --green
i --blue
.
--green: green;
--blue: blue;
--a: var(--green, var(--b));
--b: var(--blue, var(--a));
Właściwość CSS caret-animation
Chrome obsługiwał już animację właściwości caret-color
, ale podczas animacji domyślne miganie kursora przeszkadzało w animacji. Właściwość CSS caret-animation
ma 2 możliwe wartości: auto
i manual
, gdzie auto
oznacza domyślne ustawienie przeglądarki (miganie), a manual
oznacza, że animacją kursora steruje programista. Usługa umożliwia też użytkownikom wyłączenie migania za pomocą arkusza stylów użytkownika.
Kształtowanie narożników
Włącz stylizację narożników na podstawie istniejącego elementu border-radius
, określając kształt lub zaokrąglenie narożnika. 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. Więcej informacji znajdziesz w tym poście Amita Sheena.
Kontynuuj przejścia 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, a nie zmienisz właściwości, które mają aktywne animacje przejścia, te animacje będą kontynuowane z wcześniej określonym czasem trwania, funkcją przejścia itp. Blink 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 czas trwania przejścia. Dzięki tej funkcji blink będzie zgodny z webkit i gecko, co pozwoli na dalsze działanie aktywnych przejść, chyba że zmieni się wartość właściwości, co spowoduje aktualizację przejścia.
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.
@function --negate(--value) {
result: calc(var(--value) * -1);
}
div {
--gap: 1em;
margin-top: --negate(var(--gap));
}
Obsługa atrybutów prezentacji width
i height
w zagnieżdżonych elementach <svg>
Obsługuje stosowanie atrybutów prezentacji width
i height
w przypadku zagnieżdżonych elementów <svg>
zarówno za pomocą znaczników SVG, jak i CSS. Takie podwójne podejście zapewnia jeszcze większą elastyczność, umożliwiając wydajniejsze zarządzanie elementami SVG i ich stylizowanie w złożonych projektach.
Interfejsy Web API
Plik manifestu aplikacji internetowej: określ, czy aplikacja kwalifikuje się do aktualizacji, adresy URL ikon to Cache-Control: immutable
Określ w specyfikacji pliku manifestu algorytm kwalifikowania do aktualizacji. Dzięki temu proces aktualizacji będzie bardziej deterministyczny i przewidywalny, co da deweloperom większą kontrolę nad tym, czy (i kiedy) aktualizacje powinny być stosowane w przypadku istniejących instalacji. Pozwoli to też usunąć „ograniczenie sprawdzania aktualizacji”, które obecnie muszą stosować agenci użytkownika, aby uniknąć marnowania zasobów sieciowych.
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.
Zezwalanie na większą liczbę znaków w interfejsach DOM API JavaScriptu
Parser HTML zawsze (lub od dawna) zezwalał na używanie w elementach i atrybutach wielu różnych prawidłowych znaków i nazw, ale interfejsy API DOM JavaScript, które tworzą te same elementy i atrybuty, są bardziej rygorystyczne i nie pasują do parsera. Ta zmiana upraszcza weryfikację interfejsów JavaScript DOM API, aby była zgodna z parserem HTML.
request-close
polecenie wywołujące
Elementy okna dialogowego można zamykać na różne sposoby, a czasami deweloperzy chcą mieć możliwość zapobiegania zamknięciu. Aby to osiągnąć, okna dialogowe wywołują zdarzenie anulowania. Początkowo zdarzenie to było wywoływane tylko przez żądanie zamknięcia (np. naciśnięcie klawisza Esc
). Niedawno dodano funkcję JS requestClose()
, która również wywołuje zdarzenie anulowania. Polecenie request-close
udostępnia tę nową funkcję w interfejsie Declarative Invoker Commands API.
WebGPU: obsługa tekstur 3D w przypadku formatów skompresowanych BC i ASTC
Funkcje texture-compression-bc-sliced-3d
i texture-compression-astc-sliced-3d
WebGPU dodają odpowiednio obsługę tekstur 3D w przypadku skompresowanych formatów BC i ASTC.
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 na różnych urządzeniach. Ułatwia to programistom spełnianie wymagań dotyczących powiązania urządzenia z transakcjami płatniczymi.
Potwierdzenie bezpiecznej płatności: odświeżenie UX
Aktualizuje elementy interfejsu użytkownika w oknie SPC w Chrome na Androidzie. Oprócz prezentacji UX dodajemy te elementy:
- Umożliwia sprzedawcom podanie opcjonalnej listy logo podmiotów płatniczych związanych z płatnością, które będą wyświetlane.
- Zwracanie sprzedawcy różnych stanów wyjściowych w zależności od tego, czy użytkownik chce kontynuować transakcję bez SPC, czy ją anulować.
- Dodaje do instrumentu płatniczego nowe pole etykiety szczegółów płatności, dzięki czemu tekst jest wyświetlany w 2 wierszach.
WebGPU core-features-and-limits
core-features-and-limits
oznacza, że adapter i urządzenie WebGPU obsługują podstawowe funkcje i limity specyfikacji.
Poprawka dotycząca priorytetu zakotwiczenia przewijania
Obecnie algorytm zakotwiczania przewijania wybiera kandydatów o wyższym priorytecie, gdy są oni dostępni jako miejsca docelowe zakotwiczenia. Kandydaci o najwyższym priorytecie to obecnie zaznaczony element edytowalny i wyróżnienia w funkcji Znajdź na stronie. Może to pogorszyć komfort użytkownika, jeśli duże, aktywne pole edycji treści ma zawartość, która została zmieniona poza ekranem (w konsekwencji kursor zostanie przesunięty). Ta poprawka zmienia algorytm: zamiast wybierać kandydata o najwyższym priorytecie jako element zakotwiczenia, użyj go jako zakresu lub elementu głównego zwykłego algorytmu wyboru elementu zakotwiczenia, który wybiera element znajdujący się najgłębiej na ekranie.
Obsługa atrybutu async
w przypadku elementów 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 czas reakcji aplikacji internetowych korzystających z SVG.
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.
Wyczyść window.name
w przypadku nawigacji między witrynami, które powodują zmianę grupy kontekstu przeglądania.
Wartość właściwości window.name
jest obecnie zachowywana przez cały czas istnienia karty, nawet w przypadku nawigacji, która przełącza grupy kontekstów przeglądania. Może to prowadzić do wycieku informacji i potencjalnie być wykorzystywane jako wektor śledzenia.
Wyczyszczenie usługi window.name
rozwiązuje ten problem. Nie powinno to stanowić dużego ryzyka, ponieważ wyszukiwanie kontekstu przeglądania według nazwy nie działa już, jeśli znajduje się on w innej grupie kontekstów przeglądania, więc nazwa nie jest w praktyce przydatna.
Zasada Enterprise Policy: ClearWindowNameCrossSiteBrowsing
(przestanie działać w Chrome 142).
Rozszerzenia zakresu aplikacji internetowej
Dodaje pole manifestu "scope_extensions"
aplikacji internetowej, które umożliwia rozszerzenie zakresu aplikacji internetowych na inne źródła.
Umożliwia to prezentowanie witryn, które kontrolują wiele subdomen i domen najwyższego poziomu, jako jednej aplikacji internetowej. Wymaga potwierdzenia powiązania z aplikacją internetową za pomocą pliku konfiguracyjnego .well-known/web-app-origin-association
.
Wykrywanie typu MIME JSON zgodne ze specyfikacją
Chromium rozpoznaje teraz wszystkie prawidłowe typy MIME JSON zdefiniowane w specyfikacji WHATWG
mimesniff. Obejmuje to każdy typ MIME, którego podtyp kończy się na +json
, a także tradycyjne typy application/json
i text/json
. Ta zmiana zapewnia, że interfejsy API i funkcje internetowe korzystające z wykrywania JSON będą działać zgodnie ze standardem platformy internetowej i innych przeglądarek. Głównym powodem tej zmiany jest naprawienie działania importu modułu JSON, w którym wcześniej prawidłowe typy MIME JSON, takie jak text/html+json
i image/svg+json
, nie wczytywały się jako moduły.
Interfejs Private Aggregation API: zbiorcze raportowanie błędów
Podczas korzystania z interfejsu Private Aggregation API może wystąpić wiele różnych błędów. Na przykład budżet prywatności może się wyczerpać, co uniemożliwi dalsze przesyłanie histogramów. Ta funkcja umożliwia deweloperom rejestrowanie danych histogramu, które powinny być wysyłane tylko wtedy, gdy wystąpi określony typ błędu. Ta funkcja umożliwia pomiar częstotliwości występowania warunków błędu i dzielenie tych pomiarów na odpowiednie wymiary określone przez dewelopera (np. wersja wdrożonego kodu). Błędy mogą zawierać informacje z różnych witryn, dlatego nie możemy po prostu udostępniać ich na stronie użytkownikom, którzy nie korzystają z plików cookie innych firm. Zamiast tego ta funkcja ponownie wykorzystuje istniejące zagregowane, zaszumione potoki raportowania za pomocą usługi do agregacji.
Interfejs API do raportowania awarii: określ raportowanie awarii, 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
.
Ograniczanie zbierania odcisków cyfrowych 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 z nagłówkiem Accept-Language
. Teraz wysyłamy preferowany język użytkownika w nagłówku Accept-Language
. Aby zminimalizować ryzyko związane z kompatybilnością, w początkowej fazie wprowadzania zmniejszymy ilość informacji w nagłówku HTTP. W przyszłości zmniejszymy też liczbę powiązanych getterów JavaScript navigator.languages
.
Zamiast zgłaszać błąd, wywołuj zdarzenie błędu w przypadku zablokowanego procesu roboczego CSP
Gdy standard Content Security Policy (CSP) blokuje skrypt, Chrome obecnie zgłasza błąd SecurityError
z konstruktora Worker i SharedWorker. Specyfikacja wymaga, aby CSP była sprawdzana w ramach pobierania i asynchronicznie uruchamiała zdarzenia błędów zamiast zgłaszać wyjątek, gdy skrypt uruchamia new
Worker(url)
lub new SharedWorker(url)
. Ta zmiana sprawia, że Chrome jest zgodny ze specyfikacją: nie zgłasza błędu podczas konstruktora i asynchronicznie wywołuje zdarzenia błędów.
Poziom dźwięku w ramkach zakodowanych w RTC
Udostępnia w internecie poziom dźwięku zakodowanej ramki przesyłanej za pomocą RTCPeerConnection
i udostępnianej przy użyciu WebRTC Encoded Transform.
Nowe wersje próbne origin
W Chrome 139 możesz wziąć udział w tych nowych eksperymentach z źródłem:
Prompt API
Prompt API służy 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 statystyk z tekstu. Obsługuje dane wyjściowe w formacie strukturalnym, 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 test origin dotyczy wyświetlania w internecie.
Atrybut blokowania renderowania przy pełnej liczbie klatek na sekundę
Proponujemy dodanie do atrybutów blokowania nowego tokena blokującego renderowanie full-frame-rate. Gdy moduł renderujący jest zablokowany przez token pełnej liczby klatek, będzie działać z mniejszą liczbą klatek, aby zarezerwować więcej zasobów na wczytywanie.
Tryb zgodności WebGPU
Dodaje opcjonalny, lekko ograniczony podzbiór interfejsu WebGPU API, który może uruchamiać starsze interfejsy graficzne, takie jak OpenGL i Direct3D11. Włączając ten tryb i przestrzegając jego ograniczeń, deweloperzy mogą rozszerzyć zasięg swoich aplikacji WebGPU na wiele starszych urządzeń, które nie mają nowoczesnych, jawnych interfejsów API grafiki wymaganych przez podstawową wersję 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, więc powstałe aplikacje są też prawidłowe aplikacje WebGPU Core i będą działać nawet w przypadku agentów użytkownika, którzy nie obsługują trybu zgodności.
Wycofania i usunięcia
Ta wersja Chrome wprowadza wycofania i usunięcia wymienione poniżej. Listy planowanych wycofań, bieżących wycofań i poprzednich usunięć znajdziesz na stronie ChromeStatus.com.
Ta wersja Chrome usuwa 2 funkcje.
Usunięcie obsługi systemu macOS 11
Chrome 138 to ostatnia wersja obsługująca system macOS 11. Od Chrome 139 system macOS 11 nie jest obsługiwany, ponieważ nie mieści się w okresie wsparcia Apple. Korzystanie z obsługiwanego systemu operacyjnego jest niezbędne do zachowania bezpieczeństwa. Na komputerach Mac z systemem macOS 11 Chrome będzie nadal działać, wyświetlając pasek informacyjny z ostrzeżeniem, ale nie będzie już aktualizowany. Jeśli użytkownik chce zaktualizować Chrome, musi zaktualizować komputer do obsługiwanej wersji macOS. W przypadku nowych instalacji Chrome w wersji 139 lub nowszej wymagany będzie system macOS 12 lub nowszy.
Usuwanie automatycznego wykrywania zestawu znaków ISO-2022-JP w HTML
W przypadku automatycznego wykrywania zestawu znaków ISO-2022-JP występują znane problemy z bezpieczeństwem. Biorąc pod uwagę bardzo niskie wykorzystanie i fakt, że Safari nie obsługuje automatycznego wykrywania zestawu znaków ISO-2022-JP, Chrome usuwa jego obsługę, aby wyeliminować problemy z bezpieczeństwem.