Chrome 145

Data wprowadzenia wersji stabilnej: 10 lutego 2026 r.

O ile nie zaznaczono inaczej, poniższe zmiany dotyczą wersji stabilnej Chrome 145 na Androida, ChromeOS, Linuksa, macOS i Windowsa.

CSS i interfejs

Dodaliśmy obsługę właściwości CSS text-justify

Możesz kontrolować sposób justowania tekstu, gdy zastosowana jest wartość text-align: justify, za pomocą właściwości text-justify. Możesz na przykład wymusić wyrównanie do lewej i prawej strony, rozszerzając odstępy między znakami nawet w tekście w języku angielskim.

Błąd śledzenia nr 40321528 | Wpis na ChromeStatus.com | Specyfikacja

Włącz wartości procentowe dla właściwości CSS letter-spacing i word-spacing

Włącz wartości procentowe dla właściwości CSS letter-spacing i word-spacing zgodnie ze specyfikacją CSS Text Module Level 4. Wartości procentowe są obliczane w stosunku do miary zaliczki znaku spacji (U+0020). Zapewnia to większą kontrolę nad typografią, zwłaszcza w przypadku projektów elastycznych, w których odstępy w tekście muszą dostosowywać się do różnych obszarów wyświetlania i rozmiarów czcionek.

Błąd śledzenia nr 327740939 | Wpis na ChromeStatus.com | Specyfikacja

Ulepszanie obliczania krawędzi cienia promienia zaokrąglenia w przypadku wysokich wartości border-radius

Ta zmiana sprawia, że cienie i granice przycinania na elementach zbliżonych do okręgu (gdzie border-radius jest bliskie 50%) dokładnie odpowiadają wizualnemu konturowi zakrzywionej krawędzi.

Zapewnia to bardziej spójne renderowanie złożonych zaokrąglonych kształtów, eliminując różnice wizualne w przypadku dużych wartości promienia. Współczynnik border-radius korekty, który zapewnia ostrość narożników przy małych promieniach, jest stopniowo tłumiony, gdy wartość promienia zbliża się do 50%.

Dotyczy to również konturów nieokrągłych (używających corner-shape), które teraz korzystają z tego samego mechanizmu dostosowywania promienia.

Błąd śledzenia nr 448651073 | Wpis na ChromeStatus.com | Specyfikacja

Zawijanie kolumn w układzie wielokolumnowym

Dodaliśmy obsługę właściwości CSS column-wrap i column-height z modułu wielokolumnowego poziomu 2.

Umożliwia to układ kolumn pionowych, a nawet układ kolumn 2D. Kolumny mogą mieć określoną wysokość, zamiast być wyznaczane na podstawie content-box wysokości kontenera wielokolumnowego. Gdy wszystkie kolumny w jednym wierszu zostaną wypełnione, zawijają się do nowego wiersza kolumn, zamiast tworzyć kolumny przepełnione w kierunku wiersza.

Błąd śledzenia nr 403183884 | Wpis na ChromeStatus.com | Specyfikacja

Udostępnij zdarzenie onanimationcancelGlobalEventHandlers

Specyfikacja animacji CSS na poziomie 1 rozszerza interfejs GlobalEventHandlers zdefiniowany w specyfikacji HTML, deklarując 4 nowe procedury obsługi zdarzeń: onanimationstart, onanimationiteration, onanimationendonanimationcancel. W GlobalEventHandlers IDL brakowało tylko modułu obsługi zdarzeń onanimationcancel.

Błąd śledzenia nr 464010037 | Wpis na ChromeStatus.com | Specyfikacja

Pole listy wyboru z możliwością dostosowania

Rozszerza to obsługę dostosowywanego wyboru na tryb renderowania pola listy, w tym wybór pojedynczy i wielokrotny w trybie pola listy.

Tryb renderowania pola listy renderuje element select w przepływie lub na stronie, a nie za pomocą osobnego przycisku i wyskakującego okienka. Możesz włączyć tryb renderowania pola listy na różnych platformach za pomocą atrybutów multiple lub size, np. <select multiple> lub <select size=4>. Gdy do elementu select z tymi atrybutami zostanie zastosowana właściwość appearance: base-select CSS, poprawi to renderowanie i działanie danych wejściowych.

