Chrome 132 beta

Data publikacji: 13 listopada 2024 r.

O ile nie zaznaczono inaczej, poniższe zmiany dotyczą najnowszej wersji Chrome w kanale beta na Androida, ChromeOS, Linuxa, macOS i Windowsa. Więcej informacji o wymienionych tu funkcjach znajdziesz, klikając odpowiednie linki lub na stronie ChromeStatus.com. Od 13 listopada 2024 r. Chrome 132 jest w wersji beta. Najnowszą wersję możesz pobrać na stronie Google.com na komputerze lub w Sklepie Google Play na urządzeniu z Androidem.

CSS

W tej wersji dodaliśmy 2 nowe funkcje CSS.

Umieszczenie kotwicy w CSS: zezwalaj na użycie wartości anchor-size() w właściwościach inset i margin

Pierwotnie anchor-size() było dozwolone tylko w usługach związanych z rozmiarami. Specyfikacja została zmieniona, aby zezwolić na anchor-size() w ramkach i marginesach.

Tryby pisania CSS w poziomie

Obsługa słów kluczowych sideways-rl i sideways-lr w usłudze porównywania cen writing-mode. sideways-rl i sideways-lr są przydatne do pisania tekstu nie w CJK w orientacji pionowej. W przeciwieństwie do vertical-rlvertical-lr nie mają one zachowań korzystnych dla języków CJK.

Interfejsy Web API

Przechwytywanie wszystkich ekranów

Za pomocą getAllScreensMedia() możesz robić zrzuty wszystkich ekranów aktualnie połączonych z urządzeniem.

Wywoływanie metody getDisplayMedia() kilka razy wymaga od użytkownika wykonania kilku gestów, obciąża go koniecznością wybierania kolejnego ekranu za każdym razem i nie gwarantuje aplikacji, że wszystkie ekrany zostały wybrane. Metoda getAllScreensMedia() poprawia wszystkie te aspekty.

Ta funkcja jest dostępna tylko na komputerach.

Zdarzenia przełączania dialogu

Warto wiedzieć, kiedy elementy <dialog> się otwierają i zamykają, a element popover ma już zdarzenie ToggleEvent, które jest wysyłane, gdy wyskakujące okienko się otwiera lub zamyka. Wcześniej, aby wykryć, kiedy <dialog> się otwiera, trzeba było zarejestrować obserwatora mutacji, aby sprawdzić, czy jest otwarta. Jednak wymaga to sporo pracy, podczas gdy zdarzenie byłoby łatwiejsze.

Ta zmiana obejmuje te same ToggleEvent, które wysyłają wyskakujące okienka, ale w przypadku elementów <dialog>: gdy wywoływana jest funkcja showModal lub show, funkcja <dialog> wysyła ToggleEvent z parametrem newState=open. Gdy <dialog> zostanie zamknięty (za pomocą formularza, przycisku lub obserwatora zamknięcia), należy wysłać zdarzenie ToggleEvent z parametrem newState=closed.

Element Capture

Na podstawie filmu MediaStreamTrack uzyskanego za pomocą wcześniejszych metod inicjowania przechwytywania kart Element Capture umożliwia zmutowanie ścieżki, aby przechwytywać tylko poddrzewo DOM, rozpoczynając od danego elementu.

Interfejs API jest podobny do interfejsu Region Capture API, ale zapewnia większą elastyczność dla aplikacji, ponieważ zasłonięte i zasłonięte treści są wykluczone z przechwycenia.

Funkcje autoryzacji FedCM

Pakiet zawiera kilka funkcji, których dostawcy tożsamości mogą używać do implementowania procesów autoryzacji, takich jak przyznawanie użytkownikowi dostępu do kalendarza. Oto najważniejsze kwestie:

  • IdP musi mieć możliwość wyświetlenia niestandardowego prompta z prośbą o uprawnienia (interfejs API do kontynuacji).
  • RP potrzebuje rozszerzalnego sposobu na komunikowanie dostawcy tożsamości informacji o tym, do czego chce uzyskać dostęp (interfejs API parametrów).
  • RP musi mieć możliwość dostosowania lub ukrycia tekstu odnoszącego się do IdP udostępniającego „imię i nazwisko, adres e-mail oraz zdjęcie profilowe”, ponieważ w tej sytuacji prosi o inne informacje (interfejs API pól).
  • Dostawca tożsamości może użyć innego punktu końcowego do implementacji procesu autoryzacji (wiele adresów URL konfiguracji).
  • Niektóre konta mogą być kwalifikowane tylko do jednego z procesów uwierzytelniania i autoryzacji, dlatego musi istnieć sposób wyświetlania różnych kont w 2 procesach (interfejs API etykiet kont).

Interfejsy API trybu FedCM i Use Other Account

