Chrome 121 w wersji beta

O ile nie wskazano inaczej, poniższe zmiany dotyczą najnowszej wersji beta Chrome w wersji beta na Androida, ChromeOS, Linuxa, macOS i Windowsa. Dowiedz się więcej o funkcjach wymienionych tutaj, korzystając z podanych linków lub z listy na ChromeStatus.com. Chrome 121 jest w wersji beta od 6 grudnia 2023 roku. Najnowsze aktualizacje możesz pobrać z Google.com (na komputer) lub ze Sklepu Google Play na Androida.

CSS

W tej wersji dodaliśmy 6 nowych funkcji CSS.

Dziedziczenie wyróżnionych elementów CSS

Dzięki dziedziczeniu wyróżnień CSS pseudoklasy wyróżnień CSS, takie jak ::selection i ::highlight, dziedziczą właściwości w łańcuchu pseudopodświetlenia, a nie w łańcuchu elementów. W efekcie powstaje bardziej intuicyjny model dziedziczenia właściwości w wyróżnionych elementach.

Spełnia to wymagania ze specyfikacji CSS Pseudos Level 4:

„Gdy kaskada nie ma wartości żadnej obsługiwanej właściwości (...), jej określona wartość jest określana przez dziedziczenie z odpowiedniego pseudoelementu podświetlenia elementu nadrzędnego danego elementu”.

Paski przewijania CSS: scrollbar-color i scrollbar-width

Specyfikacja paska przewijania CSS umożliwia programistom dostosowywanie stylu pasków przewijania przez określenie ich kolorów i grubości. Ta specyfikacja dodaje 2 poniższe właściwości. Właściwość scrollbar-color umożliwia zmianę schematu kolorów pasków przewijania, aby lepiej pasowały do konkretnego stylu strony internetowej. Właściwość scrollbar-width umożliwia korzystanie z węższych pasków przewijania, które mogą być bardziej odpowiednie w niektórych przypadkach, a nawet do ich całkowitego ukrycia bez ograniczania możliwości przewijania.

Animacja CSS font-palette dotycząca czcionek kolorów

Właściwość CSS font-palette umożliwia wybór konkretnej palety używanej do renderowania kolorowej czcionki. Dzięki nowej obsłudze animowania tej właściwości przejście między paletami nie jest już oddzielnym krokiem, ale staje się płynnym przejściem między 2 wybranymi paletami. Działa to wszędzie w animacjach i przejściach CSS.

Funkcje CSS dotyczące pisowni i gramatyki

CSS wyróżnia pseudoelementy związane ze stylem tekstu, który klient użytkownika oznaczył jako błędy w pisowni lub błędy gramatyczne. Dekoracje wierszy ujawniają domyślne dekoracje wierszy pod kątem błędów ortograficznych i gramatycznych. Te funkcje pozwalają deweloperom wybierać bardziej czytelne kolory dla domyślnych błędów ortograficznych i gramatycznych, wyróżniać błędnie napisane słowa za pomocą kolorów tła lub innych elementów ozdobnych, a także implementować niestandardowe sprawdzanie pisowni dopasowane do sposobu korzystania z urządzenia.

Ulepszone maskowanie CSS w SVG

