Chrome 130 w wersji beta

Opublikowano: 18 września 2024 r.

O ile nie zaznaczono inaczej, poniższe zmiany dotyczą najnowszej wersji Chrome w kanale beta na Androida, ChromeOS, Linuxa, macOS i Windowsa. Więcej informacji o funkcjach wymienionych w tym artykule znajdziesz, klikając odpowiednie linki lub na stronie ChromeStatus.com. Od 18 września 2024 r. Chrome 130 jest w wersji beta. Najnowszą wersję możesz pobrać na stronie Google.com na komputerze lub w Sklepie Google Play na urządzeniu z Androidem.

CSS

Ta wersja zawiera 4 nowe funkcje CSS.

Wyszukiwanie w płaskim drzewie zapytań kontenera CSS

Specyfikacja zapytań dotyczących kontenerów została zmieniona, aby uwzględnić płaskie drzewa przodków. Ta zmiana ma znaczenie tylko w przypadku DOM-u cieni, w którym element będzie teraz mógł widzieć beznazwane kontenery wewnątrz drzew cieni, w których znajduje się element lub jeden z jego przodków, nawet jeśli reguła CSS nie używa ::part() ani ::slotted().

Zagnieżdżanie kodu CSS: reguła dotycząca zagnieżdżonych deklaracji

Zachowuje deklaracje bez nazwy po regułach zagnieżdżonych, umieszczając je w regułach CSSNestedDeclarations podczas analizowania.

Pełna obsługa bezprefiksowego box-decoration-break

Dodano obsługę box-decoration-break: clone zarówno w przypadku podziału wbudowanego (układ wierszowy), jak i podziału blokowego (podział na strony w przypadku drukowania i wielu kolumn).

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

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

Selektory arkusza CSS, które używają pseudoelementu ::part(), mogą zawierać inne pseudoelementy arkusza CSS (z wyjątkiem ::part()) oraz wiele innych typów pseudoklas CSS. Po ::part() nadal nie można używać kombinatorów, a pseudoklasy zależne od struktury drzewa są niedozwolone.

Wcześniej Chrome zezwalał na ograniczony zestaw pseudoklas i pseudoelementów po ::part(). 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 Attribution Reporting API (zakres atrybucji)

Ta zmiana jest podyktowana opiniami dotyczącymi technologii reklamowych i potrzebą bardziej szczegółowego filtrowania przed rozpoczęciem procesu atrybucji. Pozwala ona wywołującym interfejs API określić pole „zakres atrybucji”, które będzie używane do filtrowania przed rozpoczęciem zwykłego przepływu atrybucji. Dzięki temu osoby wywołujące interfejs API mogą dokładniej kontrolować szczegółowość atrybucji i otrzymywać prawidłowe raporty atrybucji, gdy występuje wielu różnych reklamodawców lub kampanii, które wszystkie prowadzą do konwersji na tej samej stronie docelowej.

Funkcja interfejsu Attribution Reporting API (ulepszona ochrona prywatności dzięki kluczowi debugowania)

Ta zmiana pomaga ograniczyć potencjalne naruszenie prywatności związane z kluczami debugowania.

Obecnie interfejs API umożliwia określenie klucza debugowania źródła lub klucza debugowania wywołania, 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 reguły, zostanie on uwzględniony w raporcie atrybucji. Może to spowodować wyciek danych, jeśli pliki cookie innych firm są dozwolone tylko w witrynie wydawcy lub reklamodawcy, a nie w obu.

Ta zmiana łagodzi ten problem, ponieważ klucze debugowania źródła i klucze debugowania wyzwalacza są uwzględniane w raporcie atrybucji tylko wtedy, gdy występują zarówno w źródle, jak i w wyzwalaczu, co oznacza, że pliki cookie innych firm są dostępne zarówno na stronie wydawcy, jak i na stronie reklamodawcy. Ta zmiana będzie dotyczyć zarówno raportów na poziomie zdarzenia, jak i raportów podlegających agregacji.

