Chrome 136 beta

Data publikacji: 3 kwietnia 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 poniżej znajdziesz w linkach lub na liście na stronie ChromeStatus.com. Chrome 136 jest w wersji beta od 3 kwietnia 2025 r. Najnowszą wersję możesz pobrać na Google.com na komputer lub ze Sklepu Google Play na Androida.

CSS i interfejs

Ta wersja dodaje 6 nowych funkcji CSS i interfejsu.

Właściwość CSS dynamic-range-limit

Umożliwia stronie ograniczenie maksymalnej jasności treści HDR.

Ignorowanie odstępów między literami w przypadku pisma odręcznego

Ta funkcja dodaje logikę, która ignoruje ustawienie odstępu między literami w przypadku skryptów pisanych kursywą, nawet jeśli zostało ono określone przez dewelopera zgodnie ze specyfikacją. Dzięki temu odstęp między literami nie powoduje podziału słów.

Aby wyeliminować wycieki historii przeglądania użytkownika, elementy zakotwiczone są stylizowane jako :visited tylko wtedy, gdy zostały kliknięte z tej witryny najwyższego poziomu i z ramki pochodzącej z tej samej domeny.

Dzięki stylowi stosowanemu tylko do linków, które zostały wcześniej kliknięte w tej witrynie i ramce, wiele ataków z kanału bocznego opracowanych w celu uzyskania informacji o stylu linków :visited jest teraz przestarzałych. Nie przekazują już witrynom nowych informacji o użytkownikach.

Więcej informacji o tych ulepszeniach dotyczących prywatności :visited linków

Zmiana nazwy typu string attr() na raw-string

Grupa robocza CSS podjęła decyzję o zastąpieniu typu string attr() typem raw-string.

Dlatego Chrome zmienił składnię attr(), więc attr(data-foo string) będzie teraz attr(data-foo raw-string).

var() Kreacja zastępcza niezależna od typu

Część funkcji var(), która jest używana w przypadku braku wartości, nie jest weryfikowana pod kątem typu właściwości niestandardowej, do której się odwołuje.

Bez prefiksu print-color-adjust

Właściwość print-color-adjust umożliwia dostosowywanie kolorów na drukowanych stronach internetowych. Jest to to samo co obsługiwana już w Chrome funkcja -webkit-print-color-adjust, ale ma ustandaryzowaną nazwę. Wersja z prefiksem -webkit nie zostanie usunięta.

Interfejsy Web API

Stan przerwany AudioContext

Dodaje stan "interrupted" do AudioContextState. Ten nowy stan umożliwia UA wstrzymanie odtwarzania w tych scenariuszach i umożliwia aplikacjom internetowym odpowiednią reakcję.

Podział adresów URL blobów: pobieranie/nawigacja

W ramach kontynuacji partycjonowania miejsca na dane ta funkcja implementuje partycjonowanie dostępu do adresów URL Bloba według klucza miejsca na dane (witryna najwyższego poziomu, źródło ramki i wartość logiczna has-cross-site-ancestor), z wyjątkiem nawigacji najwyższego poziomu, które pozostaną podzielone na partycje tylko według źródła ramki. Działanie to jest podobne do tego, które jest obecnie zaimplementowane w przeglądarkach Firefox i Safari, i dostosowuje użycie adresów URL obiektów blob do schematu partycjonowania używanego przez inne interfejsy API pamięci masowej w ramach partycjonowania pamięci masowej.

Dodatkowo noopener jest teraz wymuszane w przypadku nawigacji najwyższego poziomu inicjowanych przez proces renderowania do adresów URL bloba, w których odpowiednia witryna jest w innej witrynie niż witryna najwyższego poziomu wykonująca nawigację. Dzięki temu Chrome będzie działać podobnie jak Safari, a odpowiednie specyfikacje zostały zaktualizowane, aby odzwierciedlać te zmiany.

Stosy wywołań w raportach o awariach z nieodpowiadających stron internetowych

