Chrome 120 w wersji beta

Maskowanie CSS, złagodzone reguły zagnieżdżania CSS, tworzenie wzorców akordeonów za pomocą elementu <details> oraz działania enterpictureinpicture dla interfejsu Media Session API.

O ile nie zaznaczono inaczej, opisane zmiany dotyczą najnowszej wersji wersji beta Chrome na systemy Android, ChromeOS, Linux, macOS i Windows. Więcej informacji o funkcjach znajdziesz, klikając odpowiednie linki lub z listy na stronie chromestatus.com. Od 1 listopada 2023 r. Chrome 120 jest w wersji beta. Najnowsze wersje możesz pobrać ze strony Google.com na komputer lub ze Sklepu Google Play na urządzeniu z Androidem.

CSS

W tej wersji dodaliśmy 7 nowych funkcji CSS.

Składnia CSS <image> w przypadku zarejestrowanych właściwości niestandardowych

Obsługuje użycie składni <image> w przypadku właściwości niestandardowych zarejestrowanych za pomocą @property lub registerProperty(). Składni <image> można używać do ograniczania wartości właściwości niestandardowej do wartości url() i generowanych obrazów, np. gradientów.

Składnia CSS <transform-function> i <transform-list> dla zarejestrowanych właściwości niestandardowych

Obsługuje użycie składni <transform-function> i <transform-list> w przypadku właściwości niestandardowych zarejestrowanych za pomocą usług @property lub registerProperty().

Składni można używać do ograniczania wartości właściwości niestandardowej do reprezentowania przekształceń. Pozwala to też używać przejść i animacji bezpośrednio w zarejestrowanych właściwościach niestandardowych.

Zapytania o multimedia: funkcja obsługi skryptów

Funkcja multimediów dla skryptów służy do sprawdzania, czy w bieżącym dokumencie są obsługiwane języki skryptowe, takie jak JavaScript. Prawidłowe opcje to „enabled” (włączone), „initial-only” (tylko początkowe) i „none” (brak). Polecenie „tylko początkowe” nigdy nie jest dopasowywana w przeglądarce.

selektor pseudoklasy :dir()

Selektor pseudoklasy CSS :dir() dopasowuje elementy na podstawie kierunku, który jest określany na podstawie atrybutu dir HTML.

:dir(ltr) odpowiada kierunkowi tekstu od lewej do prawej. :dir(rtl) dopasowuje elementy z kierunkiem tekstu od prawej do lewej.

Nie jest to równoważne z selektorami atrybutu [dir], ponieważ pasuje do kierunków odziedziczonych po elemencie nadrzędnym z atrybutem dir oraz do kierunku obliczonego na podstawie użycia funkcji dir=auto (która określa kierunkowość pierwszego znaku w tekście z silną kierunkiem).

Funkcje wykładnicze CSS

Dodaje funkcje wykładnicze CSS: pow(), sqrt(), hypot(), log() i exp() ze specyfikacji wartości CSS i jednostek na poziomie 4.

Maskowanie CSS

CSS mask i powiązane właściwości, np. mask-image i mask-mode, służą do ukrywania elementu (częściowo lub całkowicie) przez maskowanie lub przycinanie obrazu w określonych punktach.

Ta funkcja eliminuje prefiksy właściwości -webkit-mask* i dostosowuje je do bieżącej specyfikacji. Są to m.in. mask-image, mask-mode, mask-repeat, mask-position, mask-clip, mask-origin, mask-size i mask-composite, a także skrót od mask. Lokalne odwołania typu mask-image są obsługiwane, serializacja jest teraz zgodna ze specyfikacją, a akceptowane wartości są teraz zgodne ze specyfikacją (np. add zamiast source-over w przypadku parametru mask-composite).

Łatwe zagnieżdżanie CSS

Ta zmiana w implementacji zagnieżdżania CSS umożliwia zagnieżdżeniu regułom zagnieżdżenia od elementu, na przykład h1, bez konieczności stosowania symbolu & na początku lub przez ich opakowywanie za pomocą atrybutu is(). Poniższy przykład jest prawidłowy w specyfikacji i działa w Chrome 120.

.card {
  h1 {
    /* h1 does not start with a symbol */
  }
}

HTML

Wzór akordeonu z atrybutem nazwy na <details>

Ta funkcja dodaje możliwość tworzenia akordeonów przy użyciu sekwencji elementów HTML <details>. Dodaje do elementu <details> atrybut „name”. Gdy używasz tego atrybutu, wiele elementów <details> o tej samej nazwie tworzy grupę. Jednocześnie może być otwarty maksymalnie 1 element w grupie.

Internetowe interfejsy API

Zezwalaj na przenoszenie obiektów ArrayBuffer do konstruktorów VideoFrame, AudioData, EncodedVideoChunk, EncodedAudioChunk i ImageDecoder

