Chrome 135 w wersji beta

Data publikacji: 5 marca 2025 r.

O ile nie zaznaczono inaczej, poniższe zmiany dotyczą najnowszej wersji Chrome w kanale beta na Androida, ChromeOS, Linuxa, macOS i Windowsa. Więcej informacji o wymienionych tu funkcjach znajdziesz, klikając odpowiednie linki lub korzystając z listy na stronie ChromeStatus.com. Od 5 marca 2025 r. Chrome 135 jest w wersji beta. Najnowszą wersję możesz pobrać na Google.com na komputerze lub w Sklepie Google Play na urządzeniu z Androidem.

CSS i UI

Ta wersja zawiera 13 nowych funkcji CSS i interfejsu użytkownika.

Zapamiętywanie odstępu przewijania w przypadku kotwicy

Dodać obsługę zapamiętanego przesunięcia środka okna podczas przewijania. Gdy element ma domyślną kotwicę i jest do niej przywiązany z jednej strony, a z drugiej strony jest przywiązany do oryginalnego bloku zawierającego, przesunięcie osi przewijania będzie brane pod uwagę przy określaniu rozmiaru elementu. Oznacza to, że możesz wykorzystać całą widoczną przestrzeń (za pomocą position-area) dla zadokowanego elementu, gdy dokument jest przewijany z danym przesunięciem. Aby uniknąć zmiany układu (zmniejszania lub powiększania rozmiaru elementu) za każdym razem, gdy dokument jest przewijany, przeglądarka używa zapamiętanego przesunięcia osi przewijania, a nie zawsze bieżącego przesunięcia osi przewijania. Zapamiętany przesunięcie przewijania jest aktualizowany w punkcie ponownego obliczenia kotwicy, czyli w miejscu, w którym element jest początkowo wyświetlany, lub gdy wybrano inną opcję pozycji (position-try-fallbacks).

Nieaktywna usługa porównywania cen

Ustawienie elementu jako nieaktywnego wpływa na to, czy można go ustawić w centrum uwagi, edytować, wybrać i przeszukiwać za pomocą funkcji Znajdź na stronie. Określa też, czy jest widoczny w drzewie ułatwień dostępu. Właściwość interactivity określa, czy element i jego potomkowie w płaskim drzewie (w tym ciągi tekstowe) są nieaktywne. Właściwość interactivity może mieć jedną z 2 wartości: auto lub inert.

Właściwości logicznego przepełnienia

Właściwości CSS overflow-inlineoverflow-block umożliwiają ustawienie przepełnienia w kierunku poziomym i pionowym względem trybu pisania. W trybie poziomego pisania overflow-inline jest mapowane na overflow-x, a w trybie pionowego pisania – na overflow-y.

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

Właściwość dynamic-range-limit

Umożliwia ograniczenie maksymalnej jasności treści HDR.

Funkcja shape()

Funkcja shape() umożliwia tworzenie responsywnych kształtów swobodnych w komponencie clip-path. Umożliwia ono zdefiniowanie serii poleceń, które są odpowiednikami poleceń w komponencie path(). Polecenia te obsługują jednak jednostki responsywne (np. % lub vw), a także wszystkie wartości CSS, takie jak właściwości niestandardowe.

Pseudoelement ::column

Element pseudo ::column, który umożliwia zastosowanie ograniczonego zestawu stylów do wygenerowanych fragmentów. Dotyczy to tylko stylów, które nie wpływają na układ, a więc mogą być stosowane po zastosowaniu układu.

::scroll-button() pseudoelementy

Umożliwia tworzenie interaktywnych przycisków przewijania jako pseudoelementów. 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 nie można przewijać w danym kierunku, te przyciski powinny być wyłączone (i stylizowane za pomocą :disabled). W przeciwnym razie są one włączone (i stylizowane za pomocą :enabled). Selektor pozwala zdefiniować przyciski w 4 kierunkach logicznych: block-start, block-end, inline-start, inline-end, a także w 4 kierunkach fizycznych: up, down, left, right.

::scroll-marker::scroll-marker-group

Dodaje zmienne ::scroll-marker i ::scroll-marker-group dla przewijanych kontenerów. Te pseudoelementy umożliwiają tworzenie zestawów znaczników, które można aktywować, dla wszystkich powiązanych elementów w kontenerze przewijania.

Stylizacja zagnieżdżonych pseudoelementów

Umożliwia stylizację pseudoelementów zagnieżdżonych w innych pseudoelementach. Do tej pory obsługa została zdefiniowana dla: ::before::marker i ::after::marker. W przyszłości będzie obsługiwana również ::column::scroll-marker.

