Data wydania wersji stabilnej: 1 kwietnia 2025 r.
O ile nie zaznaczono inaczej, poniższe zmiany dotyczą wersji 135 przeglądarki Chrome w kanale stabilnym na Androida, ChromeOS, Linuxa, macOS i Windowsa.
HTML i DOM
polecenia wywołującego; atrybuty command i commandfor
Atrybuty command
i commandfor
w elementach <button>
umożliwiają przypisywanie zachowań do przycisków w bardziej dostępny i deklaratywny sposób.
Śledzenie błędu #1490919 | Informacje na stronie ChromeStatus.com | Specyfikacja
Link rel=facilitated-payment
do obsługi płatności push
Dodaje obsługę <link rel="facilitated-payment" href="...">
jako wskazówki, że przeglądarka powinna powiadomić zarejestrowanych klientów płatności o oczekującej płatności push.
Śledzenie błędu #1477049 | Wpis na stronie ChromeStatus.com
CSS
::column
– pseudoelement do karuzeli
Element pseudo ::column
, który umożliwia zastosowanie ograniczonego zestawu stylów do wygenerowanych fragmentów. W szczególności dotyczy to stylów, które nie wpływają na układ, a zatem można je stosować po utworzeniu układu.
Informacja na stronie ChromeStatus.com
::scroll-button()
pseudoelementy
Umożliwia tworzenie interaktywnych przycisków przewijania jako pseudoelementów, na przykład:
.scroller {
overflow: auto;
}
.scroller::scroll-button(inline-start) {
content: "<";
}
.scroller::scroll-button(inline-end) {
content: ">";
}
Te elementy powinny być możliwe do skoncentrowania i działać jak przycisk (w tym w stylach UA). Po aktywacji należy przewinąć ekran w określonym kierunku o określoną odległość. Jeśli przewijanie w tym kierunku jest niemożliwe, te elementy powinny być wyłączone (i stylizowane za pomocą :disabled
). W przeciwnym razie są one włączone (i stylizowane za pomocą :enabled
).
Selektor pozwala definiować przyciski w 4 kierunkach logicznych: block-start
, block-end
, inline-start
, inline-end
, a także w 4 kierunkach fizycznych: up
, down
, left
, right
.
Śledzenie błędu #370067113 | Wpis na stronie ChromeStatus.com | Specyfikacja
::scroll-marker
i ::scroll-marker-group
Dodaje pseudoelementy ::scroll-marker
i ::scroll-marker-group
do przewijanych kontenerów.
Pozwalają one utworzyć zestaw znaczników, które można aktywować, dla wszystkich powiązanych elementów w kontenerze z przewijaniem.
Śledzenie błędu #332396355 | Wpis na stronie ChromeStatus.com | Specyfikacja
Niezmienność w CSS – właściwość interactivity
Właściwość interactivity
określa, czy element i jego potomkowie w płaskim drzewie (w tym ciągi tekstowe) są nieaktywne.
Ustawienie elementu jako nieaktywnego wpływa na to, czy można go ustawić w centrum, edytować, wybrać i wyszukiwać za pomocą funkcji Znajdź na stronie. Ma to również wpływ na to, czy jest widoczne w drzewie ułatwień dostępu.
Przepełnienie logiczne w CSS
Właściwości CSS overflow-inline
i overflow-block
umożliwiają ustawienie przepełnienia w kierunku inline i bloku względem trybu pisania. W trybie poziomego pisania overflow-inline
jest mapowane na overflow-x
, a w trybie pionowego pisania – na overflow-y
.
Śledzenie błędu #41489999 | Wpis na stronie ChromeStatus.com | Specyfikacja
Zapamiętywanie przesunięcia przewijania w przypadku pozycjonowania kotwicy w kodzie CSS
Dodanie obsługi zapamiętanego przesunięcia okna skrótów.
Gdy element ma domyślną kotwicę i jest przywiązany do tej kotwicy z jednej strony oraz do oryginalnego bloku zawierającego z drugiej strony, przy określaniu rozmiaru elementu zostanie uwzględniony przesunięcie przewijania. Dzięki temu możesz wykorzystać całą widoczną przestrzeń (za pomocą position-area
) dla elementu zakotwiczonego, gdy dokument jest przewijany z danym przesunięciem.
Aby uniknąć zmiany układu (zmniejszania lub zwiększania rozmiaru elementu) za każdym razem, gdy dokument jest przewijany (co jest niepożądanym zachowaniem i niekorzystnie wpływa na wydajność), zamiast używania bieżącego przesunięcia będzie używane tak zwane „zapamiętane przesunięcie”. Zapamiętany przesunięcie środka okna jest aktualizowane w tzw. „punkcie ponownego obliczania punktu zaczepienia”, który jest:
- Gdy element jest początkowo wyświetlany.
- Gdy wybrana jest inna opcja pozycji (
position-try-fallbacks
).
Śledzenie błędu #373874012 | Wpis na stronie ChromeStatus.com | Specyfikacja
Funkcja CSS shape()
Funkcja shape()
umożliwia tworzenie elastycznych kształtów w funkcji clip-path
.
Możesz zdefiniować serię czasowników, które są mniej więcej takie same jak czasowniki w path()
, ale akceptują jednostki responsywne (takie jak %
lub vw
), a także dowolne wartości CSS, takie jak właściwości niestandardowe.
Śledzenie błędu 40829059 | Informacje na stronie ChromeStatus.com | Specyfikacja
safe-area-max-inset-*
zmiennych
Ta funkcja dodaje zmienne max-area-safe-inset-*
, które nie ulegają zmianie i reprezentują maksymalną możliwą bezpieczną strefę.
Dzięki temu rozwiązaniu nie trzeba ponownie układać strony w przypadkach, gdy stopka (na przykład) może po prostu przesuwać się wraz ze wzrostem wartości wgłębienia bezpiecznego obszaru, zamiast zmieniać rozmiar.
Śledzenie błędu #391621941 | Wpis na stronie ChromeStatus.com | Specyfikacja
Stylizacja zagnieżdżonych pseudoelementów
Umożliwia stylizowanie pseudoelementów zagnieżdżonych w innych pseudoelementach. Do tej pory określono obsługę tych funkcji:
::before::marker
::after::marker
W przyszłości będziemy obsługiwać ::column::scroll-marker
.
Informacja o błędzie 373478544 | Informacja na stronie ChromeStatus.com | Specyfikacja
Dźwięk i obraz
Dodawanie obsługi MediaStreamTrack do interfejsu Web Speech API
Dodanie obsługi MediaStreamTrack do interfejsu Web Speech API.
Interfejs Web Speech API to standardowy interfejs API, który umożliwia deweloperom wdrażanie rozpoznawania i syntezy mowy na stronach internetowych. Obecnie interfejs Web Speech API używa domyślnego mikrofonu użytkownika jako wejścia audio. Obsługa ścieżki MediaStream umożliwia witrynom korzystanie z interfejsu Web Speech API do dodawania napisów do innych źródeł dźwięku, w tym do ścieżek audio zdalnych.
Internetowe interfejsy API
Tworzenie klienta skryptu service worker i dziedziczenie kontrolera skryptu service worker w przypadku elementu iframe srcdoc
Dokumenty kontekstowe srcdoc nie są obecnie klientami skryptu service worker ani nie są obsługiwane przez skrypt service worker nadrzędnego. Powoduje to pewne rozbieżności (np. raportowanie czasu ładowania zasobów zawiera adresy URL wczytywane przez te dokumenty, ale nie są one przechwytywane przez usługę workera). Ta zmiana ma na celu usunięcie rozbieżności poprzez utworzenie klientów skryptu service worker dla elementów iframe srcdoc i spowodowanie dziedziczenia przez nich kontrolera skryptu service worker nadrzędnego.
Śledzenie błędu #41411856 | Wpis na stronie ChromeStatus.com | Specyfikacja
Odbicie elementu
Ta funkcja umożliwia odzwierciedlanie atrybutów relacji ARIA w IDL jako odwołań do elementów zamiast ciągów znaków DOM.
Umożliwia to implementację atrybutów IDL w interfejsie ARIAMixin z typem Element lub FrozenArray<Element>
, z wyjątkiem ariaOwnsElements
.
Śledzenie błędu #981423 | Wpis na stronie ChromeStatus.com | Specyfikacja
Ramki ograniczone: obsługa danych z automatycznych sygnałów na wielu domenach
Jeśli ramki ograniczone lub ramki iframe URN są wczytywane za pomocą interfejsu API, takiego jak Protected Audience czy Shared Storage, mogą automatycznie wysyłać sygnały raportowania, gdy wystąpi określone zdarzenie (obecnie obsługiwane są tylko sygnały nawigacji najwyższego poziomu). Ta funkcja została wcześniej zaktualizowana, aby umożliwić wysyłanie automatycznych sygnałów na potrzeby dokumentów z różnych źródeł załadowanych w drzewie okna odizolowanego od źródeł, które w przypadku akceptacji mogą wysyłać automatyczne sygnały, ale nadal zachowując ograniczenie, że tylko okna z tych samych źródeł co ładowane przez interfejs API mogą ustawiać dane, które będą wysyłane jako część sygnału. Ta funkcja rozszerza tę funkcjonalność, aby umożliwić dokumentowi w innej domenie ustawienie danych, które będą używane w automatycznym sygnale.
Aby umożliwić to przy zachowaniu prywatności, zarówno dokument głównego zablokowanego elementu ramki, jak i dokument podrzędnego elementu ramki z innego źródła muszą wyraźnie wyrazić zgodę. Ta opcja ma taką samą formę jak inne funkcje FFAR w wielu domenach. W szczególności ramka główna musi wyrazić zgodę za pomocą nagłówka Allow-Fenced-Frame-Automatic-Beacons
, a ramka podrzędna w innej domenie, która ustawia dane, musi wyrazić zgodę za pomocą parametru crossOriginExposed
w wywołaniu do setReportEvent()
.
Float16Array
Dodaje tablicę typu Float16Array
. Podczas zapisywania wartości liczbowych w przypadku instancji Float16Array
są one zaokrąglane do formatu IEEE fp16.
Śledzenie błędu #42203953 | Wpis na stronie ChromeStatus.com | Specyfikacja
Zapobieganie śledzeniu za pomocą HSTS
Ogranicza śledzenie użytkowników przez osoby trzecie za pomocą pamięci podręcznej HSTS.
Ta funkcja zezwala na zmiany HSTS tylko w przypadku elementów nawigacji najwyższego poziomu i blokuje zmiany HSTS w przypadku żądań dotyczących zasobów podrzędnych. Dzięki temu witryny innych firm nie mogą używać pamięci podręcznej HSTS do śledzenia użytkowników w sieci.
Śledzenie błędu 40725781 | Wpis na stronie ChromeStatus.com
NavigateEvent sourceElement
Gdy nawigacja jest inicjowana przez Element (np. przez kliknięcie linku lub przesłanie formularza), elementem inicjującym będzie właściwość sourceElement
w elementach NavigateEvent
.
Śledzenie błędu #40281924 | Wpis na stronie ChromeStatus.com | Specyfikacja
Zmiana nazwy powodu w interfejsie API NotRestoredReasons
Interfejs API NotRestoredReasons zmienia niektóre teksty przyczyn, aby dostosować je do ujednoliconych nazw. Jeśli monitorujesz te przyczyny, możesz zauważyć zmianę w tekstach.
Śledzenie błędu #331754704 | Wpis na stronie ChromeStatus.com | Specyfikacja
Interfejs Observable API
Observables to popularny paradygmat programowania reaktywnego służący do obsługi asynchronicznej strumieniowej transmisji zdarzeń opartych na push. Można je traktować jako obietnicę, ale dla wielu zdarzeń. Ich celem jest realizacja tego, co obietnicę w przypadku wywołań zwrotnych i zagnieżdżania. Oznacza to, że umożliwiają ergonomiczne przetwarzanie zdarzeń poprzez udostępnienie obiektu Observable, który reprezentuje asynchroniczny przepływ zdarzeń.
Możesz subskrybować obiekt, aby otrzymywać zdarzenia w miarę ich pojawiania się, i wywoływać dowolny z jego operatorów lub kombinatorów, aby deklaratywnie opisać przepływ przekształceń, przez które przechodzą zdarzenia. Jest to przeciwieństwo wersji imperatywnej, która często wymaga skomplikowanego zagnieżdżania za pomocą funkcji takich jak addEventListener()
.
Śledzenie błędu #1485981 | Wpis na stronie ChromeStatus.com | Specyfikacja
Usuń ograniczanie wartości setInterval(...)
do >= 1 ms
W wersjach Chrome wcześniejszych niż 135 wartość parametru setInterval
mniejsza niż 1 jest ograniczana do 1. W Chrome 135 to ograniczenie zostało usunięte.
- Przed:
setInterval(..., 0)
= opóźnienie1ms
. - Po:
setInterval(..., 0)
= opóźnienie0ms
.
Śledzenie błędu #41380458 | Wpis na stronie ChromeStatus.com
Zignoruj zmiany w adresie URL klienta Service Workera history.pushState()
Zmień właściwość Client.url
w usługach workera, aby ignorować zmiany adresów URL dokumentów za pomocą funkcji history.pushState()
i innych podobnych interfejsów API historii.
Właściwość Client.url
powinna być adresem URL dokumentu HTML, który ignoruje takie zmiany.
Śledzenie błędu #41337436 | Wpis na stronie ChromeStatus.com | Specyfikacja
Obsługa atrybutów rel
i relList
w przypadku SVGAElement
Interfejs SVGAElement w SVG 2.0 umożliwia manipulowanie elementami <a>
w sposób podobny do elementów kotwicy HTML.
Obsługa atrybutów rel
i relList
zwiększa bezpieczeństwo i prywatność deweloperów.
Takie dopasowanie do elementów kotwicy HTML zapewnia spójność i łatwość użycia w różnych technologiach internetowych.
Śledzenie błędu #40589293 | Wpis na stronie ChromeStatus.com | Specyfikacja
Sygnatury czasowe zakodowanych ramek RTC
Ta funkcja polega na udostępnieniu w internecie niektórych sygnatur czasowych obecnych w ramkach zakodowanych za pomocą WebRTC i przesyłanych za pomocą RTCPeerConnection. Sygnatury czasowe, o których mowa:
- Sygnatura czasowa rejestracji: sygnatura czasowa pierwotnego zarejestrowania klatki.
- Sygnalizowanie sygnatury czasowej: sygnatura czasowa odebrania klatki.
Śledzenie błędu #391114797 | Wpis na stronie ChromeStatus.com | Specyfikacja
Aktualizowanie nagłówków, treści i zasady odnośnika żądania HTTP w przypadku przekierowania CORS
Zaktualizuj żądanie HTTP w przekierowaniu CORS, usuwając nagłówki i treść żądania, jeśli metoda się zmieniła, oraz zaktualizuj zasady dotyczące odesłania. Te aktualizacje żądań są zgodne ze specyfikacją Fetch i odpowiadają działaniom wprowadzonym przez Firefoxa i Safari w celu poprawy zgodności.
Śledzenie błędu #40686262 | Wpis na stronie ChromeStatus.com | Specyfikacja
fetchLater API
fetchLater()
to interfejs JavaScript API do żądania opóźnionego pobierania. Gdy zostanie wywołane w dokumencie, opóźnione żądanie jest umieszczane w kolejce przez przeglądarkę w stanie Oczekujące i będzie wywoływane w ramach najkrótszego z tych warunków:
- Dokument został zniszczony.
- Po upływie czasu określonego przez użytkownika. Ze względu na ochronę prywatności wszystkie oczekujące prośby zostaną wyczyszczone po umieszczeniu dokumentu w bfcache niezależnie od tego, ile czasu zostało.
- Przeglądarka decyduje, że nadszedł czas na wysłanie.
Interfejs API zwraca wartość FetchLaterResult, która zawiera pole logiczne „activated” (aktywowane). Można je zaktualizować, aby określić, czy opóźnione żądanie zostało wysłane. Po wysłaniu przeglądarka zignoruje całą odpowiedź, w tym treść i nagłówki. Nie należy przetwarzać ani aktualizować żadnych danych, ponieważ strona może już nie istnieć.
Pamiętaj, że z punktu widzenia użytkownika interfejsu API dokładny czas wysyłania jest nieznany.
Śledzenie błędu #1465781 | Wpis na stronie ChromeStatus.com | Specyfikacja
highlightsFromPoint API
Interfejs highlightsFromPoint API umożliwia deweloperom interakcję z niestandardowymi wyróżnieniami przez wykrywanie wyróżnień w określonym miejscu w dokumencie. Ta interaktywność jest przydatna w przypadku złożonych funkcji internetowych, w których w modelu Shadow DOM może występować nakładanie się lub współistnienie wielu wyróżnień. Dzięki precyzyjnemu wykrywaniu wyróżnień na podstawie punktów interfejs API umożliwia deweloperom skuteczniejsze zarządzanie dynamicznymi interakcjami z wyróżnieniami niestandardowymi, np. reagowanie na kliknięcia użytkownika lub zdarzenia najechania na wyróżnione obszary, aby wywołać niestandardowe etykiety, menu kontekstowe lub inne interaktywne funkcje.
Śledzenie błędu #365046212 | Wpis na stronie ChromeStatus.com | Specyfikacja
Wersje próbne Origin
Dane uwierzytelniające sesji powiązane z urządzeniem
Sposób, w jaki witryny mogą bezpiecznie powiązać sesję z pojedynczym urządzeniem.
Dzięki temu serwery będą mogły bezpiecznie powiązać sesję z urządzeniem. Przeglądarka będzie okresowo odnawiać sesję zgodnie z żądaniem serwera, przedstawiając potwierdzenie posiadania klucza prywatnego.
Testowanie wersji Origin | Informacja na stronie ChromeStatus.com | Specyfikacja
Wywołujący zainteresowania
Ta funkcja dodaje atrybut interesttarget
do elementów <button>
i <a>
. Atrybut interesttarget
dodaje do elementu zachowania związane z „zainteresowaniem”. Oznacza to, że gdy użytkownik „wykaże zainteresowanie” elementem, zostaną uruchomione działania na elemencie docelowym. Działania mogą obejmować wyświetlanie wyskakujących okienek. Usługa user-agent wykryje, kiedy użytkownik „okazuje zainteresowanie” elementem, np. gdy najedzie na niego kursorem myszy, naciśnie specjalne klawisze na klawiaturze lub przytrzyma element na ekranie dotykowym. Gdy użytkownik wyrazi zainteresowanie lub przestanie je okazywać, w przypadku elementu docelowego zostanie uruchomione zdarzenie InterestEvent
, które w przypadku wyskakujących okienek ma domyślne działanie polegające na wyświetleniu lub ukryciu wyskakującego okienka.
Testowanie wersji próbnej Origin | Śledzenie błędu #326681249 | Wpis na stronie ChromeStatus.com | Specyfikacja
Integralność oparta na podpisie
Ta funkcja zapewnia programistom internetowym mechanizm weryfikacji pochodzenia zasobów, od których zależą, tworząc techniczną podstawę zaufania do zależności witryny. Krótko mówiąc: serwery mogą podpisywać odpowiedzi za pomocą pary kluczy Ed25519, a deweloperzy mogą wymagać od przeglądarki weryfikacji podpisu za pomocą określonego klucza publicznego. Jest to przydatne uzupełnienie dla mechanizmów sprawdzania opartych na adresie URL, które oferuje polityka bezpieczeństwa treści, oraz mechanizmów sprawdzania opartych na treściach, które oferuje integralność zasobów podrzędnych.
Testowanie wersji próbnej Origin | Śledzenie błędu #375224898 | Wpis na stronie ChromeStatus.com | Specyfikacja
Reguły spekulacyjne: pole target_hint
Rozszerza ona składnię reguł spekulacyjnych, aby umożliwić deweloperom określenie pola target_hint.
To pole zawiera wskazówkę wskazującą docelową stronę, na której wstępnie wyrenderowana strona zostanie w końcu aktywowana. Jeśli na przykład jako podpowiedź podano _blank, można aktywować wstępnie wyrenderowaną stronę, która może być nawigowana za pomocą window.open(). To pole nie ma wpływu na pobieranie wstępne.
Specyfikacja pozwala, aby to pole przyjmowało dowolne ciągi znaków, które są prawidłowe jako nazwa docelowa do nawigacji lub jako słowo kluczowe, ale w ramach tej wersji obsługiwane są tylko ciągi "_self"
lub "_blank"
. Jeśli nie podasz podpowiedzi, zostanie ona potraktowana tak, jakby była to wartość "_self"
.
Testowanie wersji próbnej Origin | Śledzenie błędu #40234240 | Wpis na stronie ChromeStatus.com | Specyfikacja
Wycofanie i usunięcie
Usuwanie wycofanej metody navigator.xr.supportsSession
We wrześniu 2019 r., po otrzymaniu opinii od TAG na temat kształtu interfejsu API, w specyfikacji WebXR zastąpiono metodę navigator.xr.supportsSession
metodą navigator.xr.isSessionSupported
. Od tego czasu jest on oznaczony jako wycofany w Chromium, co powoduje wyświetlanie w konsoli ostrzeżenia przekierowującego deweloperów do zaktualizowanego interfejsu API.
Użycie tej funkcji jest bardzo niskie, a wszystkie główne platformy używane do tworzenia treści WebXR zostały zaktualizowane, aby używać nowszej funkcji.
Usuń limit WebGPU maxInterStageShaderComponents
Limit maxInterStageShaderComponents
jest usuwany z powodu następujących czynników:
- Redundancja z poziomem
maxInterStageShaderVariables
: ten limit służy już do podobnego celu, czyli do kontrolowania ilości danych przekazywanych między etapami shadera. - Niewielkie rozbieżności: chociaż istnieją niewielkie różnice w sposobie obliczania tych 2 limitów, są one niewielkie i można skutecznie zarządzać nimi w ramach limitu
maxInterStageShaderVariables
. - Upraszczanie: usunięcie
maxInterStageShaderComponents
upraszcza interfejs shadera i ułatwia pracę deweloperom. Zamiast zarządzać 2 osobnymi limitami (które obowiązują jednocześnie, ale różnią się nieznacznie), mogą skupić się na bardziej odpowiednim i pełniejszymmaxInterStageShaderVariables
.
Śledzenie błędu #364338810 | Wpis na stronie ChromeStatus.com | Specyfikacja