Opublikowano: 13 listopada 2024 r.
O ile nie zaznaczono inaczej, poniższe zmiany dotyczą najnowszej wersji beta Chrome na Androida, ChromeOS, Linuxa, macOS i Windowsa. Więcej informacji o funkcjach wymienionych poniżej znajdziesz w podanych linkach lub na liście na stronie ChromeStatus.com. Chrome 132 jest w wersji beta od 13 listopada 2024 r. Najnowszą wersję możesz pobrać na Google.com na komputer lub w Sklepie Google Play na Androida.
CSS
W tej wersji dodaliśmy 2 nowe funkcje CSS.
Pozycjonowanie kotwicy CSS: zezwolenie na anchor-size() we właściwościach inset i margin
Początkowo jednostka anchor-size() była dozwolona tylko w przypadku właściwości rozmiaru. Specyfikacja została zmieniona, aby zezwalać na anchor-size() w przypadku wcięć i marginesów.
Tryby pisania w CSS
Obsługa słów kluczowych sideways-rl i sideways-lr w przypadku właściwości writing-mode usługi porównywania cen. Znaki sideways-rl i sideways-lr przydają się do pisania pionowo tekstów w językach innych niż CJK. Nie mają one zachowań korzystnych w przypadku języków chińskiego, japońskiego i koreańskiego, w przeciwieństwie do vertical-rl i vertical-lr.
Interfejsy Web API
Przechwytywanie wszystkich ekranów
Zrób zrzut wszystkich ekranów podłączonych obecnie do urządzenia za pomocą polecenia getAllScreensMedia().
Wielokrotne wywoływanie funkcji getDisplayMedia() wymaga wielokrotnych gestów użytkownika, za każdym razem zmusza go do wyboru następnego ekranu i nie gwarantuje aplikacji, że wszystkie ekrany zostały wybrane. Metoda getAllScreensMedia() jest lepsza pod każdym z tych względów.
Ta funkcja jest dostępna tylko na komputerach.
Zdarzenia przełączania okna
Warto wiedzieć, kiedy elementy <dialog> się otwierają i zamykają, a popover ma już ToggleEvent, który jest wysyłany, gdy otworzy się lub zamknie wyskakujące okienko.
Wcześniej, aby wykryć otwarcie <dialog>, trzeba było zarejestrować obserwatora zmian, który sprawdzał, czy jest otwarty. To jednak sporo pracy, a wydarzenie byłoby łatwiejsze.
Ta zmiana obejmuje te same zdarzenia ToggleEvent, które są wysyłane przez wyskakujące okienka, ale w przypadku elementów <dialog>: gdy wywoływana jest funkcja showModal lub show, element <dialog> wysyła zdarzenie ToggleEvent z wartością newState=open. Gdy element <dialog> jest zamknięty (za pomocą formularza, przycisku lub closewatcher), powinien wysłać zdarzenie ToggleEvent z wartością newState=closed.
Przechwytywanie elementu
Funkcja przechwytywania elementu umożliwia modyfikowanie ścieżki w celu przechwytywania tylko poddrzewa DOM rozpoczynającego się od danego elementu. W tym celu należy użyć filmu MediaStreamTrack uzyskanego w dotychczasowy sposób, aby zainicjować przechwytywanie karty.
Interfejs API jest podobny do interfejsu Region Capture API, ale zapewnia większą elastyczność aplikacji, ponieważ z przechwytywania wykluczone są zarówno treści zasłaniające, jak i zasłonięte.
Funkcje autoryzacji FedCM
Obejmuje ona kilka funkcji, których dostawcy tożsamości mogą używać do wdrażania procesów autoryzacji, np. umożliwiających użytkownikowi przyznanie dostępu do kalendarza podmiotowi ufającemu. Więcej szczegółów:
- Dostawca tożsamości musi mieć możliwość wyświetlania niestandardowej prośby o uprawnienia (interfejs API kontynuacji).
- Podmiot ufający potrzebuje rozszerzalnego sposobu komunikowania się z dostawcą tożsamości w sprawie tego, do czego chce uzyskać dostęp (interfejs API parametrów).
- Usługa RP musi mieć możliwość dostosowania lub pominięcia tekstu dotyczącego udostępniania przez dostawcę tożsamości „imienia i nazwiska, adresu e-mail i zdjęcia profilowego”, ponieważ w tej sytuacji prosi o inne informacje (interfejs API pól).
- Dostawca tożsamości może chcieć użyć innego punktu końcowego do wdrożenia procesu autoryzacji (wiele adresów URL konfiguracji).
- Niektóre konta mogą kwalifikować się tylko do jednego z procesów uwierzytelniania i autoryzacji, dlatego musi istnieć sposób na wyświetlanie różnych kont w obu procesach (interfejs API etykiet kont).
Interfejs FedCM Mode API i Use Other Account API
2 nowe rozszerzenia interfejsu FedCM:
- Tryb: tryb
activeumożliwia witrynom wywoływanie FedCM w ramach kliknięcia przycisku (np. kliknięcia przycisku Zaloguj się u dostawcy tożsamości), co wymaga od FedCM zagwarantowania, że zawsze będzie odpowiadać widocznym interfejsem użytkownika. Wywołanie interfejsu FedCM API w trybie aktywnym powoduje, że użytkownicy, którzy są wylogowani, muszą zalogować się u dostawcy tożsamości. Tryb aktywny jest wywoływany w ramach wyraźnego gestu użytkownika, więc interfejs jest bardziej widoczny (np. wyśrodkowany i modalny) niż w przypadku trybu pasywnego (który nie wymaga gestu użytkownika i może być wywoływany podczas wczytywania strony). - Użyj innego konta: to rozszerzenie umożliwia dostawcy tożsamości zezwalanie użytkownikom na logowanie się na inne konta.
Pobierz: Request.bytes() i Response.bytes()
Dodaj metodę bytes() do interfejsów Request i Response, która zwraca obietnicę, która jest spełniana z wartością Uint8Array. Chociaż Request i Response mają metodę arrayBuffer(), nie możesz odczytywać danych bezpośrednio z bufora. Aby go odczytać, musisz utworzyć widok, np. Uint8Array. Metoda bytes() poprawia ergonomię pobierania treści żądania i odpowiedzi.
Dostęp do systemu plików na Androidzie i w WebView
Ten interfejs API umożliwia deweloperom tworzenie zaawansowanych aplikacji, które wchodzą w interakcje z innymi aplikacjami (nieinternetowymi) na urządzeniu użytkownika za pomocą systemu plików urządzenia. Gdy użytkownik przyzna aplikacji internetowej dostęp, ten interfejs API umożliwi jej odczytywanie lub zapisywanie zmian bezpośrednio w plikach i folderach wybranych przez użytkownika. Ten interfejs API umożliwia nie tylko odczytywanie i zapisywanie plików, ale też otwieranie katalogów i wyliczanie ich zawartości, a także przechowywanie uchwytów plików i katalogów w IndexedDB, aby później odzyskać dostęp do tych samych treści.
Dostęp do systemu plików został wprowadzony na komputerach w Chrome 86, a w Chrome 132 jest dostępny na Androidzie i w komponencie WebView.
Ignorowanie nagłówka Strict-Transport-Security w przypadku localhost
Strict-Transport-Security Nagłówki odpowiedzi (STS) mogą powodować problemy na serwerach internetowych localhost, ponieważ STS jest stosowany w całej domenie hosta, na wszystkich portach. Powoduje to problemy ze zgodnością w przypadku deweloperów stron internetowych, którzy testują lokalnie. Ma to też wpływ na użytkowników końcowych, którzy korzystają z pakietów oprogramowania często uruchamiających lokalne serwery WWW z powodów tymczasowych. Może to być na przykład przekazywanie tokena uwierzytelniania z logowania w internecie do lokalnego pakietu oprogramowania. Jeśli jeden lokalny odbiorca ustawi
Strict-Transport-Security w odpowiedzi localhost, zostanie ona zastosowana 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
Wprowadzanie tej funkcji (od Chrome 130) zostało wstrzymane z powodu regresji w zakresie ułatwień dostępu. Problem został rozwiązany, a funkcja jest nadal wdrażana w Chrome 132.
Domyślna lista dozwolonych z wieloznacznym znakiem w zasadach dotyczących uprawnień interfejsu Private State Token API
Dostęp do interfejsu Private State Token API jest ograniczony przez funkcje zasady uprawnień.
W Chrome 132 domyślna lista dozwolonych dla funkcji private-state-token-issuance i private-state-token-redemption została zaktualizowana z self na * (symbol wieloznaczny).
PushMessageData::bytes()
Interfejs PushMessageData jest podobny do interfejsu Body, który został zmieniony na początku tego roku przez dodanie nowej metody bytes(). Zgodnie z zasadą, że interfejsy API powinny zwykle udostępniać bufory bajtów jako Uint8Arrays. Chrome 132 dostosowuje się do interfejsu Body, udostępniając akcesor bytes() w interfejsie PushMessageData.
Zapisane zapytania w sharedStorage.selectURL
sharedStorage.selectURL() umożliwia teraz zapisywanie zapytań i ponowne ich używanie na poziomie poszczególnych stron. W przypadku pierwszego uruchomienia zapisanego zapytania w ramach wczytywania strony pobierane są 2 budżety na wczytywanie strony, ale w przypadku kolejnych uruchomień tego samego zapytania w ramach tego samego wczytywania strony nie są pobierane żadne opłaty. Można to zrobić za pomocą parametru savedQuery w opcjach selectURL(), który określa nazwę zapytania.
Zwracanie wyjątku dotyczącego wyskakujących okienek i okien w nieaktywnych dokumentach
Wcześniej wywołanie funkcji showPopover() lub showModal() w przypadku wyskakującego okienka lub okna, które znajdują się w nieaktywnym dokumencie, kończyło się niepowodzeniem bez powiadomienia. Nie zostanie zgłoszony żaden wyjątek, ale ponieważ dokument jest nieaktywny, nie zostanie wyświetlone żadne wyskakujące okienko ani okno. Od Chrome 132 w takich sytuacjach zgłaszany jest błąd InvalidStateError.
WebAuthn Signal API
Umożliwia podmiotom zależnym WebAuthn przekazywanie dostawcom pamięci danych logowania informacji o istniejących danych logowania, aby nieprawidłowe lub unieważnione dane logowania można było zaktualizować lub usunąć z interfejsu dostawcy i systemu.
Dowiedz się więcej o interfejsie Signal API do obsługi kluczy dostępu w Chrome na komputerze.
WebGPU: mieszanie tekstur zmiennoprzecinkowych 32-bitowych
Funkcja float32-blendable GPU umożliwia mieszanie tekstur GPU w formatach r32float, rg32float i rgba32float.
WebGPU: udostępnianie informacji o adapterze GPU z GPUDevice
Atrybut GPUDevice adapterInfo udostępnia ten sam atrybut GPUAdapterInfo co obiekt GPUAdapter.
WebGPU: użycie widoku tekstury
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 jest dziedziczone z tekstury źródłowej, ale istnieją formaty widoku, które mogą być niezgodne z pełnym zestawem dziedziczonych zastosowań. Dodanie pola użycia do tworzenia widoku tekstury umożliwia użytkownikowi zażądanie podzbioru zastosowań tekstury źródłowej, które są prawidłowe w przypadku formatu widoku i specyficzne dla zamierzonego użycia widoku tekstury.
Implementacje WebGPU mogą też optymalizować tworzenie zasobów niskiego poziomu i zwiększać wydajność podczas korzystania z widoków z bardziej wyspecjalizowanymi flagami użycia.
Nowe wersje próbne origin
W Chrome 132 możesz wziąć udział w tych nowych wersjach próbnych origin:
Document-Isolation-Policy
Document-Isolation-Policy umożliwia dokumentowi włączenie crossOriginIsolation bez konieczności wdrażania COOP ani COEP i niezależnie od crossOriginIsolation stanu strony. Zasady są oparte na izolacji procesów. Dodatkowo podzasoby z innej domeny w dokumencie, które nie są objęte CORS, będą wczytywane bez danych logowania lub będą musiały mieć nagłówek CORP.
Jawne wskazówki kompilacji z magicznymi komentarzami
Ta funkcja umożliwia dołączanie informacji o tym, które funkcje powinny być analizowane i kompilowane w plikach JavaScript. Informacje zostaną zakodowane jako magiczne komentarze.
Wycofania i usunięcia
W tej wersji Chrome wprowadziliśmy te wycofania i usunięcia. Na stronie ChromeStatus.com znajdziesz listy planowanych wycofań, bieżących wycofań i poprzednich usunięć.
Ta wersja Chrome usuwa 2 funkcje.
navigator.storage nie jest już EventTarget
navigator.storage został stworzony jako EventTarget na potrzeby zdarzenia Storage Pressure Event, które nigdy nie wyszło poza fazę prototypu. Ten martwy kod zostanie usunięty, a w rezultacie navigator.storage nie będzie już przedłużać EventTarget.
Usunięcie pełnoekranowych interfejsów API HTMLVideoElement z prefiksem
Pełnoekranowe interfejsy API HTMLVideoElement z prefiksem zostały wycofane z Chrome.
Zostały one zastąpione przez interfejs Element.requestFullscreen() API, który po raz pierwszy został udostępniony bez prefiksu w Chrome 71 w 2018 roku. W 2024 r. większość przeglądarek obsługuje interfejsy API bez prefiksu już od kilku lat.
W Chrome 132 usunięto z HTMLVideoElement te elementy:
- Atrybut
webkitSupportsFullscreen. - Atrybut
webkitDisplayingFullscreen. - Metoda
webkitEnterFullscreen(). - Metoda
webkitExitFullscreen(). Zwróć uwagę na różną wielkość litery „S” w słowie FullScreen. - Metoda
webkitEnterFullScreen(). - Metoda
webkitExitFullScreen().
Te metody są teraz tylko aliasami nowoczesnego interfejsu API. Ich użycie z biegiem lat stale spadało.