Chrome 149 w wersji beta

Data publikacji: 6 maja 2026 r.

O ile nie zaznaczono inaczej, poniższe zmiany dotyczą najnowszej wersji beta Chrome na Androida, ChromeOS, Linuksa, macOS i Windows. Więcej informacji o wymienionych tu funkcjach znajdziesz w podanych linkach lub na liście na stronie ChromeStatus.com. Chrome jest w wersji beta od 6 maja 2026 r. Najnowszą wersję możesz pobrać na komputerze na stronie Google.com lub na urządzeniu z Androidem w Sklepie Google Play.

CSS i interfejs

Usuwanie z arkusza stylów UA reguły dotyczącej koloru obramowania tabeli

Ta zmiana usuwa błędną regułę CSS border-color: gray z arkusza stylów UA dla elementu <table>.

Specyfikacja HTML nie zawiera tej reguły, co powoduje, że obramowania nie są domyślnie ustawione na wartość currentColor. Ani Firefox, ani Webkit nie mają w arkuszu stylów UA tej reguły dotyczącej koloru obramowania gray, co prowadzi do problemów z interoperacyjnością.

Obsługa path()shape()shape-outside

Dodaje obsługę funkcji kształtu path()shape() we właściwości CSS shape-outside. Funkcje te umożliwiają deweloperom bardziej elastyczne określanie kształtu shape-outside i obsługę animacji.

Zaktualizowano 7 czerwca 2026 r., aby poprawić opis, który wcześniej odnosił się do używania współrzędnych prostokąta.

Obsługa rect()xywh()shape-outside

Dodaje obsługę funkcji kształtów podstawowych rect()xywh() we właściwości CSS shape-outside. Te funkcje umożliwiają deweloperom definiowanie kształtów wykluczających pływanie za pomocą współrzędnych prostokąta, co sprawia, że Chrome jest zgodny z Firefoxem i Safari, które już obsługują tę funkcję.

Kolor uzupełniający systemu w zakresie aplikacji internetowej

Ogranicza dostęp do systemowego koloru uzupełniającego w przypadku słów kluczowych CSS i accent-color: auto tylko do aplikacji internetowej i kontekstu profilu początkowego.

Słowa kluczowe CSS AccentColorAccentColorText stanowią istotny wektor fingerprintingu, gdy kolory systemowe użytkownika są szeroko udostępniane w internecie. Dlatego są one dostępne tylko w kontekście zainstalowanych aplikacji internetowych. Elementy sterujące formularza z accent-color: auto również pasują do tego zakresu po wprowadzeniu tej funkcji. Dzięki temu deweloperzy i użytkownicy mogą mieć bardziej spójne oczekiwania dotyczące kolorów systemowych, a także jest to zgodne z ograniczeniami dotyczącymi odcisków cyfrowych w przypadku AccentColor[Text].

Obcinanie tekstu w przypadku nadmiaru po interakcji użytkownika

Gdy użytkownik wejdzie w interakcję (edytowanie lub nawigacja kursorem) z tekstem, w którym ustawiono wartość text-overflow: ellipsis, tekst tymczasowo przełącza się z wielokropka na przycinanie, co umożliwia użytkownikowi wyświetlanie ukrytych treści i wchodzenie z nimi w interakcję. Ta funkcja dotyczy wszystkich elementów, które można edytować, i tych, których nie można. W przypadku elementów sterujących formularza (textarea, input) to zachowanie jest już obsługiwane.

Dekoracje przerw CSS

Dekoracje przerw CSS umożliwiają stylizowanie przerw w układach kontenerów, takich jak siatka i flexbox, podobnie jak column-rule w układzie wielokolumnowym. Ta funkcja jest bardzo pożądana przez deweloperów stron internetowych, którzy obecnie muszą stosować obejścia, aby stylizować odstępy w układach siatki i flexbox.

image-rendering: crisp-edges

Symbol image-rendering: crisp-edges oznacza, że obraz powinien być skalowany w taki sposób, aby zachować kontrast i krawędzie oraz uniknąć wygładzania kolorów lub rozmycia obrazu.

Granica najwyższej warstwy pseudoklasy działania użytkownika

Ta funkcja odzwierciedla zachowanie opisane w specyfikacji selektorów CSS poziomu 4, która mówi, że selektory :hover, :active:focus-within pasują do elementów nadrzędnych, ale tylko do pierwszego elementu najwyższej warstwy w łańcuchu elementów nadrzędnych. Zmiana w Chromium wprowadza to ograniczenie w przypadku elementów najwyższej warstwy.

