Chrome 120 w wersji beta

Maskowanie CSS, proste reguły zagnieżdżania arkuszy CSS, tworzenie wzorców akordeonowych za pomocą elementu <details> – działania enterpictureinpicture dla interfejsu Media Session API.

O ile nie zaznaczono inaczej, opisane zmiany dotyczą najnowszych wersji beta Chrome na Androida, ChromeOS, Linux, macOS i Windows. Więcej informacji o funkcjach wymienionych na tej liście znajdziesz, korzystając z podanych linków lub z listy na chromestatus.com. Od 1 listopada 2023 r. Chrome 120 jest w wersji beta. Najnowsze aktualizacje możesz pobrać z Google.com na komputer lub ze Sklepu Google Play na Androida.

CSS

W tej wersji dodaliśmy 7 nowych funkcji CSS.

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

Obsługuje składnię <image> w przypadku właściwości niestandardowych zarejestrowanych za pomocą @property lub registerProperty(). Składni <image> może służyć do ograniczania wartości właściwości niestandardowej do wartości url() oraz do generowania obrazów takich jak gradienty.

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

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

Ta składnia może służyć do ograniczania wartości właściwości niestandardowej do reprezentowania przekształceń. Dzięki temu można też używać przejść i animacji bezpośrednio w tych zarejestrowanych właściwościach niestandardowych.

Zapytania o multimedia: funkcja tworzenia skryptów

Funkcja multimediów skryptowych służy do sprawdzania, czy języki skryptowe, takie jak JavaScript, są obsługiwane w bieżącym dokumencie. Prawidłowe opcje to „enabled” („włączone”, „tylko początkowe” i „brak”). Jednak wartość „tylko początkowa” nigdy nie jest dopasowywana w obrębie przeglądarki.

Selektor pseudoklasy :dir()

Selektor pseudoklasy CSS :dir() dopasowuje elementy na podstawie kierunkowości, która jest określana na podstawie atrybutu dir w kodzie HTML.

:dir(ltr) dopasowuje kierunkowość tekstu od lewej do prawej. :dir(rtl) dopasowuje elementy z kierunkiem tekstu od prawej do lewej.

Nie jest ona równoważna z selektorami atrybutu [dir], ponieważ pasuje do kierunków dziedziczonych z elementu nadrzędnego z atrybutem dir, a także dlatego, że odpowiada kierunkowi obliczonemu na podstawie użycia dir=auto (określający kierunkowość od pierwszego znaku w tekście o dużej kierunkowości).

Funkcje wykładnicze CSS

Dodaje funkcje wykładnicze CSS: pow(), sqrt(), hypot(), log() i exp() ze specyfikacji CSS Value i Jednostki na poziomie 4.

Maskowanie CSS

CSS mask i powiązane właściwości, takie jak mask-image i mask-mode, pozwalają ukryć element (częściowo lub całkowicie) przez maskowanie lub przycinanie obrazu w określonych punktach.

Ta funkcja nie ma przedrostka właściwości -webkit-mask* i jest zgodna z obecną specyfikacją. Obejmuje to mask-image, mask-mode, mask-repeat, mask-position, mask-clip, mask-origin, mask-size i mask-composite, a także skrót mask. Lokalne odwołania mask-image są obsługiwane, serializacja jest teraz zgodna ze specyfikacją, a akceptowane wartości są zgodne ze specyfikacją (np. add zamiast source-over w przypadku mask-composite).

Proste zagnieżdżanie CSS

Ta zmiana w implementacji zagnieżdżania CSS umożliwia rozpoczynanie zagnieżdżonych reguł stylów od elementu, na przykład h1, bez konieczności stosowania symbolu & na początku lub stosowania tagu 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 harmoniczny z atrybutem nazwy w domenie <details>

Ta funkcja dodaje możliwość tworzenia akordeonów za pomocą sekwencji elementów HTML <details>. Dodaje atrybut name do elementu <details>. Gdy jest używany ten atrybut, grupę tworzy wiele elementów <details> o tej samej nazwie. Jednocześnie można otworzyć maksymalnie 1 element w grupie.

Internetowe interfejsy API

