Chrome 136

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

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ń pointerdownpointerup 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.encodeUtf8protectedAudience.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)); 

ChromeStatus.com entry | Spec

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 loadedtotal

Zdarzenie 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 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.

ChromeStatus.com entry | Spec

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:

  1. Przesyłanie zdarzeń związanych z kołem do karty z zapisanymi danymi.
  2. 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 SVGGeometryElementSVGPathElement pod względem używania DOMPointInit zamiast SVGPoint w przypadku getCharNumAtPosition, isPointInFillisPointInStroke.

Ś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.

Informacja na stronie ChromeStatus.com