Chrome 121 w wersji beta

O ile nie zaznaczono inaczej, poniższe zmiany dotyczą najnowszych wersji beta Chrome na Androida, ChromeOS, Linux, macOS i Windows. Dowiedz się więcej o funkcjach wymienionych tutaj, korzystając z podanych linków lub z listy na ChromeStatus.com. Od 6 grudnia 2023 roku wersja beta Chrome 121 jest w wersji beta. Najnowsze aktualizacje możesz pobrać ze strony 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, np. ::selection i ::highlight, dziedziczą swoje właściwości przez łańcuch pseudo wyróżnień, a nie w łańcuchu elementów. W efekcie powstaje bardziej intuicyjny model dziedziczenia właściwości w zaznaczonych miejscach.

Spowoduje to spełnienie wymogu ze specyfikacji CSS Pseudos Level 4:

„Gdy żadna obsługiwana właściwość nie otrzyma wartości przez kaskadę (...) jej określona wartość jest określana przez dziedziczenie z odpowiedniego pseudoelementu podświetlenia elementu nadrzędnego elementu źródłowego”.

Paski przewijania CSS: scrollbar-color i scrollbar-width

Specyfikacja pasków przewijania CSS pozwala deweloperom ustalać styl 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 dopasować je do danego stylu strony internetowej. Właściwość scrollbar-width umożliwia korzystanie z węższych pasków przewijania, które mogą być odpowiednie w niektórych zastosowaniach, 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 określonej palety używanej do renderowania czcionki koloru. 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 służące do określania stylu tekstu, który klient użytkownika oznaczył jako literówki lub błędy gramatyczne, a dekoracje wierszy ujawniają domyślne elementy interfejsu klienta użytkownika pod kątem błędów ortograficznych i gramatycznych. Te funkcje pozwalają deweloperom wybrać 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 stosować niestandardowe sprawdzanie pisowni, które dostosowują się do sposobu działania urządzenia.

Ulepszone maskowanie CSS w przypadku SVG

