Chrome 148 w wersji beta

Opublikowano: 8 kwietnia 2026 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 tych funkcjach znajdziesz w linkach lub na stronie ChromeStatus.com. W momencie publikacji tej wersji Chrome jest w wersji beta. Najnowszą wersję beta możesz pobrać ze strony Google.com na komputer lub ze Sklepu Google Play na Androida.

CSS i interfejs

Zapytania o kontenery w CSS oparte tylko na nazwie

Teraz możesz wysyłać zapytania do kontenera CSS tylko na podstawie jego container-name bez ustawiania container-type w elemencie.

#container {
  container-name: --foo;
}
@container --foo {
  input { background-color: green; }
}
<div id="container">
  <div><input></div>
</div>

Obcinanie tekstu w przypadku jego nadmiaru w wyniku interakcji użytkownika

Gdy użytkownik wejdzie w interakcję (np. edytuje lub używa nawigacji kursorem) z tekstem, w którym ustawiono text-overflow: ellipsis, tekst tymczasowo przełącza się z wielokropka na przycinanie. Dzięki temu użytkownik może zobaczyć ukryte treści i z nimi wejść w interakcję. Ta funkcja dotyczy wszystkich elementów, które można edytować i których nie można edytować. W przypadku elementów sterujących formularza, takich jak <textarea><input>, to działanie jest już obsługiwane.

Prawidłowo ustawiaj parametr dropEffect w przypadku zdarzeń dragEnter, dragLeavedragOver.

Specyfikacje przeciągania i upuszczania wymagają, aby atrybut dropEffect obiektu dataTransfer miał określone wartości w przypadku dragEnter, dragOverdragLeave. dragEnterdragOver powinny mieć dropEffect na podstawie bieżącego effectAllowed. dragLeave powinno zawsze zawierać none dropEffect. Obecnie Chrome nie przestrzega tych reguł. Od wersji 148 Chrome będzie uwzględniać specyfikację i przypisywać do tego atrybutu prawidłowe wartości.

Odroczone ładowanie elementów wideo i audio

Ta funkcja dodaje atrybut loading do elementów <video> i <audio>. Umożliwia to deweloperom odroczenie ładowania zasobów multimedialnych, dopóki element nie znajdzie się w pobliżu widocznego obszaru, za pomocą atrybutu loading="lazy". Jest to zgodne z dotychczasowym działaniem leniwego ładowania w przypadku elementów <img><iframe>, co zwiększa wydajność wczytywania strony i ogranicza zużycie danych.

Funkcja CSS at-rule() do wykrywania funkcji

Ta funkcja dodaje do CSS @supports funkcję at-rule(), która umożliwia autorom wykrywanie obsługi reguł @ w CSS.

Dodaj słowo kluczowe revert-rule

Słowo kluczowe revert-rule przywraca kaskadę do poprzedniej reguły, podobnie jak revert-layer przywraca kaskadę do poprzedniej warstwy. Na przykład:

div { color: green; }
div { color: revert-rule; /* Effectively green */ }

Jest to szczególnie przydatne w przypadku warunków, ponieważ pozwala wyeliminować bieżącą regułę, jeśli warunek nie jest spełniony:

div {
  display: if(style(--layout: fancy): grid; else: revert-rule);
}

Wesprzyj kanał text-decoration-skip-ink: all

Ta funkcja dodaje obsługę wartości all dla właściwości CSS text-decoration-skip-ink. Usługa text-decoration-skip-ink obsługuje już autonone. Wartość all rozszerza tę funkcję, bezwarunkowo stosując pomijanie atramentu do wszystkich znaków, w tym znaków CJK. Natomiast auto nie pomija znaków CJK, ponieważ pomijanie atramentu zwykle daje niepożądane efekty wizualne w przypadku skryptów ideograficznych na typowych pozycjach podkreślenia. W przypadku text-decoration-skip-ink: all autorzy, którzy dostosowali text-underline-position lub text-underline-offset, aby uniknąć kolizji z glifami CJK, mogą wyraźnie włączyć pomijanie atramentu w przypadku tych znaków.

Interfejsy Web API

Lokalizowanie elementów manifestu

Ta funkcja obsługuje lokalizację elementów pliku manifestu, co umożliwia aplikacjom dostosowywanie nazw, opisów, ikon i skrótów do języka i regionu użytkownika. Deweloperzy podają zlokalizowane wartości w manifeście aplikacji internetowej. Przeglądarka automatycznie wybiera odpowiednie zasoby na podstawie ustawień języka użytkownika, co wprowadza obsługę języków na różnych rynkach.