Oznacza to, że w tej strukturze, jeśli użytkownik najedzie kursorem na element <button>, pseudoklasa :hover będzie pasować do elementu <button> i wyskakującego okienka, ale nie będzie pasować do elementu <main>.

<main>
  <div popover>
    <button></button>
  </div>
</main>
<script>document.querySelector('[popover]').showPopover();</script>

Uzasadnieniem tej zmiany jest to, że elementy najwyższej warstwy są zwykle renderowane „gdzie indziej”, w miejscu, które jest wizualnie odłączone od elementu nadrzędnego. Dlatego zwykle nie ma sensu zmieniać stylów elementu nadrzędnego, gdy na przykład element najwyższej warstwy jest podświetlony lub aktywny.

W implementacji elementu select z możliwością dostosowania, która została udostępniona w Chromium, ta logika jest zakodowana na stałe w przypadku wyskakującego okienka elementu select ::picker(). Ta logika specjalnego przypadku jest usuwana na rzecz bardziej ogólnego zachowania tej funkcji.

Obsługa path-length jako właściwości CSS

Ta zmiana wprowadza nową właściwość CSS path-length, która jest mapowana na istniejący atrybut prezentacji SVG pathLength. Dotyczy to elementów geometrii SVG, które obsługują pathLength (w tym <path>, <circle>, <rect>, <line>, <polyline>, <polygon><ellipse>).

Udostępnienie pathLength jako właściwości CSS umożliwia autorom określanie jej w arkuszach stylów, stylach wbudowanych i animacjach, dzięki czemu może ona uczestniczyć w normalnym kaskadowaniu, specyficzności, przejściach i animacjach CSS. Właściwość ta wpływa na wszystkie obliczenia, które zależą od całkowitej długości ścieżki, w tym na renderowanie kreskowania i pozycjonowanie tekstu wzdłuż <textPath>.

Deklaracje CSS zastępują atrybut prezentacji zgodnie ze standardowymi regułami pierwszeństwa CSS. Początkowa wartość path-length to none, co oznacza brak długości ścieżki podanej przez autora i różni się od wyraźnej wartości liczbowej, takiej jak 0.

Po wyłączeniu tej funkcji zachowanie dotyczące tylko atrybutów pozostanie bez zmian.

Interfejsy Web API

Intl.Locale.prototype.variants

Dodaj Intl.Locale.prototype.variants zgodnie z propozycją TC39, a także akceptuj „warianty” w pakiecie opcji w konstruktorze Intl.Locale zgodnie z aktualizacją identyfikatora języka TC39. Zmiany w ECMA402 zostały scalone w żądaniu pull 960, a kod testowy w test262 został scalony w żądaniu pull 4474.

Obietnice przewijania w ramach automatyzacji

Obecnie deweloperzy stron internetowych nie mają możliwości sprawdzenia, kiedy zakończy się programowe płynne przewijanie. Ta funkcja rozwiązuje ten problem: sprawia, że programowe metody przewijania zwracają obiekty Promise, które są rozwiązywane po zakończeniu przewijania ze statusem przerwania.

Payment Request: zezwalanie modułom do obsługi płatności na zgłaszanie błędów wewnętrznych

Umożliwia programom obsługi płatności, do których dostęp uzyskuje się za pomocą interfejsu Payment Request API, zwracanie różnych błędów w przypadku „anulowania przez użytkownika” i „wewnętrznego błędu aplikacji płatniczej”. Dzięki temu deweloperzy stron internetowych mogą tworzyć lepsze ścieżki dla użytkowników, np. ponawiać próbę lub wracać do innej ścieżki, gdy wystąpi wewnętrzny błąd aplikacji, a jednocześnie prawidłowo zatrzymywać ścieżkę, jeśli użytkownik chce anulować płatność.

Interfejs Web-based Payment Handler API może wskazywać tę różnicę na podstawie błędu, którego używa do odrzucenia obietnicy przekazanej do PaymentRequestEvent.respondWith. Jeśli obietnica zostanie odrzucona z kodem OperationError, sprzedawca otrzyma komunikat „internal app error” (OperationError) za pomocą metody PaymentRequest.show(). W przeciwnym razie otrzyma komunikat „user cancel” (AbortError).

Infrastruktura obsługi płatności w aplikacjach natywnych jest aktualizowana w podobny sposób, ale nie dotyczy interfejsów API w internecie.

Obsługa autocorrect="off" w przypadku klawiatury dotykowej w systemie Windows w TSF

