Opublikowano: 5 marca 2025 r.
O ile nie zaznaczono inaczej, te zmiany dotyczą najnowszej wersji beta Chrome na Androida, ChromeOS, Linuksa, macOS i Windows. Więcej informacji o funkcjach wymienionych tutaj znajdziesz w podanych linkach lub na liście na stronie ChromeStatus.com. Od 5 marca 2025 r. Chrome 135 jest w wersji beta. Najnowszą wersję możesz pobrać na komputerze na stronie Google.com lub na Androidzie w Sklepie Google Play.
CSS i interfejs użytkownika
Ta wersja zawiera 13 nowych funkcji CSS i interfejsu użytkownika.
Zapamiętywanie przesunięcia przewijania w przypadku pozycjonowania kotwicy
Dodaliśmy obsługę koncepcji zapamiętanego przesunięcia przewijania. Gdy element pozycjonowany ma domyślną kotwicę i jest do niej przywiązany jedną krawędzią, a drugą do oryginalnego bloku zawierającego, podczas określania rozmiaru elementu będzie uwzględniane przesunięcie przewijania. Oznacza to, że gdy dokument jest przewijany o dane przesunięcie, możesz używać całej widocznej przestrzeni (za pomocą position-area) dla elementu zakotwiczonego. Aby uniknąć układu (zmiany rozmiaru elementu) za każdym razem, gdy dokument jest przewijany, przeglądarka używa zapamiętanego przesunięcia przewijania, zamiast zawsze używać bieżącego przesunięcia przewijania. Zapamiętane przesunięcie przewijania jest aktualizowane w punkcie ponownego obliczania kotwicy, czyli w pozycji, w której element pozycjonowany
jest początkowo wyświetlany, lub w przypadku wybrania innej opcji pozycji
(position-try-fallbacks) jest wybrana.
CSS Inertness
Ustawienie elementu jako inert wpływa na to, czy można go wybrać, edytować, zaznaczyć i wyszukać za pomocą funkcji Znajdź na stronie. Wpływa też na to, czy jest on widoczny w drzewie dostępności. Właściwość interactivity określa, czy element i jego elementy podrzędne w drzewie płaskim (w tym fragmenty tekstu) są inertne. Właściwość interactivity może mieć jedną z 2 wartości: auto lub inert.
Logiczne właściwości przepełnienia
Właściwości CSS overflow-inline i overflow-block umożliwiają ustawienie przepełnienia w kierunku wiersza i bloku względem trybu pisania. W trybie pisania w poziomie overflow-inline odpowiada overflow-x, a w trybie pisania w pionie – overflow-y.
Funkcje związane z podpisem: abs() i sign()
Właściwość dynamic-range-limit
Umożliwia stronie ograniczenie maksymalnej jasności treści HDR.
Funkcja shape()
Funkcja shape() umożliwia stosowanie elastycznych kształtów w dowolnym formacie we właściwości clip-path. Pozwala zdefiniować serię poleceń, które są odpowiednikami poleceń w path(). Polecenia akceptują jednak jednostki elastyczne (np. % lub vw), a także dowolne wartości CSS, takie jak właściwości niestandardowe.
Pseudoelement ::column
Pseudoelement ::column, który umożliwia stosowanie ograniczonego zestawu stylów do wygenerowanych fragmentów. Dotyczy to w szczególności stylów, które nie wpływają na układ i dlatego można je stosować po układzie.
Pseudoelementy ::scroll-button()
Umożliwiają 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: ">";
}
Powinny być dostępne za pomocą klawiatury i zachowywać się jak przyciski (w tym style UA).
Po aktywowaniu należy wykonać przewijanie w danym kierunku o określoną wartość.
Gdy przewijanie w tym kierunku nie jest możliwe, powinny być wyłączone (i stylizowane za pomocą :disabled), w przeciwnym razie są włączone (i stylizowane za pomocą :enabled). Selektor umożliwia definiowanie przycisków 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 i ::scroll-marker-group
Dodaje ::scroll-marker i ::scroll-marker-group do kontenerów przewijania.
Te pseudoelementy umożliwiają utworzenie zestawu markerów, które można wybrać za pomocą klawiatury, dla wszystkich powiązanych elementów w kontenerze przewijania.
Stylizowanie zagnieżdżonych pseudoelementów
Umożliwia stylizowanie pseudoelementów zagnieżdżonych w innych pseudoelementach.
Do tej pory obsługiwane są pseudoelementy ::before::marker i ::after::marker, a w przyszłości będzie obsługiwany pseudoelement ::column::scroll-marker.
Partycjonowanie historii linków :visited
Aby wyeliminować wycieki historii przeglądania użytkowników, elementy kotwicy są stylizowane jako :visited tylko wtedy, gdy zostały kliknięte wcześniej w tej witrynie najwyższego poziomu i w źródle ramki. Dzięki stylizowaniu tylko linków, które zostały kliknięte wcześniej w tej witrynie i ramce, wiele ataków z wykorzystaniem kanałów bocznych, które zostały opracowane w celu uzyskania informacji o stylach linków :visited, jest teraz przestarzałych, ponieważ nie dostarczają już witrynom nowych informacji o użytkownikach.
Wyjątkiem są linki do własnej witryny, w przypadku których linki do stron własnej witryny mogą być
stylizowane jako :visited, nawet jeśli nie zostały kliknięte wcześniej w tej
witrynie najwyższego poziomu i w źródle ramki. To zwolnienie jest włączone tylko w ramkach najwyższego poziomu lub podramkach, które mają to samo źródło co ramka najwyższego poziomu. Korzyści związane z ochroną prywatności są nadal osiągane, ponieważ witryny już wiedzą, które podstrony użytkownik odwiedził, więc nie są ujawniane żadne nowe informacje. Jest to wyjątek zgłoszony przez społeczność, który poprawia wygodę użytkowników.
Notacja funkcjonalna postępu interpolacji: funkcja CSS *progress()
Zmienne safe-area-max-inset-*
Oprócz zmiennych środowiskowych safe-area-inset Chrome obsługuje teraz też warianty tych zmiennych max-area-safe-inset-*. W przeciwieństwie do dynamicznych wcięć maksymalne wcięcia nie zmieniają się i reprezentują maksymalne możliwe wcięcie bezpiecznego obszaru.
Te wartości są niezbędne do tworzenia wydajnych stron internetowych, które zajmują cały ekran.
Interfejsy API
Dodanie obsługi MediaStreamTrack do interfejsu Web Speech API
Dodaliśmy obsługę MediaStreamTrack do interfejsu Web Speech API. Web Speech API to standardowy interfejs API, który umożliwia deweloperom dodawanie do stron internetowych funkcji rozpoznawania i syntezy mowy. Obecnie Web Speech API używa domyślnego mikrofonu użytkownika jako źródła dźwięku. Obsługa MediaStreamTrack umożliwia witrynom używanie Web Speech API do dodawania napisów do innych źródeł dźwięku, w tym do zdalnych ścieżek dźwiękowych.
Partycjonowanie adresów URL blobów: pobieranie i nawigacja
W ramach kontynuacji partycjonowania miejsca na dane ta funkcja implementuje partycjonowanie dostępu do adresów URL blobów według 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 będą nadal partycjonowane tylko według źródła ramki.
CSP require-sri-for w przypadku skryptów
Dyrektywa require-sri-for umożliwia potwierdzenie, że każdy zasób danego typu musi zostać sprawdzony pod kątem integralności. Jeśli zasób tego typu będzie próbował się załadować bez metadanych integralności, próba się nie powiedzie i zostanie wygenerowany raport o naruszeniu CSP. Ten zamiar obejmuje wartość "script"
tej dyrektywy.
Utworzenie klienta skryptu service worker i odziedziczenie kontrolera tego skryptu dla elementu iframe srcdoc
Dokumenty kontekstu srcdoc nie są obecnie klientami skryptu service worker i nie są objęte skryptem service worker elementu nadrzędnego. Powoduje to pewne rozbieżności (np. Resource Timing zgłasza adresy URL, które te dokumenty ładują, ale skrypt service worker ich nie przechwytuje). Ma to na celu usunięcie rozbieżności przez utworzenie klientów skryptu service worker dla elementów iframe srcdoc i odziedziczenie przez nie kontrolera skryptu service worker elementu nadrzędnego.
Wysyłanie zdarzeń kliknięcia do przechwyconego wskaźnika
Jeśli wskaźnik zostanie przechwycony podczas wysyłania zdarzenia pointerup, zdarzenie click zostanie wysłane do przechwyconego elementu docelowego zamiast do najbliższego wspólnego elementu nadrzędnego zdarzeń pointerdown i pointerup, zgodnie ze specyfikacją zdarzeń interfejsu użytkownika. W przypadku nieprzechwyconych wskaźników element docelowy click pozostaje bez zmian.
Float16Array
Dodaje tablicę typową Float16Array. Podczas zapisywania w instancjach Float16Array wartości liczbowe są zaokrąglane do formatu IEEE fp16.
Uwzględnianie inicjatora nawigacji w kluczu partycji pamięci podręcznej HTTP
Schemat kluczy pamięci podręcznej HTTP w Chrome został zaktualizowany o wartość logiczną is-cross-site-main-frame-navigation, aby ograniczyć ataki z wykorzystaniem wycieków między witrynami, które obejmują nawigację najwyższego poziomu. Zapobiegnie to w szczególności atakom między witrynami, w których atakujący może zainicjować nawigację najwyższego poziomu do danej strony, a następnie przejść do zasobu, o którym wiadomo, że jest ładowany przez stronę, aby wywnioskować informacje poufne na podstawie czasu ładowania. Ta zmiana zwiększa też prywatność, uniemożliwiając złośliwej witrynie używanie nawigacji do wnioskowania, czy użytkownik odwiedził wcześniej daną witrynę.
Zapobieganie śledzeniu HSTS
Ogranicza śledzenie użytkowników przez podmioty zewnętrzne za pomocą pamięci podręcznej HSTS.
Ta funkcja umożliwia zmiany HSTS tylko w przypadku nawigacji najwyższego poziomu i blokuje zmiany HSTS w przypadku żądań 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 internecie.
Polecenia wywołujące: 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, a jednocześnie zmniejszają
liczbę błędów i upraszczają ilość kodu JavaScript potrzebnego do interakcji. Przyciski
z commandfor i command atrybutami po kliknięciu, dotknięciu lub
aktywacji za pomocą naciśnięcia klawisza wysyłają CommandEvent do elementu, do którego odwołuje się
commandfor, z pewnymi domyślnymi zachowaniami, takimi jak otwieranie okien dialogowych i wyskakujących.
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
payment.
Właściwość sourceElement elementu NavigateEvent
Gdy nawigacja jest inicjowana przez element (czyli kliknięcie linku lub przesłanie formularza), właściwość sourceElement elementu NavigateEvent zwraca element inicjujący.
Zmiana nazwy przyczyny w interfejsie NotRestoredReasons API
W interfejsie NotRestoredReasons API zmieniamy niektóre teksty przyczyn, aby były zgodne z
e standardowymi nazwami. Deweloperzy monitorujący te przyczyny mogą zauważyć zmianę w tekstach przyczyn.
Interfejs Web Speech API na urządzeniu
Ignorowanie zmian adresu URL klienta skryptu service worker history.pushState
Modyfikuje właściwość Client.url skryptu service worker, aby ignorować zmiany adresu URL dokumentu za pomocą history.pushState() i innych podobnych interfejsów API historii. Właściwość Client.url ma być adresem URL utworzenia 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>
podobnie jak elementami kotwicy HTML. Obsługa atrybutów rel i relList
zwiększa bezpieczeństwo i prywatność deweloperów. To dopasowanie do elementów kotwicy HTML zapewnia spójność i łatwość użycia w różnych technologiach internetowych.
Sygnatury czasowe zakodowanych klatek RTC
Ta funkcja polega na udostępnianiu w internecie niektórych sygnatur czasowych, które są obecne w zakodowanych klatkach WebRTC przesyłanych przez RTCPeerConnection. Są to sygnatury czasowe:
- 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.
Aktualizacja ProgressEvent do używania typu double w przypadku „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ą. Deweloperzy mogą teraz na przykład utworzyć element ProgressEvent z wartością total równą 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 jest pominięty.
Interfejs fetchLater API
Interfejs fetchLater() API to interfejs JavaScript API, który umożliwia wysyłanie żądań odroczonego pobierania. Jest to szczególnie przydatne w przypadku bardziej niezawodnego wysyłania sygnałów na końcu cyklu życia strony.
Po wywołaniu w dokumencie żądanie odroczone jest umieszczane w kolejce przez przeglądarkę w stanie PENDING i zostanie wywołane w najwcześniejszym z tych przypadków:
Dokument zostanie zniszczony. Po upływie czasu określonego przez użytkownika. Ze względu na ochronę prywatności wszystkie oczekujące żądania zostaną opróżnione, gdy dokument przejdzie do pamięci podręcznej bfcache, niezależnie od tego, ile czasu pozostało. Przeglądarka uzna, że nadszedł czas na wysłanie.
Interfejs API zwraca FetchLaterResult, który zawiera pole logiczne activated. Można je zaktualizować, aby wskazać, czy żądanie odroczone zostało wysłane. W przypadku pomyślnego wysłania przeglądarka zignoruje całą odpowiedź, w tym treść i nagłówki.
Pamiętaj, że z punktu widzenia użytkownika interfejsu API dokładny czas wysłania jest nieznany.
Nowe wersje próbne origin
W Chrome 135 możesz wziąć udział w tych nowych wersjach próbnych origin.
Wywołujący zainteresowania
Ta funkcja dodaje atrybut interesttarget do <button> i <a>
elementów. Atrybut interesttarget dodaje do elementu zachowania „zainteresowania”, dzięki czemu gdy użytkownik „wykaże zainteresowanie” elementem, w elemencie docelowym zostaną wywołane działania. Działania mogą obejmować np. wyświetlanie wyskakującego okienka. Agent użytkownika będzie wykrywać, kiedy użytkownik „wykaże zainteresowanie” elementem, za pomocą takich metod jak najechanie kursorem myszy na element, naciśnięcie specjalnych skrótów klawiszowych lub długie naciśnięcie elementu na ekranach dotykowych.
Gdy zainteresowanie zostanie wykazane lub utracone, w elemencie docelowym zostanie wywołane zdarzenie InterestEvent, które w przypadku wyskakujących okienek ma domyślne działania – wyświetlanie i ukrywanie wyskakującego okienka.
Integralność oparta na podpisie
Ta funkcja zapewnia deweloperom internetowym mechanizm weryfikowania pochodzenia zasobów, od których zależą, tworząc techniczną podstawę zaufania do zależności witryny. W skrócie: serwery mogą podpisywać odpowiedzi za pomocą pary kluczy Ed25519, a deweloperzy internetowi mogą wymagać od agenta użytkownika weryfikowania podpisu za pomocą określonego klucza publicznego. Jest to przydatne uzupełnienie sprawdzania na podstawie adresu URL oferowanego przez Content Security Policy oraz sprawdzania na podstawie treści oferowanego przez Subresource Integrity.
Wycofania i usunięcia
Ta wersja Chrome wprowadza wycofania i usunięcia wymienione poniżej. Listy planowanych wycofań, bieżących wycofań i poprzednich usunięć znajdziesz na stronie ChromeStatus.com.
Ta wersja Chrome wycofuje 1 funkcję.
Wycofanie metod pobierających informacje o ustawieniach regionalnych Intl
Interfejs Intl Locale Info API to propozycja ECMAScript TC39 na etapie 3, która ma na celu ulepszenie obiektu Intl.Locale przez udostępnienie informacji o ustawieniach regionalnych, takich jak dane tygodnia (pierwszy dzień tygodnia, początek weekendu, koniec weekendu, minimalna liczba dni w pierwszym tygodniu) oraz kierunek tekstu i cykl godzin używany w ustawieniach regionalnych. Chrome wdrożył implementację w Chrome 99, ale propozycja została zmieniona, aby przenieść kilka getterów do funkcji. Musimy usunąć wycofane metody pobierające i ponownie uruchomić funkcje o zmienionych nazwach.
Ta wersja Chrome usuwa 3 funkcje.
Usunięcie wycofanej metody navigator.xr.supportsSession
Metoda navigator.xr.supportsSession została zastąpiona w specyfikacji WebXR metodą navigator.xr.isSessionSupported we wrześniu 2019 r. po otrzymaniu opinii od TAG na temat kształtu interfejsu API. Od tego czasu jest oznaczona w Chrome jako wycofana i wyświetla w konsoli ostrzeżenie przekierowujące deweloperów do zaktualizowanego interfejsu API. Użycie tego wywołania jest bardzo niskie, a wszystkie główne platformy używane do tworzenia treści WebXR zostały zaktualizowane, aby używać nowszego wywołania.
Usunięcie właściwości canTransition elementu NavigateEvent
W Chrome 108 metoda transitionWhile() i właściwość canTransition elementu 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. Zamiast tego pozostawiliśmy ją jako alias dla canIntercept. W Chrome 135 naprawiamy to i usuwamy canTransition. Wszystkie użycia canTransition można zastąpić canIntercept bez zmiany zachowania.
Usunięcie limitu WebGPU maxInterStageShaderComponents
Limit maxInterStageShaderComponents jest usuwany z kilku powodów:
- Redundancja z
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 2
limitów, są one niewielkie i można nimi skutecznie
zarządzać w ramach
maxInterStageShaderVariables limit. - Uproszczenie: usunięcie
maxInterStageShaderComponentsupraszcza interfejs shadera i zmniejsza złożoność dla deweloperów. Zamiast zarządzać 2 oddzielnymi limitami (które obowiązują jednocześnie, ale z niewielkimi różnicami), mogą się skupić na bardziej odpowiednio nazwanym i kompleksowym limiciemaxInterStageShaderVariables.