Aby wyeliminować wycieki danych z historii przeglądania użytkownika, elementy kotwicy są stylizowane jako :visited tylko wtedy, gdy zostały kliknięte z poziomu tej witryny i ramki najwyższego poziomu. Dzięki stylizowaniu tylko tych linków, które zostały kliknięte w tej witrynie i ramce, wiele ataków kanału bocznego, które zostały opracowane w celu uzyskania informacji o stylach linków :visited, jest teraz nieaktualnych, ponieważ nie dostarczają one witrynom nowych informacji o użytkownikach.

Wyjątkiem są linki do własnych stron, które mogą mieć styl :visited, nawet jeśli nie zostały wcześniej kliknięte w ramach danej witryny lub ramki na najwyższym poziomie. Ta wyjątek jest dostępny tylko w ramkach najwyższego poziomu lub podramkach, które mają ten sam origin co rama najwyższego poziomu. Korzyści związane z prywatnością są nadal osiągane, ponieważ witryny już wiedzą, które z ich podstron użytkownik odwiedził, więc nie ujawniają żadnych nowych informacji. Wyjątek ten został wprowadzony na prośbę społeczności, aby poprawić komfort użytkowników.

Notacje funkcyjne postępu interpolacji: funkcje CSS *progress()

Notacje funkcyjne progress(), media-progress()container-progress() odzwierciedlają proporcjonalną odległość danej wartości (wartości postępu) od jednej wartości (wartości początkowej postępu) do innej wartości (wartości końcowej postępu). Umożliwiają one tworzenie wskaźnika postępu odpowiednio z funkcji matematycznych, funkcji multimediów i funkcji kontenera.

Zmienne safe-area-max-inset-*

Oprócz zmiennych środowiskowych safe-area-inset Chrome obsługuje teraz również ich warianty max-area-safe-inset-*. W przeciwieństwie do dynamicznych insetów maksymalne insety się nie zmieniają i reprezentują maksymalny możliwy inset bezpiecznej powierzchni.

Te wartości są niezbędne do tworzenia wydajnych, spójnych wrażeń w internecie.

Interfejsy Web API

Dodawanie obsługi MediaStreamTrack w Web Speech API

Dodano obsługę MediaStreamTrack w Web Speech API. Interfejs Web Speech API to standardowy interfejs API do obsługi stron internetowych, który umożliwia deweloperom stosowanie 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żek MediaStream umożliwia stronom internetowym korzystanie z interfejsu Web Speech API do dodawania napisów do innych źródeł dźwięku, w tym do ścieżek dźwiękowych zdalnych.

Dzielenie na partycje adresów URL obiektów blob: pobieranie i nawigacja

Ta funkcja jest kontynuacją partycjonowania miejsca na dane i implementuje partycjonowanie dostępu do adresów URL blobów za pomocą klucza Storage (witryna najwyższego poziomu, źródło ramki i wartość logiczna has-cross-site-ancestor), z wyjątkiem nawigacji najwyższego poziomu, które pozostaną podzielone tylko według źródła ramki.

CSP require-sri-for dla skryptów

Dyrektywa require-sri-for umożliwia określenie, że każdy zasób danego typu musi przejść test integralności. Jeśli spróbujesz załadować zasób tego typu bez metadanych integralności, próba się nie powiedzie i spowoduje wygenerowanie raportu o naruszeniu zasad CSP. Ta intencja obejmuje wartość "script" w tej dyrektywie.

Utwórz klienta skryptu service worker i odziedzicz kontroler skryptu service worker dla elementu iframe srcdoc

Dokumenty kontekstowe srcdoc nie są obecnie klientami usług ani nie są obsługiwane przez usługę rodzica. Powoduje to pewne rozbieżności (na przykład mechanizm Resource Timing podaje adresy URL wczytywanych dokumentów, ale nie przechwytuje ich). Ma to na celu naprawienie rozbieżności przez utworzenie klientów skryptu service worker dla elementów iframe srcdoc i spowodowanie, że będą one dziedziczyć kontroler skryptu service worker swojego elementu nadrzędnego.

Przekazywanie zdarzeń kliknięcia do przechwyconego wskaźnika

Jeśli podczas wywoływania zdarzenia pointerup zostanie zarejestrowany wskaźnik, zdarzenie click zostanie wysłane do zarejestrowanego celu zamiast do najbliższego wspólnego przodka zdarzeń pointerdownpointerup zgodnie ze specyfikacją zdarzenia interfejsu użytkownika. W przypadku niezarejestrowanych wskaźników cel click pozostaje niezmieniony.