Nie obsługuje to konfigurowalnego elementu select w wyskakującym okienku wielokrotnego wyboru, który będzie obsługiwany w późniejszym czasie. Aby uzyskać wyskakujące okienko z możliwością wielokrotnego wyboru, musisz ustawić te atrybuty: <select multiple size=1>.

Błąd śledzenia nr 357649033 | Wpis na ChromeStatus.com | Specyfikacja

Opcja focusVisible na stronie focus

Podczas wywoływania metody focus() możesz podać wartość logiczną focusVisible w słowniku FocusOptions. Jeśli wartość to „true”, wokół nowo zaznaczonego elementu zawsze jest rysowany pierścień zaznaczenia, który pasuje do pseudoklasy :focus-visible. Jeśli wartość to false, pierścień ostrości nie jest rysowany, a :focus-visible nie pasuje. Jeśli go brakuje, klient użytkownika sam decyduje, czy należy narysować pierścień fokusu, a pseudoklasa :focus-visible jest odpowiednio dopasowywana.

Błąd śledzenia nr 462191849 | Wpis na ChromeStatus.com | Specyfikacja

Włącz renderowanie monochromatycznych emoji w trybie wymuszonych kolorów.

Ta zmiana aktualizuje sposób renderowania emoji w Chromium w trybie wymuszonych kolorów. Podczas określania wartości obliczonej emotikony, których wartość font-variant-emoji wynosi normal lub unicode, są renderowane przy użyciu dostępnych glifów monochromatycznych.

Dlatego Chromium pomija renderowanie kolorowych emoji, co zapewnia, że emoji w pełni uczestniczą w procesie trybu wymuszonych kolorów i są zgodne z systemowymi kolorami o wysokim kontraście. Działanie poza trybem kolorów wymuszonych pozostaje bez zmian.

Błąd śledzenia nr 420857717 | Wpis na ChromeStatus.com | Specyfikacja

Efekt przewijania poza zakres w przypadku elementów przewijanych innych niż główne

Pokazuje to efekty elastycznego przewijania w kontenerach przewijania innych niż główne. Gdy zagnieżdżony element z możliwością przewijania osiągnie granicę przewijania, efekt przewijania poza zakres zostanie zastosowany do tego elementu, a nie tylko do głównego elementu przewijanego. Dzięki temu nie musisz stosować niestandardowych obejść w JavaScript. Możesz też kontrolować poszczególne elementy za pomocą parametru overscroll-behavior.

Błąd śledzenia nr 41102897 | Wpis na ChromeStatus.com | Specyfikacja

Uprawnienia

Wyświetlanie rzeczywistej pozycji okna na Androidzie

Chrome na Androida dokładnie raportuje położenie i rozmiar okna przeglądarki za pomocą window.screenX, window.screenY, window.outerWidthwindow.outerHeight.

Chrome błędnie zakładał wcześniej, że wszystkie okna przeglądarki na Androidzie zaczynają się od współrzędnych (0, 0). To założenie jest nieprawidłowe w przypadku tabletów z Androidem, które korzystają z trybu okien o dowolnym kształcie. Witryny zawsze otrzymywały wartość 0, gdy wysyłały zapytanie o pozycję okna na ekranie za pomocą window.screenXwindow.screenY. Te pola przechowują współrzędne lewego górnego rogu okna w globalnej przestrzeni współrzędnych obszaru roboczego.

Ponadto Chrome na Androidzie błędnie zakładał, że zewnętrzne wymiary okna przeglądarki są równe wewnętrznym wymiarom obszaru widocznego witryny.

window.screenX i window.screenY mają aliasy: window.screenLeft i window.screenTop.

Błąd śledzenia nr 417632037 | Wpis na ChromeStatus.com | Specyfikacja

JavaScript

Wstaw przez upsert

Jest to propozycja ECMAScript dotycząca Map.prototype.getOrInsert, Map.prototype.getOrInsertComputed, WeakMap.prototype.getOrInsertWeakMap.prototype.getOrInsertComputed.

