Chrome 130 w wersji beta

Opublikowano: 18 września 2024 r.

O ile nie zaznaczono inaczej, te zmiany dotyczą najnowszej wersji beta Chrome na Androida, ChromeOS, Linuksa, macOS i Windowsa. Więcej informacji o funkcjach wymienionych tutaj znajdziesz w podanych linkach lub na liście na stronie ChromeStatus.com. Od 18 września 2024 r. Chrome 130 jest w wersji beta. Najnowszą wersję możesz pobrać na komputerze na stronie Google.com lub na Androidzie w Sklepie Google Play.

CSS

Ta wersja dodaje 4 nowe funkcje CSS.

CSS Container Queries flat tree lookup

Specyfikacja zapytań o kontenery została zmieniona, aby wyszukiwać przodków w płaskim drzewie. Ta zmiana dotyczy tylko DOM cienia, w którym element będzie teraz mógł zobaczyć nienazwane kontenery w drzewach cienia, do których element lub jeden z jego przodków jest wstawiony, nawet jeśli reguła CSS nie używa ::part() ani ::slotted().

CSS Nesting: The nested declarations rule

Zachowuje deklaracje bez otoczki po regule zagnieżdżonej, otaczając je regułami CSSNestedDeclarations podczas analizowania.

Pełna obsługa `box-decoration-break` bez prefiksu

Dodaje obsługę box-decoration-break: clone zarówno w przypadku fragmentacji w wierszu (układ wiersza), jak i fragmentacji bloku (stronicowanie na potrzeby drukowania i wielokolumnowości).

Wcześniej w Chrome w przypadku fragmentacji bloku obsługiwana była tylko wartość box-decoration-break:slice (wartość początkowa), natomiast w przypadku fragmentacji w wierszu obsługiwana była też wartość box-decoration-break:clone, ale tylko wtedy, gdy używana była właściwość z prefiksem -webkit-box-decoration-break.

Zezwalaj na więcej pseudoelementów i pseudoklas po ::part()

Selektory CSS, które używają pseudoelementu ::part(), mogą mieć po sobie inne pseudoelementy CSS (z wyjątkiem ::part()) i wiele typów innych pseudoklas CSS. Kombinatory nadal nie są dozwolone po ::part(), a pseudoklasy, które zależą od struktury drzewa, nie są dozwolone.

Wcześniej Chrome zezwalał tylko na ograniczony zestaw pseudoklas i pseudoelementów po ::part(). Ta zmiana umożliwia używanie wszystkich pseudoklas i pseudoelementów, które powinny być dozwolone. Oznacza to, że selektory takie jak ::part(part-name):enabled i ::part(part-name)::marker są teraz dozwolone.

Interfejsy Web API

Funkcja Attribution Reporting API (zakresy atrybucji)

Ta zmiana jest oparta na opiniach od technologii reklamowych i potrzebie bardziej szczegółowych kontroli filtrowania przed rozpoczęciem procesu atrybucji. Umożliwia ona wywołującym interfejs API określenie pola o nazwie „zakresy atrybucji”, które będzie używane do filtrowania przed rozpoczęciem zwykłego procesu atrybucji. Dzięki temu wywołujący interfejs API mają większą kontrolę nad szczegółowością atrybucji i mogą otrzymywać odpowiednie raporty atrybucji, gdy jest wielu różnych reklamodawców lub kampanii, które konwertują w tej samej witrynie docelowej.

Funkcja Attribution Reporting API (poprawa prywatności klucza debugowania)

Ta zmiana pomaga zmniejszyć potencjalne luki w prywatności związane z kluczami debugowania.

Obecnie interfejs API umożliwia określenie klucza debugowania źródła lub klucza debugowania wyzwalacza, jeśli pliki cookie innych firm są dostępne i mogą być ustawiane przez wywołujących interfejs API. Jeśli zostanie określony klucz debugowania źródła lub wyzwalacza, zostanie on uwzględniony w raporcie atrybucji. Może to prowadzić do wycieku prywatności, jeśli pliki cookie innych firm są dozwolone tylko w witrynie wydawcy lub reklamodawcy, ale nie w obu.

Ta zmiana rozwiązuje ten problem, wymuszając, aby klucze debugowania źródła i klucze debugowania wyzwalacza były uwzględniane w raporcie atrybucji tylko wtedy, gdy są obecne zarówno w źródle, jak i w wyzwalaczu. Oznacza to, że pliki cookie innych firm były dostępne zarówno w witrynie wydawcy, jak i reklamodawcy. Ta zmiana będzie dotyczyć zarówno raportów na poziomie zdarzenia, jak i raportów zbiorczych.

