Data publikacji: 3 kwietnia 2025 r.
O ile nie zaznaczono inaczej, poniższe zmiany dotyczą najnowszej wersji Chrome w kanale beta na Androida, ChromeOS, Linuxa, macOS i Windowsa. Więcej informacji o wymienionych tu funkcjach znajdziesz, klikając odpowiednie linki lub na liście na stronie ChromeStatus.com. Od 3 kwietnia 2025 r. Chrome 136 jest w wersji beta. Najnowszą wersję możesz pobrać na Google.com na komputerze lub w Sklepie Google Play na urządzeniu z Androidem.
CSS i UI
Ta wersja zawiera 6 nowych funkcji CSS i interfejsu użytkownika.
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 skryptach kursywy
Ta funkcja dodaje logikę, która ignoruje ustawienie odstępu między literami w przypadku czcionek kursywy, nawet jeśli zostało ono określone przez programistę zgodnie ze specyfikacją, aby zapewnić, że odstęp między literami nie powoduje dzielenia słów.
Partycjonowanie historii linków :visited
Aby wyeliminować wycieki danych z historii przeglądania użytkownika, elementy kotwicy są stylizowane jako :visited
tylko wtedy, gdy zostały wcześniej kliknięte z poziomu tej witryny i ramki najwyższego poziomu.
Dzięki stylizowaniu tylko tych linków, które zostały wcześniej kliknięte w tej witrynie i ramce, wiele ataków kanału bocznego, które zostały opracowane w celu uzyskania informacji o stylach linków :visited
, stało się nieaktualne. Nie udostępniają już witrynom nowych informacji o użytkownikach.
Więcej informacji o ulepszeniach dotyczących prywatności linków :visited
Zmień nazwę typu string
attr()
na raw-string
Grupa robocza CSS postanowiła zastąpić typ string
attr()
type type raw-string
.
Dlatego w Chrome zmieniliśmy składnię attr()
, tak aby attr(data-foo string)
było teraz attr(data-foo raw-string)
.
fallback var()
niezależny od typu,
Część zastępcza funkcji var()
nie jest sprawdzana 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 dostosowanie kolorów na wydrukowanych stronach internetowych. Jest to to samo co obsługiwane już w Chrome -webkit-print-color-adjust
, ale ze standaryzowaną nazwą. Wersja z preiksem -webkit
nie zostanie usunięta.
Interfejsy Web API
Stan przerwania AudioContext
Dodaje stan "interrupted"
do AudioContextState
. Ten nowy stan pozwala UA wstrzymać odtwarzanie w tych scenariuszach i umożliwia aplikacjom internetowym odpowiednie reagowanie.
Partycjonowanie adresu URL bloba: pobieranie/nawigacja
W dalszej części tej funkcji, która jest kontynuacją partycjonowania miejsca na dane, implementujemy partycjonowanie dostępu do adresów URL blobów 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 tylko według źródła ramki. Takie zachowanie jest podobne do tego, które jest obecnie stosowane przez przeglądarki Firefox i Safari, i dopasowuje użycie adresu URL bloba 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 wywołanych przez renderera nawigacji na najwyższym poziomie do adresów URL blobów, gdy odpowiednia witryna jest witryną wielodostępową w stosunku do witryny najwyższego poziomu, która wykonuje 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 niedziałających stron internetowych
Ta funkcja rejestruje stos wywołań JavaScriptu, gdy strona internetowa przestaje odpowiadać z powodu wykonywania przez kod JavaScriptu nieskończonej pętli lub innej bardzo długiej operacji. Pomaga to deweloperom zidentyfikować przyczynę braku reakcji. Zrzut stosu wywołań JavaScriptu jest dołączany do interfejsu API zgłaszania awarii, gdy przyczyną jest brak odpowiedzi.
Interfejs API Captured Surface Control
Interfejs Captured Surface Control API umożliwia aplikacjom internetowym przesyłanie zdarzeń kółka do przechwyczonej karty oraz odczytywanie i zmienianie poziomu powiększenia przechwyczonej karty.
CapturedSurfaceResolution
Podczas udostępniania ekranu udostępnia współczynnik pikseli przechwyczonej powierzchni. Ta funkcja pomoże aplikacjom oszczędzać zasoby systemowe lub dostosować kompromis między jakością a przepustowością w zależności od fizycznej i logicznej rozdzielczości uchwyconej powierzchni.
Przesyłanie zdarzeń kliknięcia do przechwyczonej wskazówki
Jeśli podczas wywoływania zdarzenia pointerup
zostanie zarejestrowany wskaźnik, zdarzenie click
zostanie wysłane do zarejestrowanego celu zamiast do najbliższego wspólnego przodka zdarzeń pointerdown
i pointerup
zgodnie ze specyfikacją zdarzenia interfejsu użytkownika. W przypadku niezarejestrowanych wskaźników cel click
pozostaje niezmieniony.
Wyraźne wskazówki kompilacji za pomocą magicznych komentarzy
Umożliwia dołączanie informacji o tym, które funkcje powinny być wstępnie przeanalizowane i skompilowane w plikach JavaScript. Informacje zostaną zakodowane jako magiczne komentarze.
Aktualizacje FedCM: obsługa wielu dostawców tożsamości i usunięcie funkcji „Dodaj kolejne konto” w trybie pasywnym
Dzięki tej aktualizacji FedCM może wyświetlać w tym samym oknie wielu dostawców tożsamości.
Dzięki temu deweloperzy mogą w wygodny sposób przedstawiać użytkownikom wszystkich obsługiwanych dostawców tożsamości. Najpierw planujemy rozwiązać prosty przypadek, w którym wszyscy dostawcy są w tej samej get()
. Usuwamy też obsługę funkcji „Dodaj inne 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 jest obecnie nieużywana, a rozmowy na temat UX wskazują, że jej obsługa spowoduje skomplikowanie procesu bez większej korzyści. Ta funkcja będzie nadal działać w trybie aktywnym FedCM.
Paski przewijania w stylu Fluent.
Ta funkcja ulepsza suwaki w Chrome (zarówno nakładki, jak i bez nakładki) w systemach Windows i Linux, aby pasowały do języka projektowania Fluent w systemie Windows 11. W systemach Linux i Windows domyślnie będą włączone suwaki bez nakładki. Ta zmiana dotyczy również Linuksa, ponieważ od zawsze pasek przewijania w Chrome na Linuksie był dopasowany do tego, co jest dostępne w systemie Windows.
Obsługa kodeka H.265 (HEVC) w WebRTC
Od wersji 136 Chrome HEVC dołączy do VP8, H.264, VP9 i AV1 jako obsługiwane kodeki w WebRTC. Interfejs MediaCapabilities API umożliwia wysyłanie zapytań o obsługę.
Ten nowszy kodek zapewnia większą wydajność kompresji (wyższą jakość na bit) w porównaniu z kodekami starszej generacji, takimi jak VP8 i H264, oraz bardzo dobrą obsługę sprzętową, która sięga ponad 10 lat wstecz. Przekłada się to na wydłużenie czasu pracy na baterii i zmniejszenie ryzyka problemów z wydajnością. W zależności od wydajności sprzętowego kodera często poprawia to jakość obrazu w przypadku braku sprzętowych koderów VP9 lub AV1.
Aktualizacje obsługi kodeka H26x dla MediaRecorder
Interfejs MediaRecorder API obsługuje teraz kodowanie HEVC, wprowadzając ciąg znaków kodu hvc1.*
, oraz dodaje nowe kodeki (hev1.*
i avc3.*
), które obsługują filmy w rozdzielczości zmiennej w formacie MP4. W Chrome 130 dodano obsługę kodowania na platformie HEVC w WebCodecs. W następstwie dodano obsługę interfejsu MediaRecorder API w Chromium. Interfejs API obsługuje teraz typy muxera MP4 i Matroska z różnymi specyfikacjami typu mime HEVC i H.264. Kodowanie HEVC jest obsługiwane tylko wtedy, gdy urządzenie i system operacyjny użytkownika zapewniają niezbędne funkcje.
Rejestrowanie i raportowanie adresów IP w Chrome Enterprise
Chrome Enterprise zwiększa możliwości monitorowania zabezpieczeń i reagowania na incydenty, zbierając i zgłaszając adresy IP lokalne i zdalne oraz wysyłając te adresy do dzienników Security Investigation Logs (SIT). Ponadto Chrome Enterprise umożliwi administratorom opcjonalne wysyłanie adresów IP do własnych i zewnętrznych dostawców SIEM za pomocą oprogramowania sprzęgającego do raportowania Chrome Enterprise. Ta funkcja będzie dostępna dla klientów Chrome Enterprise Core.
Uwzględnienie inicjatora nawigacji w kluczu partycji pamięci podręcznej HTTP
Schemat kodowania kluczy pamięci podręcznej HTTP w Chrome został zaktualizowany, aby uwzględniać wartość logiczną is-cross-site-main-frame-navigation
, która ma na celu ograniczenie ataków polegających na wycieku danych między witrynami, wykorzystujących nawigację na najwyższym poziomie. Zapobiegnie to w szczególności atakom na wiele witryn, w których przypadku atakujący może zainicjować nawigację na najwyższym poziomie do danej strony, a następnie przejść do zasobu, który jest wczytywany przez tę stronę, aby na podstawie czasu wczytywania wywnioskować informacje poufne. Ta zmiana zwiększa też prywatność, ponieważ uniemożliwia szkodliwej witrynie korzystanie z funkcji nawigacji do ustalania, 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 obsługi języka w przypadku wyboru czcionki (gdy czcionki mają glify specyficzne dla danego języka). Przeglądarki uwzględniają ten atrybut. Jednak podczas tworzenia OffscreenCanvas nie można ustawić informacji o regionie, co może spowodować, że renderowany obraz OffscreenCanvas będzie się różnić od obrazu, w którym jest używany. Ta funkcja dodaje atrybut IDL lang
do elementu CanvasTextDrawingStyles
, aby umożliwić bezpośrednie kontrolowanie języka w przypadku rysowania tekstu i danych.
Raporty o naruszeniu zasad dotyczących uprawnień w przypadku elementów iframe
Wprowadza nowy typ naruszenia zasad o nazwie „Potencjalne naruszenie zasad dotyczących uprawnień”. Będzie on uwzględniał tylko zasady dotyczące uprawnień (w tym zasady dotyczące tylko zgłaszania) oraz atrybut allow
ustawiony w iframe’ach, aby wykryć konflikt między zasadami dotyczącymi uprawnień a uprawnieniami rozpowszechnianymi w iframe’ach.
przewidywalny limit miejsca na dane,
Przekazuj przewidywany limit miejsca na dane z interfejsu Estimate API usługi StorageManager w przypadku witryn, które nie mają nieograniczonych uprawnień do miejsca na dane. Na podstawie zgłoszonego limitu miejsca na dane można wykryć tryb przeglądania użytkownika, ponieważ w trybie incognito dostępne miejsce na dane jest znacznie mniejsze niż w zwykłym trybie.
Interfejs Private Aggregation API: raportowanie zbiorcze błędów
Podczas korzystania z Private Aggregation API może wystąpić wiele błędów. Może się np. skończyć budżet na prywatność, co uniemożliwi dalsze dodawanie danych do histogramu. Ta funkcja pozwala deweloperom rejestrować dane 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 błędów i podział tych pomiarów na odpowiednie wymiary określone przez programistę (np. wersja wdrożonego kodu). Ponieważ błędy mogą zawierać informacje z różnych witryn, nie możemy po prostu udostępnić ich użytkownikom bez plików cookie innych firm. Zamiast tego ta funkcja używa istniejących zbiorczych ścieżek raportowania z dodatkiem szumu za pomocą usługi do agregacji.
RegExp.escape
RegExp.escape
to metoda statyczna, która przyjmuje ciąg znaków i zwraca jego wersję ze skrótami, która może być używana jako wzór 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 dodanie tagu field
do reguł spekulacji. To pole opcjonalne może służyć do śledzenia źródła reguł spekulacji. Na przykład do traktowania ich inaczej na serwerze pośredniczącym. Wszystkie tagi powiązane z spekulacjami będą wysyłane z nagłówkiem Sec-Speculation-Tags
.
Zasady dotyczące Storage Access API dotyczące ścisłego przestrzegania zasady „tego samego pochodzenia”
Dostosowuje semantykę Storage Access API do ścisłego przestrzegania zasady „Same Origin”. Oznacza to, że użycie document.requestStorageAccess()
w ramce powoduje domyślnie dołączanie plików cookie do żądań do źródła elementu iframe (a nie do witryny). Pamiętaj, że do odblokowania plików cookie w wielu witrynach można nadal używać zasad CookiesAllowedForUrls
lub nagłówków dostępu do pamięci masowej.
Zaktualizuj aplikację ProgressEvent
, aby używała typu podwójnego dla atrybutów loaded
i total
Element ProgressEvent
ma atrybuty loaded
i total
wskazujące postęp, a ich typ to teraz unsigned long long
. Dzięki tej funkcji typ tych dwóch atrybutów jest zmieniany na double
, co daje deweloperowi większą kontrolę nad wartością. Na przykład deweloperzy mogą teraz utworzyć zdarzenie ProgressEvent z wartością total
1 i wartością loaded
stopniowo zwiększającą się od 0 do 1. Jest to zgodne z domyślnym zachowaniem elementu HTML <progress>
, jeśli atrybut max zostanie pominięty.
Użyj konta DOMPointInit
do celów getCharNumAtPosition
, isPointInFill
, isPointInStroke
Ta zmiana doprowadza kod Chromium do zgodności z najnowszą specyfikacją W3C dla SVGGeometryElement
i SVGPathElement
pod względem używania DOMPointInit
zamiast SVGPoint
w przypadku getCharNumAtPosition
, isPointInFill
i isPointInStroke
.
Tworzenie reguł uwierzytelniania w internecie (uaktualnienia kluczy dostępu)
Żądania tworzenia warunkowego WebAuthn umożliwiają witrynom uaktualnianie dotychczasowych danych logowania na klucz dostępu.
WebGPU: atrybut GPUAdapterInfo
isFallbackAdapter
Atrybut logiczny GPUAdapterInfo
isFallbackAdapter
wskazuje, czy adapter ma znaczne ograniczenia wydajności w zamian za szerszą zgodność, bardziej przewidywalne działanie lub lepszą prywatność. Pamiętaj, że adapter zapasowy może nie być dostępny we wszystkich systemach.
Nowe wersje próbne origin
W Chrome 136 możesz wziąć udział w tych nowych testach origin.
Interfejs API urządzeń wyjścia audio: setDefaultSinkId()
Ta funkcja dodaje setDefaultSinkId()
do MediaDevices, co umożliwia ramce najwyższego poziomu zmianę domyślnego urządzenia wyjściowego audio używanego przez jego ramki podrzędne.
Umożliwienie aplikacjom internetowym rozpoznawania dwumodalnych wartości czasu działania
Aplikacje internetowe mogą mieć bimodalną dystrybucję wydajności wczytywania stron ze względu na czynniki, na które nie mają one wpływu. Na przykład:
- Gdy agent użytkownika uruchamia się po raz pierwszy (scenariusz „zimnego uruchamiania”), musi wykonać wiele kosztownych zadań inicjujących, które konkurują o zasoby systemu.
- Rozszerzenia przeglądarki mogą wpływać na wydajność witryny. Na przykład niektóre rozszerzenia uruchamiają dodatkowy kod na każdej stronie, którą otworzysz, co może zwiększyć obciążenie procesora i spowodować dłuższy czas reakcji.
- Gdy maszyna jest zajęta wykonywaniem intensywnych zadań, może to prowadzić do wolniejszego wczytywania stron internetowych.
W takich przypadkach treści, które próbuje wczytać aplikacja internetowa, będą konkurować z innymi procesami wykonywanymi w systemie. Utrudnia to wykrycie, czy problemy z wydajnością występują w samych aplikacjach internetowych, czy są spowodowane czynnikami zewnętrznymi.
Nowe pole confidence
obiektu PerformanceNavigationTiming
pozwoli deweloperom określić, czy czasy nawigacji są prawidłowe dla ich aplikacji internetowej.
Dane uwierzytelniające sesji powiązane z urządzeniem
Sposób, w jaki witryny mogą bezpiecznie powiązać sesję z pojedynczym urządzeniem.
Dzięki temu serwery mogą mieć sesję bezpiecznie powiązaną 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 na płótnie
Wewnętrzne obiekty CanvasRenderingContext2D i OffscreenCanvasRenderingContext2D measureText()
, fillText()
i strokeText()
zostały zastąpione przez nowe implementacje, które lepiej obsługują tekst w układzie do odczytu z prawej strony i buforowanie. Może to wpłynąć na wydajność i wyjście tekstu BIDI, dlatego ta wersja próbna umożliwia aplikacjom korzystającym z dużej ilości tekstu na płótnie wypróbowanie nowej implementacji i zgłaszanie ewentualnych problemów.
Wycofanie i usunięcie
W tej wersji Chrome wprowadzamy następujące wycofania i usunięcia. Na stronie ChromeStatus.com znajdziesz listy planowanych wycofań, bieżących wycofań i poprzednich usunięciach.
Ta wersja Chrome wycofuje 2 funkcje.
wycofanie funkcji pobierających informacji o lokalizacji Intl
Intl Locale Info API to propozycja ECMAScript TC39 etapu 3, która ma na celu rozszerzenie obiektu Intl.Locale
o informacje o lokalizacji, takie jak dane tygodnia (pierwszy dzień tygodnia, dzień rozpoczęcia weekendu, dzień zakończenia weekendu, minimalny dzień w pierwszym tygodniu) oraz kierunek tekstu i cykl godzin używany w danej lokalizacji. Ta zmiana usuwa niektóre metody dostępu, które zostały wycofane w ramach zmiany specyfikacji od czasu ich wydania.
Usuń HTMLFencedFrameElement.canLoadOpaqueURL()
.
W 2023 r. interfejs canLoadOpaqueURL()
został zastąpiony interfejsem navigator.canLoadAdAuctionFencedFrame()
. Od tego czasu wywołanie tego pierwszego powoduje wyświetlenie ostrzeżenia o wycofaniu w Konsoli, a programiści są odsyłani do nowego interfejsu API. Funkcja nie powinna być dołączona do obiektu HTMLFencedFrameElement
, ale do obiektu navigator
(który zawiera inne metody licytacji reklam i ramki odizolowanej).