Błąd śledzenia nr 434977728 | Wpis na ChromeStatus.com | Specyfikacja

Interfejs API klucz-wartość do raportowania o awariach

Nowy interfejs API klucz-wartość, window.crashReport, jest obsługiwany przez mapę na dokument, która zawiera dane dołączane przez Chrome do raportów o awariach.

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

Błąd śledzenia nr 400432195 | Wpis na ChromeStatus.com | Specyfikacja

Domyślnie zredukowane ciągi znaków klienta użytkownika

Od Chrome 145 przeglądarka usuwa zasadę UserAgentReduction. Ta zasada umożliwiała kontrolowanie, czy Chrome wysyłał skrócony czy pełny ciąg User-Agent.

Aby zwiększyć ochronę prywatności użytkowników i ograniczyć możliwości pasywnego śledzenia, w Chrome w wersji 110 domyślnie zaczęliśmy ograniczać informacje zawarte w nagłówku User-Agent. Zasada UserAgentReduction została wprowadzona jako tymczasowe rozwiązanie, które ma ułatwić firmom przejście na nowe rozwiązanie.

Zalecanym mechanizmem dostępu witryn do informacji o przeglądarce i urządzeniu jest interfejs User-Agent Client Hints (UA-CH). UA-CH wymaga od witryn aktywnego żądania konkretnych informacji, co jest bardziej przyjaznym dla prywatności podejściem niż starszy ciąg znaków klienta użytkownika. Więcej informacji znajdziesz w artykule na web.dev Migracja do interfejsu User-Agent Client Hints.

Od Chrome 145 zasada UserAgentReduction nie ma żadnego wpływu. Chrome domyślnie wysyła zredukowany ciąg tekstowy klienta użytkownika. Systemy lub aplikacje, które korzystały z tych zasad, aby otrzymywać pełny (starszy) ciąg User-Agent, mogą już nie otrzymywać oczekiwanych szczegółowych informacji.

Wpis na ChromeStatus.com

NavigationTransition ma właściwość from, która udostępnia stary adres URL nawigacji. Wystawienie to (NavigationDestination) kończy ten proces. Jest to szczególnie przydatne w przypadku korzystania z modułów obsługi przed zatwierdzeniem, ponieważ podczas tego procesu bieżący adres URL nie został jeszcze przełączony na adres docelowy.

navigation.transition jest udostępniana tylko w przypadku przechwyconych nawigacji, czyli nawigacji zainicjowanych przez dokument z tej samej domeny.

Błąd śledzenia nr 447171238 | Wpis na ChromeStatus.com | Specyfikacja

Potwierdzenie bezpiecznej płatności: klucze powiązane z przeglądarką

Dodaje to dodatkowy podpis kryptograficzny do potwierdzeń bezpiecznej płatności i tworzenia danych logowania. Odpowiedni klucz prywatny nie jest synchronizowany na różnych urządzeniach. Pomaga to spełnić wymagania dotyczące powiązania urządzenia z transakcjami płatniczymi.

Błąd śledzenia nr 377278827 | Wpis na ChromeStatus.com | Specyfikacja

Potwierdzenie bezpiecznej płatności: odświeżony interfejs

Aktualizuje elementy interfejsu użytkownika w oknie SPC w Chrome na Androidzie.

Oprócz prezentacji UX dodano:

  • Sprzedawcy mogą podać opcjonalną listę logo podmiotów płatniczych powiązanych z płatnością, które są wyświetlane w interfejsie.
  • W zależności od tego, czy użytkownik chce kontynuować transakcję bez SPC, czy ją anulować, sprzedawcy są zwracane różne stany wyjściowe. W obu przypadkach wysyłany jest tylko jeden stan wyjściowy.
  • Do instrumentu płatniczego dodawane jest nowe pole etykiety szczegółów płatności, dzięki czemu tekst jest wyświetlany w SPC w 2 wierszach.

Błąd śledzenia nr 405173922 | Wpis na ChromeStatus.com | Specyfikacja