Ta funkcja rejestruje stos wywołań JavaScriptu, gdy strona internetowa przestaje odpowiadać z powodu kodu JavaScript, który uruchamia nieskończoną pętlę lub inne bardzo długie obliczenia. Ułatwia to programistom zidentyfikowanie przyczyny braku odpowiedzi. Stos wywołań JavaScriptu jest uwzględniany w interfejsie API raportowania awarii, gdy przyczyną jest brak odpowiedzi.

Captured Surface Control API

Interfejs Captured Surface Control API umożliwia aplikacjom internetowym przekazywanie zdarzeń związanych z kółkiem myszy do przechwyconej karty oraz odczytywanie i  zmienianie poziomu powiększenia przechwyconej karty.

CapturedSurfaceResolution

Udostępnia współczynnik pikseli przechwyconej powierzchni podczas udostępniania ekranu. Ta funkcja pomoże aplikacjom oszczędzać zasoby systemowe lub dostosowywać kompromis między jakością a przepustowością w zależności od rozdzielczości fizycznej i logicznej przechwytywanej powierzchni.

Wysyłanie zdarzeń kliknięcia do przechwyconego wskaźnika

Jeśli wskaźnik zostanie przechwycony podczas wysyłania zdarzenia pointerup, zdarzenie click zostanie wysłane do przechwyconego elementu docelowego zamiast do najbliższego wspólnego przodka zdarzeń pointerdownpointerup zgodnie ze specyfikacją zdarzeń interfejsu. W przypadku nieprzechwyconych wskaźników element docelowy click pozostaje niezmieniony.

Jawne wskazówki kompilacji z magicznymi komentarzami

Umożliwia dołączanie informacji o tym, które funkcje powinny być analizowane i kompilowane w plikach JavaScript. Informacje zostaną zakodowane jako magiczne komentarze.

Aktualizacje FedCM: obsługa wielu dostawców tożsamości, usunięcie funkcji „dodaj kolejne konto” w trybie pasywnym

Dzięki tej aktualizacji FedCM może wyświetlać wielu dostawców tożsamości w tym samym oknie. Dzięki temu deweloperzy mogą w wygodny sposób prezentować użytkownikom wszystkich obsługiwanych dostawców tożsamości. Planujemy najpierw zająć się prostym przypadkiem, w którym wszyscy dostawcy są na tej samej rozmowie w get(). Usuwamy też obsługę funkcji „Dodaj kolejne konto” w trybie pasywnym FedCM. Ta funkcja umożliwia wyświetlanie przycisku „Użyj innego konta” obok innych kont dostawcy tożsamości w selektorze. Ta funkcja nie jest obecnie używana, a rozmowy z użytkownikami wskazują, że jej obsługa prowadzi do bardziej skomplikowanego procesu bez większych korzyści. Ta funkcja nadal będzie działać w aktywnym trybie FedCM.

Płynne paski przewijania.

Ta funkcja modernizuje paski przewijania Chrome (zarówno nakładkowe, jak i nie nakładkowe) w systemach Windows i Linux, aby pasowały do języka projektowania Fluent w systemie Windows 11. Nakładające się paski przewijania Fluent będą domyślnie włączone w systemach Linux i Windows. Ta zmiana dotyczy też Linuksa, ponieważ wygląd paska przewijania w Chrome na Linuksie był historycznie zgodny z tym, co jest dostępne w Windowsie.

Obsługa kodeka H265 (HEVC) w WebRTC

Od wersji 136 Chrome będzie obsługiwać kodek HEVC w WebRTC, podobnie jak VP8, H.264, VP9 i AV1. Obsługę można sprawdzić za pomocą interfejsu MediaCapabilities API.

Ten nowszy kodek ma większą wydajność kompresji (wyższa jakość przy danej szybkości transmisji) w porównaniu ze starszymi kodekami, takimi jak VP8 i H264, i bardzo silne wsparcie sprzętowe, które sięga ponad dekadę wstecz. Przekłada się to na wydłużenie czasu pracy na baterii i zmniejszenie ryzyka problemów z wydajnością, a w zależności od wydajności bazowego kodera sprzętowego często poprawia jakość obrazu w przypadkach, gdy nie są dostępne sprzętowe kodery VP9 ani AV1.