Stanowi uzupełnienie ulepszonej obsługi masek CSS w Chrome 120, dodając obsługę wielu masek do SVG (wiele masek, a także mask-mode, mask-composite, mask-position i mask-repeat). Dodatkowo obsługiwane są teraz zdalne maski SVG (np. mask: url(masks.svg#star)).

Wartości wyświetlane charakterystyczne dla języka Ruby

Dodano nowe wartości właściwości reklamy displayowej CSS: ruby i ruby-text. Domyślne wartości wyświetlania <ruby> i <rt> zostały zmienione odpowiednio na ruby i ruby-text. W układzie ruby te wartości zostaną uwzględnione. Autorzy stron internetowych mogą używać dowolnych elementów, takich jak <div>, do renderowania ruby przez ustawianie nowych wartości wyświetlanych.

Internetowe interfejsy API

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

Chrome wprowadza zmiany w interfejsie Attribution Reporting API, które koncentrują się na:

  • Zmniejszenie strat w transmisji dzięki umożliwieniu zmniejszenia opóźnień raportów zbiorczych.
  • Dodatkowa możliwość konfigurowania interfejsu API dzięki obsłudze pola epsilon raportowania na poziomie zdarzenia.
  • Zwiększona rozszerzalność interfejsu API dzięki błędnym rejestracjom podczas napotkania zarezerwowanych kluczy.

Interfejs API notRestoredReason w pamięci podręcznej stanu strony internetowej

Interfejs notRestoredReason API wyświetli listę powodów, dla których strona nie jest wyświetlana z pamięci podręcznej stanu strony internetowej za pomocą interfejsu PerformanceTrackingTiming API.

Wymagaj gestu użytkownika w przypadku interfejsów API zmiany rozmiaru w trybie obrazu w obrazie dokumentu

Włącza to metody resizeBy() i resizeTo() w oknach funkcji obraz w obrazie dokumentu, ale z dodatkowym ograniczeniem wymogu używania gestów, aby zminimalizować ryzyko nadużyć.

Interfejs API EditContext

Interfejs EditContext API upraszcza proces integracji aplikacji internetowej z zaawansowanymi metodami wprowadzania tekstu, takimi jak pisanie kształtów VK, panele pisma odręcznego, rozpoznawanie mowy i kompozycje IME. Poprawia dostępność i wydajność oraz otwiera nowe możliwości edytorów internetowych.

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().

MediaCapabilities: wysyłanie zapytań dotyczących obsługi HDR za pomocą decodingInfo()

Rozszerza interfejs Media Capabilities API, umożliwiając wykrycie obsługi renderowania HDR za pomocą 3 nowych pól słownika VideoConfiguration: hdrMetadataType, colorGamut i transferFunction.

Chromium ma własne algorytmy mapowania tonalnego, więc zawsze będzie zwracać wartość „prawda” w przypadku metadanych statycznych HDR10 (smpteSt2086). Metadane 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 umożliwia wybór koordynatora, który ma być używany do szyfrowania ładunku (z listy dozwolonych przez dostawcę). Wybór usługi jest dokonywany za pomocą dodatkowej opcji w wywołaniach funkcji run() i selectURL() pamięci współdzielonej oraz w wywołaniach funkcji runAdAuction() i joinAdInterestGroup() w ramach Protected Audience. Szerokie podejście w dużej mierze przypomina korzystanie z interfejsu Attribution Reporting API.

Interfejs Remote Playback API na komputerze

Rozszerza on interfejs HTMLMediaElement, który umożliwia sterowanie zdalnym odtwarzaniem multimediów ze strony internetowej. Ta wersja jest dostępna na urządzeniach z Androidem w 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 uzyskanie listy adresów URL z elementów <a> na stronie na potrzeby wczytywania spekulacyjnego. Mogą one zawierać kryteria, według których można używać tych linków. Dzięki temu w połączeniu z nowym polem „chętność” reguł spekulacyjnych deweloperzy mogą automatycznie pobierać lub wstępnie renderować linki ze stron 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ścią tego nagłówka musi być adres URL wskazujący zasób tekstowy o typie MIME "application/speculationrules+json". Reguły zasobu zostaną dodane do zestawu reguł dokumentu.

Wskazówka No-Vary-Search umożliwia dopasowanie spekulacyjnych żądań z wyprzedzeniem nawet wtedy, gdy zmienią się parametry zapytania w adresie URL. Nagłówek odpowiedzi HTTP No-Vary-Search deklaruje, że niektóre lub wszystkie części zapytania w adresie URL mogą być ignorowane na potrzeby dopasowywania. Może zadeklarować, że kolejność kluczy parametrów zapytania nie powinna uniemożliwiać dopasowań, 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 Cloud Storage

Zasobniki na dane umożliwiają witrynom organizowanie danych na urządzeniu w osobne „zasobniki”, dzięki czemu klienty użytkownika mogą usuwać zgrupowane dane niezależnie od tych, które znajdują się w innych zasobnikach, i umożliwia witrynom ergonomiczne zarządzanie danymi powiązanymi semantycznie. Każdy zasobnik na dane może zawierać dane powiązane z uznanymi interfejsami API pamięci masowej, takimi jak IndexedDB i CacheStorage.

URLPattern: dziedziczenie po lewej, symbol wieloznaczny po prawej

Sposób działania zmienia się na wzorce tworzone za pomocą podstawowego adresu URL, składni ciągu konstruktora lub obu tych metod – ale nie żadnego wzorca, który wyraźnie określa komponenty oddzielnie bez podstawowego adresu URL.

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

Dzięki temu wzorce stają się bardziej ekspansywne niż do tej pory w sytuacjach, gdy symbole wieloznaczne są raczej pożądane.

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, włączając zestawy Unicode.

Dodatki do WebGPU

WebGPU pozwala teraz programistom pomijać punkty wejścia do modułów cieniowania podczas tworzenia potoku, co poprawia ergonomię. Jeśli nie zostanie znaleziony domyślny punkt wejścia, w zwykły sposób zostanie wywołany błąd GPUValidationError.

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

Specyfikacja WebGPU sprawia, że zapytania o sygnaturę czasową są opcjonalną funkcją ze względu na ryzyko związane z atakami czasowymi. Uważamy jednak, że kwantyfikacja zapytań opartych na sygnaturach czasowych stanowi dobry środek, ponieważ zmniejsza precyzję liczników czasu z rozdzielczością 100 mikrosekund.

Herbatka klucza X25519Kyber768 dla protokołu TLS

Chroń obecny ruch TLS w Chrome przed przyszłą kryptoanalizą kwantową, wdrażając kwantowy algorytm uzgadniania kluczy Kyber768. Jest to hybrydowa umowa kluczy X25519 i Kyber768 oparta na standardzie IETF. Ta specyfikacja i wprowadzenie nie są objęte organizacją W3C. Ta umowa 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 testy origin.

Interfejs Element Capture API

Interfejs Element Capture API udostępnia metody przechwytywania drzewa podrzędnego DOM.

Biorąc pod uwagę, że obiekt MediaStreamTrack w filmie został uzyskany za pomocą wcześniej dostępnych środków do inicjowania przechwytywania kart, przechwytywanie elementów umożliwia zmutowanie ścieżki w taki sposób, aby przechwytywała tylko poddrzewo DOM, zaczynając od danego elementu.

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

Rejestracja w celu testowania origin ElementCapture

Zmiany w istniejącym działaniu

W Chrome 121 wprowadziliśmy podaną niżej zmianę w dotychczasowym działaniu, którą znajdziesz tutaj, 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ę umieszczania, Chrome dyskretnie 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 zachowanie na wszystkie elementy iframe z innych domen, a rozpocznie się jako ograniczony eksperyment w Chrome 121, a później będzie stopniowo optymalizowana.