Chrome 140 w wersji beta

Opublikowano: 6 sierpnia 2025 r.

O ile nie zaznaczono inaczej, poniższe zmiany dotyczą najnowszej wersji beta Chrome na Androida, ChromeOS, Linuxa, macOS i Windowsa. Więcej informacji o funkcjach wymienionych tutaj znajdziesz w podanych linkach lub na liście na stronie ChromeStatus.com. 6 sierpnia 2025 r. Chrome 140 będzie w wersji beta. Najnowszą wersję możesz pobrać ze strony Chrome na komputer lub ze Sklepu Google Play na Androida.

CSS i interfejs

Arytmetyka typów CSS

Wpisane działania arytmetyczne umożliwiają pisanie w CSS wyrażeń takich jak calc(10em / 1px) lub calc(20% / 0.5em * 1px). Jest to przydatne np. w typografii, ponieważ umożliwia przekształcenie wpisanej wartości w wartość bez typu i ponowne użycie jej we właściwościach akceptujących liczby. Innym przypadkiem użycia jest pomnożenie wartości bez jednostki przez wartość innego typu. Możesz na przykład przekształcić piksele na stopnie.

Usługa scroll-target-group

Właściwość scroll-target-group określa, czy element jest kontenerem grupy znaczników przewijania. Może mieć jedną z tych wartości:

  • „none”: element nie tworzy kontenera grupy znaczników przewijania.
  • „auto”: element tworzy kontener grupy znaczników przewijania, który zawiera wszystkie elementy znacznika przewijania, dla których jest najbliższym przodkiem.

Utworzenie kontenera grupy znaczników przewijania umożliwia, aby wszystkie elementy HTML kotwicy z identyfikatorem fragmentu, które znajdują się w takim kontenerze, były odpowiednikiem HTML pseudoelementów ::scroll-marker. Element kotwicy, którego cel przewijania jest obecnie widoczny, można ostylować za pomocą pseudoklasy :target-current.

Włącz funkcje counter() i counters() w tekście alternatywnym usługi content

Ta funkcja umożliwia używanie counter() i counters() w tekście alternatywnym właściwości content. Dostarcza to bardziej przydatnych informacji, które zwiększają dostępność.

Pseudoelementy przejścia widoku dziedziczą więcej właściwości animacji

Pseudodrzewo przejścia w formie obejrzenia dziedziczy teraz szereg właściwości animacji:

  • animation-delay
  • animation-timing-function
  • animation-iteration-count
  • animation-direction
  • animation-play-state

Włączanie zagnieżdżonych przejść widoku

Ta funkcja umożliwia generowanie zagnieżdżonego drzewa pseudoelementów zamiast płaskiego. Dzięki temu przejście widoku będzie bardziej zgodne z oryginalnymi elementami i zamierzeniami wizualnymi. Umożliwia przycinanie, zagnieżdżone przekształcenia 3D i prawidłowe stosowanie efektów, takich jak krycie, maskowanie i filtry.

Przekazywanie widocznego obszaru overscroll-behavior z elementu głównego

Ta zmiana propaguje wartość overscroll-behavior z elementu głównego zamiast z elementu body. Grupa robocza CSS podjęła decyzję, że właściwości z <body> nie będą propagowane do obszaru wyświetlania. Zamiast tego właściwości widocznego obszaru są propagowane z elementu głównego (<html>). W związku z tym wartość overscroll-behavior powinna być propagowana z elementu głównego. Chrome ma jednak długotrwały problem: propaguje overscroll-behavior<body>, a nie z katalogu głównego. To zachowanie nie jest kompatybilne z innymi przeglądarkami. Ta zmiana sprawia, że Chrome jest zgodny ze specyfikacją i współpracuje z innymi implementacjami.

Opcja kontenera ScrollIntoView

Opcja kontenera ScrollIntoViewOptions umożliwia deweloperom wykonanie operacji scrollIntoView, która przewija tylko najbliższy kontener przewijania elementu nadrzędnego. Na przykład poniższy fragment kodu przewija tylko kontener przewijania elementu target, aby wyświetlić element target, ale nie przewija wszystkich kontenerów przewijania do obszaru widocznego:

target.scrollIntoView({container: 'nearest'});

