Chrome 142 w wersji beta

Opublikowano: 1 października 2025 r.

O ile nie zaznaczono inaczej, te zmiany dotyczą wersji beta Chrome 142 na Androida, ChromeOS, Linuksa, macOS i Windowsa. Więcej informacji o tych funkcjach znajdziesz w linkach lub na stronie ChromeStatus.com. Pobierz wersję beta Chrome 142 z Google.com na komputer lub ze Sklepu Google Play na Androida.

CSS i interfejs

Pseudoklasy :target-before i :target-after

Te pseudoklasy pasują do znaczników przewijania, które znajdują się przed lub za aktywnym znacznikiem (pasującym do :target-current) w tej samej grupie znaczników przewijania, zgodnie z kolejnością w spłaszczonym drzewie:

  • :target-before: pasuje do wszystkich znaczników przewijania, które poprzedzają aktywny znacznik w kolejności w spłaszczonym drzewie w grupie.
  • :target-after: pasuje do wszystkich znaczników przewijania, które następują po aktywnym znaczniku w kolejności w spłaszczonym drzewie w grupie.

Pozycjonowanie bezwzględne elementu ::view-transition

Przejścia widoku używają pseudopoddrzewa elementu, a ::view-transition jest jego korzeniem. Wcześniej element ::view-transition miał ustawioną wartość position: fixed. Grupa robocza CSS zdecydowała, że będzie to position: absolute, dlatego Chrome odzwierciedla tę zmianę.

Ta zmiana nie powinna być zauważalna, ponieważ blok zawierający ten element pozostaje blokiem zawierającym migawkę w przypadku pozycji bezwzględnej i stałej. Jedyną zauważalną różnicą jest getComputedStyle.

Właściwość activeViewTransition w dokumencie

Interfejs View Transitions API umożliwia deweloperom rozpoczynanie wizualnych przejść między różnymi stanami. Głównym punktem wejścia SPA jest startViewTransition(), który zwraca obiekt przejścia. Ten obiekt zawiera kilka obietnic i funkcji do śledzenia postępu przejścia oraz umożliwia manipulowanie przejściami, np. pomijanie przejścia lub modyfikowanie jego typów.

Od Chrome 142 deweloperzy nie muszą już przechowywać tego obiektu. Właściwość document.activeViewTransition reprezentuje ten obiekt lub wartość null, jeśli nie trwa żadne przejście.

Dotyczy to również przejść MPA, w których obiekt jest dostępny tylko za pomocą zdarzeń pageswap i pagereveal. W tej aktualizacji document.activeViewTransition jest ustawiony na ten obiekt na czas trwania przejścia.

Składnia zakresu dla zapytań o kontener stylu i if()

Chrome rozszerza zapytania o style CSS i funkcję if() przez dodanie obsługi składni zakresu.

Rozszerza to zapytania o style poza dokładne dopasowanie wartości (np. style(--theme: dark)). Deweloperzy mogą używać operatorów porównania (np. > i <) do porównywania właściwości niestandardowych, wartości dosłownych (np. 10 pikseli lub 25%) oraz wartości z funkcji zastępowania, takich jak attr() i env(). Aby porównanie było prawidłowe, obie strony muszą mieć ten sam typ danych. Jest on ograniczony do tych typów liczbowych: <length>, <number>, <percentage>, <angle>, <time>, <frequency> i <resolution>.

Przykłady:

Porównanie właściwości niestandardowej z długością dosłowną:

@container style(--inner-padding > 1em) {
  .card {
    border: 2px solid;
  }
}

Porównanie 2 wartości dosłownych

@container style(1em < 20px) {
  /* ... */
}

Używanie zakresów stylów w if():

.item-grid {
  background-color: if(style(attr(data-columns, type<number>) > 2): lightblue; else: white);
}

Wywołania zainteresowania (atrybut interestfor)

Chrome dodaje atrybut interestfor do elementów <button> i <a>. Ten atrybut dodaje do elementu zachowania „zainteresowania”. Gdy użytkownik „wykazuje zainteresowanie” elementem, w elemencie docelowym są wywoływane działania, np. wyświetlanie wyskakującego okienka. User agent wykrywa, kiedy użytkownik „wykazuje zainteresowanie” elementem, za pomocą takich metod jak przytrzymanie wskaźnika nad elementem, naciśnięcie specjalnych skrótów klawiszowych lub długie naciśnięcie elementu na ekranach dotykowych. Gdy zainteresowanie jest widoczne lub utracone, w elemencie docelowym wywoływane jest zdarzenie InterestEvent, które ma domyślne działania w przypadku wyskakujących okienek, takie jak wyświetlanie i ukrywanie wyskakującego okienka.

Właściwość font-language-override