Zezwalaj na przesyłanie obiektu SlateBuffer do konstruktorów VideoFrame, AudioData, EncodedVideoChunk, EncodedAudioChunk i ImageDecoder

Pozwoli to na odłączenie buforów tablicowych i korzystanie z odpowiednich buforów wewnątrz VideoFrame, ImageDecoder, EncodedVideoChunk, EncodedAudioChunk oraz AudioData bez kopii.

CSS Font Wczytuję FontFaceSet: metoda check()

Metoda check() obiektu FontFaceSet sprawdza, czy można wyświetlić tekst z użyciem określonych czcionek bez prób użycia w FontFaceSet czcionek, których wczytywanie nie zostało ukończone. Pozwala to użytkownikom bezpiecznie stosować czcionkę bez konieczności jej późniejszego zastępowania.

Zamknij prośby i CloseWatcher

Prośby o zamknięcie to nowa koncepcja obejmująca prośby użytkowników o zamknięcie czegoś, co jest obecnie otwarte. Służy do tego klawisz Esc na komputerze albo gest lub przycisk cofania na Androidzie. Zintegrowanie ich z Chrome wiąże się z 2 zmianami:

  • CloseWatcher, nowy interfejs API umożliwiający bezpośrednie nasłuchiwanie żądań zamknięcia i odpowiadanie na nie.
  • Uaktualnianie do wersji <dialog> i popover="", aby używać nowej platformy żądań zamknięcia w celu reagowania na przycisk Wstecz w Androidzie.

Dedykowane instancje robocze i interfejs Storage Access API

Dedykowane instancje robocze dziedziczą stan dostępu do pamięci z kontekstu nadrzędnego. Dlatego jeśli dokument uzyska dostęp do pamięci masowej przez document.requestStorageAccess(), a następnie utworzy dedykowaną instancję roboczą, ta instancja robocza również będzie miała dostęp do pamięci masowej (i będzie mieć dostęp do niepartycjonowanych plików cookie).

FedCM: Error API i AutoSelectedFlag API

Dedykowane interfejsy API ułatwiające programistom i użytkownikom zrozumienie procesu uwierzytelniania. Oba interfejsy API są wyzwalane po przyznaniu użytkownikowi uprawnień do zalogowania się na stronie lub w aplikacji (w tym kontekście nazywanym stroną uzależnioną) u dostawcy tożsamości. Oznacza to, że gdy użytkownik kliknie przycisk Kontynuuj jako.

Jeśli próba zalogowania się użytkownika się nie powiedzie, dostawca tożsamości może udostępnić przeglądarce przeglądarce powody, dla których dane użytkowników i programistów RP nie zostaną zaktualizowane za pomocą interfejsu Error API.

Dzięki interfejsowi AutoSelectedFlag API zarówno dostawcy tożsamości, jak i deweloperzy korzystający z RPA mogą lepiej poznać UX logowania oraz odpowiednio oceniać skuteczność i dane o segmentach.

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

Aktualizacje funkcji chronionych ramek

W interfejsie Protected Audience API w Piaskownicy prywatności dostępna jest dodatkowa opcja formatu makr rozmiaru reklamy Protected Audience. Funkcja akceptacji umożliwia używanie makr do określania rozmiaru reklamy, która zwycięży w aukcji, na przykład:

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

Aby zapewnić większą spójność z innymi typami makr w Protected Audience, takimi jak te używane przez deprecatedReplaceInURN i registerAdMacro(), oprócz obecnego formatu dodajemy w Chrome 120 możliwość korzystania z makr ${AD_WIDTH} i ${AD_HEIGHT}.

Automatyczne obrazy typu beacon będą teraz wysyłane do wszystkich zarejestrowanych adresów URL. Wcześniej tylko miejsca docelowe określone podczas wywoływania funkcji setReportEventDataForAutomaticBeacons() otrzymywały takie sygnały, nawet jeśli w jednym miejscu o nazwie „reserved.top_navigation” znajdowały się miejsca docelowe o nazwie registerAdBeacon(). Teraz każde miejsce docelowe, które wywołuje połączenie registerAdBeacon() w przypadku numeru reserved.top_navigation, otrzyma automatyczny beacon, ale tylko miejsca docelowe określone w polu setReportEventDataForAutomaticBeacons() otrzymają dane z automatycznego sygnału typu beacon. Parametr once w setReportEventDataForAutomaticBeacons() określa teraz, czy dane są wysyłane jednorazowo, a nie czy cały beacon jest wysyłany tylko raz.

