Chrome 130 w wersji beta

Opublikowano: 18 września 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. 18 września 2024 r. Chrome 130 jest w wersji beta. Najnowsze informacje znajdziesz na Google.com (na komputerze) lub w Sklepie Google Play (na Androidzie).

CSS

Ta wersja zawiera 4 nowe funkcje CSS.

Wyszukiwanie w płaskim drzewie zapytań o kontenery CSS

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

Zagnieżdżanie w CSS: reguła zagnieżdżonych deklaracji

Zachowuje deklaracje podstawowe po regule zagnieżdżonej, umieszczając je w trakcie analizowania w regułach CSSNestedDeclarations.

Pełna obsługa właściwości box-decoration-break bez prefiksu

Dodaje obsługę box-decoration-break: clone zarówno w przypadku fragmentacji wbudowanej (układ wierszy), jak i fragmentacji blokowej (stronicowanie do drukowania i wielokolumnowości).

Wcześniej w Chrome w przypadku fragmentacji bloków obsługiwana była tylko wartość box-decoration-break:slice (wartość początkowa), natomiast w przypadku fragmentacji w linii obsługiwana była też wartość box-decoration-break:clone, ale tylko w przypadku użycia właściwości z prefiksem -webkit-box-decoration-break.

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

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

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

Interfejsy Web API

Funkcja interfejsu Attribution Reporting API (zakresy atrybucji)

Ta zmiana jest oparta na opiniach dotyczących technologii reklamowych i potrzebie bardziej precyzyjnych elementów sterujących filtrowaniem przed rozpoczęciem procesu atrybucji. Umożliwia on podmiotom 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 o atrybucji, gdy na tej samej stronie docelowej konwersje generuje wielu różnych reklamodawców lub wiele różnych kampanii.

Funkcja interfejsu Attribution Reporting API (zwiększenie prywatności klucza debugowania)

Ta zmiana pomaga zmniejszyć potencjalną lukę w zakresie prywatności związaną z kluczami debugowania.

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

Ta zmiana rozwiązuje ten problem, ponieważ wymusza, aby klucze debugowania źródła i klucze debugowania wywołania były uwzględniane w raporcie o atrybucji tylko wtedy, gdy występują zarówno w źródle, jak i w wywołaniu. 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 z możliwością agregacji.

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 kodowania treści, kompresowania odpowiedzi za pomocą Brotli lub Zstandard.

Firmy mogą napotkać problemy ze zgodnością z infrastrukturą sieciową, która przechwytuje ruch HTTPS i jest wrażliwa na nieznane kodowania treści. Zasada przedsiębiorstwa CompressionDictionaryTransportEnabled umożliwia wyłączenie funkcji transportu słownika kompresji.

Wygładzanie równoczesne scrollIntoView()

Metoda scrollIntoView() z parametrem behavior: "smooth" umożliwia programistom tworzenie kontenerów przewijania, które przewijają się do elementów podrzędnych z płynną animacją przewijania. Ta funkcja poprawia implementację interfejsu API w Chrome, dzięki czemu trwające scrollIntoViewanimacjescrollIntoView nie są anulowane przez niezwiązane z nimi przewijanie w innych kontenerach przewijania.

Ta funkcja rozwiązuje też problemy, w których przeglądarka Chrome nie może przewinąć strony do fragmentu kotwicy z powodu konkurencyjnego scrollIntoView, który jest wywoływany podczas wczytywania strony.

Obraz w obrazie w dokumencie: dodanie opcji ignorowania pamięci podręcznej granic okna

Dodaje to nowy parametr (preferInitialWindowPlacement) do interfejsu API obrazu w obrazie dokumentu, który po ustawieniu wartości „true” sugeruje agentowi użytkownika, że nie powinien on 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 przypadku tej samej witryny, np. podczas przenoszenia połączenia wideo do i z trybu obrazu w obrazie. Klient użytkownika może ponownie otworzyć okno PiP w ostatnim rozmiarze i ostatniej lokalizacji, aby pozostało w miejscu, w którym użytkownik ostatnio je umieścił, i zapewnić ciągłość między oknami PiP. Jeśli jednak nowe okno nie jest semantycznie powiązane z poprzednim, np. jest to nowe połączenie wideo, deweloper może użyć tego parametru, aby zasugerować agentowi użytkownika, że to okno lepiej otworzyć w domyślnej pozycji i rozmiarze.