Transport słownika kompresji z udostępnionym Brotli i udostępnionym Zstandard

Ta funkcja dodaje obsługę używania wybranych poprzednich odpowiedzi jako słownika zewnętrznego do kodowania treści i kompresji 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. Aby wyłączyć funkcję transportu słownika kompresji, możesz użyć zasady przedsiębiorstwa CompressionDictionaryTransportEnabled.

Równoległe wygładzanie scrollIntoView()

Metoda scrollIntoView()behavior: "smooth" umożliwia deweloperom tworzenie płynnie przewijanych kontenerów, które przewijają się do swoich potomków za pomocą łagodnej animacji przewijania. Ta funkcja naprawia implementację interfejsu API w Chrome, aby trwające animacje scrollIntoView nie były anulowane przez niepasujące przewijanie w innych kontenerach przewijania.

Ta funkcja rozwiązuje też problemy z nieprawidłowym przewijaniem do fragmentu strony (ankiety) z powodu konkurencyjnego elementu scrollIntoView, który jest wywoływany podczas wczytywania strony.

Dokumentacja obrazu w oknie: dodanie opcji ignorowania pamięci podręcznej ograniczeń okna

Dodaje ono do interfejsu document-picture-in-picture API nowy parametr (preferInitialWindowPlacement), który po ustawieniu na wartość true sugeruje agentowi użytkownika, że nie powinien ponownie używać pozycji ani rozmiaru poprzedniego dokumentu picture-in-picture z tej witryny podczas otwierania tego dokumentu.

Okno obrazu w obrazie dokumentu często zamyka się i otwiera ponownie kilka razy w przypadku tej samej witryny, np. podczas przenoszenia konferencji wideo do obrazu w obrazie i z niego. Usługa agenta użytkownika może ponownie otworzyć okno PiP w ostatnim rozmiarze i miejscu, aby pozostało ono w miejscu, do którego użytkownik je ostatnio przeniósł, i zapewniało ciągłość między oknami PiP. Jeśli jednak nowe okno nie ma nic wspólnego z poprzednim oknem (np. jest to nowe połączenie wideo), deweloper może użyć tego parametru, aby przekazać przeglądarce użytkownika podpowiedź, że okno powinno być otwarte 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 błędów odczytu dużych wartości

Zmiana w raportowaniu niektórych przypadków błędów, które były wcześniej zgłaszane z wartością DOMException i komunikatem „Nie udało się odczytać dużej wartości IndexedDB”.

Chrome będzie teraz wywoływać zdarzenie DOMException o nazwie "NotFoundError", gdy na dysku nie będzie pliku z danymi odczytywanymi przez IDBRequest. Dzięki temu witryny będą mogły podjąć odpowiednie działania naprawcze, gdy wystąpi nieodwracalne niepowodzenie. 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

Dzięki tej funkcji suwaki bez elementów podrzędnych, które można zaznaczyć, są domyślnie możliwe do zaznaczenia za pomocą klawiatury.

Jest to ważna poprawka, która ułatwia wszystkim użytkownikom korzystanie z rolki i zawartych w niej treści. Więcej informacji o jego zaletach znajdziesz w artykule Paski przewijania, które można zaznaczyć za pomocą klawiatury. Od wersji 130 Chrome paski przewijania możliwe do zaznaczenia za pomocą klawiatury będą domyślnie włączone. Jeśli witryny potrzebują czasu na dostosowanie się do tej nowej funkcji, możesz skorzystać z kilku opcji:

Usługi określania stawek i usługi aukcyjne Protected Audience

Interfejs Protected Audience API (wcześniej FLEDGE) to propozycja Piaskownicy prywatności dotycząca remarketingu i niestandardowych odbiorców, która ma zapobiec śledzeniu przez osoby trzecie zachowań użytkowników w różnych witrynach.