Obsługa formatu Open Font Format avar2 w przypadku kształtowania tekstu i renderowania glifów

Wersja 2 tabeli avar (Axis Variations) umożliwia projektantom czcionek tworzenie czcionek zmiennych z większą kontrolą nad interpolacją. Podczas gdy oryginalna specyfikacja czcionki zmiennej obsługuje osie niezależnie, avar2 umożliwia wzajemne oddziaływanie osi. Dzięki temu autorzy treści mogą łatwiej korzystać z czcionek, a pliki zajmują mniej miejsca.

Avar2 działa na podstawie tych samych znanych koncepcji wariantów czcionek, ale umożliwia stosowanie zmiennych wartości delta do samych osi projektu. Możesz to zrobić w przypadku wielu osi.

Możesz na przykład utworzyć suwaki metadanych, które kontrolują jednocześnie wiele osi wariantów. Dzięki temu użytkownik nie musi dostosowywać i wyszukiwać przydatnego fragmentu przestrzeni projektowej czcionki.

Avar2 daje projektantom czcionek większą kontrolę nad przestrzenią wariacji, z której można korzystać, i umożliwia koordynowanie dostosowywania osi projektu na kilku osiach. Dzięki zdefiniowaniu matematycznych relacji między osiami w tabeli avar w wersji 2 czcionki mogą osiągać złożone projekty przy mniejszej liczbie wzorców. Prowadzi to do mniejszych rozmiarów plików, ponieważ interpolacja jest przechowywana w bardziej efektywny sposób.

Tryb natychmiastowego interfejsu Web Authentication

W tym nowym trybie navigator.credentials.get() interfejs logowania w przeglądarce wyświetla się użytkownikowi, jeśli przeglądarka od razu zna klucz dostępu lub hasło do witryny. W przeciwnym razie odrzuca obietnicę z NotAllowedError, jeśli takie dane logowania nie są dostępne. Dzięki temu witryna może uniknąć wyświetlania strony logowania, jeśli przeglądarka może zaoferować wybór danych logowania, które prawdopodobnie zadziałają. Nadal umożliwia on przepływ logowania na stronie w przypadku, gdy takie dane logowania nie istnieją.

Obsługa interfejsu Web Serial API na Androidzie

Web Serial API udostępnia interfejs do łączenia się z urządzeniami szeregowymi. Te urządzenia mogą łączyć się przez port szeregowy w systemie użytkownika lub przez wymienne urządzenia USB i Bluetooth, które emulują port szeregowy. Interfejs API jest teraz obsługiwany na Androidzie.

Użytkownicy, zwłaszcza w sektorach edukacyjnym, hobbystycznym i przemysłowym, podłączają do komputerów urządzenia peryferyjne, które wymagają niestandardowego oprogramowania do sterowania. Na przykład roboty są często wykorzystywane w szkołach do nauczania programowania i elektroniki. Wymaga to oprogramowania, które może przesyłać kod do robota lub sterować nim zdalnie. W środowisku przemysłowym lub hobbystycznym urządzenie, takie jak frezarka, wycinarka laserowa lub drukarka 3D, jest sterowane przez program działający na podłączonym komputerze. Takie urządzenia są często sterowane przez małe mikrokontrolery za pomocą połączenia szeregowego.

Funkcja WebGPU linear_indexing

Ta funkcja dodaje 2 nowe wbudowane wartości shadera obliczeniowego, aby zwiększyć komfort użytkowników. Te wartości są implementowane we wszystkich backendach (jako polyfille istniejących wbudowanych wartości).

SharedWorker obsługi na Androidzie,

Od dłuższego czasu funkcja SharedWorker jest wyłączona na urządzeniach z Androidem z powodu obaw związanych z nieprzewidywalnym cyklem życia procesu. Deweloperzy Chrome uważali, że instancje SharedWorker mogą się nieoczekiwanie kończyć bez powiadamiania użytkowników ani deweloperów stron internetowych. Zostało to uznane za niedopuszczalne.

Jednak niedawna dyskusja na GitHubie sugeruje, że nieprzewidywalny charakter cyklu życia procesu SharedWorker może nie być tak istotnym problemem, jak wcześniej sądzono. W związku z tym Chrome ponownie włącza tę funkcję na Androidzie, a jednocześnie bada to zachowanie, aby zapewnić stabilne i niezawodne działanie.SharedWorker