Transport słownika kompresji z użyciem Shared Brotli i Shared Zstandard

Ta funkcja dodaje obsługę używania wyznaczonych poprzednich odpowiedzi jako słownika zewnętrznego do kompresowania odpowiedzi za pomocą Brotli lub Zstandard.

Firmy mogą mieć problemy ze zgodnością z infrastrukturą sieciową, która przechwytuje ruch HTTPS i jest wrażliwa na nieznane kodowania treści. Aby wyłączyć funkcję transportu słownika kompresji, możesz użyć zasady dla firm CompressionDictionaryTransportEnabled.

Jednoczesne płynne przewijanie scrollIntoView()

Metoda scrollIntoView() z behavior: "smooth" umożliwia deweloperom tworzenie kontenerów z paskami przewijania, które przewijają się do swoich elementów podrzędnych za pomocą płynnej animacji przewijania. Ta funkcja naprawia implementację interfejsu API w Chrome, dzięki czemu trwające animacje scrollIntoView nie są anulowane przez niezwiązane z nimi przewijanie w innych kontenerach z paskami przewijania.

Ta funkcja rozwiązuje też przypadki, w których Chrome nie może przewinąć do kotwicy fragmentu strony z powodu konkurencyjnego wywołania scrollIntoView, które jest wywoływane podczas wczytywania strony.

Obraz w obrazie dokumentu: dodaj opcję ignorowania pamięci podręcznej granic okna

Dodaje nowy parametr (preferInitialWindowPlacement) do interfejsu Document Picture-in-Picture API, który po ustawieniu na true sugeruje agentowi użytkownika, aby nie próbował ponownie używać pozycji ani rozmiaru poprzedniego obrazu w obrazie dokumentu z tej witryny podczas otwierania tego obrazu.

Często okno obrazu w obrazie dokumentu zamyka się i otwiera wielokrotnie w tej samej witrynie, np. podczas przenoszenia wideokonferencji do i z obrazu w obrazie. Agent użytkownika może ponownie otworzyć okno obrazu w obrazie w jego ostatnim rozmiarze i lokalizacji, aby pozostało tam, gdzie użytkownik ostatnio je przeniósł, i zapewnić ciągłość między oknami obrazu w obrazie. Jeśli jednak nowe okno jest semantycznie niezwiązane z poprzednim oknem, np. jeśli jest to nowe połączenie wideo, deweloper może użyć tego parametru, aby zasugerować agentowi użytkownika, że to okno może być lepiej otwarte w domyślnej pozycji i rozmiarze.

Dowiedz się, jak otworzyć okno w domyślnej pozycji i rozmiarze.

Ulepszone raportowanie błędów w IndexedDB w przypadku niepowodzeń odczytu dużych wartości

Zmiana raportowania w przypadku niektórych błędów, które wcześniej były zgłaszane za pomocą DOMException i komunikatu „Failed to read large IndexedDB value” (Nie udało się odczytać dużej wartości IndexedDB).

Gdy plik zawierający dane odczytywane przez IDBRequest nie będzie dostępny na dysku, Chrome będzie teraz zgłaszać DOMException o nazwie "NotFoundError", aby witryny mogły podjąć odpowiednie działania naprawcze w przypadku wystąpienia błędu, którego nie można naprawić. Działania naprawcze mogą obejmować usunięcie wpisu z bazy danych, powiadomienie użytkownika lub ponowne pobranie danych z serwerów.

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

Ta funkcja sprawia, że paski przewijania bez elementów podrzędnych, które można zaznaczyć, są domyślnie możliwe do zaznaczenia za pomocą klawiatury.

Jest to ważne ulepszenie, które ma na celu zwiększenie dostępności pasków przewijania i treści w nich dla wszystkich użytkowników. Więcej informacji o jego zaletach znajdziesz w artykule Paski przewijania, które można zaznaczyć za pomocą klawiatury. Paski przewijania, które można zaznaczyć za pomocą klawiatury, będą domyślnie włączone od Chrome 130. Jeśli witryny potrzebują czasu na dostosowanie się do tej nowej funkcji, mają kilka opcji:

Usługi określania stawek i aukcji Protected Audience

Protected Audience API (wcześniej FLEDGE) to propozycja Piaskownicy prywatności, która ma na celu obsługę przypadków użycia remarketingu i niestandardowych odbiorców. Została zaprojektowana tak, aby uniemożliwiać stronom trzecim śledzenie zachowania użytkowników w internecie.