Aktualizacje dotyczące obsługi kodeków H26x w przypadku MediaRecorder

Interfejs MediaRecorder API obsługuje teraz kodowanie HEVC, wprowadza ciąg hvc1.* codec i dodaje nowe kodeki (hev1.*avc3.*) obsługujące wideo o zmiennej rozdzielczości w formacie MP4. W Chrome 130 dodano obsługę kodowania HEVC na platformie w WebCodecs. W Chromium dodano obsługę interfejsu MediaRecorder API. Interfejs API obsługuje teraz zarówno multipleksery MP4, jak i Matroska z różnymi specyfikacjami typów MIME HEVC i H.264. Kodowanie HEVC jest obsługiwane tylko wtedy, gdy urządzenie i system operacyjny użytkownika mają odpowiednie możliwości.

Rejestrowanie adresów IP i tworzenie raportów w Chrome Enterprise

Chrome Enterprise zwiększa możliwości monitorowania bezpieczeństwa i reagowania na incydenty, zbierając i raportując lokalne i zdalne adresy IP oraz przesyłając je do dzienników analizy bezpieczeństwa (SIT). Dodatkowo Chrome Enterprise umożliwi administratorom opcjonalne wysyłanie adresów IP do dostawców SIEM (zarówno wewnętrznych, jak i zewnętrznych) za pomocą oprogramowania sprzęgającego do raportowania Chrome Enterprise. Będzie ona dostępna dla klientów Chrome Enterprise Core.

Włączanie inicjatora nawigacji do klucza partycji pamięci podręcznej HTTP

Schemat kluczy pamięci podręcznej HTTP w Chrome został zaktualizowany i zawiera wartość logiczną is-cross-site-main-frame-navigation, która ma zapobiegać atakom polegającym na wycieku danych między witrynami w przypadku nawigacji na najwyższym poziomie. W szczególności zapobiegnie to atakom międzywitrynowym, w których osoba atakująca może zainicjować nawigację najwyższego poziomu do danej strony, a następnie przejść do zasobu, który jest wczytywany przez tę stronę, aby wywnioskować informacje poufne na podstawie czasu wczytywania. Ta zmiana zwiększa też prywatność, ponieważ uniemożliwia złośliwym witrynom wykorzystywanie nawigacji do wnioskowania, czy użytkownik odwiedził już daną witrynę.

Obsługa języków w CanvasTextDrawingStyles

Element DOM <canvas>, podobnie jak wszystkie elementy DOM, akceptuje atrybut lang, który służy do definiowania sposobu traktowania języka w przypadku wyboru czcionki (gdy czcionki mają glify specyficzne dla danego języka). Przeglądarki respektują ten atrybut. Jednak podczas tworzenia elementu OffscreenCanvas nie można ustawić informacji o języku, co może spowodować, że element OffscreenCanvas będzie generować wyniki renderowania, które różnią się od wyników elementu canvas, w którym używane są jego dane wyjściowe. Ta funkcja dodaje atrybut lang IDL do CanvasTextDrawingStyles, aby zapewnić bezpośrednią kontrolę nad językiem rysowania tekstu i metryk.

Raporty dotyczące zasad uprawnień w przypadku elementów iframe

Wprowadzamy nowy typ naruszenia o nazwie „Potencjalne naruszenie zasad dotyczących uprawnień”, który będzie uwzględniać tylko zasady dotyczące uprawnień (w tym zasady dotyczące tylko raportowania) i zestaw atrybutów allow ustawiony w elementach iframe, aby wykrywać konflikty między egzekwowanymi zasadami dotyczącymi uprawnień a uprawnieniami przekazywanymi do elementów iframe.

Przewidywalny zgłoszony limit miejsca na dane

Zgłaszanie przewidywalnego limitu miejsca na dane z interfejsu Estimate API usługi StorageManager w przypadku witryn, które nie mają uprawnień do nieograniczonego miejsca na dane. Tryb przeglądania użytkownika można wykryć na podstawie zgłoszonego limitu miejsca na dane, ponieważ w trybie incognito dostępna przestrzeń jest znacznie mniejsza niż w trybie normalnym.