Chrome wprowadza obsługę właściwości CSS font-language-override. Ta właściwość umożliwia deweloperom zastąpienie języka systemu używanego do zastępowania glifów OpenType przez bezpośrednie określenie 4-znakowego tagu języka w CSS.

Umożliwia to precyzyjną kontrolę typograficzną, która jest szczególnie przydatna w przypadku treści wielojęzycznych lub czcionek z wariantami glifów specyficznymi dla języka.

Atrybut download w elemencie SVG <a>

Chrome wprowadza obsługę atrybutu download w interfejsie SVGAElement, zgodnie ze specyfikacją SVG 2. Atrybut download umożliwia autorom określenie, że zamiast przechodzić do celu hiperłącza SVG, ma on zostać pobrany. Odzwierciedla to zachowanie, które jest już obsługiwane w HTMLAnchorElement. Zwiększa to interoperacyjność między głównymi przeglądarkami i zapewnia spójne działanie elementów HTML i SVG <a>, a także poprawia wygodę deweloperów i oczekiwania użytkowników.

Parzystość na urządzeniach mobilnych i komputerach w przypadku trybów renderowania elementu select

Za pomocą atrybutów size i multiple element <select> można renderować jako pole listy na stronie lub jako przycisk z wyskakującym okienkiem. Te tryby nie są jednak spójnie dostępne w Chrome na urządzeniach mobilnych i komputerach. Renderowanie pola listy na stronie jest niedostępne na urządzeniach mobilnych, a przycisk z wyskakującym okienkiem jest niedostępny na komputerach, gdy jest obecny atrybut multiple.

Ta aktualizacja dodaje pole listy na urządzeniach mobilnych i wyskakujące okienko z wieloma wyborami na komputerach oraz zapewnia, że rezygnacja z atrybutów size i multiple spowoduje ten sam tryb renderowania na urządzeniach mobilnych i komputerach. Zmiany są podsumowane w ten sposób:

  • Gdy atrybut size ma wartość większą niż 1, zawsze używane jest renderowanie na stronie. Urządzenia mobilne wcześniej ignorowały tę wartość.
  • Gdy atrybut multiple jest ustawiony bez atrybutu size, używane jest renderowanie na stronie. Urządzenia mobilne wcześniej używały wyskakującego okienka zamiast pola listy na stronie.
  • Gdy atrybut multiple jest ustawiony z size=1, używane jest wyskakujące okienko. Urządzenia stacjonarne wcześniej używały pola listy na stronie.

Aktywacja użytkownika w przypadku nawigacji zainicjowanych przez proces renderowania w ramach tej samej domeny

Chrome zachowuje stan aktywacji użytkownika po przejściu strony do innej strony w tej samej domenie. Brak aktywacji użytkownika na stronie po nawigacji uniemożliwia niektóre przypadki użycia, np. wyświetlanie klawiatur wirtualnych przy autofokusie. Blokuje to deweloperów, którzy chcą tworzyć MPA na podstawie SPA.

Nie obejmuje to żądań nawigacji zainicjowanych przez przeglądarkę (ponowne wczytanie, nawigacja po historii, wpisanie adresu URL na pasku adresu itp.).

Interfejsy Web API

WebGPU: funkcja primitive_index

WebGPU dodaje nową opcjonalną funkcję, która udostępnia nowy wbudowany shader WGSL, primitive_index. Podobnie jak wbudowane funkcje vertex_index i instance_index, udostępnia ona indeks na prymityw dla shaderów fragmentów na obsługiwanym sprzęcie. Indeks prymitywu jest przydatny w zaawansowanych technikach graficznych, takich jak wirtualizowana geometria.

WebGPU: formaty tekstur – poziom 1 i 2

Rozszerz obsługę formatów tekstur GPU o takie funkcje jak renderowanie załącznika, mieszanie, multisampling, rozwiązywanie i storage_binding.

Właściwość DataTransfer dla zdarzeń wejściowych insertFromPaste, insertFromDrop i insertReplacementText

Wypełnij właściwość dataTransfer w zdarzeniach wejściowych wartościami inputType insertFromPaste, insertFromDrop i insertReplacementText, aby zapewnić dostęp do schowka i danych przeciągania podczas operacji edycji w elementach contenteditable.

Obiekt dataTransfer zawiera te same dane, które były dostępne podczas zdarzenia beforeinput.

Ta funkcja dotyczy tylko elementów contenteditable. W przypadku elementów sterujących formularza (textarea, input) zachowanie pozostaje bez zmian.

Ta właściwość sprawia, że Chrome jest interoperacyjny z Safari i Firefoksem.

Sesja multimediów: dodaj przyczynę do szczegółów działania enterpictureinpicture