Atrybut HTML autocorrect umożliwia autorom stron internetowych kontrolowanie, czy autokorekta ma być stosowana do danych wejściowych użytkownika w elementach edytowalnych, w tym w elementach <input>, <textarea> i elementach hostujących z atrybutem contenteditable. W systemie Windows klawiatura dotykowa ignoruje ten atrybut i zawsze automatycznie poprawia słowa. Na przykład wpisanie "truf", a następnie spacji w elemencie z wartością autocorrect="off" daje w wyniku "true " zamiast zachowania "truf ". Ta funkcja sprawia, że integracja TSF w Chrome wykrywa i cofa autokorektę klawiatury dotykowej, gdy zaznaczony element edytowalny ma ustawioną wartość autocorrect="off".

Rozłączanie połączeń WebSocket po wejściu do pamięci podręcznej stanu strony internetowej

Aktywne połączenia WebSocket nie uniemożliwiają już stronie korzystania z pamięci podręcznej stanu strony internetowej. Zamykając połączenia przy wejściu do pamięci podręcznej, zamiast oznaczać dokument jako niekwalifikujący się, przeglądarka umożliwia przechowywanie i przywracanie stron z aktywnymi gniazdami WebSocket.

Atrybut Request.isReloadNavigation

Dodaje atrybut logiczny tylko do odczytu isReloadNavigation do interfejsu Request interfejsu Fetch API. Ten atrybut wskazuje, czy bieżące żądanie nawigacji zostało zainicjowane jako ponowne wczytanie wywołane przez użytkownika (np. za pomocą przycisku odświeżania location.reload() lub history.go(0)). Ten sygnał jest udostępniany głównie w obiekcie Request w FetchEvent Service Workera.

Wyłączanie filtrów SVG w przypadku wtyczek oraz elementów iframe z innych domen i ograniczonych

Ta zmiana uniemożliwia stosowanie filtrów SVG do elementów iframe z innych domen lub ograniczonych elementów iframe (np. w piaskownicy) oraz wtyczek (np. plików PDF). Gdy ramka lub wtyczka ma być renderowana z efektem filtra SVG, drzewo efektów jest przeszukiwane w celu znalezienia najwyższego elementu nadrzędnego bez filtrów SVG, a następnie stosowany jest ten efekt.

Nowe wersje próbne origin

W Chrome 149 możesz wziąć udział w tych nowych eksperymentach z pochodzeniem.

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

Umożliwia podmiotom umieszczającym treści kontrolowanie automatycznego kierowania reklam na podstawie umieszczonych treści za pomocą focus-without-user-activationzasad dotyczących uprawnień. Gdy zasada jest odrzucana w przypadku ramki, wywołania programowe dotyczące zaznaczenia (element.focus(), autofocus, window.focus(), dialog.showModal() i zaznaczanie wyskakującego okienka) są blokowane, chyba że zostały wywołane przez aktywację użytkownika. Fokus zainicjowany przez użytkownika, np. kliknięcie lub przejście za pomocą klawisza Tab, nigdy nie jest zmieniany.

Zasady można ustawić za pomocą nagłówka odpowiedzi HTTP Permissions-Policy lub atrybutu allow elementu iframe. Przekazywanie fokusu jest obsługiwane: ramka nadrzędna, która ma fokus, może programowo przekazać fokus do podrzędnej ramki iframe, nawet jeśli ta ma zasadę odrzucenia. Gdy ramka ma fokus, może go przenieść w obrębie własnego poddrzewa.

Interfejs API wejścia sterowanego zdarzeniami pada

Ta propozycja rozszerza interfejs Gamepad API o nowy model oparty na zdarzeniach, który umożliwia aplikacjom odbieranie danych wejściowych z gamepada z mniejszym opóźnieniem. Zamiast polegać na częstym odpytywaniu za pomocą navigator.getGamepads(), programiści mogą teraz nasłuchiwać zdarzenia rawgamepadinputchange, które jest wywoływane za każdym razem, gdy z urządzenia są dostępne nowe dane wejściowe. Umożliwia to szybsze przetwarzanie danych wejściowych, zwłaszcza w przypadku aplikacji wrażliwych na opóźnienia.

Niestandardowe deskryptory WebAssembly

Umożliwia WebAssembly wydajniejsze przechowywanie danych powiązanych z typami na poziomie źródła w nowych obiektach niestandardowych deskryptorów. Te niestandardowe deskryptory można skonfigurować za pomocą prototypów obiektów WebAssembly tego typu na poziomie źródła. Umożliwia to instalowanie metod w łańcuchu prototypów obiektu WebAssembly i wywoływanie ich bezpośrednio z JavaScriptu za pomocą normalnej składni wywołania metody. Prototypy i metody można skonfigurować deklaratywnie za pomocą zaimportowanej wbudowanej funkcji.