Interfejs Private Aggregation API: raportowanie zbiorcze błędów

Podczas korzystania z interfejsu Private Aggregation API może wystąpić wiele różnych błędów. Na przykład budżet prywatności może się wyczerpać, co uniemożliwi dalsze przesyłanie histogramów. Ta funkcja umożliwia deweloperom rejestrowanie wkładów do histogramu, które powinny być wysyłane tylko wtedy, gdy wystąpi określony typ błędu. Ta funkcja umożliwia pomiar częstotliwości występowania warunków błędu i podział tych pomiarów na odpowiednie wymiary określone przez dewelopera (np. wersję wdrożonego kodu). Błędy mogą zawierać informacje z różnych witryn, dlatego nie możemy po prostu udostępniać ich na stronie użytkownikom, którzy nie korzystają z plików cookie innych firm. Zamiast tego ta funkcja ponownie wykorzystuje istniejące zagregowane, zaszumione potoki raportowania za pomocą usługi do agregacji.

RegExp.escape

RegExp.escape to metoda statyczna, która przyjmuje ciąg znaków i zwraca jego wersję z odpowiednio zmienionymi znakami, która może być używana jako wzorzec w wyrażeniu regularnym. Na przykład:

const str = prompt("Please enter a string");
const escaped = RegExp.escape(str);
const re = new RegExp(escaped, 'g'); // handles reg exp special tokens with the replacement.

console.log(ourLongText.replace(re));

Reguły spekulacyjne: pole tagu

Umożliwia deweloperom dodawanie tagu field do reguł spekulacyjnych. To pole opcjonalne może służyć do śledzenia źródła reguł spekulacyjnych. Może to być na przykład konieczne, aby inaczej traktować je na serwerze pośredniczącym. Wszelkie tagi powiązane ze spekulacją będą wysyłane z nagłówkiem Sec-Speculation-Tags.

Zasada Strict Same Origin w przypadku interfejsu Storage Access API

Dostosowuje semantykę interfejsu Storage Access API, aby ściśle przestrzegać zasady Same Origin Policy. Oznacza to, że użycie atrybutu document.requestStorageAccess() w ramce domyślnie dołącza pliki cookie tylko do żądań kierowanych do źródła elementu iframe (a nie do witryny). Uwaga: do odblokowania plików cookie innych witryn nadal można używać zasady CookiesAllowedForUrls lub nagłówków dostępu do pamięci.

Zaktualizuj aplikację ProgressEvent, aby korzystać z typu double dla atrybutów loaded i total

Element ProgressEvent ma atrybuty loadedtotal wskazujące postęp, a ich typ to teraz unsigned long long. Dzięki tej funkcji typ tych 2 atrybutów zostanie zmieniony na double, co da deweloperowi większą kontrolę nad wartością. Deweloperzy mogą teraz na przykład utworzyć obiekt ProgressEvent z wartością total równą 1 i wartością loaded stopniowo zwiększaną z 0 do 1. Jest to zgodne z domyślnym działaniem elementu HTML <progress>, jeśli atrybut max zostanie pominięty.

Użyj DOMPointInit w przypadku getCharNumAtPosition, isPointInFill, isPointInStroke

Ta zmiana dostosowuje kod Chromium do najnowszej specyfikacji W3C dotyczącej SVGGeometryElementSVGPathElement w zakresie używania DOMPointInit zamiast SVGPoint w przypadku getCharNumAtPosition, isPointInFillisPointInStroke.

Warunkowe tworzenie uwierzytelniania w internecie (uaktualnienia kluczy dostępu)

Żądania warunkowego tworzenia WebAuthn umożliwiają witrynom uaktualnianie istniejących danych logowania za pomocą hasła do klucza dostępu.

WebGPU: atrybut GPUAdapterInfo isFallbackAdapter

Atrybut logiczny GPUAdapterInfo isFallbackAdapter wskazuje, czy adapter ma znaczące ograniczenia wydajności w zamian za większą kompatybilność, bardziej przewidywalne działanie lub lepszą ochronę prywatności. Pamiętaj, że adapter rezerwowy może nie być dostępny we wszystkich systemach.

Nowe wersje próbne origin

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

