Chrome 139 w wersji beta

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 dodaje 6 nowych funkcji CSS i interfejsu.

Zwarcia var()attr()

Jeśli nie używasz wartości zastępczej, funkcje var()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--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 gdy była ona animowana, domyślne miganie kursora zakłócało animację. 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, oprócz istniejącego border-radius, określając kształt lub krzywiznę narożnika. Umożliwia to tworzenie kształtów takich jak zaokrąglone kwadraty, wycięcia i wklęsłości 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, ale 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, wygładzaniem 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ę nowego 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 width i height jako atrybutów prezentacji w zagnieżdżonych elementach <svg> za pomocą znaczników SVG 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 DOM JavaScriptu, 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 zamykaniu. 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 API poleceń wywołujących deklaratywnych.

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.

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

Dodaje dodatkowy podpis kryptograficzny do asercji bezpiecznej płatności i tworzenia certyfikatów. 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.

Bezpieczne potwierdzanie 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 powią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 wysokim priorytecie, gdy są oni dostępni jako miejsca docelowe zakotwiczenia. Kandydaci o najwyższym priorytecie to obecnie wyróżniony element, który można edytować, oraz wyróżnienia na stronie. Może to pogorszyć komfort użytkownika, jeśli duże edytowalne pole tekstowe, które jest aktywne, zawiera treści zmienione poza ekranem (w konsekwencji kursor zostanie przesunięty). Ta poprawka zmienia algorytm: zamiast wybierać kandydata o najwyższym priorytecie jako elementu 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 zwiększa wydajność i szybkość reakcji aplikacji internetowych korzystających z SVG.

Interfejs Web Speech API na urządzeniu

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 przełączają grupę kontekstu przeglądania.

Wartość właściwości window.name jest obecnie zachowywana przez cały okres 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. Powinna to być zmiana o niskim ryzyku, ponieważ wyszukiwanie kontekstu przeglądania według nazwy już nie działa, jeśli znajduje się on w innej grupie kontekstów przeglądania, więc nazwa nie jest w praktyce przydatna.

Zasady Enterprise: ClearWindowNameCrossSiteBrowsing (przestaną działać w Chrome 142).

Rozszerzenia zakresu aplikacji internetowej

Dodaje pole manifestu aplikacji internetowej "scope_extensions", które umożliwia aplikacjom internetowym rozszerzenie zakresu na inne źródła.

Umożliwia prezentowanie witryn, które kontrolują wiele subdomen i domen najwyższego poziomu, jako jednej aplikacji internetowej. Wymaga potwierdzenia powiązania z aplikacją internetową przez wymienione źródła 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 zgodnie ze specyfikacją WHATWG mimesniff. Obejmuje to każdy typ MIME, którego podtyp kończy się na +json, a także tradycyjne typy application/jsontext/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 przypadku którego wcześniej prawidłowe typy MIME JSON, takie jak text/html+jsonimage/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 wkładów do 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 fingerprintingu w informacjach w nagłówku Accept-Language

Zmniejsza ilość informacji, które ciąg wartości nagłówka Accept-Language udostępnia 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 ograniczymy informacje w nagłówku HTTP, a w przyszłości zmniejszymy liczbę powiązanych getterów JavaScript navigator.languages.

Wywoływanie zdarzenia błędu zamiast zgłaszania wyjątku w przypadku zablokowanego przez CSP instancji roboczej

Gdy standard Content Security Policy (CSP) blokuje skrypt, Chrome obecnie zgłasza błąd SecurityError z konstruktora Worker i SharedWorker. Specyfikacja wymaga, aby w ramach pobierania sprawdzano CSP i asynchronicznie uruchamiano zdarzenia błędów zamiast zgłaszać wyjątek, gdy skrypt uruchamia new Worker(url) lub new SharedWorker(url). Ta zmiana sprawia, że specyfikacja Chrome jest zgodna z wymaganiami: nie zgłasza wyjątku w konstruktorze i asynchronicznie wywołuje zdarzenia błędów.

Poziom dźwięku dla zakodowanych ramek 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 wyszukiwania wizualnego 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 ustrukturyzowane dane wyjściowe, 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 płynną integrację z aplikacjami podrzędnymi, które wymagają standardowych formatów 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

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. Wybierają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 parametru "compatibility" featureLevel podczas wywoływania funkcji 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 jest już objęty okresem 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ć i wyświetlać 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.

Usunięcie 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.