Pozwoli to na odłączenie buforów tablicy i korzystanie z odpowiadających im buforów w ramach elementów VideoFrame, ImageDecoder, EncodedVideoChunk, EncodedAudioChunk i AudioData bez kopiowania.

Wczytywanie czcionek CSS API FontFaceSet: metoda check()

Metoda check() w zasadzie FontFaceSet sprawdza, czy można wyświetlić tekst przy użyciu określonych czcionek bez próby użycia czcionek w elemencie FontFaceSet, którego ładowanie nie zostało zakończone. Dzięki temu użytkownicy mogą bezpiecznie zastosować czcionkę bez późniejszego wywoływania funkcji zastępowania czcionki.

Zamknij żądania i CloseWatcher

Żądania zamknięcia to nowa koncepcja, która oznacza, że użytkownik chce zamknąć coś, co jest w danej chwili otwarte, za pomocą klawisza Esc na pulpicie albo gestu lub przycisku Wstecz w Androidzie. Integrowanie ich z Chrome wiąże się z dwiema zmianami:

  • CloseWatcher – nowy interfejs API do bezpośredniego nasłuchiwania żądań zamknięcia i odpowiadania na nie.
  • Uaktualnia do wersji <dialog> i popover="", aby korzystać z nowych zasad zamykania próśb o zamknięcie i reagować na przycisk Wstecz w Androidzie.

Dedykowane instancje robocze i interfejs Storage Access API

Dedykowane instancje robocze dziedziczą stan dostępu do miejsca na dane z kontekstu nadrzędnego. Oznacza to, że jeśli dokument uzyska dostęp do pamięci przy użyciu interfejsu document.requestStorageAccess(), a następnie utworzy dedykowaną instancję roboczą, będzie ona też miała dostęp do pamięci (i będzie też mogła korzystać z bezpartycjonowanych plików cookie).

FedCM: Error API i AutoSelectedFlag API

Specjalne interfejsy API, które pomagają deweloperom i użytkownikom lepiej zrozumieć proces uwierzytelniania. Oba interfejsy API są wyzwalane po uzyskaniu przez użytkownika zgody na zalogowanie się w witrynie lub aplikacji (w tym kontekście zwanym podmiotem uzależnionym) przy użyciu dostawcy tożsamości. Inaczej mówiąc, gdy użytkownik kliknie przycisk Kontynuuj jako.

Za pomocą interfejsu Error API, jeśli próba logowania użytkownika się nie powiedzie, dostawca tożsamości może udostępnić przeglądarce przyczyny takiego stanu rzeczy, aby aktualizować informacje zarówno użytkowników, jak i deweloperów RP.

Dzięki interfejsowi AutoSelectedFlag API zarówno dostawcy tożsamości, jak i deweloperzy RP mogą lepiej poznać UX związane z logowaniem, a także oceniać skuteczność i odpowiednio segmentować dane.

Więcej informacji znajdziesz w poście na blogu FedCM dotyczącymi Chrome 120.

Aktualizacje funkcji Fenced Frames

W ramach Piaskownicy prywatności dostępna jest dodatkowa opcja formatu makr rozmiaru reklamy Protected Audience w interfejsie Protected Audience API. Funkcja akceptacji pozwala używać makr do określania rozmiaru reklamy, która zwycięży aukcję pod adresem URL reklamy, np.:

https://ad.com?width={/%AD_WIDTH%}&height={/%AD_HEIGHT%}

Aby zapewnić większą spójność z innymi typami makr w Protected Audience API, takich jak te używane przez deprecatedReplaceInURN i registerAdMacro(), w Chrome 120 dodajemy w Chrome 120 możliwość używania makr ${AD_WIDTH} i ${AD_HEIGHT} jako formatów makr w uzupełnieniu obecnego formatu.

Automatyczne beacony będą teraz wysyłać do wszystkich zarejestrowanych adresów URL. Wcześniej tylko miejsca docelowe określone podczas wywoływania funkcji setReportEventDataForAutomaticBeacons() otrzymują automatyczne beacony, nawet jeśli to miejsce docelowe nazywało się registerAdBeacon() dla reserved.top_navigation w swoim obszarze roboczym. Teraz każde miejsce docelowe, które wywołuje registerAdBeacon() dla reserved.top_navigation, otrzyma automatyczny beacon, ale tylko miejsca docelowe określone w setReportEventDataForAutomaticBeacons() otrzymają automatyczne dane beaconu wraz z beaconem. Parametr once w elemencie setReportEventDataForAutomaticBeacons() określa teraz, czy dane są wysyłane tylko raz, czy nie, czy cały beacon jest wysyłany tylko raz.

Margines zwijający sekcję obserwatora

