Chrome 138

Data wprowadzenia wersji stabilnej: 24 czerwca 2025 r.

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

CSS i interfejs

Funkcje związane ze znakiem abs()sign() obliczają różne funkcje związane ze znakiem argumentu.

Funkcja abs(A) zawiera jedno obliczenie A i zwraca wartość bezwzględną A w tym samym typie co dane wejściowe: jeśli wartość liczbowa A jest dodatnia lub wynosi 0⁺, zwraca A; w przeciwnym razie zwraca -1 * A.

Funkcja sign(A) zawiera jedno obliczenie A i zwraca -1, jeśli wartość liczbowa A jest ujemna, +1, jeśli wartość liczbowa A jest dodatnia, 0⁺, jeśli wartość liczbowa A wynosi 0⁺, oraz 0⁻, jeśli wartość liczbowa A wynosi 0⁻. Typ zwracany to <number>, który jest zgodny z typem obliczenia wejściowego.

Dokumentacja MDN:abs() | Błąd śledzenia nr 40253181 | Wpis na ChromeStatus.com | Specyfikacja

Notacja funkcyjna postępu interpolacji: funkcja CSS progress()

Notacja funkcyjna progress() zwraca wartość <number> reprezentującą pozycję jednego obliczenia (wartość postępu) między dwoma innymi obliczeniami (wartość początkową i końcową postępu). Funkcja progress() jest funkcją matematyczną.

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

CSS sibling-index() i sibling-count()

Funkcje sibling-index()sibling-count() mogą być używane jako liczby całkowite w wartościach właściwości CSS, aby określać styl elementów na podstawie ich pozycji wśród elementów równorzędnych lub łącznej liczby elementów równorzędnych. Tych funkcji można używać bezpośrednio jako wartości całkowitych, ale ciekawiej jest używać ich w calc()wyrażeniach.

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

Słowo kluczowe rozmiaru CSS stretch

Słowo kluczowe dla właściwości rozmiaru CSS (np. widthheight), które umożliwia elementom rozszerzanie się tak, aby dokładnie wypełniały dostępną przestrzeń w bloku zawierającym. Jest podobna do wartości „100%”, z tym że wynikowy rozmiar jest stosowany do pola marginesu elementu, a nie do pola wskazanego przez box-sizing. Użycie tego słowa kluczowego pozwala elementowi zachować marginesy, a jednocześnie być tak dużym, jak to możliwe. Wersja bez prefiksu -webkit-fill-available.

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

Zmienna środowiskowa CSS dla skali czcionki na poziomie systemu operacyjnego

Udostępnia preferowaną skalę czcionki użytkownika w CSS. Bez tego strona nie może wykryć, czy użytkownik zmienił preferowany rozmiar czcionki w ustawieniach systemu operacyjnego. Ta zmienna środowiskowa CSS będzie odzwierciedlać skalę wybraną przez użytkownika.

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

Urządzenia

Web Serial przez Bluetooth na Androidzie

Ta funkcja umożliwia stronom internetowym i aplikacjom internetowym łączenie się z portami szeregowymi przez Bluetooth na urządzeniach z Androidem.

Chrome na Androidzie obsługuje teraz interfejs Web Serial API przez Bluetooth RFCOMM. Obecne zasady dla przedsiębiorstw (DefaultSerialGuardSetting, SerialAllowAllPortsForUrls, SerialAllowUsbDevicesForUrls, SerialAskForUrlsSerialBlockedForUrls) na innych platformach są włączone w przypadku Androida w stanach future_on. Po włączeniu tej funkcji wszystkie zasady z wyjątkiem SerialAllowUsbDevicesForUrls zostaną włączone. SerialAllowUsbDevicesForUrls zostanie włączona w przyszłości po tym, jak Android zapewni obsługę portów szeregowych na poziomie systemu.

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

Viewport Segments Enumeration API

Interfejs Viewport Segments API umożliwia programistom dostosowywanie układu stron internetowych pod kątem urządzeń składanych. Segmenty widocznego obszaru określają położenie i wymiary logicznie oddzielonego regionu widocznego obszaru. Segmenty obszaru wyświetlania są tworzone, gdy obszar wyświetlania jest dzielony przez co najmniej 1 element sprzętowy (np. zagięcie lub zawias między oddzielnymi wyświetlaczami), który działa jako separator. Segmenty to obszary obszaru wyświetlania, które deweloper może traktować jako logicznie odrębne.

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

JavaScript

Zaktualizuj QuotaExceededError do interfejsu pochodnego DOMException

Wcześniej, gdy platforma internetowa chciała Cię poinformować o przekroczeniu limitu, używała zdarzenia DOMException z właściwością name ustawioną na wartość QuotaExceededError. Nie pozwala to jednak na przekazywanie dodatkowych informacji.

Proponuje to usunięcie „QuotaExceededError” z listy wbudowanych nazw DOMException i zamiast tego utworzenie nazwy klasy QuotaExceededError z listy wbudowanych nazw DOMException oraz dodanie opcjonalnych właściwości quotarequested. Proponujemy, aby wszystkie specyfikacje, które zgłaszają błąd „QuotaExceededError”DOMException, były uaktualniane tak, aby zgłaszały błądQuotaExceededError. Obecnie takie specyfikacje pozostawiają właściwości quotarequested na domyślnej wartości null, ale w przyszłości mogą zostać rozszerzone o te dane, jeśli będą przydatne w danym przypadku (i nie będą np. naruszać prywatności).