2 nowe rozszerzenia dla FedCM:

  • Tryb: tryb active umożliwia witrynom wywoływanie FedCM w ramach kliknięcia przycisku (np. kliknięcia przycisku Zaloguj się w usłudze IdP), co wymaga od FedCM zapewnienia, że zawsze będzie ono odpowiadać widocznym interfejsem użytkownika. Wywoływanie interfejsu FedCM API w trybie aktywnym powoduje zalogowanie się użytkowników w dostawcy tożsamości (IdP), gdy są wylogowani. Ponadto, ponieważ tryb aktywny jest wywoływany w ramach wyraźnego gestu użytkownika, interfejs jest też bardziej widoczny (np. wyśrodkowany i modalny) w porównaniu z interfejsem w trybie pasywnym (który nie wymaga gestu użytkownika i może być wywoływany podczas wczytywania strony).
  • Użyj innego konta: dzięki temu rozszerzeniu dostawca tożsamości może zezwolić użytkownikom na logowanie się na inne konta.

Pobieranie: Request.bytes()Response.bytes()

Do interfejsów RequestResponse dodaj metodę bytes(), która zwraca obietnicę, która zwraca Uint8Array. Chociaż RequestResponse mają metodę arrayBuffer(), nie można odczytać bezpośrednio z bufora. Aby ją przeczytać, musisz utworzyć widok, np. Uint8Array. Metoda bytes() poprawia ergonomię uzyskiwania treści żądania i odpowiedzi.

Dostęp do systemu plików w przypadku Androida i WebView

Ten interfejs API umożliwia deweloperom tworzenie wydajnych aplikacji, które współpracują z innymi aplikacjami (nieinternetowymi) na urządzeniu użytkownika, korzystając z systemu plików urządzenia. Gdy użytkownik przyzna aplikacji internetowej dostęp, interfejs API pozwoli jej odczytać lub zapisać zmiany bezpośrednio w plikach i folderach wybranych przez użytkownika. Oprócz odczytu i zapisu plików ten interfejs API umożliwia otwieranie katalogów i wyliczanie ich zawartości, a także przechowywanie uchwytów plików i katalogów w IndexedDB, aby później uzyskać dostęp do tych samych treści.

Dostęp do systemu plików został wprowadzony w wersji Chrome 86 na komputery. W Chrome 132 jest dostępny na Androidzie i w komponencie WebView.

Ignorowanie protokołu Strict-Transport-Security w przypadku localhost

Strict-Transport-Security (STS) może powodować problemy z serwerami WWW localhost, ponieważ STS jest stosowany na poziomie hosta we wszystkich portach. Powoduje to problemy ze zgodnością w przypadku deweloperów witryn testujących lokalnie. Dotyczy to też użytkowników, którzy korzystają z pakietów oprogramowania, które często uruchamiają serwery WWW localhost z tymczasowych powodów. Na przykład przesyłanie tokena uwierzytelniania z logowania w witrynie do lokalnego pakietu oprogramowania. Jeśli jeden lokalny odbiornik ustawia parametr Strict-Transport-Security w odpowiedzi localhost, jest on stosowany do wszystkich kolejnych żądań localhost niezależnie od portu.

Chrome 132 rozwiązuje ten problem, ignorując nagłówki Strict-Transport-Security w odpowiedziach z adresów URL localhost.

Kontenery z paskami przewijania, które można zaznaczyć za pomocą klawiatury

Wdrożenie tej funkcji (od wersji 130 Chrome) zostało wstrzymane z powodu regresji w zakresie ułatwień dostępu. Problem został rozwiązany, a ta funkcja jest nadal wdrażana w Chrome 132.

Domyślna lista dozwolonych symboli wieloznacznych w zasadach dotyczących uprawnień interfejsu API tokena prywatności

Dostęp do interfejsu Private State Token API jest ograniczony przez funkcje zasad dotyczących uprawnień. Chrome 132 aktualizuje domyślną listę dozwolonych funkcji private-state-token-issuance i private-state-token-redemption z self na * (symbol wieloznaczny).

PushMessageData::bytes()

Interfejs PushMessageData naśladuje interfejs Body, który został zmieniony wcześniej w tym roku za pomocą nowej metody bytes(), zgodnie z zasadą, że interfejsy API powinny udostępniać bufory bajtów jako Uint8Arrays. Chrome 132 dostosowuje się do interfejsu Body, udostępniając akcesor bytes() również w interfejsie PushMessageData.

Zapisane zapytania w sharedStorage.selectURL

sharedStorage.selectURL() umożliwia teraz zapisywanie zapytań i ich ponowne używanie na podstawie poszczególnych stron. W takim przypadku 2 budżety na wczytanie strony są naliczane przy pierwszym uruchomieniu zapisanego zapytania, ale nie przy kolejnych jego wywołaniach w ramach tej samej wczytanej strony. Aby to zrobić, użyj parametru savedQuery w opcjach selectURL(), który określa nazwę zapytania.