Dodaje enterPictureInPictureReason do MediaSessionActionDetails wysyłanego do działania enterpictureinpicture w interfejsie Media Session API. Umożliwia to deweloperom rozróżnianie działań enterpictureinpicture wywoływanych bezpośrednio przez użytkownika (np. za pomocą przycisku w user agencie) i działań enterpictureinpicture wywoływanych automatycznie przez user agenta, ponieważ treść jest zasłonięta.

Kontekstowe odchylenie w interfejsie Web Speech API

Ta aktualizacja umożliwia witrynom obsługę kontekstowego odchylenia w przypadku rozpoznawania mowy przez dodanie listy fraz rozpoznawania do interfejsu Web Speech API.

Deweloperzy mogą podać listę fraz i aktualizować je, aby zastosować odchylenie do modeli rozpoznawania mowy na korzyść tych fraz. Pomaga to poprawić dokładność i trafność rozpoznawania mowy w określonej domenie oraz spersonalizowanego rozpoznawania mowy.

Bardziej rygorystyczna weryfikacja tokena MIME *+json w przypadku modułów JSON

Odrzucaj odpowiedzi skryptów modułów JSON, których typ MIME lub podtyp zawiera punkty kodowe tokenów innych niż HTTP (np. spacje), gdy są dopasowane do *+json. Jest to zgodne ze specyfikacją MIME Sniffing i innymi silnikami. Jest to część obszaru modułów Interop2025.

FedCM – obsługa wyświetlania źródeł iframe innych firm w interfejsie

Przed Chrome 142 FedCM zawsze wyświetlał w swoim interfejsie witrynę najwyższego poziomu.

Sprawdza się to, gdy iframe jest koncepcyjnie własny (np. foo.com może mieć iframe foostatic.com, który nie ma znaczenia dla użytkownika).

Jeśli jednak iframe jest rzeczywiście stroną trzecią, lepiej jest wyświetlać w interfejsie źródło iframe, aby użytkownicy lepiej rozumieli, komu udostępniają swoje dane uwierzytelniające. Na przykład edytor zdjęć może być osadzony w aplikacji internetowej do publikowania książek i może chcieć umożliwić użytkownikom dostęp do plików, które wcześniej zapisali w edytorze zdjęć. Ta funkcja jest już dostępna.

Izolacja procesów ze źródłem jako kluczem

Przenosi zasady izolacji procesów z blokowania procesów w witrynie (np. example.com) na blokowanie ich w określonym źródle (np. foo.example.com).

Aby zwiększyć bezpieczeństwo, Chrome przechodzi na bardziej szczegółowy model izolacji procesów o nazwie „Izolacja źródła”. Chrome używał „Izolacji witryn”, która grupowała różne źródła z tej samej witryny, np. a.example.com i b.example.com, w jeden proces renderowania.

W przypadku izolacji źródła każde źródło (np. https://foo.example.com) jest izolowane w osobnym procesie renderowania. Wzmacnia to architekturę zabezpieczeń Chrome przez dopasowanie granic procesów do podstawowego modelu zabezpieczeń internetu opartego na źródłach, co zapewnia lepszą ochronę przed potencjalnymi lukami w witrynach.

Zdarzenia pointerrawupdate interoperacyjne, udostępniane tylko w bezpiecznych kontekstach

W 2020 r. specyfikacja PointerEvents ograniczyła pointerrawupdate do bezpiecznych kontekstów, ukrywając zarówno wywoływanie zdarzeń, jak i globalne detektory zdarzeń w kontekstach niebezpiecznych. Dzięki tej aktualizacji Chrome jest zgodny ze zaktualizowaną specyfikacją i staje się interoperacyjny z innymi głównymi przeglądarkami.

Trwające wersje próbne origin

W Chrome 142 możesz wziąć udział w tych nowych wersjach próbnych origin.

Dane uwierzytelniające sesji powiązanych z urządzeniem

Sposób bezpiecznego powiązania sesji z jedną witryną.

Umożliwia serwerom bezpieczne powiązanie sesji z urządzeniem. Przeglądarka okresowo odnawia sesję na żądanie serwera, z dowodem posiadania klucza prywatnego.

Pula gniazd TCP na witrynę najwyższego poziomu

Ten eksperyment ocenia wpływ zmiany rozmiaru puli gniazd TCP na profil z 256 (wartość domyślna) na 513 przy jednoczesnym dodaniu limitu 256 na witrynę najwyższego poziomu (aby żadne 2 karty nie mogły wyczerpać puli). Przeprowadzono badanie możliwości zwiększenia limitu na profil do 512, które nie przyniosło negatywnych wyników. Limit 256 na witrynę najwyższego poziomu jest równy domyślnemu limitowi na profil, więc nie powinien negatywnie wpływać na wydajność. Limity te są nakładane niezależnie na pulę WebSocket i zwykłą pulę gniazd (HTTP).

Jeśli nie wystąpią żadne negatywne skutki, planujemy bezpośrednie uruchomienie tego eksperymentu.