Podczas ustawiania pliku cookie za pomocą metody Cookie Store API możesz określić wartość maxAge.

Czas wygaśnięcia plików cookie można już skonfigurować za pomocą atrybutu expires, ale atrybut maxAge zapewnia bardziej idiomatyczną opcję i dopasowuje atrybut Cookie Store API do opcji udostępnianych przez atrybuty document.cookieSet-Cookie w nagłówku HTTP.

Błąd śledzenia nr 430926231 | Wpis na ChromeStatus.com | Specyfikacja

Typy InputEvent dla poleceń usuwania w przypadku niezwiniętych wyborów

Raportuje dokładne wartości inputType skrótów klawiszowych do usuwania zaznaczonego tekstu. Gdy polecenia usuwania, takie jak Ctrl+Backspace lub Ctrl+Delete, są używane z wybranym tekstem w elementach contenteditable, zdarzenia beforeinputinput zgłaszają deleteContentBackward lub deleteContentForward zamiast deleteWordBackward lub deleteWordForward. Dzięki temu możesz prawidłowo zrozumieć, jaka operacja edycji została wykonana, i wdrożyć niezawodne cofanie, ponawianie lub niestandardowe zachowania edycji.

Błąd śledzenia nr 41423062 | Wpis na ChromeStatus.com | Specyfikacja

Trwałe aktywowanie zdarzenia clipboardchange

Wymaga to aktywacji użytkownika lub uprawnień clipboard-readdo wywoływania zdarzeńclipboardchange, co zapobiega nieautoryzowanemu monitorowaniu schowka.

Zdarzenie clipboardchange jest stosunkowo nowe (Chrome 144), a zmiana ta ma minimalny wpływ na internet. W większości przypadków aktywacja trwałego użytkownika lub clipboard-read uprawnienia są już obecne w miejscu, w którym występuje monitorowanie schowka (np. w klientach zdalnego pulpitu).

Błąd śledzenia nr 468821937 | Wpis na ChromeStatus.com | Specyfikacja

Multimedia

Wyodrębnianie rtpTimestamp z klatek wideo WebRTC za pomocą VideoFrame.metadata()

Dodaje metodę VideoFrame.metadata(), która zwraca słownik zawierający pole rtpTimestamp, jeśli podstawowy obiekt VideoFrame ma to pole w swoich metadanych natywnych. W przeciwnym razie zwracany jest pusty słownik. Tylko klatki wideo pochodzące ze źródeł WebRTC mają dołączone metadane rtpTimestamp.

Dodatkowe pola metadanych są już obecne w implementacji natywnej i z czasem mogą być udostępniane JavaScriptowi, zgodnie z proponowaną specyfikacją.

Wpis na ChromeStatus.com | Specyfikacja

Miejsce na dane

IndexedDB: backend SQLite (konteksty w pamięci)

Implementacja IndexedDB w Chromium została przepisana na bazie SQLite, aby zastąpić poprzednią implementację, która korzystała z hybrydy LevelDB i płaskich plików. Interfejs Web API nie ulegnie zmianie.

Zwiększa to niezawodność i w mniejszym stopniu wydajność.

Dotyczy to tylko kontekstów w pamięci, takich jak tryb incognito w Chromium i Google Chrome. Ogranicza to wpływ nowych błędów i odsuwa w czasie konieczność migracji istniejących danych zapisanych na dysku.

Błąd śledzenia nr 436880911 | Wpis na ChromeStatus.com | Specyfikacja

Wyniki

Umożliwianie aplikacjom internetowym rozpoznawania czasów dwumodalnej wydajności

Nowe pole confidence w obiekcie PerformanceNavigationTiming umożliwia określenie, czy czasy nawigacji są reprezentatywne dla Twojej aplikacji internetowej.

Błąd śledzenia nr 1413848 | Wpis na ChromeStatus.com | Specyfikacja

Dodawanie presentationTimepaintTime do wpisów dotyczących wyników

Udostępnia to wartości paintTimepresentationTime w czasie elementu, LCP, długich klatkach animacji i czasie renderowania.