Wpis na ChromeStatus.com | Specyfikacja

Interfejsy Web API

Translator API

Interfejs JavaScript API, który udostępnia funkcje tłumaczenia językowego na stronach internetowych. Przeglądarki coraz częściej oferują użytkownikom tłumaczenie języka. Takie możliwości tłumaczenia mogą być przydatne również dla deweloperów stron internetowych. Jest to szczególnie ważne, gdy wbudowane funkcje tłumaczenia przeglądarki nie są wystarczające. Dostępna jest zasada przedsiębiorstwa (GenAILocalFoundationalModelSettings), która umożliwia wyłączenie pobierania modelu bazowego, co spowoduje niedostępność tego interfejsu API.

MDN Docs | Błąd śledzenia nr 322229993 | Wpis na ChromeStatus.com | Specyfikacja

Language Detector API

Interfejs JavaScript API do wykrywania języka tekstu z poziomami ufności.

Ważnym uzupełnieniem tłumaczenia jest wykrywanie języka. Można to połączyć z tłumaczeniem, np. przyjmować dane wejściowe od użytkownika w nieznanym języku i tłumaczyć je na określony język docelowy. Przeglądarki często mają już funkcje wykrywania języka, a my chcemy udostępnić je deweloperom stron internetowych za pomocą interfejsu JavaScript API, który będzie uzupełniać interfejs Translation API. Dostępna jest zasada dla przedsiębiorstw (GenAILocalFoundationalModelSettings), która umożliwia wyłączenie pobierania modelu bazowego, co spowoduje niedostępność tego interfejsu API.

MDN Docs | Wpis na ChromeStatus.com | Specyfikacja

Summarizer API

Summarizer API to interfejs JavaScript API służący do generowania podsumowań tekstu wejściowego na podstawie modelu językowego AI. Przeglądarki i systemy operacyjne coraz częściej mają uzyskiwać dostęp do modelu językowego. Udostępniając ten wbudowany model, unikamy sytuacji, w której każda witryna musi pobierać własny model językowy o rozmiarze wielu gigabajtów lub wysyłać tekst wejściowy do interfejsów API innych firm. Interfejs API do podsumowywania udostępnia interfejs API wysokiego poziomu do komunikacji z modelem językowym w celu podsumowywania danych wejściowych w różnych przypadkach użycia (GitHub) w sposób niezależny od konkretnego modelu językowego. Dostępne są zasady firmyGenAILocalFoundationalModelSettings, które umożliwiają wyłączenie pobierania modelu bazowego, co spowoduje niedostępność tego interfejsu API.

MDN Docs | Błąd śledzenia nr 351744634 | Wpis na ChromeStatus.com | Specyfikacja

Znak ucieczki < i > w atrybutach podczas serializacji

Podczas serializacji wartości atrybutów należy stosować znaki ucieczki dla znaków < i >.

Zmniejsza to ryzyko ataków XSS polegających na mutacji, które występują, gdy wartość atrybutu jest interpretowana jako token tagu otwierającego po serializacji i ponownym przeanalizowaniu.

Wpis na ChromeStatus.com | Specyfikacja

Crash Reporting API: is_top_levelvisibility_state

Ta funkcja dodaje do treści interfejsu API do raportowania o awariach pola tekstowe is_top_levelvisibility_state, które są wysyłane do domyślnego punktu końcowego raportowania w przypadku raportów o awariach.

Wpis na ChromeStatus.com | Specyfikacja

Uruchamianie zdarzenia pushsubscriptionchange po ponownej subskrypcji

W usługach Service Worker wywołuj zdarzenie pushsubscriptionchange, gdy w przypadku pochodzenia, dla którego w przeszłości istniała subskrypcja push, ale została ona cofnięta z powodu zmiany uprawnień (z przyznanych na odrzucone lub domyślne), ponownie przyznano uprawnienia do wysyłania powiadomień.

Wydarzenie zostanie wywołane z pustymi polami oldSubscription i newSubscription.

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

Multimedia

Dodanie do WebCodecs obsługi metadanych orientacji klatki wideo

Wprowadza wartości rotation: intflip: bool do różnych interfejsów związanych z wideo w WebCodecs, aby deweloperzy mogli pracować ze źródłami klatek, które mają orientację (np. kamery na Androidzie, niektóre media).

Interfejs VideoFrame zwiększa możliwość tworzenia VideoFrames z dowolnym obrotem i odbiciem lustrzanym, a także udostępnia dostęp do tych informacji w obiekcie VideoFrame.

Obiekt VideoDecoderConfig zyskuje pola obrotu i odwrócenia, które są automatycznie emitowane w dekodowanych obiektach VideoFrame.