Dłuższy okres istnienia modułów SharedWorker

Ta aktualizacja dodaje nową opcję extendedLifetime: true do konstruktora SharedWorker. W ten sposób żądasz, aby współdzielony proces roboczy pozostał aktywny nawet po odładowaniu wszystkich bieżących klientów. Głównym przypadkiem użycia jest umożliwienie stronom wykonywania asynchronicznych działań wymagających JavaScriptu po wyładowaniu strony, bez konieczności korzystania ze skryptu service worker.

Prompt API

Prompt API zapewnia deweloperom internetowym bezpośredni dostęp do modelu językowego AI na urządzeniu udostępnianego przez przeglądarkę. Projekt interfejsu API zapewnia precyzyjną kontrolę zgodną z kształtami interfejsów API w chmurze. Umożliwia to stopniowe ulepszanie witryn za pomocą interakcji z modelem dostosowanych do indywidualnych przypadków użycia. Uzupełnia to interfejsy API modeli językowych oparte na zadaniach (np. Summarizer API) oraz różne interfejsy API i platformy do uogólnionego wnioskowania na urządzeniu z modelami ML dostarczonymi przez dewelopera. Pierwsza implementacja obsługuje dane wejściowe w postaci tekstu, obrazu i dźwięku, a także ograniczenia odpowiedzi, które zapewniają, że wygenerowany tekst jest zgodny z wcześniej zdefiniowanymi formatami wyrażeń regularnych i schematu JSON.

Umożliwia to różne zastosowania. Może na przykład generować podpisy do obrazów, przeprowadzać wyszukiwanie wizualne, transkrybować dźwięk, klasyfikować zdarzenia dźwiękowe, generować tekst zgodnie z określonymi instrukcjami oraz wyodrębniać informacje lub wnioski z materiałów źródłowych o charakterze multimodalnym.

Ten interfejs API jest już dostępny w rozszerzeniach do Chrome. Ten zamiar śledzi dostawę w internecie. Dostępna jest zasada firmyGenAILocalFoundationalModelSettings, która umożliwia wyłączenie pobierania modelu bazowego, co powoduje niedostępność tego interfejsu API. Administratorzy wersji Enterprise mogą też ustawić zasadę BuiltInAIAPIsEnabled, aby zablokować korzystanie z wbudowanego interfejsu AI API, ale nadal zezwalać na inne funkcje generatywnej AI na urządzeniu.

Dziennik obsługi języków:

  • Chrome w wersji 139 i starszych obsługiwał tylko język angielski ('en').
  • W Chrome 140 dodaliśmy obsługę języka hiszpańskiego i japońskiego ('es''ja').

Uzyskiwanie możliwości potwierdzania bezpiecznych płatności

Ta funkcja dodaje do interfejsu Payment Request API nową metodę statyczną, która umożliwia programistom internetowym uzyskanie informacji o możliwościach implementacji Secure Payment Confirmation w przeglądarce. Dzięki temu programiści stron internetowych wiedzą, jakie możliwości są dostępne w przypadku potwierdzenia bezpiecznej płatności. Mogą wtedy zdecydować, czy chcą korzystać z potwierdzenia bezpiecznej płatności z tymi funkcjami.

Reguły IDNA ContextJ

IDNA to mechanizm obsługi znaków spoza zestawu ASCII w nazwach domen. Koduje adres URL, np. http://네이버.한국/, jako http://xn--950bt9s8xi.xn--3e0b707e/ (przekierowanie do naver.com).

Specyfikacja adresu URL ustawia flagę CheckJoiners, która włącza reguły ContextJIDNA2008. Ta opcja blokuje znaki ZWNJ (U+200C ZERO WIDTH NON-JOINER) i ZWJ (U+200D ZERO WIDTH JOINER) w większości miejsc w adresach URL. Implementacja przekazuje opcję UIDNA_CHECK_CONTEXTJ do biblioteki ICU, w której ta reguła jest zaimplementowana.

Ponowne wykorzystywanie obrazów bez sklepu w przypadku ponownego przypisania tego samego źródła

Ta funkcja umożliwia ponowne wykorzystanie dostępnego obrazu w tym samym dokumencie bez ponownego wczytywania Cache-Control: no-store, gdy ta sama wartość src zostanie przypisana do elementu <img>. Wcześniej Blink ponownie pobierał obraz, mimo że był już zdekodowany i dostępny w dokumencie. Jest to zgodne z obecnym działaniem przeglądarek Gecko i WebKit.

Dodaj pole contentType do pomiaru czasu zasobów