Margines przewijania Intersection Observer

Intersection Observer scrollMargin umożliwia programistom obserwowanie celów w zagnieżdżonych kontenerach przewijania, które są obecnie oddalone od kontenerów przewijania. Można to osiągnąć przez rozwinięcie prostokąta przycięcia kontenera o scrollMargin podczas obliczania przecięcia.

Zgłoszenia naruszenia zasad dotyczących uprawnień

Dzięki temu interfejs Permissions Policy API z interfejsem Reporting API może konfigurować punkty końcowe, do których będą wysyłane raporty o naruszeniu zasad dotyczących uprawnień. Właściciele witryn będą mogli zobaczyć, kiedy ich strony w polu korzystają z żądania niedozwolonych funkcji.

Zawiera też nagłówek Permissions-Policy-Report-Only, który umożliwia wysyłanie raportów na podstawie proponowanej zasady (podobnie jak w przypadku Content-Security-Policy-Report-Only). Dzięki temu zmiany zasad można ocenić pod kątem potencjalnych naruszeń przed ich wdrożeniem w zwykłym, egzekwowanym trybie.

Media Session API: działanie enterpictureinpicture

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

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

Obsługa WebGPU f16

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

Programiści mogą użyć funkcji „shader-f16” ze specyfikacji WebGPU i rozszerzenia „f16” ze specyfikacji WGSL, aby uzyskać dostęp do 16-bitowych zmiennych liczby zmiennoprzecinkowej i interfejsów API w cieniach.

MediaCapabilities: wysyłanie zapytań dotyczących obsługi 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 stosuje własne algorytmy mapowania tonów, więc w przypadku statycznych metadanych HDR10 (smpteSt2086) zawsze będzie zwracać wartość „prawda”. Dynamiczne metadane HDR10+ (smpteSt2094-10) i Dolby Vision (smpteSt2094-40) nie są obecnie obsługiwane, dlatego zwracają wartość false (fałsz). W przyszłości planujemy dodać obsługę dynamicznych metadanych, więc ten interfejs API umożliwi deweloperom wybranie odpowiednich treści dla użytkowników objętych pomocą techniczną.

Statystyki MediaStreamTrack (wideo)

Interfejs API, który ujawnia liczniki klatek (wyświetlone, odrzucone, łącznie) w przypadku filmów MediaStreamTrack. Statystyki dotyczące dźwięku zostaną uwzględnione w opracowaniu osobnej funkcji Chrome.

Private Aggregation API: wybór koordynatora agregacji

Modyfikacja interfejsu Private Aggregation API w celu udostępnienia mechanizmu wyboru koordynatora, który ma być używany do szyfrowania ładunku (z listy dozwolonych przez dostawcę). Wybór usługi jest dokonywany z dodatkową opcją w wywołaniach rozwiązań do udostępniania pamięci masowej run() i selectURL() oraz w wywołaniach Protected Audience API runAdAuction() i joinAdInterestGroup(). Szerokie podejście w dużej mierze odpowiada podejściem do Attribution Reporting API.

Interfejs Login Status API w FedCM

Interfejs Login Status API (dawniej Id Sign-in Status API) umożliwia dostawcom tożsamości informowanie przeglądarki o tym, że użytkownicy się logują lub wylogowują.

FedCM wykorzystuje te informacje do przeciwdziałania cichemu atakowi czasowemu. Dzięki temu FedCM może działać bez plików cookie innych firm.

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

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

Wyświetlanie przejść: ustawianie wywołania zwrotnego jako nienull

Wywołanie startViewTransition obecnie przyjmuje opcjonalny opcjonalny typ wywołania zwrotnego z możliwością null. Domyślna wartość to startViewTransition(optional UpdateCallback? callback = null).