Audio Output Devices API: setDefaultSinkId()

Ta funkcja dodaje do interfejsu MediaDevices element setDefaultSinkId(), który umożliwia ramce najwyższego poziomu zmianę domyślnego urządzenia wyjściowego audio używanego przez jej podramki.

Umożliwianie aplikacjom internetowym rozpoznawania czasów działania w trybie dwumodalnym

Wydajność wczytywania stron w aplikacjach internetowych może mieć rozkład dwumodalny ze względu na czynniki, na które aplikacja nie ma wpływu. Na przykład:

  • Gdy agent użytkownika jest uruchamiany po raz pierwszy (scenariusz uruchomienia „na zimno”), musi wykonać wiele kosztownych zadań inicjujących, które konkurują o zasoby w systemie.
  • Rozszerzenia przeglądarki mogą wpływać na wydajność witryny. Na przykład niektóre rozszerzenia uruchamiają dodatkowy kod na każdej odwiedzanej stronie, co może zwiększyć wykorzystanie procesora i wydłużyć czas reakcji.
  • Gdy urządzenie jest zajęte wykonywaniem wymagających zadań, może to spowolnić wczytywanie stron internetowych.

W takich przypadkach treść, którą aplikacja internetowa próbuje wczytać, będzie konkurować z innymi procesami działającymi w systemie. Utrudnia to wykrywanie, czy problemy z wydajnością występują w samych aplikacjach internetowych, czy są spowodowane czynnikami zewnętrznymi.

Nowe pole confidence w obiekcie PerformanceNavigationTiming umożliwi deweloperom sprawdzenie, czy czasy nawigacji są reprezentatywne dla ich aplikacji internetowej.

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

Sposób bezpiecznego powiązania sesji z jednym urządzeniem.

Umożliwia serwerom prowadzenie sesji bezpiecznie powiązanej z urządzeniem. Przeglądarka będzie okresowo odnawiać sesję zgodnie z żądaniem serwera, przedstawiając dowód posiadania klucza prywatnego.

Aktualizacja implementacji renderowania tekstu w obszarze roboczym

Wewnętrzne elementy measureText(), fillText()strokeText() interfejsów CanvasRenderingContext2D i OffscreenCanvasRenderingContext2D zostały zastąpione nową implementacją, która lepiej obsługuje tekst pisany od prawej do lewej i pamięć podręczną. Może to wpłynąć na wydajność i wyświetlanie tekstu dwukierunkowego, dlatego w ramach tego testowania origin aplikacje oparte na elemencie canvas, które zawierają dużo tekstu, mogą wypróbować nową implementację i zgłosić wszelkie napotkane problemy.

Wycofania i usunięcia

Ta wersja Chrome wprowadza te wycofania i usunięcia. Listy planowanych wycofań, bieżących wycofań i poprzednich usunięć znajdziesz na stronie ChromeStatus.com.

W tej wersji Chrome wycofujemy 2 funkcje.

Wycofanie getterów informacji o języku Intl

Intl Locale Info API to propozycja ECMAScript TC39 na etapie 3, która ma na celu rozszerzenie obiektu Intl.Locale poprzez udostępnienie informacji o ustawieniach regionalnych, takich jak dane o tygodniu (pierwszy dzień tygodnia, początek i koniec weekendu, minimalna liczba dni w pierwszym tygodniu) oraz cykl godzinowy używany w danym regionie. Ta zmiana usuwa niektóre metody pobierające wycofane w specyfikacji od czasu ich wprowadzenia.

Usuń HTMLFencedFrameElement.canLoadOpaqueURL().

W 2023 r. funkcja canLoadOpaqueURL() została zastąpiona funkcją navigator.canLoadAdAuctionFencedFrame(). Od tego czasu wywoływanie jej powoduje wyświetlanie w konsoli ostrzeżenia o wycofaniu, które kieruje deweloperów do nowego interfejsu API. Nie ma sensu, aby funkcja była powiązana z obiektem HTMLFencedFrameElement. Zamiast tego powinna być powiązana z obiektem navigator (który zawiera inne metody aukcji reklam i ramek chronionych).