Chrome 132 beta

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-rlsideways-lr w przypadku właściwości writing-mode usługi porównywania cen. Znaki sideways-rlsideways-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-rlvertical-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 active umoż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()Response.bytes()

Dodaj metodę bytes() do interfejsów RequestResponse, która zwraca obietnicę, która jest spełniana z wartością Uint8Array. Chociaż RequestResponse 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-issuanceprivate-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, rg32floatrgba32float.

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 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.