Ta funkcja zmienia typ na niedopuszczający wartości null: startViewTransition(optional UpdateCallback callback).

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 120 możesz włączyć te nowe testy origin.

Nagłówek żądania HTTP „Priority”

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

RFC 9218 (Extensible Prioritization Scheme dla HTTP) definiuje nagłówek żądania HTTP „Priority”, który służy do sygnalizowania priorytetu żądania do źródeł (i pośrednich). Definiuje również procesy negocjowania i ramki na poziomie protokołu dla HTTP/2 i HTTP/3, aby miały te same informacje o priorytecie. Nagłówek może sygnalizować początkowy priorytet zasobu tylko wtedy, gdy zażądano go po raz pierwszy. Mechanizmy oparte na ramkach umożliwiają też zmianę priorytetu po fakcie. Nagłówek może kompleksowo działać na serwerach źródłowych (oraz udostępniać mechanizm zastępowania priorytetu w przypadku rozpoznania przez serwer pośredniczący), podczas gdy ramki są ograniczone do działania na poziomie połączenia. Ta funkcja służy przede wszystkim do obsługi schematu priorytetu opartego na nagłówku.

Proponujemy rozszerzenie interfejsu Storage Access API (zgodnego wstecznie), aby umożliwić dostęp do pamięci bez partycji (plików cookie i innych plików cookie) w kontekście podmiotów zewnętrznych.

Uprawnienie dostępu do sieci prywatnej w celu złagodzenia treści mieszanych

Aby nawiązać połączenia z urządzeniami w sieci lokalnej, które nie mają globalnych unikalnych nazw, a tym samym nie mogą uzyskać certyfikatów TLS, w ramach tej funkcji wprowadziliśmy w fetch() nową opcję deklarowania zamiaru dewelopera rozmowy z takim urządzeniem, nową, kontrolowaną przez zasady funkcję blokowania dostępu każdej witryny do tej funkcji oraz nowe nagłówki odpowiedzi wstępnej serwera, aby dostarczać dodatkowe metadane.

Zarejestruj się, aby wziąć udział w testowaniu origin promptów dotyczących uprawnień dostępu do sieci prywatnej

Nieograniczony dostęp do performance.measureUserAgentSpecMemory()

Parametr performance.measureUserAgentIndividualMemory() jest dostępny tylko w środowiskach izolowanych od zasobów z innych domen (za COOP/COEP). Ta funkcja usuwa ograniczenie COOP/COEP, aby umożliwić testowanie 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ć performance.memory (starszego interfejsu API), ponieważ nie włączono go w instancjach roboczych.

performance.measureUserAgentSpecificMemory()

Funkcja dodaje funkcję performance.measureUserAgentSpecificMemory(), która szacuje wykorzystanie pamięci na stronie internetowej. Aby można było używać interfejsu API, witryna musi być izolowana od zasobów z innych domen.

Wycofania i usunięcia

W tej wersji Chrome wprowadziliśmy wymienione poniżej funkcje wycofywania i usuwania. Na stronie ChromeStatus.com znajdziesz listę planowanych wycofań, bieżących wycofań oraz poprzednich usunięć.

W tej wersji Chrome wycofujemy jedną funkcję.

Wycofanie i usunięcie obsługi Theora

Ze względu na nowe zagrożenia dla bezpieczeństwa Chrome przestanie obsługiwać kodek wideo Theora w Chrome na komputery. Niskie (i teraz często nieprawidłowe) korzystanie z platformy Theora nie uzasadnia już obsługi większości użytkowników.

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

Usuwanie danych: adres URL w SVGUseElement

Przypisywanie danych: adres URL w SVGUseElement może powodować XSS. Doprowadziło to również do obejścia zasad dotyczących zaufanych typów. W związku z tym planujemy wycofać i wspierać tę funkcję.

Usuwanie wymuszania za pomocą szyfrowania tego samego pochodzenia w szyfrowaniu po stronie klienta

Usuwa specjalne traktowanie elementów iframe z tego samego źródła z elementów Egzekwowania wbudowanych w CSP. Takie podejście ma na celu egzekwowanie zasad wymuszania CSP w przypadku elementów iframe z innych domen i elementów iframe tego samego źródła.