Wprowadziliśmy w nim ulepszoną obsługę masek CSS w Chrome 120, dodając nową obsługę masek w SVG (wiele masek, a także mask-mode, mask-composite, mask-position i mask-repeat). Dodatkowo obsługiwane są też zdalne maski SVG (np. mask: url(masks.svg#star)).

Wartości displayowe związane z rubinem

Dodano nowe wartości właściwości displayowych w usłudze porównywania cen: ruby i ruby-text. Domyślne wyświetlane wartości <ruby> i <rt> są zmieniane odpowiednio na ruby i ruby-text, a układ ruby je uwzględnia. Autorzy stron internetowych mogą użyć do renderowania ruby dowolnych elementów, takich jak <div>, ustawiając nowe wyświetlane wartości.

Internetowe interfejsy API

Pakiet funkcji raportowania atrybucji: zmniejszone opóźnienia zbiorcze, pole Epsilon raportu na poziomie zdarzenia, zarezerwowane klucze

W Chrome wprowadziliśmy zmiany w interfejsie Attribution Reporting API, które koncentrują się na:

  • Zmniejszenie straty transmisji dzięki zmniejszeniu opóźnień w raportach zbiorczych.
  • Dodatkowa możliwość konfigurowania interfejsu API dzięki obsłudze pola epsilon raportowania na poziomie zdarzenia.
  • Zwiększona rozszerzalność interfejsu API dzięki występowaniu błędów rejestracji podczas napotkania kluczy zarezerwowanych.

Interfejs API stanu nieprzywróconego w pamięci podręcznej stanu strony internetowej

Interfejs notRestoredReason API wyświetli listę przyczyn, dla których strona nie jest wyświetlana z pamięci podręcznej stanu strony internetowej, korzystając z interfejsu Performance NavigationTiming.

Wymagaj gestu użytkownika przy zmianie rozmiaru interfejsów API w trybie obrazu w dokumencie w dokumencie

Włącza to metody resizeBy() i resizeTo() w oknach obrazu w obrazie dokumentów, ale jednocześnie stosuje ograniczenie wymogu używania gestów, aby zmniejszyć ryzyko nadużyć.

Interfejs EditContext API

Interfejs EditContext API upraszcza proces integracji aplikacji internetowej z zaawansowanymi metodami wprowadzania tekstu, takimi jak pisanie kształtu VK, panele pisma odręcznego, rozpoznawanie mowy i kompozycje IME. Poprawia dostępność i wydajność, a także daje nowe możliwości edytorom internetowym.

Wykrywanie funkcji obsługiwanych formatów schowka

Możesz teraz sprawdzić, czy interfejs Async Clipboard API obsługuje określony typ MIME. Aby to zrobić, wywołaj nową funkcję supports(), przekazując typ MIME jako argument, na przykład ClipboardItem.supports('image/png').

HTMLSelectElement showPicker()

Metoda showPicker() elementu HTMLSelectElement umożliwia programistom automatyczne otwieranie selektora opcji elementu <select> zgodnie ze wzorcem input.showPicker().

Możliwości multimedialne: wysyłanie zapytań o obsługę HDR przy użyciu funkcji decodingInfo()

Rozszerza interfejs Media Capabilities API, umożliwiając wykrywanie obsługi renderowania HDR przez 3 nowe pola słownika VideoConfiguration: hdrMetadataType, colorGamut i transferFunction.

Chromium ma własne algorytmy mapowania tonów, więc w przypadku metadanych statycznych HDR10 (smpteSt2086) zawsze zwracają wartość „prawda”. Parametry smpteSt2094-40 (HDR10+) i dynamiczne metadane smpteSt2094-10 nie są obecnie obsługiwane, więc zwraca wartość false (fałsz).

Private Aggregation API: wybór koordynatora agregacji

Ta modyfikacja interfejsu Private Aggregation API zapewnia mechanizm wyboru koordynatora, który ma być używany do szyfrowania ładunku (z listy dozwolonych określonej przez dostawcę). Wybór usługi jest dokonywany za pomocą dodatkowej opcji w wywołaniach run() i selectURL() pamięci współdzielonej oraz w wywołaniach runAdAuction() i joinAdInterestGroup() w ramach Protected Audience API. To podejście w dużej mierze przypomina korzystanie z interfejsu Attribution Reporting API.

Remote Playback API na komputerze

Ten interfejs API stanowi rozszerzenie HTMLMediaElement, które umożliwia sterowanie zdalnym odtwarzaniem multimediów ze strony internetowej. Ta funkcja jest dostępna na urządzeniach z Androidem w wersji Chrome 56 i jest dostępna na komputerach od wersji Chrome 121.

Interfejs API reguł spekulacyjnych

W interfejsie Speculation Rules API są dostępne nowe funkcje.

Obsługa reguł dotyczących dokumentów: to rozszerzenie składni reguł spekulacyjnych, które umożliwia przeglądarce pobieranie listy adresów URL z elementów <a> strony na potrzeby ładowania spekulacyjnego. Mogą one zawierać kryteria, według których te linki mogą być używane. To połączenie w połączeniu z nowym polem „zainteresowanie” dla reguł spekulacyjnych pozwala deweloperom automatycznie pobierać lub wstępnie renderować linki na stronach bezpośrednio po najechaniu kursorem myszy lub po najechaniu na nie kursorem myszy.

Oddzielna zmiana umożliwia określanie reguł spekulacyjnych przy użyciu nagłówka odpowiedzi HTTP Speculation-Rules zamiast używania wbudowanych elementów <script>. Wartość tego nagłówka musi być adresem URL wskazującym zasób tekstowy o typie MIME "application/speculationrules+json". Reguły zasobu zostaną dodane do zestawu reguł dokumentu.

Wreszcie wskazówka No-Vary-Search umożliwia dopasowanie spekulacyjnych żądań wczytania z wyprzedzeniem nawet wtedy, gdy ulegną zmianie parametrów zapytania w adresie URL. Nagłówek odpowiedzi HTTP No-Vary-Search deklaruje, że niektóre lub wszystkie części zapytania adresu URL mogą być ignorowane w celu dopasowania. Może zadeklarować, że kolejność kluczy parametrów zapytania nie powinna uniemożliwiać dopasowań, że określone parametry zapytania nie powinny uniemożliwiać dopasowań lub że tylko niektóre znane parametry zapytania powinny powodować niezgodności.

Obiekty interfejsów SpeechSynthesis i SpeechSynthesisVoice

Dodaje obiekty interfejsu SpeechSynthesis i SpeechSynthesisVoice do już obsługiwanych funkcji. Dzięki temu możliwe jest wykrywanie funkcji za pomocą SpeechSynthesisVoice.prototype.

Interfejs API zasobników pamięci masowej

Zasobniki na dane umożliwiają witrynom porządkowanie danych na urządzeniu w oddzielne „zasobniki”, co pozwala klientom użytkownika usuwać zgrupowane dane niezależnie od tych, które znajdują się w innych zasobnikach, i umożliwia witrynom ergonomiczne zarządzanie danymi powiązanymi z semantykami. Każdy zasobnik na dane może zawierać dane powiązane z uznawanymi interfejsami API pamięci masowej, takimi jak IndexedDB i CacheStorage.

URLPattern: Dziedzicz po lewej, symbol wieloznaczny po prawej

Sposób działania zmienia się na wzorce konstruowane za pomocą podstawowego adresu URL, składni ciągu konstruktora lub obu tych elementów, ale nie wzorców, które wyraźnie określają komponenty bez podstawowego adresu URL.

Komponenty nie są dziedziczone z podstawowego adresu URL, jeśli wyraźnie określono komponent „wcześniejszy”. W formacie ciągu znaków nieokreślone komponenty „później” są domyślnie oznaczone symbolem wieloznacznym i nie muszą być puste (z wyjątkiem portu, który jest zawsze używany, gdy nazwa hosta jest określona). Nazwa użytkownika i hasło nigdy nie są określane ani dziedziczone.

Dzięki temu wzorce są bardziej ekspansywne niż do tej pory, w sytuacji, gdy użycie symboli wieloznacznych jest korzystne.

URLPattern: flaga v RegExp zamiast u

Interfejs URL Pattern API pozwala programistom określać ciągi wzorców. Są one wewnętrznie przekształcane na wyrażenia regularne.

Przy pierwszym zaimplementowaniu interfejsu API te wyrażenia regularne zostały skompilowane z flagą u. Chrome 121 aktualizuje ją do flagi v, co włącza zestawy Unicode.

Dodatki do WebGPU

WebGPU pozwala teraz programistom pomijać punkty wejścia do modułów cieniowania podczas tworzenia potoku, co poprawia ergonomię. W przypadku braku domyślnego punktu wejścia zostanie wywołany błąd GPUValidationError w zwykły sposób.

Zapytania o sygnatury czasowe WebGPU pozwalają aplikacjom WebGPU dokładnie mierzyć (z dokładnością do nanosekundy) czas wykonania poleceń GPU, zwłaszcza na początku i na końcu kolejnych przejazdów. Zapytania dotyczące sygnatur czasowych są często używane do uzyskiwania statystyk dotyczących wydajności i zachowania zadań GPU.

Specyfikacja WebGPU sprawia, że zapytania o sygnatury czasowe są opcjonalną funkcją ze względu na obawy związane z atakami czasowymi. Uważamy jednak, że kwantyfikacja zapytań z sygnaturami czasowymi stanowi dobry środek, ponieważ zmniejsza precyzję liczników czasu przy rozdzielczości do 100 mikrosekund.

Herbata klucza X25519Kyber768 dla protokołu TLS

Chroń obecny ruch TLS w Chrome przed przyszłą kryptoanalizą kwantową, wdrażając algorytm kwantowego uzgadniania kluczy Kyber768. Jest to hybrydowa umowa kluczy X25519 i Kyber768 oparta na standardzie IETF. Ta specyfikacja i jego wprowadzenie wykraczają poza zakres W3C. Ta umowa dotycząca klucza zostanie uruchomiona jako szyfr TLS i powinna być przejrzysta dla użytkowników.

Testowanie origin w toku

W Chrome 121 możesz włączyć te nowe wersje próbne.

Interfejs Element Capture API

Interfejs Element Capture API udostępnia metody przechwytywania poddrzewa modelu DOM.

Biorąc pod uwagę, że film MediaStreamTrack został pobrany przy użyciu wcześniej przygotowanych metod w celu rozpoczęcia przechwytywania kart, narzędzie Element Capture umożliwia modyfikację ścieżki tak, by przechwytywała tylko poddrzewo DOM, zaczynając od danego elementu.

Interfejs API w pewnym stopniu przypomina interfejs API Region Capture, ale daje aplikacjom większą elastyczność, ponieważ treści przesłonięte i zasłonięte są wykluczone z przechwytywania.

Rejestracja w celu testowania origin ElementCapture

Zmiany w istniejącym działaniu

Chrome 121 zawiera wprowadzone poniżej zmiany w dotychczasowym działaniu, które są tu opisane, aby poinformować deweloperów o zmianie .

Odrzuć zdarzenia wejściowe do ostatnio przeniesionych elementów iframe z innych domen

Jeśli element iframe z innych domen został niedawno przeniesiony na stronę umieszczoną, Chrome bez powiadomienia odrzuca zdarzenia kierowane na ten element. Powód jest taki, że jeśli element iframe został niedawno przeniesiony, prawdopodobnie użytkownik nie miał zamiaru go kliknąć.

Ta zmiana została wprowadzona w 2019 roku w ograniczonej formie. Dotyczyła tylko elementów iframe zawierających skrypt z funkcjami IntersectionObserver w wersji 2 (czyli wykrywaniem przesłonięcia lub efektów). Ta funkcja rozszerza to działanie na wszystkie elementy iframe z innych domen, a zaczniemy w ramach ograniczonego eksperymentu w Chrome 121, a później będziemy go dostosowywać.