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 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 pozycji, w której element jest początkowo wyświetlany, lub w przypadku wybrania innej opcji 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 drzewie płaskim (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.

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 dowolne 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, 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 oraz 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 z przewijaniem.

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 wcześniej 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 wiedzą, które podstrony użytkownik odwiedził, więc nie są ujawniane żadne nowe informacje. Wyjątek ten został wprowadzony na prośbę społeczności, aby poprawić komfort użytkowników.

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

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

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 ś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 miejsca na dane (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 kontekstu 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, co spowoduje wykonanie niektórych domyślnych działań, takich 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

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 ich typ to teraz unsigned long long. Dzięki tej funkcji typ tych 2 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, opóźniona prośba jest umieszczana w kolejce przeglądarki w stanie ODCZEKIWANA i jest wywoływana w zależności od tego, który z tych warunków zostanie spełniony jako pierwszy:

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 zainteresowania

Ta funkcja dodaje atrybut interesttarget do elementów <button> i <a>. Atrybut interesttarget dodaje do elementu zachowania związane z „zainteresowaniem”. Gdy użytkownik „wykazuje zainteresowanie” elementem, w elemencie docelowym są wywoływane działania. Działania mogą obejmować wyświetlanie wyskakujących okienek. Usługa user agent będzie wykrywać, kiedy użytkownik „wykaże zainteresowanie” elementem, np. najedzie na niego kursorem myszy, naciśnie specjalne klawisze skrótu 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 ma domyślne działanie polegające na wyświetlaniu i ukrywaniu wyskakującego okienka.

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 wycofań, bieżących wycofań i poprzednich 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 zmieniliśmy propozycję, aby przenieść kilka getterów do funkcji. Musimy usunąć przestarzałe funkcje pobierające 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. W tym czasie 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.