Ta funkcja dodaje pole contentType do PerformanceResourceTiming, aby przechowywać ciąg znaków odpowiadający typowi treści pobranego zasobu, zgodnie z informacjami zwróconymi przez serwer.

Blokowanie zdarzeń wskaźnika podczas rozpoczęcia przeciągania

Zgodnie ze specyfikacją HTML, gdy rozpoczyna się przeciąganie, agent użytkownika powinien wysłać odpowiednie zdarzenia do źródła przeciągania, aby wskazać, że strumień zdarzeń wskaźnika został zakończony i że nie należy oczekiwać więcej zdarzeń z tego wskaźnika. Ten kod został częściowo wdrożony w przypadku zdarzeń myszy i w pełni w przypadku przeciągania dotykowego na Androidzie. Dzięki tej funkcji Chrome ma na celu pełne spełnienie tego wymagania specyfikacji na wszystkich innych platformach. W praktyce oznacza to, że po rozpoczęciu przeciągania źródło przeciągania będzie teraz otrzymywać zdarzenia pointercancel, pointeroutpointerleave, aby wskazać, że bieżący strumień zdarzeń został zakończony.

WebRTC Datachannel: Always negotiate data channels (WebRTC Datachannel: zawsze negocjuj kanały danych)

Ta funkcja implementuje rozszerzenie WebRTC, alwaysNegotiateDataChannels, które określa sposób negocjowania przez aplikację kanałów danych w ofercie SDP przed utworzeniem kanału danych. Negocjuje też sekcję danych m= przed sekcjami audio lub wideo m i używa jej jako „sekcji oznaczonej przez oferującego m=” na potrzeby [BUNDLE].

Oznacza to, że jeśli utworzysz RTCPeerConnectionalwaysNegotiateDataChannels: true, a następnie wywołasz createOffer(), utworzysz ofertę z linią m w SDP. Na przykład:

  const pc = new RTCPeerConnection({
    alwaysNegotiateDataChannels: true});
  const offer = await pc.createOffer();

Jeśli dodasz też nadajnik-odbiornik audio i kanał danych, oferta wynegocjuje w SDP wiersz m aplikacji, a potem wiersz m audio:

  const pc = new RTCPeerConnection({
    alwaysNegotiateDataChannels: true});
  pc.addTransceiver('audio');
  pc.createDataChannel('somechannel');
  const offer = await pc.createOffer();

Nowe wersje próbne origin

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

Logowanie sfederowane agentowe

Zestaw rozszerzeń FedCM, które pomagają przeglądarkom agentowym bezpiecznie logować użytkowników w witrynach za pomocą kont sfederowanych.

Listy dozwolonych połączeń

Listy dozwolonych połączeń to funkcja, która zapewnia wyraźną kontrolę nad zewnętrznymi punktami końcowymi przez ograniczanie połączeń inicjowanych przez interfejs Fetch API lub inne interfejsy API platformy internetowej z dokumentu lub procesu roboczego. Proponowana implementacja rozpowszechnia listę autoryzowanych punktów końcowych z serwera za pomocą nagłówka odpowiedzi HTTP. Zanim klient nawiąże połączenie w imieniu strony, sprawdza, czy miejsce docelowe znajduje się na tej liście dozwolonych. Połączenia z zweryfikowanymi punktami końcowymi są dozwolone, a połączenia, które nie pasują do wpisów na liście, są blokowane.

Czas kontenera

Interfejs Container Timing API umożliwia monitorowanie, kiedy na ekranie pojawiają się oznaczone sekcje DOM i kiedy kończy się ich pierwsze renderowanie. Możesz oznaczać podsekcje DOM atrybutem containertiming (podobnie jak elementtiming w przypadku interfejsu Element Timing API) i otrzymywać wpisy dotyczące wydajności, gdy dana sekcja zostanie wyrenderowana po raz pierwszy. Ten interfejs API umożliwia pomiar czasu działania różnych komponentów na stronach.

Deklaratywne skrypty modułów CSS

Deklaratywne skrypty modułów CSS są rozszerzeniem istniejących skryptów modułów CSS opartych na skryptach. Umożliwiają one deweloperom udostępnianie deklaratywnych arkuszy stylów z elementami shadow root, w tym deklaratywnymi elementami shadow root. Deweloperzy mogą definiować moduły stylu wbudowanego za pomocą <style type="module" specifier="foo"> i stosować moduł deklaratywny do deklaratywnego DOM cienia, odwołując się do specifier lub adresu URL, np. <template shadowrootmode="open" shadowrootadoptedstylesheets="foo">.