Obserwator połączeń scrollMargin umożliwia programistom obserwowanie celów w zagnieżdżonych kontenerach przewijania, które są obecnie odcięte przez kontenery przewijania. Jest to możliwe dzięki rozwinięciu prostokąta przycinania kontenera przy użyciu parametru scrollMargin podczas obliczania przecięcia.

Raporty o naruszeniu zasad dotyczących uprawnień

Integruje to interfejs Permissions Policy API z interfejsem API do raportowania, co umożliwia programistom stron internetowych konfigurowanie punktów końcowych, do których będą wysyłane raporty o naruszeniu zasad dotyczących uprawnień. Dzięki temu właściciele witryn będą mogli zobaczyć w tym polu, kiedy na ich stronach są wysyłane żądania niedozwolonych funkcji.

Zawiera on również nagłówek Permissions-Policy-Report-Only, który umożliwia wysyłanie raportów na podstawie proponowanej zasady (analogicznie do Content-Security-Policy-Report-Only), dzięki czemu można ocenić potencjalne zmiany zasad przed ich wprowadzeniem w trybie zwykłym.

Media Session API: enterpictureinpicture działanie

Dodaje działanie enterpictureinpicture do interfejsu Media Session API. Witryny mogą rejestrować moduł obsługi działań, za pomocą którego można otwierać okna obrazu w obrazie lub obrazu w obrazie dokumentu.

Więcej informacji znajdziesz w artykule Automatyczny obraz w obrazie w aplikacjach internetowych.

Obsługa WebGPU f16

Umożliwia użycie półprecyzji f16 typu zmiennoprzecinkowego w cieniowaniu WebGPU (WGSL).

Programiści mogą używać parametru „shader-f16” ze specyfikacji WebGPU, a klucz f16 ze specyfikacji WGSL, aby uzyskać dostęp do 16-bitowych zmiennych liczb zmiennoprzecinkowych i interfejsów API w ich odpowiedni sposób.

MediaCapabilities: zapytanie o obsługę HDR za pomocą decodingInfo()

Rozszerza interfejs Media Capabilities API, aby umożliwić wykrywanie obsługi renderowania HDR za pomocą 3 nowych pól słownika VideoConfiguration: hdrMetadataType, colorGamut i transferFunction. Chrome ma własne algorytmy mapowania tonalnego, więc w przypadku metadanych statycznych HDR10 (smpteSt2086) zawsze zwraca wartość true (prawda). Dynamiczne metadane HDR10+ (smpteSt2094-10) i Dolby Vision (smpteSt2094-40) nie są obecnie obsługiwane, więc ta wartość zwróci wartość „false” (fałsz). W przyszłości planujemy dodać obsługę metadanych dynamicznych, więc ten interfejs API pozwoli programistom wybrać odpowiednie treści dla obserwujących użytkowników.

Statystyki MediaStreamTrack (wideo)

Interfejs API, który udostępnia liczniki klatek (dostarczone, odrzucone, łącznie) dla MediaStreamTracks rodzaju filmu. Statystyki dotyczące dźwięku zostaną uwzględnione w osobnej funkcji Chrome.

Interfejs Private Aggregation API: wybór koordynatora agregacji

Modyfikacja interfejsu Private Aggregation API w celu zapewnienia mechanizmu wyboru koordynatora do użycia do szyfrowania ładunków (z listy dozwolonych określonej przez dostawcę). Wybór usługi jest dokonywany za pomocą dodatkowej opcji w wywołaniach run() i selectURL() SharedStorage oraz w wywołaniach runAdAuction() i joinAdInterestGroup() Protected Audience. Obszerne podejście w dużej mierze pokrywa się z metodologią stosowaną w Attribution Reporting API.

Interfejs API stanu logowania w FedCM

Interfejs Login Status API (dawniej IdP Sign-in Status API) umożliwia dostawcom tożsamości sygnalizowanie przeglądarce, kiedy użytkownicy się logują lub wylogowują.

FedCM używa ich do cichego ataku tymczasowego. Dzięki temu usługa FedCM może działać całkowicie bez plików cookie innych firm.

W przyszłości możemy udostępnić ten interfejs API w większej liczbie przypadków użycia.

Więcej informacji znajdziesz w poście na blogu z ogłoszeniem.

Wyświetl przejścia: ustawienie wywołania zwrotnego jako niepustego

Wywołanie startViewTransition obecnie przyjmuje opcjonalny typ wywołania zwrotnego do wartości null z domyślną wartością null: startViewTransition(optional UpdateCallback? callback = null).

Ta funkcja zmienia ten typ na niedozwolony: startViewTransition(optional UpdateCallback callback).

Kodowanie klucza X25519Kyber768 na potrzeby protokołu TLS