Dodawanie właściwości CSS caret-animation

Chromium obsługuje animację właściwości caret-color. Jednak w przypadku animacji domyślne miganie kursora przeszkadza w animacji.

Właściwość CSS caret-animation ma 2 możliwe wartości: auto i manual. auto oznacza domyślne ustawienie przeglądarki (miganie), a manual oznacza, że animacją kursora steruje deweloper. Użytkownicy, którym przeszkadzają migające obrazy lub którzy reagują na nie negatywnie, mogą wyłączyć miganie za pomocą arkusza stylów użytkownika.

Interfejs API highlightsFromPoint

Interfejs highlightsFromPoint API umożliwia programistom interakcję z niestandardowymi wyróżnieniami. Wykrywa, które wyróżnienia znajdują się w określonym miejscu w dokumencie. Ta interaktywność jest przydatna w przypadku złożonych funkcji internetowych, w których wiele wyróżnień może się nakładać lub występować w cieniu DOM. Dzięki precyzyjnemu wykrywaniu punktowych wyróżnień interfejs API umożliwia deweloperom skuteczniejsze zarządzanie dynamicznymi interakcjami z niestandardowymi wyróżnieniami. Na przykład deweloperzy mogą reagować na kliknięcia użytkowników lub zdarzenia najechania kursorem na wyróżnione regiony, aby wywoływać niestandardowe etykietki, menu kontekstowe lub inne funkcje interaktywne.

Zmiana czasu trwania obietnicy zakończenia przejścia widoku

Obecny czas zakończenia obietnicy przypada na etapy cyklu renderowania. Oznacza to, że kod, który jest wykonywany w wyniku rozwiązania obietnicy, jest uruchamiany po wygenerowaniu klatki wizualnej, która usuwa przejście widoku. Może to spowodować migotanie na końcu animacji, jeśli skrypt przenosi style, aby zachować wizualnie podobny stan. Ta zmiana rozwiązuje problem, ponieważ przenosi kroki czyszczenia ViewTransition do uruchamiania asynchronicznego po zakończeniu cyklu życia.

Dodaj atrybut źródła ToggleEvent

Atrybut source elementu ToggleEvent zawiera element, który spowodował uruchomienie elementu ToggleEvent, jeśli ma to zastosowanie. Jeśli na przykład użytkownik kliknie element <button> z atrybutem popovertarget lub commandfor ustawionym na otwarcie wyskakującego okienka, zdarzenie ToggleEvent wywołane w tym okienku będzie miało atrybut źródła ustawiony na wywołujący element <button>.

Zapobieganie zanieczyszczaniu obszaru rysowania przez SVG foreignObject w przypadku adresów URL obiektów blob

Wszystkie przeglądarki od dawna obsługują używanie elementu <img> ze źródłem SVG w operacji obiektu canvas HTML.drawImage Zachowanie związane z zanieczyszczeniem elementu canvas różni się jednak w zależności od platformy. Wszystkie przeglądarki zanieczyszczają element canvas, gdy źródło SVG zawiera tag foreignObject i jest do niego odwołanie za pomocą identyfikatora URI HTTP. Gdy ten sam plik SVG jest przywoływany za pomocą identyfikatora URI danych, żadna przeglądarka nie powoduje zanieczyszczenia obszaru rysowania. Gdy jednak używany jest identyfikator URI obiektu blob, zarówno Chromium (przed tą zmianą), jak i WebKit zanieczyszczają obszar rysowania, ale Gecko nie. Gdy ta funkcja zostanie udostępniona, Chromium będzie działać tak samo jak Gecko, co umożliwi używanie w wywołaniach drawImage canvas większego zakresu treści SVG bez ich zanieczyszczania.

Obsługa deskryptora font-variation-settings w @font-face rule

