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
i ::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()
z 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:
- Wypróbuj wyłączenie skrótów klawiszowych do przewijania na stronie możesz użyć, aby na określony czas zrezygnować z funkcji na danej stronie. Można go używać do wersji 132 Chrome, która wygaśnie 18 marca 2025 r.
- Do tego samego celu można użyć
KeyboardFocusableScrollersEnabled enterprise policy
, które jest dostępne w Chrome 127.
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
.