Chrome 135

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

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::scroll-marker-group

Dodaje pseudoelementy ::scroll-marker::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.

ChromeStatus.com entry | Spec

Przepełnienie logiczne w CSS

Właściwości CSS overflow-inlineoverflow-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.

ChromeStatus.com entry | Spec

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().

ChromeStatus.com entry | Spec

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

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óźnienie 1ms.
  • Po: setInterval(..., 0) = opóźnienie 0ms.

Ś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 relrelList 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><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.

ChromeStatus.com entry | Spec

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łniejszym maxInterStageShaderVariables.

Śledzenie błędu #364338810 | Wpis na stronie ChromeStatus.com | Specyfikacja