CSS umożliwia deweloperom dostosowywanie grubości, szerokości, pochylenia i innych osi czcionki za pomocą właściwości font-variation-settings w poszczególnych elementach. Jednak przeglądarki oparte na Chromium nie obsługują tej właściwości w deklaracjach @font-face. Ta funkcja obsługuje składnię opartą na ciągach znaków dla font-variation-settings zgodnie z definicją w CSS Fonts Level 4. Nieprawidłowe lub nierozpoznane tagi funkcji są ignorowane zgodnie ze specyfikacją. Nie są obsługiwane formaty binarne ani niestandardowe. Czcionki zmienne są coraz częściej stosowane ze względu na wydajność i elastyczność typograficzną. Dodanie obsługi tego deskryptora w Chromium zwiększa kontrolę, ogranicza powtarzalność i umożliwia bardziej skalowalne, nowoczesne podejście do typografii internetowej.

Interfejsy Web API

Konwertowanie Uint8Array na format base64 i szesnastkowy oraz z tych formatów

Base64 to popularny sposób reprezentowania dowolnych danych binarnych w formacie ASCII. JavaScript ma Uint8Arrays dla danych binarnych. Nie ma jednak wbudowanego mechanizmu kodowania tych danych w formacie base64 ani przekształcania danych w formacie base64 w odpowiedni element Uint8Array. Ta funkcja dodaje możliwość i metody konwertowania ciągów szesnastkowych na Uint8Arrays i odwrotnie.

Użyj opcji ReadableStreamBYOBReader min.

Ta funkcja wprowadza opcję min do istniejącej metody ReadableStreamBYOBReader.read(view). Metoda akceptuje już obiekt ArrayBufferView, do którego odczytuje dane, ale obecnie nie gwarantuje, ile elementów zostanie zapisanych przed zakończeniem odczytu. Określając wartość min, możesz wymagać, aby strumień czekał, aż będzie dostępnych co najmniej tyle elementów, zanim rozwiąże odczyt. Jest to ulepszenie obecnego działania, w przypadku którego odczyty mogą obejmować mniejszą liczbę elementów niż widok.

W niektórych przypadkach ważne jest, aby po stronie serwera odróżniać pliki cookie ustawione przez serwer od tych ustawionych przez klienta. Jednym z takich przypadków są pliki cookie, które są zwykle zawsze ustawiane przez serwer. Nieoczekiwany kod (np. wykorzystujący lukę XSS, złośliwe rozszerzenie lub zatwierdzenie od nieuważnego dewelopera) może jednak ustawić je po stronie klienta. Ta propozycja dodaje sygnał, który umożliwia serwerom rozróżnianie tych sytuacji. W szczególności definiuje przedrostki __Http__HostHttp, które zapewniają, że plik cookie nie jest ustawiany po stronie klienta za pomocą skryptu.

Ograniczenia dostępu do sieci lokalnej

Chrome 140 ogranicza możliwość wysyłania żądań do sieci lokalnej użytkownika, wymagając wyświetlenia prośby o przyznanie uprawnień. Żądanie sieci lokalnej to każde żądanie z publicznej witryny do lokalnego adresu IP lub pętli zwrotnej albo z lokalnej witryny (np. intranetu) do pętli zwrotnej. Wymaganie uprawnień do wysyłania tych żądań przez witryny zmniejsza ryzyko ataków typu cross-site request forgery na urządzenia w sieci lokalnej, takie jak routery. Ogranicza to też możliwość wykorzystywania tych żądań przez witryny do tworzenia odcisków cyfrowych sieci lokalnej użytkownika. To uprawnienie jest ograniczone do bezpiecznych kontekstów. Jeśli użytkownik przyzna to uprawnienie, blokowanie treści mieszanych zostanie również złagodzone w przypadku żądań w sieci lokalnej, ponieważ wiele urządzeń lokalnych z różnych powodów nie może uzyskać publicznie zaufanych certyfikatów TLS.

Więcej informacji znajdziesz w artykule Nowy monit o uprawnienia dostępu do sieci lokalnej.

Włączanie dziedziczenia kontrolera przez skrypty SharedWorker w przypadku adresów URL skryptów blob

Specyfikacja mówi, że moduły robocze powinny dziedziczyć kontrolery dla adresu URL bloba. Jednak istniejący kod pozwala na dziedziczenie kontrolera tylko w przypadku modułów DedicatedWorker, a moduły SharedWorker nie dziedziczą kontrolera. Dzięki temu działanie Chrome będzie zgodne ze specyfikacją. Tą funkcją zarządza zasada obowiązująca w firmie SharedWorkerBlobURLFixEnabled.

