Chrome 108 w wersji beta

Nowe jednostki widocznego obszaru CSS, interfejs Federated Credential Management API, czcionki zmiennej COLRv1 i inne ulepszenia.

O ile nie zaznaczono inaczej, zmiany opisane poniżej dotyczą najnowszej wersji kanału beta Chrome na systemy Android, ChromeOS, Linux, macOS i Windows. Więcej informacji o funkcjach znajdziesz, klikając odpowiednie linki lub korzystając z listy na ChromeStatus.com. Chrome 108 jest w wersji beta od 27 października 2022 r. Najnowsze wersje możesz pobrać ze strony Google.com na komputer lub ze Sklepu Google Play na urządzeniu z Androidem.

CSS

Chrome 108 zawiera wiele nowych funkcji CSS.

CSS Overflow dla zastąpionych elementów

Zaczniemy wprowadzać w Chrome zmianę, która umożliwi deweloperom korzystanie z dotychczasowej właściwości overflow z zastąpionymi elementami, które malują się poza polem treści. W połączeniu z zasadą object-view-box można jej użyć do utworzenia obrazu z niestandardową poświatą lub cieniem, z prawidłowym działaniem nadmiaru atramentu jak w przypadku cienia CSS.

Może to być zmiana, która może spowodować niezgodność. Więcej informacji znajdziesz w artykule Zmiana rozmiaru elementów, które zostały zastąpione.

Małe, duże, dynamiczne i logiczne jednostki widocznego obszaru

Zwiększa to obsługę małych (svw, svh, svi, svb, svmin, svmax), dużych (lvw, lvh, lvi, lvb, lvmin, lvmax), jednostek dynamicznych (dvw, dvh, dvi, dvb, dvmin, dvmax) i logicznych (vi, vb).

Obsługa CSS break-after, break-before i break-inside

Obsługa wartości unikania właściwości fragmentacji CSS break-before, break-after i break-inside podczas drukowania. Ta wartość informuje przeglądarkę, aby nie uszkodziła elementu przed, po ani wewnątrz elementu, do którego została zastosowana. Na przykład poniższy kod CSS pozwala uniknąć uszkodzenia postaci w podziałie strony.

figure {
    break-inside: avoid;
}

Ta funkcja została dodana, ponieważ Chrome 108 obsługuje drukowanie w formacie LayoutNG.

Ostatnie wyrównanie elementu podstawowego

Ta funkcja umożliwia programistom wyrównanie elementów w układzie elastycznym lub siatki według ostatniego punktu odniesienia, a nie pierwszego. Możesz to zrobić za pomocą tych właściwości:

  • align-items: last baseline;
  • justify-items: last baseline;
  • align-self: last baseline;
  • justify-self: last baseline;

ContentVisibilityAutoStateChanged zdarzenie

Zdarzenie, które jest uruchamiane w elemencie z atrybutem content-visibility: auto, gdy stan renderowania elementu zmieni się zgodnie z którymkolwiek z atrybutów, które sprawiają, że element jest odpowiedni dla użytkownika.

Dzięki temu programiści mają większą kontrolę nad momentem zatrzymania lub rozpoczęcia renderowania w odpowiedzi na zatrzymanie lub rozpoczęcie renderowania poddrzewa widoczności treści. Deweloper może na przykład zatrzymać aktualizacje React w drzewie podrzędnym, które nie jest renderowane przez klienta użytkownika. Programista może też chcieć zatrzymać wszelkie inne aktualizacje skryptu (np. aktualizacje canvas), jeśli klient użytkownika nie renderuje elementu.

Internetowe interfejsy API

Zarządzanie sfederowanymi danymi logowania (dawniej WebID)

Interfejs Federated Credential Management API umożliwia użytkownikom korzystanie ze sfederowanej tożsamości podczas logowania się w witrynach w sposób zgodny z ulepszeniami ochrony prywatności w przeglądarkach.

Rozszerzenia źródeł multimediów w instancjach roboczych

Włącza korzystanie z interfejsu API rozszerzeń źródła (MSE) z kontekstów DedicatedWorker, co pozwala poprawić wydajność buforowania multimediów na potrzeby odtwarzania przez element HTMLMediaElement w kontekście głównego okna. Po utworzeniu obiektu MediaSource w kontekście DedicatedWorker aplikacja może uzyskać z niego identyfikator MediaSourceHandle i przenieść ten uchwyt do wątku głównego, by móc go dołączyć do elementu HTMLMediaElement. Kontekst, który utworzył obiekt MediaSource, może potem używać go do buforowania multimediów.

Sec-CH-Prefers-Reduced-Motion – nagłówek wskazówek dla klienta dotyczących funkcji medialnych dotyczących ustawień użytkownika