Zabezpiecz bieżący ruch TLS w Chrome przed przyszłą kryptoanalizą kwantową, wdrażając odporny kwantowy algorytm uzgadniania kluczy Kyber768. Jest to hybrydowa uzgadnianie kluczy X25519 i Kyber768 oparte na standardzie IETF. Ta specyfikacja i premiera wykraczają poza zakres W3C. Ta uzgadnianie kluczy zostanie uruchomiona jako szyfrowanie TLS i powinna być niezauważalna dla użytkowników.

Trwa testowanie origin

W Chrome 120 możesz wyrazić zgodę na nowe testy origin opisane poniżej.

„priorytet” Nagłówek żądania HTTP

Ta funkcja dodaje do wszystkich żądań HTTP nagłówek priority z informacjami o priorytecie żądania w chwili jego wysłania.

Dokument RFC 9218 (Extensible Prioritization Scheme for HTTP) definiuje „priorytet” Nagłówek żądania HTTP używany do sygnalizowania priorytetu żądania względem źródeł (i pośredników). Definiuje także procesy negocjacji i ramki na poziomie protokołu dla protokołów HTTP/2 i HTTP/3, które mają mieć te same informacje o priorytecie. Nagłówek może sygnalizować początkowy priorytet zasobu tylko wtedy, gdy jego żądanie zostało wysłane po raz pierwszy, natomiast mechanizmy oparte na klatkach umożliwiają późniejszą zmianę priorytetu. Nagłówek może w pełni działać na serwerach pierwotnych (i zapewniać mechanizm zastępowania priorytetu, jeśli jest rozpoznawany przez pośredników), podczas gdy ramki są ograniczone do działania na poziomie linku. Ta funkcja służy do obsługi schematu określania priorytetów na podstawie nagłówka.

Proponujemy rozszerzenie interfejsu Storage Access API (zgodność wsteczną), aby umożliwić dostęp do bezpartycjonowania (plików cookie i innych plików) pamięci masowej w kontekście firm zewnętrznych.

Uprawnienie prywatnego dostępu do sieci w zakresie treści mieszanych

Aby nawiązywać w sieci lokalnej połączenia z urządzeniami, które nie mają globalnych unikalnych nazw (czyli nie mogą uzyskać certyfikatów TLS), ta funkcja wprowadza w fetch() nową opcję deklarowania wartości dewelopera do rozmów z takimi urządzeniami, czyli nowej, kontrolowanej przez zasady funkcji blokowania stron dostęp do tej funkcji oraz nowe nagłówki odpowiedzi wstępnych serwera z dodatkowymi metadanymi.

Zarejestruj się, aby wziąć udział w testowaniu origin Prośby o przyznanie uprawnień dostępu do sieci prywatnej

Nieograniczony dostęp do performance.measureUserAgentSpecificMemory()

performance.measureUserAgentSpecificMemory() jest skonfigurowana tak, aby była dostępna tylko w środowiskach izolowanych od zasobów z innych domen (od COOP/COEP). Ta funkcja usuwa ograniczenie związane z COOP/COEP, aby umożliwić przeprowadzanie testów regresji i pomiar wpływu, gdy nie można w pełni wdrożyć COOP/COEP. Pamiętaj, że nie można w tym celu używać interfejsu performance.memory (starszego interfejsu API), ponieważ nigdy nie został on włączony w instancjach roboczych.

performance.measureUserAgentSpecificMemory()

Funkcja ta dodaje funkcję performance.measureUserAgentSpecificMemory(), która szacuje wykorzystanie pamięci przez stronę internetową. Aby używać interfejsu API, witryna musi być izolowana od zasobów z innych domen.

Wycofania i usuwanie

Ta wersja Chrome wprowadza informacje o wycofaniach i usunięciach wymienionych poniżej. Na ChromeStatus.com znajdziesz listy planowanych wycofania, obecnie wycofanych funkcji i wcześniejszych usunięć.

W tej wersji Chrome wycofaliśmy 1 funkcję.

Wycofanie i usuwanie obsługi Theora

Ze względu na pojawiające się zagrożenia, wycofamy i usuniemy obsługę kodeka wideo Theora w Chrome na komputery. Niskie (a obecnie nieprawidłowe) korzystanie z platformy Theora nie jest już uzasadnione dla większości użytkowników.

W tej wersji Chrome usunęliśmy 2 funkcje.

Usuń dane: adres URL w SVGUseElement

Przypisywanie danych: adres URL w SVGUseElement może powodować XSS. Doprowadziło to również do ominięcia zaufanych typów. Dlatego planujemy wycofać i usunąć obsługę tej funkcji.

Usuwanie wymuszania na poziomie tej samej domeny w szyfrowaniu po stronie klienta

Usuwa specjalne traktowanie elementów iframe z tej samej domeny z egzekwowania zasad CSP. Pozwala to dostosować sposób egzekwowania zasad CSP w przypadku elementów iframe z innych domen i elementów iframe z tej samej domeny.