paintTime oznacza czas, w którym zakończyła się faza renderowania, a przeglądarka rozpoczęła fazę rysowania. presentationTime oznacza czas, w którym „piksele dotarły na ekran”, co jest w pewnym stopniu zależne od implementacji.

W tym wpisie dotyczącym funkcji pominięto czas zdarzenia, który jest określany osobno.

Błąd śledzenia nr 378827535 | Wpis na ChromeStatus.com | Specyfikacja

Używanie jednostek CssPixels w interfejsie LayoutShift API

Ta funkcja zmienia dane atrybucji (prevRectcurrentRect) w interfejsie LayoutShift API, tak aby były raportowane w pikselach CSS zamiast w pikselach fizycznych. Działanie jest niezgodne z innymi interfejsami API związanymi z układem, które używają pikseli CSS. Ta zmiana zwiększa spójność, upraszcza korzystanie z usługi i jest zgodna z oczekiwanymi jednostkami w debugowaniu i narzędziach.

Błąd śledzenia nr 399058544 | Wpis na ChromeStatus.com | Specyfikacja

Bezpieczeństwo

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

Dane uwierzytelniające sesji powiązane z urządzeniem (DBSC) umożliwiają stronom wiązanie sesji użytkownika z jego konkretnym urządzeniem, co znacznie utrudnia używanie skradzionych plików cookie sesji na innych urządzeniach.

Wpis na ChromeStatus.com | Specyfikacja

Origin API

Pochodzenie to podstawowy element implementacji internetu, który ma kluczowe znaczenie dla bezpieczeństwa i prywatności użytkowników. Pojęcie to jest dobrze zdefiniowane w przypadku HTML i URL, a także w przypadku powszechnie używanych pojęć pokrewnych, takich jak witryna.

Pochodzenie nie jest jednak bezpośrednio widoczne. Chociaż w przypadku różnych obiektów istnieje wiele funkcji pobierania pochodzenia, każda z nich zwraca serializację ASCII pochodzenia, a nie samo pochodzenie. Ma to kilka negatywnych konsekwencji. W praktyce próby porównywania pochodzeń w ramach tej samej domeny lub tej samej witryny podczas obsługi serializowanych pochodzeń często prowadzą do błędów, które mogą powodować luki w zabezpieczeniach. Z filozoficznego punktu widzenia wydaje się, że brakuje podstawowego elementu zabezpieczeń, którego nie można dokładnie zastąpić.

W Chrome 145 rozwiązujemy ten problem na platformie, wprowadzając obiekt Origin, który zawiera koncepcję źródła i udostępnia przydatne metody, takie jak porównywanie, serializacja i parsowanie.

Błąd śledzenia nr 434131026 | Wpis na ChromeStatus.com | Specyfikacja

Podział uprawnień dostępu przez sieć lokalną

Jest to ulepszenie ograniczeń dostępu do sieci lokalnej (LNA), w ramach którego Chrome dzieli wymagane uprawnienia z jednego uprawnienia dostępu do sieci lokalnej na 2 osobne uprawnienia.

Stare uprawnienie to local-network-access. Nowe uprawnienia to local-network (w przypadku żądań LNA dotyczących adresów IP w lokalnej przestrzeni adresowej) i loopback-network (w przypadku żądań LNA dotyczących adresów IP w przestrzeni adresowej pętli zwrotnej).

Stare uprawnienie jest zachowywane jako alias i nadal działa w przypadku permissions.queryPermissions Policy. Zasady przedsiębiorstwa nadal działają tak samo. Nowsze, bardziej szczegółowe zasady przedsiębiorstwa zostaną dodane później.

Błąd śledzenia nr 465491626 | Wpis na ChromeStatus.com | Specyfikacja

Zgodność ze specyfikacją Zaufanych typów

Trusted Types zostało pierwotnie wdrożone i uruchomione w Chromium w 2019 roku i od tego czasu jest używane w wielu witrynach. Ostatnio wzbudził zainteresowanie innych dostawców przeglądarek.