Ta funkcja, czyli licytowanie i usługi aukcji w przypadku listy Protected Audience, opisuje sposób umożliwiający przeprowadzenie obliczeń dotyczących listy Protected Audience na serwerach w chmurze w zaufanym środowisku wykonania, zamiast na urządzeniu użytkownika. Przeniesienie obliczeń na serwery w chmurze może pomóc w optymalizacji aukcji chronionych danych, aby zwolnić cykle obliczeniowe i przepustowość sieci na urządzeniu.

Obsługa adresów URL z niespecjalnym schematem

Wcześniej parsujący adresy URL mechanizm Chrome nie obsługiwał adresów URL innych niż specjalne. Parsował on adresy URL inne niż specjalne tak, jakby miały „nieprzezroczystą ścieżkę”, co nie jest zgodne ze standardem adresów URL. Teraz analizator adresów URL w Chromium poprawnie analizuje adresy URL, które nie są adresami specjalnymi, zgodnie ze standardem adresów URL.

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

Wbudowane ciągi znaków JavaScriptu w WebAssembly

Ta funkcja udostępnia typowe operacje na ciągach znaków w JavaScript do importowania do WebAssembly. Dzięki temu możesz tworzyć ciągi znaków JavaScript z WebAssembly i nimi manipulować bez obsługi w WebAssembly. Nadal zapewnia to podobną wydajność jak w przypadku obsługiwanych odwołań do ciągów znaków.

WebGPU: mieszanie 2 źródeł

Dodaje opcjonalną funkcję GPU „dual-source-blending”, która umożliwia łączenie dwóch wyjść fragment shadera w jeden bufor ramki. Ta technika jest szczególnie przydatna w przypadku aplikacji, które wymagają złożonych operacji mieszania, takich jak operacje oparte na trybach mieszania Portera-Duffa. Dzięki temu, że nie trzeba często zmieniać obiektów stanu potoku, łączenie danych z dwóch źródeł może poprawić wydajność i elastyczność.

Web Serial: atrybuty connected i zdarzenia związane z połączeniem RFCOMM

Ta funkcja dodaje logiczny atrybut SerialPort.connected. Atrybut zwraca 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 logicznie się połączy lub rozłączy.

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

Więcej informacji znajdziesz w artykule Bluetooth RFCOMM – aktualizacje w Web Serial (w języku angielskim).

Trwające wersje próbne origin

W Chrome 130 możesz wziąć udział w tych nowych testach origin.

Interfejs Language Detector API

Interfejs JavaScript API do wykrywania języka, w jakim napisano tekst, z poziomami ufności.

Formaty attestationFormats w WebAuthn

Obsługa pola attestationFormats z poziomu 3 WebAuthn.

WebAuthn Level 3 obsługuje witrynę, która w nowym polu attestationFormats podaje preferowane formaty uwierzytelniania. Ta funkcja umożliwia obsługę tego na Androidzie, gdzie dostawcy kluczy dostępu mogą obsługiwać wiele formatów.

Zarejestruj się, aby skorzystać z wersji próbnej atestacjowania WebAuthn.

Wycofanie i usunięcie

W tej wersji Chrome wprowadzamy następujące wycofania i usunięcia. Na stronie ChromeStatus.com znajdziesz listy planowanych i aktualnych wycofań oraz wcześniejszych usunięcia.

W tej wersji Chrome usunięto jedną funkcję.

Usuń expectedImprovement w DelegatedInkTrailPresenter

Atrybut expectedImprovement informuje programistów, o ile zmniejszy się opóźnienie w przypadku interfejsu DelegatedInkTrails API w porównaniu z obecnym opóźnieniem ink. Jednak ten atrybut nie jest wart zwiększenia entropii odcisku palca.

W tej wersji Chrome wycofujemy jedną funkcję.

Wycofanie niestandardowej metody GPUAdapter requestAdapterInfo()

Asymetryczna metoda requestAdapterInfo() w WebGPU jest zbędna, ponieważ deweloperzy mogą już uzyskać wartość GPUAdapterInfo w sposób synchroniczny, używając atrybutu GPUAdapter info.