Data wydania stabilnej wersji: 29 kwietnia 2025 r.
O ile nie zaznaczono inaczej, poniższe zmiany dotyczą wersji 136 przeglądarki Chrome w kanale stabilnym na Androida, ChromeOS, Linuxa, macOS i Windowsa.
HTML i DOM
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 renderowanie na płótnie offscreen będzie dawać wyniki różniące się od tych, które są używane w płótnie. Ta funkcja dodaje atrybut IDL lang
do elementu CanvasTextDrawingStyles
, aby umożliwić deweloperom bezpośrednią kontrolę nad językiem używanym do wyświetlania tekstu i zbierania danych.
Śledzenie błędu #385006131 | Wpis na stronie ChromeStatus.com | Specyfikacja
CSS i UI
Właściwość dynamic-range-limit
Umożliwia stronie ograniczenie maksymalnej jasności treści HDR.
Śledzenie błędu #1470298 | Wpis na stronie ChromeStatus.com | Specyfikacja
Historia połączeń partycji :visited
Aby wyeliminować wycieki danych z historii przeglądania użytkownika, elementy kotwicy są stylizowane jako :visited
tylko wtedy, gdy zostały kliknięte z poziomu tej witryny i ramki najwyższego poziomu.
Wyjątkiem są „linki do siebie”, w których przypadku linki do stron w danej witrynie mogą mieć styl :visited
, nawet jeśli nie zostały wcześniej kliknięte w ramach danej witryny lub jej poziomu najwyższego. Ta wyjątek jest dostępny tylko w ramkach najwyższego poziomu lub podramkach, które mają ten sam origin co rama najwyższego poziomu. Korzyści związane z prywatnością są nadal osiągane, ponieważ witryny już wiedzą, które z ich podstron użytkownik odwiedził, więc nie ujawniają żadnych nowych informacji. Wyjątek ten został wprowadzony na prośbę społeczności i ma na celu poprawę wygody użytkowników.
Śledzenie błędu #1448609 | Wpis na stronie ChromeStatus.com | Specyfikacja
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 -webkit-print-color-adjust
, ale z ustandaryzowaną nazwą.
Wersja z preiksem -webkit-
nie zostanie usunięta.
Dokumenty MND | Śledzenie błędu #376381169 | Informacja na stronie ChromeStatus.com | Specyfikacja
Zmień nazwę typu string
attr()
na raw-string
Grupa robocza CSS postanowiła zastąpić typ string
attr()
typem raw-string
.
Dlatego od Chrome 136 element attr(data-foo string)
staje się attr(data-foo raw-string)
.
Śledzenie błędu 400981738 | Wpis na stronie ChromeStatus.com | Specyfikacja
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.
Śledzenie błędu #372475301 | Wpis na stronie ChromeStatus.com
Interfejsy Web API
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ą zdarzeń interfejsu użytkownika.
W przypadku nieprzechwycionych wskaźników element docelowy click
pozostaje bez zmian.
Śledzenie błędu #40851596 | Wpis na stronie ChromeStatus.com | Specyfikacja
Wyraźne wskazówki kompilacji za pomocą magicznych komentarzy
Umożliwia dołączanie informacji o tym, które funkcje powinny być pospiesznie przeanalizowane i skompilowane w plikach JavaScript.
Informacje są kodowane jako magiczne komentarze.
Śledzenie błędu #13917 | Informacja na stronie ChromeStatus.com | Specyfikacja
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 danej strony, a następnie przejść do zasobu, który jest ładowany przez tę stronę, aby uzyskać informacje poufne, korzystając z czasu ładowania. Ta zmiana zwiększa też prywatność, ponieważ uniemożliwia szkodliwej witrynie korzystanie z funkcji nawigacji do ustalania, czy użytkownik odwiedził już wcześniej daną witrynę.
Śledzenie błędu #398784714 | Wpis na stronie ChromeStatus.com | Specyfikacja
Protected Audience: pomoc w konwersji tekstu
Skrypty ustalania stawek i punktowania z użyciem chronionych list odbiorców, które współpracują z WebAssembly, muszą skutecznie konwertować dane typu string na tablice bajtów i zwrotnie (np. aby przekazywać ciągi znaków do WebAssembly i z niego za pomocą „pamięci” ArrayBuffer). Udostępnia ona 2 samodzielne funkcje: protectedAudience.encodeUtf8
i protectedAudience.decodeUtf8
, które wykonują te zadania o kilka rzędów wielkości wydajniej niż w przypadku kodu JavaScript.
Informacja na stronie ChromeStatus.com
RegExp.escape
Metoda statyczna RegExp.escape przyjmuje ciąg znaków i zwraca wersję ze złamanym znaczeniu, którą można użyć 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 to programistom dodanie pola tagu do zasad spekulacji. To opcjonalne pole może służyć do śledzenia źródła reguł spekulacji. Na przykład w celu traktowania ich inaczej na serwerze pośredniczącym. Wszystkie tagi powiązane z spekulacjami będą wysyłane z nagłówkiem Sec-Speculation-Tags
.
Śledzenie błędu #381687257 | Wpis na stronie ChromeStatus.com | Specyfikacja
Zmień ProgressEvent, aby używać typu double w przypadku atrybutów loaded
i total
Zdarzenie ProgressEvent ma atrybuty loaded
i total
wskazujące postęp, a ich typ to teraz unsigned long long
.
Dzięki tej funkcji typ tych 2 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, a wartość loaded
będzie stopniowo wzrastać od 0 do 1. Jest to zgodne z domyślnym działaniem elementu HTML <progress>
, jeśli atrybut max zostanie pominięty.
Prywatność i bezpieczeństwo
Raporty o naruszeniu zasad dotyczących uprawnień w przypadku elementów iframe
Wprowadzamy 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 wykrywać konflikty między zasadami dotyczącymi uprawnień a uprawnieniami rozpowszechnianymi w iframe’ach.
Śledzenie błędu #40941424 | Wpis na stronie ChromeStatus.com | Specyfikacja
Ograniczenie możliwości pozyskiwania odcisków palców na podstawie informacji w nagłówku Accept-Language
Zmniejsza ilość informacji, które ciąg znaków w wartości nagłówka Accept-Language
udostępnia w żądaniach HTTP i w navigator.languages. Zamiast wysyłać pełną listę preferowanych języków użytkownika w każdej prośbie HTTP, Chrome wysyła teraz preferowany język użytkownika w nagłówku Accept-Language.
Śledzenie błędu #1306905 | Informacja na stronie ChromeStatus.com
Tożsamość
Aktualizacje FedCM
Umożliwia FedCM wyświetlanie wielu dostawców tożsamości w tym samym oknie dialogowym, ponieważ wszyscy dostawcy są w tym samym wywołaniu get()
. Dzięki temu deweloperzy mogą w wygodny sposób przedstawiać użytkownikom wszystkich obsługiwanych dostawców tożsamości.
Chrome 136 usuwa też obsługę opcji Dodaj kolejne konto w trybie pasywnym FedCM. Ta funkcja umożliwia wyświetlanie przycisku Użyj innego konta obok innych kont dostawców tożsamości w oknie wyboru. Funkcja ta 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.
Informacje o błędzie #1348262 | Informacje na stronie ChromeStatus.com | Specyfikacja
Tworzenie reguły warunkowej uwierzytelniania w internecie (uaktualnienia kluczy dostępu)
Żądania tworzenia warunkowego WebAuthn umożliwiają witrynom uaktualnianie dotychczasowych danych logowania na klucz dostępu.
Śledzenie błędu #377758786 | Wpis na stronie ChromeStatus.com | Specyfikacja
Grafika i multimedia
AudioContext
Stan przerwany
Dodaje stan "interrupted"
do AudioContextState
. Ten nowy stan pozwala agentowi użytkownika wstrzymać odtwarzanie podczas dostępu do dźwięku (VoIP) lub gdy pokrywa laptopa jest zamknięta.
Śledzenie błędu #374805121 | Wpis na stronie ChromeStatus.com | Specyfikacja
Kontrola przechwyczonej powierzchni
Interfejs Web API umożliwiający aplikacjom internetowym:
- Przesyłanie zdarzeń związanych z kołem do karty z zapisanymi danymi.
- odczytywać i zmieniać poziom powiększenia przechwyczonej karty.
Śledzenie błędu #1466247 | Informacja na stronie ChromeStatus.com | Specyfikacja
CapturedSurfaceResolution
Wyświetl współczynnik pikseli przechwyczonej powierzchni podczas udostępniania ekranu.
Ta funkcja pomaga aplikacjom oszczędzać zasoby systemowe lub dostosowywać jakość do przepustowości w zależności od rozdzielczości fizycznej i logicznej przechwyczonej powierzchni.
Informacje o błędzie #383946052 | Informacje na stronie ChromeStatus.com | Specyfikacja
Obsługa kodeka H.265 (HEVC) w WebRTC
Po tej zmianie HEVC dołączy do kodeków VP8, H.264, VP9 i AV1 jako obsługiwany kodek w WebRTC. Wsparcie będzie dostępne za pomocą interfejsu MediaCapabilities API.
Śledzenie błędu #391903235 | Wpis na stronie ChromeStatus.com | Specyfikacja
Aktualizacje obsługi kodeka H26x dla MediaRecorder
Interfejs MediaRecorder API w Chromium obsługuje teraz kodowanie HEVC, wprowadzając ciąg kodeka hvc1.* i dodając nowe kodeki (hev1.* i avc3.*) obsługujące filmy o zmiennej rozdzielczości w formacie MP4.
W WebCodecs w Chromium M130 dodano obsługę kodowania na platformie HEVC. 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.
Informacja na stronie ChromeStatus.com
Użyj konta DOMPointInit
do celów getCharNumAtPosition
, isPointInFill
, isPointInStroke
Ta zmiana sprawia, że kod Chromium jest zgodny z najnowszą specyfikacją W3C dla SVGGeometryElement
i SVGPathElement
pod względem używania DOMPointInit
zamiast SVGPoint
w przypadku getCharNumAtPosition
, isPointInFill
i isPointInStroke
.
Śledzenie błędu #40572887 | Wpis na stronie ChromeStatus.com | Specyfikacja
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 większą prywatność. Pamiętaj, że adapter zapasowy może nie być dostępny we wszystkich systemach.
Śledzenie błędu #403172841 | Wpis na stronie ChromeStatus.com | Specyfikacja
Zmiany w przeglądarce
płynne paski przewijania;
Ta funkcja ulepsza suwaki Chromium (zarówno nakładki, jak i bez nakładki) w systemach Windows i Linux, aby pasowały do języka projektowania Fluent w Windows 11.
W systemach Linux i Windows domyślnie będą włączone suwaki Fluent bez nakładki. Ta zmiana dotyczy też Linuksa, ponieważ od zawsze pasek przewijania w Chromium w Linuksie był dopasowany do tego, co jest dostępne w systemie Windows. Wciąż nie ustalono, jak włączyć przewijanie płynnych suwaków.
Śledzenie błędu #1292117 | Wpis na stronie ChromeStatus.com
Wersje próbne 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 jej ramki podrzędne.
Testowanie wersji Origin | Informacja na stronie ChromeStatus.com | Specyfikacja
Umożliwienie aplikacjom internetowym analizowania dwumodalnych czasów 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ń inicjalizacyjnych, 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ć wykorzystanie 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.
Nowe pole confidence
w obiekcie PerformanceNavigationTiming
pozwoli deweloperom określić, czy czasy nawigacji są prawidłowe dla ich aplikacji internetowej.
Testowanie wersji próbnej Origin | Śledzenie błędu #1413848 | Wpis na stronie ChromeStatus.com | Specyfikacja
Aktualizacja implementacji renderowania tekstu w Canvasie
Ta zmiana nie dotyczy interfejsu internetowego.
Wdrożenie wersji CanvasRenderingContext2D
, measureText()
, fillText()
i strokeText()
wiąże się z poważnymi zmianami. Może to wpłynąć na wydajność, dlatego chcemy przeprowadzić próbę pochodzenia, aby aplikacje korzystające z wielu elementów canvas mogły wypróbować nową implementację.
Testowanie wersji Origin | Śledzenie błędu #389726691 | Wpis na stronie ChromeStatus.com
Wycofanie i usunięcie
Usuń: HTMLFencedFrameElement.canLoadOpaqueURL()
Metoda HTMLFencedFrameElement
canLoadOpaqueURL()
została w 2023 r. zastąpiona metodą navigator.canLoadAdAuctionFencedFrame()
, a od tego czasu wywołanie tej pierwszej powoduje wyświetlenie ostrzeżenia o wycofaniu w Konsoli. Ta metoda została usunięta z Chrome 136.