Specyfikacja Trusted Types została współtworzona jako specyfikacja „monkey patch” wraz z oryginalną implementacją. Zyskuje on nowe znaczenie, ponieważ inne osoby próbują wdrożyć tę samą specyfikację. Został on „przekazany” do HTML i DOM (plus trochę CSP). W ramach tego procesu wykrywamy i usuwamy różne niespójności. Niektóre z tych poprawek mogą być widoczne dla deweloperów. Chcemy zaktualizować implementację, aby była zgodna ze specyfikacją, która jest przesyłana do HTML.

Zespół WebKit wprowadził implementację zaktualizowanej Trusted Types specyfikacji, co daje Chrome pewność, że ta aktualizacja jest w dużym stopniu zgodna z siecią.

Błąd śledzenia nr 330516530 | Wpis na ChromeStatus.com | Specyfikacja

Grafika

WebGPU: subgroup_uniformity funkcja

Dodaje to nowy zakres do analizy jednolitości i zmienia części języka sprawdzane w każdym z nich, aby umożliwić uznanie funkcji podgrup za jednolite w większej liczbie przypadków.

Błąd śledzenia nr 454653380 | Wpis na ChromeStatus.com | Specyfikacja

Izolowane aplikacje internetowe

WebRequest.SecurityInfo w: Controlled Frame

Ta funkcja wprowadza interfejs WebRequest.SecurityInfo API dla elementu ControlledFrame. Umożliwia ona aplikacji internetowej przechwytywanie żądań HTTPS, WSS lub WebTransport wysyłanych do serwera, pobieranie odcisku palca certyfikatu serwera (zweryfikowanego przez przeglądarkę), a następnie używanie tego odcisku palca do ręcznego weryfikowania certyfikatu oddzielnego surowego połączenia TCP/UDP z tym samym serwerem. Dzięki temu aplikacja może potwierdzić, że komunikuje się z właściwym serwerem.

Błąd śledzenia nr 462114142 | Wpis na ChromeStatus.com | Specyfikacja

Wersje próbne origin

Dodaje obsługę dekodowania obrazów JPEG XL (image/jxl) w Blink przy użyciu jxl-rs, bezpiecznego pod względem pamięci dekodera napisanego w czystym języku Rust.

JPEG XL to nowoczesny format obrazu znormalizowany jako ISO/IEC 18181, który zapewnia:

  • Progresywne dekodowanie, które poprawia postrzeganą wydajność ładowania.
  • Obsługa szerokiej gamy kolorów, HDR i wysokiej głębi bitowej.
  • Obsługa animacji.

Ta implementacja używa jxl-rs zamiast dekodera referencyjnego libjxl w C++, aby spełnić wymagania Chromium dotyczące bezpieczeństwa pamięci. Dekoder jest dostępny za pomocą flagi enable-jxl-image-format i flagi kompilacji enable_jxl_decoder.

Wpis na ChromeStatus.com

WebAudio: konfigurowalna kwant renderowania

Funkcje AudioContextOfflineAudioContext przyjmują teraz opcjonalny parametr renderSizeHint, który umożliwia użytkownikom określenie rozmiaru kwantu renderowania, gdy przekazywana jest liczba całkowita, użycie domyślnej wartości 128 klatek, jeśli nie przekazano żadnej wartości lub przekazano wartość default, albo poproszenie przeglądarki o wybranie odpowiedniego rozmiaru kwantu renderowania, jeśli określono wartość hardware.

Testowanie funkcji | Wpis na ChromeStatus.com

Wycofane i usunięte elementy

Wycofanie obsługi przestarzałych wirtualnych kamer w systemie macOS

Chrome wycofuje obsługę przestarzałych wirtualnych kamer we wszystkich obsługiwanych wersjach macOS.

Błąd śledzenia nr 461717105 | Wpis na ChromeStatus.com

Usuwanie rozszerzenia BMP w celu osadzania plików JPEG lub PNG w BMP

Chrome usuwa rozszerzenie BMP w przypadku osadzania plików JPEG lub PNG w pliku BMP.

Błąd śledzenia nr 456842524 | Wpis na ChromeStatus.com | Specyfikacja