HTML w obszarze Canvas

HTML-in-canvas to nowy interfejs API, który umożliwia dostosowywanie elementów DOM renderowania bezpośrednio w teksturze Canvas lub WebGL / WebGPU przy zachowaniu interaktywności i dostępności treści. Składa się z 3 części: atrybutu umożliwiającego włączenie elementów canvas (layoutsubtree), metod rysowania elementów podrzędnych (2d: drawElementImage, webgl:texElementImage2D, webgpu: copyElementImageToTexture) oraz sposobu prawidłowego aktualizowania przekształcenia elementu na ekranie w celu zapewnienia interaktywności.

Czas trwania stylu długich klatek animacji

Ta funkcja dodaje informacje styleDurationforcedStyleDuration do interfejsu API długiej klatki animacji. Umożliwia to programistom rozróżnianie czasu wczytywania stylu i układu.

OpaqueRange

OpaqueRange reprezentuje aktywny zakres tekstu w wartości elementu sterującego formularza (np. <textarea> lub tekst <input>), dzięki czemu programiści mogą pracować z tekstem wartości za pomocą interfejsów API podobnych do zakresów.

Umożliwia wykonywanie operacji takich jak getBoundingClientRect(), getClientRects() i korzystanie z interfejsu CSS Highlights API w przypadku elementów interfejsu, takich jak sugestie wbudowane, wyróżnienia i zakotwiczone wyskakujące okienka. Zachowuje hermetyzację, udostępniając tylko przesunięcia wartości (i zwracając wartość null w przypadku startContainerendContainer), dzięki czemu punkty końcowe DOM i struktura wewnętrzna nie są udostępniane.

Analizowanie instrukcji przetwarzania w kodzie HTML

Instrukcje przetwarzania (składnia: <?target data>) to istniejąca konstrukcja DOM, która jest dostępna w XML. Ta konstrukcja umożliwia obiektom węzłów, które nie są elementami, nadanie znaczenia semantycznego na potrzeby przetwarzania dokumentu. Możesz ich na przykład używać do oznaczania zakresów do przesyłania strumieniowego lub wyróżniania bez konieczności tworzenia nowych elementów DOM i zmiany struktury DOM z punktu widzenia CSS. Możesz też używać ich jako dyrektyw dla parsera HTML dotyczących buforowania i przesyłania strumieniowego.

Zasady dotyczące uprawnień: focus-without-user-activation

Ta zasada umożliwia podmiotom osadzającym kontrolowanie programowego ustawiania ostrości w osadzonych treściach za pomocą zasad uprawnień focus-without-user-activation. Jeśli zasady zostaną odrzucone w przypadku ramki, wywołania programowe dotyczące fokusu (element.focus(), autofocus, window.focus(), dialog.showModal() i fokusowanie wyskakującego okienka) są blokowane, chyba że zostały wywołane przez aktywację użytkownika. Nigdy nie ma to wpływu na fokus zainicjowany przez użytkownika, np. kliknięcie lub przejście za pomocą klawisza Tab. Zasady możesz ustawić za pomocą nagłówka odpowiedzi HTTP Permissions-Policy lub atrybutu iframe allow. Delegowanie fokusu jest obsługiwane. Ramka nadrzędna, która ma fokus, może programowo przekazać fokus do ramki iframe podrzędnej, nawet jeśli ta ramka ma zablokowaną tę funkcję. Gdy ramka zostanie zaznaczona, może przenosić zaznaczenie w obrębie własnego poddrzewa.

Parametry próbkowania interfejsu Prompt API

Ta funkcja dodaje parametry próbkowania do interfejsu Prompt API. Te parametry określają sposób próbkowania tokenów z modelu, co daje deweloperom kontrolę nad kreatywnością lub losowością danych wyjściowych. Dodatkowo dodaje atrybuty do instancji LanguageModel, aby odczytywać ustawione wartości. Dodaje też statyczną funkcję LanguageModel, która umożliwia uzyskanie domyślnych i maksymalnych wartości tych parametrów. Pierwsza implementacja dodaje parametry temperaturetopK.

Element instalacji HTML aplikacji internetowej

Ta funkcja umożliwia witrynie deklaratywne wyświetlanie użytkownikom prośby o zainstalowanie aplikacji internetowej. Element opcjonalnie akceptuje 2 atrybuty, które umożliwiają instalowanie treści z innego źródła.