Float16Array

Dodaje tablicę typu Float16Array. Podczas zapisywania wartości liczbowych w przypadku instancji Float16Array są one zaokrąglane do formatu IEEE fp16.

Włączanie inicjatora nawigacji do klucza partycji pamięci podręcznej HTTP

Schemat kodowania kluczy pamięci podręcznej HTTP w Chrome został zaktualizowany, aby uwzględniać wartość logiczną is-cross-site-main-frame-navigation, która ma na celu ograniczenie ataków polegających na wycieku danych między stronami, wykorzystujących nawigację najwyższego poziomu. Zapobiegnie to w szczególności atakom między witrynami, w których przypadku osoba atakująca może zainicjować nawigację na najwyższym poziomie do danej strony, a następnie przejść do zasobu, który jest ładowany przez tę stronę, aby uzyskać informacje poufne na podstawie czasu ładowania. Ta zmiana zwiększa też prywatność, ponieważ uniemożliwia szkodliwej witrynie korzystanie z funkcji nawigacji do ustalania, czy użytkownik odwiedził już daną witrynę.

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 nawigacji na najwyższym poziomie, a blokuje je 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.

Polecenia wywołującego: atrybuty commandcommandfor

Atrybuty commandcommandfor w elementach <button> umożliwiają przypisywanie zachowań do przycisków w bardziej dostępny i deklaratywny sposób, a zarazem ograniczają liczbę błędów i upraszczają ilość kodu JavaScript potrzebną do interakcji. Gdy klikniesz, dotkniesz lub aktywujesz przycisk za pomocą naciśnięcia klawisza, przyciski z atrybutami commandforcommand wyślą zdarzenie CommandEvent do elementu wskazywanego przez atrybut commandfor, wywołując niektóre domyślne zachowania, takie jak otwieranie dialogów i okienek.

Dodano 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.

Właściwość NavigateEvent sourceElement

Gdy nawigacja jest inicjowana przez element (czyli kliknięcie linku lub przesłanie formularza), właściwość sourceElement w elementach sourceElement zwróci element inicjujący.NavigateEvent

Zmiana nazwy powodu w interfejsie API NotRestoredReasons

W interfejsie API NotRestoredReasons zmieniamy niektóre teksty przyczyn, aby dostosować je do ujednoliconych nazw. Deweloperzy monitorujący te przyczyny mogą zauważyć zmianę w tekstach.

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 nie zostaną wysłane do usługi innej firmy w celu przetwarzania. Witryny mogą sprawdzać dostępność rozpoznawania mowy na urządzeniu w przypadku określonych języków, prosić użytkowników o instalację 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.

Zignoruj zmiany w adresie URL klienta Service Workera history.pushState

Modyfikuje właściwość Client.url usługi workera, aby ignorować zmiany adresu URL dokumentu za pomocą history.pushState() i innych podobnych interfejsów API historii. Właściwość Client.url powinna zawierać adres URL dokumentu HTML, który ignoruje takie zmiany.

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ść obsługi w różnych technologiach internetowych.

Sygnatury czasowe zakodowanych ramek RTC

Ta funkcja polega na udostępnieniu w sieci internetowej niektórych sygnatur czasowych obecnych w ramkach zakodowanych za pomocą WebRTC przesyłanych za pomocą RTCPeerConnection. Sygnatury czasowe, których dotyczy problem:

  • Sygnatura czasowa przechwycenia: sygnatura czasowa, w której klatka została pierwotnie przechwycona.
  • Sygnatura czasowa odebrania: sygnatura czasowa, w której klatka została odebrana.

Zaktualizuj ProgressEvent, aby używać typu podwójnego dla wartości „loaded” i „total”

Element ProgressEvent ma atrybuty loaded i total wskazujące postęp, a jego typ to teraz unsigned long long. Dzięki tej funkcji typ tych dwóch atrybutów jest zmieniany na double, co daje deweloperowi większą kontrolę nad wartością. Na przykład deweloperzy mogą teraz utworzyć zdarzenie ProgressEvent z wartością total 1 i wartością loaded stopniowo zwiększającą się od 0 do 1. Jest to zgodne z domyślnym zachowaniem elementu HTML <progress>, jeśli atrybut max zostanie pominięty.

Interfejs API fetchLater

Interfejs fetchLater() API to interfejs JavaScript API służący do żądania opóźnionego pobierania. Jest on szczególnie przydatny do niezawodnego beaconowania na końcu okresu ważności strony. Gdy zostanie wywołana w dokumencie, odroczona prośba jest umieszczana w kolejce przeglądarki w stanie ODCZEKUJĄCA i jest wywoływana w ramach najkrótszego z tych okresów:

Dokument został zniszczony. Po upływie czasu określonego przez użytkownika. Ze względu na ochronę prywatności wszystkie oczekujące żądania zostaną wyczyszczone, gdy dokument trafi do bfcache, niezależnie od tego, ile czasu zostało do końca. Przeglądarka decyduje, że nadszedł czas na wysłanie.

Interfejs API zwraca obiekt FetchLaterResult, który zawiera pole logiczne activated, które może zostać zaktualizowane, 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.

Pamiętaj, że z punktu widzenia użytkownika interfejsu API dokładny czas wysyłania jest nieznany.

Nowe wersje próbne origin

W Chrome 135 możesz wziąć udział w tych nowych testach wersji.

Wywołujący dotyczące zainteresowań

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 „wykaże zainteresowanie” elementem, np. najedzie na niego kursorem myszy, naciśnie specjalne klawisze na klawiaturze lub przytrzyma element na ekranie dotykowym. Gdy użytkownik wykazuje zainteresowanie lub przestaje je wykazywać, w przypadku elementu docelowego uruchamia się zdarzenie InterestEvent, które w przypadku wyskakujących okienek powoduje ich wyświetlenie lub ukrycie.

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 klienta użytkownika weryfikacji podpisu za pomocą określonego klucza publicznego. Jest to przydatne uzupełnienie dla kontroli opartych na adresie URL oferowanych przez zasady bezpieczeństwa treści oraz kontroli opartych na treściach prowadzonych przez mechanizm wiarygodności zasobów podrzędnych.

Wycofanie i usunięcie

W tej wersji Chrome wprowadzamy wycofanie i usunięcie funkcji wymienionych poniżej. Na stronie ChromeStatus.com znajdziesz listy planowanych i obecnych wycofań oraz wcześniejszych usunięciach.

W tej wersji Chrome wycofujemy jedną funkcję.

wycofanie funkcji pobierających informacji o lokalizacji Intl

Intl Locale Info API to propozycja ECMAScript TC39 na etapie 3, która ma na celu rozszerzenie obiektu Intl.Locale o informacje o lokalizacji, takie jak dane tygodnia (pierwszy dzień tygodnia, dzień rozpoczęcia weekendu, dzień zakończenia weekendu, minimalny dzień w pierwszym tygodniu) oraz kierunek tekstu i cykl godzin używany w danej lokalizacji. W Chrome 99 wdrożyliśmy tę funkcję, ale w ramach proponowanych zmian przesunęliśmy kilka getterów do funkcji. Musimy usunąć przestarzałe funkcje gettera i ponownie uruchomić przemianowane funkcje.

W tej wersji Chrome usunęliśmy 3 funkcje.

Usuwanie wycofanej metody navigator.xr.supportsSession

We wrześniu 2019 r., po otrzymaniu opinii o kształcie interfejsu API od TAG, metoda navigator.xr.supportsSession została zastąpiona w specyfikacji WebXR metodą navigator.xr.isSessionSupported. Od tego czasu jest on oznaczony w Chrome jako przestarzały. W konsoli wyświetla się ostrzeżenie, które przekierowuje deweloperów do zaktualizowanego interfejsu API. Wywołanie jest używane bardzo rzadko, a wszystkie główne platformy służące do tworzenia treści WebXR zostały zaktualizowane, aby używać nowego wywołania.

Usuwanie usługi NavigateEvent canTransition

W Chrome 108 metoda transitionWhile() i właściwość canTransition obiektu NavigateEvent zostały zastąpione nową metodą intercept() i właściwością canIntercept. Wtedy metoda transitionWhile() została usunięta. Zapomnieliśmy jednak usunąć właściwość canTransition: pozostawiliśmy ją jako alias dla właściwości canIntercept. W Chrome 135 naprawiliśmy ten błąd i usuwamy canTransition. Wszystkie wystąpienia canTransition można zastąpić przez canIntercept bez zmiany działania.

Usuń limit WebGPU maxInterStageShaderComponents

Limit maxInterStageShaderComponents jest usuwany z powodu kombinacji tych czynników:

  • Redundancja z poziomem maxInterStageShaderVariables: ten limit służy już do podobnego celu, kontrolując ilość danych przekazywanych między etapami shadera.
  • Niewielkie rozbieżności: chociaż istnieją niewielkie różnice w sposobie obliczania tych dwóch limitów, są one nieznaczne i można je skutecznie zarządzać w ramach maxInterStageShaderVariables limit.
  • 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.