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-rl
i vertical-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()
i Response.bytes()
Do interfejsów Request
i Response
dodaj metodę bytes()
, która zwraca obietnicę, która zwraca Uint8Array. Chociaż Request
i Response
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
nie jest już EventTarget
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.