Dodaj ServiceWorkerStaticRouterTimingInfo

Ta funkcja dodaje informacje o czasie działania interfejsu API routingu statycznego Service Worker, które są udostępniane w interfejsie API Navigation Timing i interfejsie API Resource Timing do użytku przez programistów. ServiceWorker dostarcza informacji o czasie, aby oznaczać określone punkty w czasie.

Ta funkcja dodaje 2 rodzaje informacji o czasie, które są istotne w przypadku interfejsu Static Routing API:

  • RouterEvaluationStart: czas rozpoczęcia dopasowywania żądania do zarejestrowanych reguł routera.
  • CacheLookupStart: Czas zacząć wyszukiwać pamięć podręczną, jeśli źródło to "cache".

Dodatkowo ta funkcja dodaje 2 informacje o źródle routera: dopasowane źródło routera i ostateczne źródło routera.

Włączanie warunkowego tworzenia uwierzytelniania internetowego na Androidzie (nie jest dostępne)

Izolowane aplikacje internetowe

Wprowadzenie do interfejsu Controlled Frame API

Ta funkcja dodaje interfejs Controlled Frame API, który jest dostępny tylko w izolowanych aplikacjach internetowych (IWA). Podobnie jak interfejsy API o podobnej nazwie na innych platformach, Controlled Frame umożliwia osadzanie wszystkich treści, nawet tych pochodzących od innych firm, których nie można osadzić w <iframe>. Interfejs Controlled Frame umożliwia też kontrolowanie umieszczonych treści za pomocą kolekcji metod i zdarzeń API. Więcej informacji o izolowanych aplikacjach internetowych znajdziesz w wyjaśnieniu dotyczącym izolowanych aplikacji internetowych.

Nowe wersje próbne origin

W Chrome 140 możesz wziąć udział w tych nowych eksperymentach z źródłem.

Dodaj wydarzenie clipboardchange

Zdarzenie clipboardchange jest wywoływane za każdym razem, gdy aplikacja internetowa lub inna aplikacja systemowa zmienia zawartość schowka systemowego. Dzięki temu aplikacje internetowe, takie jak klienci pulpitu zdalnego, mogą synchronizować swoje schowki ze schowkiem systemowym. Jest to wydajna alternatywa dla sprawdzania zmian w schowku za pomocą JavaScriptu.

Włączanie powiadomień o połączeniach przychodzących

Ta funkcja rozszerza interfejs Notifications API, aby zainstalowane aplikacje PWA mogły wysyłać powiadomienia o połączeniach przychodzących – powiadomienia z przyciskami w stylu połączeń i dzwonkiem. To rozszerzenie pomaga internetowym aplikacjom VoIP tworzyć bardziej angażujące środowisko, ponieważ ułatwia użytkownikom rozpoznawanie powiadomień o połączeniach i odpowiadanie na nie. Ta funkcja pomaga też wypełnić lukę między implementacjami natywnymi i internetowymi aplikacji, które mają obie te implementacje.

Wprowadzenie interfejsu API klucz-wartość do raportowania o awariach

Ta funkcja wprowadza nowy interfejs API klucz-wartość, tymczasowo oznaczony jako window.crashReport, oparty na mapie poszczególnych dokumentów, która zawiera dane dołączone do raportów o awariach.

Dane umieszczone w mapie zapasowej tego interfejsu API są wysyłane w CrashReportBody, jeśli w witrynie wystąpią awarie procesu renderowania. Dzięki temu deweloperzy mogą debugować, który konkretny stan w aplikacji może powodować daną awarię.

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 jedną funkcję.

Wycofanie specjalnych reguł rozmiaru czcionki dla <h1> w niektórych elementach

Specyfikacja HTML zawiera listę specjalnych reguł dotyczących tagów <h1> zagnieżdżonych w elementach <article>, <aside>, <nav> lub <section>.

Te specjalne reguły zostały wycofane, ponieważ powodują problemy z dostępnością. Mianowicie wizualnie zmniejszają rozmiar czcionki zagnieżdżonych elementów <h1>, tak aby wyglądały jak elementy <h2>, ale nic w drzewie ułatwień dostępu nie odzwierciedla tej zmiany wizualnej.