Dowiedz się, jak otworzyć okno w domyślnym położeniu 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 były wcześniej zgłaszane za pomocą znakuDOMException i komunikatu „Nie udało się odczytać dużej wartości IndexedDB”.

Chrome będzie teraz zgłaszać DOMException o nazwie "NotFoundError", gdy plik zawierający dane odczytywane przez IDBRequest nie będzie znajdować się na dysku. Dzięki temu witryny będą mogły podjąć odpowiednie działania naprawcze w przypadku wystąpienia nieodwracalnego błędu. Działania korygujące 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 suwaki bez elementów podrzędnych, które można zaznaczyć, są domyślnie możliwe do zaznaczenia za pomocą klawiatury.

To ważne ulepszenie, które sprawi, że przewijane elementy i treści w nich zawarte będą bardziej dostępne dla wszystkich użytkowników. Więcej informacji o jego zaletach znajdziesz w sekcji Paski przewijania, które można zaznaczyć za pomocą klawiatury. Paski przewijania możliwe do zaznaczenia za pomocą klawiatury będą domyślnie włączone od Chrome w wersji 130. Jeśli witryny potrzebują czasu na dostosowanie się do tej nowej funkcji, mają kilka możliwości:

Usługi określania stawek i aukcji w ramach Protected Audience API

Interfejs Protected Audience API (wcześniej FLEDGE) to propozycja Piaskownicy prywatności, która umożliwia obsługę remarketingu i niestandardowych przypadków użycia list odbiorców. Została ona zaprojektowana tak, aby podmioty zewnętrzne nie mogły śledzić zachowań użytkowników podczas przeglądania różnych stron.

Ta funkcja, czyli 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 API, 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 było zgodne ze standardem URL. Parser adresów URL w Chromium prawidłowo analizuje teraz adresy URL inne niż specjalne zgodnie ze standardem URL.

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

Wbudowane ciągi znaków JavaScript w WebAssembly

Ta funkcja udostępnia typowe operacje na ciągach znaków w JavaScript do importowania do WebAssembly. Umożliwia to tworzenie ciągów znaków JavaScript i manipulowanie nimi z poziomu WebAssembly bez obsługi w WebAssembly. Nadal umożliwia to uzyskanie podobnej wydajności jak w przypadku obsługiwanych odwołań do ciągów znaków.

WebGPU: mieszanie z 2 źródeł

Dodaje opcjonalną funkcję procesora graficznego „dual-source-blending”, która umożliwia łączenie dwóch 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 Portera-Duffa. Dzięki zmniejszeniu potrzeby częstych zmian obiektów stanu potoku mieszanie dwóch źródeł może zwiększyć wydajność i elastyczność.

Web Serial: atrybut connected i zdarzenia związane z połączeniem 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 łączenia i rozłączania. Dzięki tej funkcji porty szeregowe RFCOMM Bluetooth będą wysyłać te zdarzenia, gdy port zostanie logicznie połączony lub rozłączony.

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

Więcej informacji znajdziesz w artykule Aktualizacje RFCOMM Bluetooth 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 ufności.

WebAuthn attestationFormats

Obsługa pola attestationFormats z WebAuthn na poziomie 3.

WebAuthn na poziomie 3 obsługuje witrynę, która wyraża uporządkowane preferencje dotyczące formatów atestów danych logowania 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 skorzystać z okresu próbnego formatów atestu WebAuthn.

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 jedną funkcję.

Usuwanie expectedImprovement z DelegatedInkTrailPresenter

Atrybut expectedImprovement informuje programistów stron internetowych, o ile interfejs DelegatedInkTrails API poprawi obecne opóźnienie atramentu. Ten atrybut nie jest jednak wart zwiększenia entropii odcisków cyfrowych.

Ta wersja Chrome wycofuje jedną funkcję.

Wycofanie niestandardowej metody GPUAdapter requestAdapterInfo()

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