Ta funkcja, Usługi określania stawek i aukcji Protected Audience, opisuje sposób umożliwiający przeprowadzenie obliczeń związanych z Protected Audience na serwerach w chmurze w zaufanym środowisku wykonywania, zamiast na urządzeniu użytkownika. Przeniesienie obliczeń na serwery w chmurze może pomóc w optymalizacji aukcji z użyciem Protected Audience, ponieważ pozwala uwolnić cykle obliczeniowe i przepustowość sieci na urządzeniu.

Obsługa adresów URL z niespecjalnym schematem

Wcześniej parser adresów URL w Chrome nie obsługiwał adresów URL z niespecjalnym schematem. Parser analizował adresy URL z niespecjalnym schematem tak, jakby miały „nieprzezroczystą ścieżkę”, co nie jest zgodne ze standardem URL. Teraz parser adresów URL w Chromium prawidłowo analizuje adresy URL z niespecjalnym schematem zgodnie ze standardem URL.

Więcej informacji znajdziesz na bit.ly/url-non-special.

Wbudowane ciągi JavaScript w WebAssembly

Ta funkcja udostępnia typowe operacje na ciągach JavaScript do importowania do WebAssembly. Umożliwia to tworzenie ciągów JavaScript i manipulowanie nimi z poziomu WebAssembly bez obsługi w WebAssembly. Nadal zapewnia to podobną wydajność jak obsługiwane odwołania do ciągów.

WebGPU: mieszanie z 2 źródeł

Dodaje opcjonalną funkcję GPU „dual-source-blending”, która umożliwia łączenie 2 wyjść shadera fragmentów w jeden bufor ramki. Ta technika jest szczególnie przydatna w przypadku aplikacji, które wymagają złożonych operacji mieszania, takich jak te oparte na trybach mieszania Porter-Duff. Dzięki zmniejszeniu potrzeby częstych zmian stanu potoku mieszanie z 2 źródeł może zwiększyć wydajność i elastyczność.

Web Serial: atrybut connected i zdarzenia połączenia RFCOMM

Ta funkcja dodaje atrybut logiczny SerialPort.connected. Atrybut zwraca wartość true, jeśli port szeregowy jest logicznie połączony. W przypadku przewodowych portów szeregowych port jest logicznie połączony, jeśli jest fizycznie podłączony do systemu. W przypadku bezprzewodowych portów szeregowych port jest logicznie połączony, jeśli urządzenie hostujące port ma otwarte połączenia z hostem.

Wcześniej tylko przewodowe porty szeregowe wysyłały zdarzenia połączenia i rozłączenia. Dzięki tej funkcji porty szeregowe Bluetooth RFCOMM będą wysyłać te zdarzenia, gdy port zostanie logicznie połączony lub rozłączony.

Ta funkcja ma umożliwić aplikacjom wykrywanie, kiedy port szeregowy Bluetooth RFCOMM jest dostępny, bez otwierania portu.

Więcej informacji znajdziesz w artykule Aktualizacje Bluetooth RFCOMM w Web Serial.

Trwające wersje próbne origin

W Chrome 130 możesz wziąć udział w tych nowych wersjach próbnych origin.

Language Detector API

Interfejs JavaScript API do wykrywania języka tekstu, z poziomami pewności.

WebAuthn attestationFormats

Obsługa pola attestationFormats z WebAuthn w wersji 3.

WebAuthn w wersji 3 umożliwia witrynie wyrażenie uporządkowanej preferencji dotyczącej formatów poświadczeń w nowym polu attestationFormats. Ta funkcja umożliwia obsługę tej funkcji na Androidzie, gdzie dostawcy kluczy dostępu mogą obsługiwać wiele formatów.

Zarejestruj się, aby wziąć udział w wersji próbnej WebAuthn attestationFormats.

Wycofania i usunięcia

Ta wersja Chrome wprowadza te wycofania i usunięcia. Listy planowanych wycofań, bieżących wycofań i poprzednich usunięć znajdziesz na stronie ChromeStatus.com.

Ta wersja Chrome usuwa 1 funkcję.

Usuń expectedImprovement w DelegatedInkTrailPresenter

Atrybut expectedImprovement informuje programistów stron internetowych, o ile interfejs DelegatedInkTrails API poprawi bieżące opóźnienie atramentu. Ten atrybut nie jest jednak wart zwiększenia entropii odcisku cyfrowego.

Ta wersja Chrome wycofuje 1 funkcję.

Wycofaj niestandardową metodę GPUAdapter requestAdapterInfo()

Metoda asynchroniczna requestAdapterInfo() w WebGPU jest zbędna, ponieważ deweloperzy mogą już synchronicznie pobierać GPUAdapterInfo za pomocą atrybutu GPUAdapter info.