Klasa VideoEncoder zyskuje mechanizmy przekazywania informacji o obrocie i odbiciu z encode() do sygnału VideoDecoderConfig emitowanego w ramach EncodedVideoChunkMetadata. Jeśli funkcja encode() zostanie wywołana w przypadku klatek o różnych orientacjach, zostanie zgłoszony wyjątek niekrytyczny. configure() można użyć do zresetowania dozwolonej orientacji.

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

Wyniki

Dodaje prefetchCache i prerenderCache do nagłówka Clear-Site-Data

2 nowe wartości nagłówka Clear-Site-Data, które pomagają deweloperom kierować reklamy na wyczyszczenie pamięci podręcznej wstępnego renderowania i wstępnego pobierania: "prefetchCache""prerenderCache".

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

Reguły spekulacyjne: pole target_hint

Rozszerza składnię reguł spekulacyjnych, aby umożliwić programistom określanie pola target_hint.

To pole zawiera wskazówkę dotyczącą docelowego obiektu, w którym można nawigować, a w którym ostatecznie zostanie aktywowana wstępnie wyrenderowana strona. Na przykład, gdy _blank jest określony jako wskazówka, wstępnie wyrenderowana strona może zostać aktywowana w przypadku strony otwartej przez window.open(). To pole nie ma wpływu na wstępne pobieranie.

Specyfikacja dopuszcza w tym polu dowolne ciągi znaków, które są prawidłowe jako nazwa lokalizacji docelowej lub słowo kluczowe, ale ta wersja obsługuje tylko ciągi znaków "_self" lub "_blank". Jeśli wskazówka nie zostanie podana, będzie traktowana tak, jakby podano wartość "_self".

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

Bezpieczeństwo

Zasady dotyczące integralności skryptów

Mechanizm sprawdzania integralności zasobów (SRI) umożliwia deweloperom upewnienie się, że wczytywane zasoby są rzeczywiście tymi, które chcą wczytać. Obecnie nie ma jednak sposobu, aby mieć pewność, że wszystkie skrypty dewelopera są weryfikowane za pomocą SRI.

Nagłówek Integrity-Policy umożliwia deweloperom potwierdzenie, że każdy zasób danego typu musi być sprawdzony pod kątem integralności. Jeśli zasób tego typu będzie próbowany wczytać bez metadanych dotyczących integralności, próba ta zakończy się niepowodzeniem i wygeneruje raport o naruszeniu.

Wpis na ChromeStatus.com | Specyfikacja

Skrypt service worker

Obsługa funkcji ServiceWorker w przypadku pobierania z wyprzedzeniem przez funkcję Speculation Rules

Ta funkcja umożliwia pobieranie z wyprzedzeniem kontrolowane przez funkcję ServiceWorker, czyli pobieranie z wyprzedzeniem w ramach reguł spekulacyjnych stron z adresów URL kontrolowanych przez funkcję ServiceWorker. Wcześniej pobieranie z wyprzedzeniem było anulowane po wykryciu skryptu service worker, który steruje stroną. W związku z tym kolejne przejście do miejsca docelowego pobierania z wyprzedzeniem było obsługiwane przez ścieżkę bez pobierania z wyprzedzeniem. Ta funkcja umożliwi przejście żądania wstępnego pobierania przez moduł obsługi pobierania skryptu service worker, a odpowiedź z przechwyceniem skryptu service worker zostanie zapisana w pamięci podręcznej wstępnego pobierania. W rezultacie kolejne nawigacje będą obsługiwane przez tę pamięć. Aby kontrolować tę funkcję, użyj zasady firmowej PrefetchWithServiceWorkerEnabled.

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

Wycofania i usunięcia

WebGPU: wycofanie atrybutu GPUAdapter isFallbackAdapter

Wycofuje atrybut logiczny GPUAdapter isFallbackAdapter z WebGPU, który jest zbędny w porównaniu z atrybutem logicznym GPUAdapterInfo isFallbackAdapter.

Nadchodzące usunięcie jest niewielką zmianą powodującą niezgodność, ponieważ w żadnej przeglądarce nie zaimplementowano jeszcze obsługi adapterów rezerwowych, co powoduje, że atrybuty isFallbackAdapter zawsze zwracają wartość fałszywą.

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

Wycofanie asynchronicznego usuwania zakresu w przypadku rozszerzeń Media Source Extensions

Standard Media Source już dawno został zmieniony, aby uniemożliwić niejednoznacznie zdefiniowane zachowanie związane z asynchronicznym usuwaniem zakresu:

  • SourceBuffer.abort() nie przerywa już operacji SourceBuffer.remove().
  • Ustawienie MediaSource.duration nie może już obcinać aktualnie buforowanych multimediów.

W obu tych przypadkach będą teraz zgłaszane wyjątki.

Przeglądarki Safari i Firefox od dawna obsługują to zachowanie, a Chromium to ostatnia przeglądarka, która nadal działa w stary sposób. Z liczników wynika, że około 0,001–0,005% wczytań strony korzysta z wycofanego działania. Jeśli witryna napotka ten problem, odtwarzanie może zostać przerwane.

Liczba przypadków anulowania usuwania za pomocą abort() rośnie, dlatego warto rozwiązać ten problem, zanim pojawi się więcej niezgodnych zastosowań.

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