User Preference Media Functions Client Hints Headers (Nagłówki wskazówek klienta dotyczących funkcji multimedialnych w preferencjach użytkownika) definiuje zestaw nagłówków wskazówek dotyczących klienta HTTP związanych z funkcjami multimedialnymi ustawionymi przez użytkownika zgodnie z definicją w sekcji Zapytania o multimedia na poziomie 5. Nagłówki te, używane jako kluczowe wskazówki dla klienta, pozwalają serwerom podejmować trafne decyzje dotyczące na przykład wstawiania CSS. Sec-CH-Prefers-Reduced-Motion odpowiada preferencjom użytkownika w zakresie prefers-reduced-motion.

Czytniki BYOB w WebTransport

Obsługuje czytniki BYOB(własny bufor) dla WebTransport, umożliwiając odczyt w buforze utworzonym przez programistę. Czytniki BYOB mogą minimalizować kopie buforowane i ograniczać przydziały pamięci.

Symbole wieloznaczne w źródłach zasad dotyczących uprawnień

Specyfikacja zasad dotyczących uprawnień definiuje mechanizm, który umożliwia programistom selektywne włączanie i wyłączanie różnych funkcji przeglądarki i interfejsów API. Jedna z funkcji tego mechanizmu umożliwia włączanie funkcji tylko w przypadku wyraźnie wskazanych źródeł (np. https://foo.com/). Ten mechanizm nie jest wystarczająco elastyczny przy projektowaniu niektórych sieci CDN, które dostarczają treści za pośrednictwem punktu początkowego, który może być hostowany w jednej z kilkuset możliwych subdomen.

Dlatego ta funkcja dodaje obsługę symboli wieloznacznych w zasadach dotyczących uprawnień o strukturze takiej jak SCHEME://*.HOST:PORT (np. https://*.foo.com/), gdzie prawidłowe źródło może być utworzone na podstawie SCHEME://HOST:PORT (na przykład https://foo.com/). Wymaga to, aby HOST był domeną, którą można zarejestrować. Oznacza to, że usługa https://*.bar.foo.com/ działa, ale https://*.com/ nie będzie działać (jeśli chcesz zezwolić na korzystanie z tej funkcji wszystkim domenom, przekaż dostęp do *).

Metody synchronizacji obiektów AccessHandles w interfejsie File System Access API

Aktualizuje metody asynchroniczne flush(), getSize() i truncate() w FileSystemSyncAccessHandle w interfejsie File System Access API na metody synchroniczne. FileSystemSyncAccessHandle oferuje obecnie połączenie metod synchronizacji i asynchronicznych, co ogranicza wydajność i łatwość obsługi, zwłaszcza w przypadku aplikacji przenoszących C/C++ do Wasm. Ta aktualizacja przyniesie spójność w korzystaniu z interfejsu API i zwiększy wydajność bibliotek opartych na Wasm.

Jest to potencjalna zmiana, która może powodować niezgodność. Więcej informacji na ten temat znajdziesz w artykule Zmiana powodująca zmiany: metody synchronizacji elementów AccessHandles.

Warunkowy interfejs WebAuthn

Interfejs warunkowy WebAuthn jest obsługiwany w systemie Windows 22H2 lub nowszym, macOS oraz na Androidzie P i nowszych. Odświeżyliśmy też interfejs WebAuthn na platformach stacjonarnych.

Zmienne COLRv1 i wykrywanie ich cech

Obsługa czcionek zmiennych COLRv1

COLRv1 – wektorowe czcionki kolorów są obsługiwane od Chrome 98, ale w tej pierwszej wersji obsługiwały tylko funkcje statyczne tabeli COLRv1. Specyfikacja COLRv1 definiuje integrację z odmianami OpenType, które umożliwiają modyfikowanie właściwości czcionki gradientów i przekształceń przez zmianę parametrów osi zmiennych. Ten drugi etap obsługuje takie odmiany w modelu COLRv1.

Rozszerzenia warunków font-tech() i font-format() w CSS @supports

Używanie atrybutów font-tech() i font-format() w połączeniu z adresem CSS @supports umożliwia wykrywanie technologii czcionek i obsługi formatów oraz stopniowego ulepszania treści. Poniżej znajduje się przykład sprawdzania obsługi czcionek COLRv1.

@supports font-tech(color-COLRv1) {

}

Obsługa funkcji tech() w deskryptorze @font-face src:

Czcionki CSS na poziomie 4 zapewniają dodatkowe sposoby wyboru i filtrowania zasobów czcionek. Wprowadzono funkcję tech(), która umożliwia przekazanie listy technologii czcionek wymaganych do działania danego obiektu blob czcionki. Na tej podstawie klient użytkownika wybierze pierwszy odpowiedni zasób.

Chrome na Androida

Android OSK domyślnie zmienia rozmiar widocznego obszaru

Klawiatura ekranowa Androida domyślnie zmienia rozmiar widocznego obszaru zamiast początkowego zawierającego blok. Autorzy mogą zrezygnować z tej zmiany za pomocą nowego klucza meta-viewport interactive-widget.

Wersje próbne origin

Ta wersja Chrome ma 2 nowe wersje próbne źródła.

Tożsamość sprzedawcy w canmakepayment zdarzeniu

Zdarzenie service worker canmakepayment informuje sprzedawcę, czy użytkownik ma kartę zapisaną w zainstalowanej aplikacji płatniczej. Dyskretnie przekazuje do mechanizmu Service Worker dane dotyczące pochodzenia sprzedawcy i dowolne dane ze źródła aplikacji płatniczej. Ta komunikacja między domenami odbywa się w konstrukcji PaymentRequest w języku JavaScript, nie wymaga gestu użytkownika i nie pokazuje interfejsu użytkownika. Okres próbny w zakresie usuwania pól tożsamości z polecenia „canmakepayment” zdarzenie można włączyć w: chrome://flags/#clear-identity-in-can-make-payment. Włączenie tej flagi spowoduje opróżnienie pól tożsamości w kolumnie „canmakepayment” (i intencję IS_READY_TO_PAY na Androidzie).

Więcej informacji znajdziesz w artykule Aktualizacja działania CanMakePayment interfejsu Payment Handler API.

Interfejs API NotRestoredReason w pamięci podręcznej stanu strony internetowej

Interfejs NotRestoredReason API zgłasza za pomocą interfejsu PerformanceNavigationTiming API listę przyczyn, dla których strona nie jest wyświetlana z pamięci podręcznej BFcache w strukturze drzewa ramek.

Strony mogą być blokowane w pamięci podręcznej funkcji BFcache z różnych powodów, takich jak z powodów wymaganych przez specyfikację lub z przyczyn związanych z implementacją przeglądarki. Deweloperzy mogą zbierać w swojej witrynie współczynnik trafień BFCache, używając parametru PerformanceNavigationTiming.type(back-forward) i trwałego parametru obsługi pokazu stron. Ten interfejs API pozwala witrynom zbierać informacje o przyczynach braku użycia BFCache w nawigacji po historii, dzięki czemu mogą podjąć działania w związku z poszczególnymi przyczynami i zapewnić zgodność strony z BFCache.

Wycofania i usuwanie

Ta wersja Chrome wprowadza informacje o wycofaniach i usunięciach wymienionych poniżej. Na ChromeStatus.com znajdziesz listy planowanych wycofania, obecnie wycofanych funkcji i wcześniejszych usunięć.

Elementy wycofane

W tej wersji Chrome wycofaliśmy 1 funkcję.

Wycofaj i usuń window.defaultStatus oraz window.defaultstatus

To niestandardowe interfejsy API, które nie są zaimplementowane przez wszystkie przeglądarki i nie wpływają na ich działanie. Dzięki temu zostaną wyczyszczone i usunie się potencjalny sygnał pobrania odcisku palca.

Pierwotnie służyły one do modyfikowania/kontrolowania „paska stanu” tekstu u dołu okien przeglądarki. Nigdy nie miały one jednak żadnego rzeczywistego wpływu na pasek stanu Chrome i nie są standardowymi atrybutami. Gekon nie obsługuje tych atrybutów od wersji 23; WebKit nadal obsługuje te atrybuty. Powiązany atrybut window.status jest ustandaryzowany, ale nie może też mieć wpływu na pasek stanu okna.

Usunięcia

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

Usuń: ImageDecoderInit.premultiplyAlpha

Ta funkcja nie ma dostrzegalnych skutków w głównych przypadkach użycia, ale może ograniczać implementacje w nieoptymalny sposób. Bardziej szczegółowy opis znajdziesz w tym problemie. Zgodnie z konsensusem edytorów specyfikacji WebCodecs i brakiem użycia (0,000000339%–0,00000687% przypadków wczytań strony na licznik wykorzystania w wersji M106).

Usuń: navigateEvent.restoreScroll()

Komponent restoreScroll() jest zastępowany przez usługę navigateEvent.scroll(). scroll() działa identycznie, z tym że pozwala deweloperowi kontrolować czas przewijania w przypadku nawigacji bez przechodzenia wstecz (scroll() działa, gdy przewijanie nie jest przywracane, dlatego nazwa zmienia się wraz ze zmianą działania).

Usuń: navigateEvent.transitionWhile()

transitionWhile() jest zastępowany przez aplikację navigateEvent.intercept() z powodu błędów w projekcie zgłoszonych przez deweloperów. intercept() działa niemal identycznie jak przechodzenie przy użyciu funkcji wpisu, ale zamiast obowiązkowego parametru Promise wykorzystuje opcjonalną funkcję obsługi, która zwraca obietnicę. Dzięki temu przeglądarka może kontrolować czas wykonywania modułu obsługi. Jest to bardziej intuicyjne i bardziej intuicyjne niż w transitionWhile().

Usuń element googIPv6 MediaConstraint WebRTC

Za pomocą "googIPv6: false" można wyłączyć obsługę IPv6 w WebRTC, jak w poniższym przykładzie.

new RTCPeerConnection({}, {mandatory:{googIPv6:false}});

Protokół IPv6 był domyślnie włączony od wielu lat i nie powinniśmy być w stanie go wyłączyć. To jest starsza wersja interfejsu API, którego nie ma w specyfikacji.