Wyjątek dla wyskakujących okienek i dialogów w nieaktywnych dokumentach

Wcześniej wywołanie metody showPopover() lub showModal() w wyskakującym okienku lub oknie dialogowym znajdującym się w nieaktywnym dokumencie kończyło się po cichu niepowodzeniem. Nie zostanie zgłoszone żadne wyjątek, ale ponieważ dokument jest nieaktywny, nie pojawi się wyskakujące okienko ani okno dialogowe. W Chrome 132 te sytuacje powodują błąd InvalidStateError.

WebAuthn Signal API

Umożliwia stronom pobierającym usługi WebAuthn przekazywanie informacji o dotychczasowych danych logowania dostawcom usług przechowywania danych logowania, aby można było zaktualizować lub usunąć nieprawidłowe lub cofnięte dane logowania z dostawcy i interfejsu użytkownika systemu.

Dowiedz się więcej o interfejsie Signal API na potrzeby kluczy dostępu na komputerach z Chrome.

WebGPU: mieszanie tekstur 32-bitowych zmiennoprzecinkowych

Funkcja GPU float32-blendable umożliwia stosowanie miksu tekstur GPU w formatach r32float, rg32float i rgba32float.

WebGPU: udostępnianie informacji GPUAdapterInfo z GPUDevice

Atrybut GPUDevice adapterInfo udostępnia te same GPUAdapterInfo co obiekt GPUAdapter.

WebGPU: wykorzystanie widoku tekstur

Dodaje opcjonalne pole do tworzenia widoku tekstury WebGPU, aby zażądać podzbioru flag użycia z tekstury źródłowej.

Domyślnie użycie widoku tekstury dziedziczy użycie tekstury źródłowej, ale niektóre formaty widoku mogą być niezgodne z pełnym zestawem dziedziczonych zastosowań. Dodanie pola zastosowania do tworzenia widoku tekstury umożliwia użytkownikowi zażądanie podzbioru zastosowań źródłowej tekstury, które są odpowiednie dla formatu widoku i odpowiadają zamierzonemu zastosowaniu widoku tekstury.

Implementacje WebGPU mogą też optymalizować tworzenie zasobów niskiego poziomu i poprawiać wydajność przy korzystaniu z widoków z bardziej wyspecjalizowanymi flagami użycia.

Nowe wersje próbne origin

W Chrome 132 możesz wziąć udział w tych nowych testach wersji.

Document-Isolation-Policy

Document-Isolation-Policy pozwala dokumentowi włączyć crossOriginIsolation dla siebie, bez konieczności wdrażania zasad COOP lub COEP i niezależnie od stanu crossOriginIsolation strony. Zasady są obsługiwane przez izolację procesów. Dodatkowo podresury niebędące zasobami CORS z innych domen będą ładowane bez poświadczeń lub będą musiały mieć nagłówek CORP.

Wyraźne podpowiedzi kompilacji za pomocą magicznych komentarzy

Ta funkcja pozwala dołączyć informacje o tym, które funkcje powinny być wstępnie przeanalizowane i skompilowane w plikach JavaScript. Informacje zostaną zakodowane jako komentarze magiczne.

Wycofanie i usunięcie

W tej wersji Chrome wprowadzamy następujące wycofania i usunięcia. Na stronie ChromeStatus.com znajdziesz listy planowanych wycofań, bieżących wycofań i poprzednich usunięciach.

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

navigator.storage został utworzony jako EventTarget na potrzeby Storage Pressure Event, ale nigdy nie wyszedł poza fazę prototypu. Ten nieaktualny kod jest usuwany. W efekcie navigator.storage nie będzie już rozszerzać EventTarget.

Usuń pełnoekranowe interfejsy API z prefiksem HTMLVideoElement

W Chrome wycofane zostały pełnoekranowe interfejsy API HTMLVideoElement z prefiksem

Zostały one zastąpione przez interfejs Element.requestFullscreen() API, który został po raz pierwszy udostępniony w Chrome 71 w 2018 roku. Od 2024 r. większość przeglądarek obsługuje interfejsy API bez prefiksów od kilku lat.

Chrome 132 usuwa z HTMLVideoElement:

  • Atrybut webkitSupportsFullscreen.
  • Atrybut webkitDisplayingFullscreen.
  • Metoda webkitEnterFullscreen().
  • Metoda webkitExitFullscreen(). Zwróć uwagę na wielkość liter w słowie „FullScreen”.
  • Metoda webkitEnterFullScreen().
  • Metoda webkitExitFullScreen().

Te metody są teraz tylko aliasami nowoczesnego interfejsu API. Ich wykorzystanie systematycznie spadało na przestrzeni lat.