O ile nie wskazano inaczej, poniższe zmiany dotyczą najnowszych wersji beta Chrome w wersji beta na Androida, ChromeOS, Linuxa, macOS i Windowsa. Dowiedz się więcej o funkcjach wymienionych tutaj, korzystając z podanych linków lub z listy na ChromeStatus.com. Od 20 marca 2024 r. wersja beta Chrome 124 jest dostępna w wersji beta. Najnowsze wersje możesz pobrać ze strony Google.com (na komputer) lub ze Sklepu Google Play na urządzeniu z Androidem.
CSS
W tej wersji dodaliśmy 2 nowe funkcje CSS.
CSSImportRule.styleSheet
Zezwalaj, aby CSSImportRule.styleSheet
mógł mieć wartość null. Jeśli nie ma powiązanego arkusza stylów CSS, atrybut styleSheet
w dyrektywie CSSImportRule
może mieć wartość null.
CSSKeyframesRule.length
Ujawnia atrybut length
elementu CSSKeyframesRule
. Interfejsy obsługujące właściwości indeksowane muszą definiować atrybut o typie liczby całkowitej o nazwie length
.
HTML
W tej wersji dodaliśmy dwie nowe funkcje języka HTML.
Atrybut writingsuggestions
Przeglądarki zaczynają proponować użytkownikom pisanie w różnych edytowalnych polach w internecie. Chociaż jest to zwykle przydatne dla użytkowników, w niektórych przypadkach deweloperzy mogą chcieć wyłączyć funkcje wspomagające pisanie wykonywane w przeglądarce, np. rozszerzenia lub witryny, które oferują podobne funkcje.
Nowy atrybut writingsuggestions
ma wartości true
lub false
, które umożliwiają programistom włączanie i wyłączanie sugestii dotyczących pisania w przeglądarce. Stan atrybutu elementu może być również dziedziczony z elementów nadrzędnych, co pozwala programistom kontrolować tę funkcję na poziomie elementu, dokumentu lub dokumentu podrzędnego.
Kontenery przewijania z możliwością zaznaczenia za pomocą klawiatury
Poprawia dostępność przez umożliwienie zaznaczenia kontenerów przewijania za pomocą sekwencyjnej nawigacji fokusu. Przed tą zmianą klawisz Tab nie umożliwia zaznaczenia elementów przewijających, chyba że tabIndex
ma wyraźnie wartość 0 lub większą.
Dzięki temu, że użytkownicy, którzy nie mogą (lub nie chcą) korzystać z myszy, będą mogli zaznaczyć przycięte treści za pomocą klawisza Tab i klawiszy strzałek na klawiaturze. To zachowanie jest włączone tylko wtedy, gdy przewijany nie zawiera żadnych elementów podrzędnych, które można zaznaczyć za pomocą klawiatury.
Ta funkcja będzie wdrażana stopniowo, począwszy od Chrome 124, aż do wersji Chrome 125, która będzie dostępna dla wszystkich użytkowników. Dowiedz się więcej o opcjach przewijania za pomocą klawiatury.
Internetowe interfejsy API
Zmiany w interfejsie Attribution Reporting API
Dodaliśmy funkcje do Attribution Reporting API, które zapewniają dodatkowe możliwości debugowania dzięki obsłudze raportów debugowania błędów analizy, poprawiają ergonomię interfejsu API dzięki obsłudze pola do określania preferowanej platformy rejestracji i poprawia ochronę prywatności.
Obraz w obrazie w dokumencie: dodaj opcję ukrywania przycisku powrotu do karty
Spowoduje to dodanie do interfejsu Document API obrazu w obrazie nowego parametru (disallowReturnToOpener
). Jeśli ma on wartość Prawda, informuje przeglądarkę, że nie powinna ona wyświetlać w oknie obrazu w obrazie przycisku umożliwiającego powrót do karty otwierającej.
W przypadku obrazu w obrazie filmu zawsze warto użyć przycisku powrotu do karty otwierającej (ten strumień wideo można przywrócić na karcie tego okna). Nie zawsze jednak sprawdza się w przypadku trybu „obraz w obrazie” w dokumencie. Dzięki temu deweloperzy zyskują większą kontrolę nad wrażeniami użytkownika, gdy stwierdzą, że dany przycisk nie ma sensu w danym przypadku.
Więcej informacji znajdziesz w dokumentacji funkcji obraz w obrazie w dokumencie.
Blokowanie renderowania dokumentów
Ta funkcja umożliwia autorom blokowanie renderowania dokumentu do czasu przeanalizowania kluczowych treści, dzięki czemu pierwsze wyrenderowanie będzie spójne we wszystkich przeglądarkach. Bez tej funkcji stan pierwszego wyrenderowania zależy od wyników heurystycznych analizy, które mogą się różnić w zależności od przeglądarki.
Jest to szczególnie ważne w przypadku przejść widoku, w których przeanalizowany stan DOM w pierwszej klatce może drastycznie zmienić utworzone przejście.
Pamiętaj, że ta funkcja korzysta ze składni <link rel=expect href="#id">
, dzięki której element link może się odwoływać do innego oczekiwanego elementu na stronie. Renderowanie zostanie wtedy zablokowane do czasu, aż oczekiwany element zostanie w pełni przeanalizowany. Zastępuje to poprzednią implementację atrybutu HTML, który umożliwia blokowanie renderowania całego dokumentu.
jitterBufferTarget
atrybut
Atrybut jitterBufferTarget
pozwala aplikacjom określić docelowy czas trwania (w milisekundach) czasu trwania multimediów, jaki ma być przechowywany przez bufor zakłóceń RTCRtpReceiver
. Ma to wpływ na ilość buforowania wykonywanego przez klienta użytkownika, co z kolei wpływa na ponowne przesyłanie i odzyskiwanie pakietów. Zmiana wartości docelowej pozwala aplikacjom kontrolować kompromis między opóźnieniem odtwarzania a ryzykiem wyczerpania klatek audio lub wideo w wyniku zakłóceń w sieci.
pageswap
zdarzenie
Zdarzenie pageswap
jest uruchamiane w obiekcie okna dokumentu, gdy nawigacja zastąpi ten dokument nowym dokumentem. Zdarzenie zawiera informacje aktywacyjne dotyczące nawigacji (type
i NavigationHistoryEntry
dla nowego dokumentu).
Jeśli nawigacja obejmuje przejście do widoku między dokumentami, zdarzenie jest wysyłane przed zarejestrowaniem stanu starego dokumentu. Dzięki temu deweloper może skonfigurować stary stan rejestracji na potrzeby przejścia na podstawie informacji o aktywacji nawigacji i bieżącego stanu wizualnego starego dokumentu.
Nagłówek żądania HTTP priority
Spowoduje to dodanie nagłówka priority
do wszystkich żądań HTTP z informacjami o priorytecie żądania w momencie jego wysyłania.
RFC 9218 (Extensible Prioritization Scheme dla HTTP) określa nagłówek żądania HTTP priority
, który służy do sygnalizowania priorytetu żądania do źródeł (i pośrednich). Definiuje też procesy negocjacji i ramki na poziomie protokołu dla HTTP/2 i HTTP/3, aby miały te same informacje o priorytecie.
Nagłówek może sygnalizować początkowy priorytet zasobu tylko wtedy, gdy jego żądanie zostało wysłane po raz pierwszy. Mechanizmy oparte na ramkach umożliwiają zmianę priorytetu po fakcie.
Nagłówek może kompleksowo obsługiwać serwery źródłowe (oraz udostępniać mechanizm zastępowania priorytetu w przypadku rozpoznania przez pośredników), podczas gdy ramki są ograniczone do działania na poziomie linku.
Ta funkcja służy przede wszystkim do obsługi schematu określania priorytetów na podstawie nagłówka.
Uprawnienia dostępu do sieci prywatnej pozwalające złagodzić treści mieszane
Aby nawiązać połączenia z urządzeniami w sieci lokalnej, które nie mają globalnie unikalnych nazw, a tym samym nie mogą uzyskać certyfikatów TLS, w ramach tej funkcji wprowadziliśmy nową opcję fetch()
, która umożliwia deklarowanie zamiaru dewelopera komunikacji z takim urządzeniem. Obejmuje to nową, kontrolowaną przez zasady funkcję, która ogranicza dostęp każdej witryny do tej funkcji, oraz nowe nagłówki odpowiedzi procesu wstępnego serwera, aby zapewnić dodatkowe metadane.
Wskazówka klienta Sec-CH-UA-Form-Factors
Ta wskazówka zawiera informacje z serwera o formatach klienta użytkownika. Zwraca co najmniej jedną z tych wartości formatu:
- Komputer: klient użytkownika uruchomiony na komputerze osobistym.
- Motoryzacja: klient użytkownika umieszczony w pojeździe, który może być odpowiedzialny za obsługę pojazdu i nie może wpływać na drobne szczegóły.
- Komórka: niewielkie urządzenie dotykowe, zazwyczaj noszone na człowieku.
- Tablet: urządzenie dotykowe większe niż „komórka”, które zazwyczaj nie jest przenoszone przy użyciu urządzenia użytkownika.
- XR: interaktywne urządzenia, które rozszerzają lub zastępują środowisko wokół użytkownika.
- EInk: urządzenie charakteryzujące się powolnymi aktualizacjami ekranu i ograniczoną lub zerową rozdzielczością kolorów.
- Zegarek: urządzenie mobilne z małym ekranem (zwykle mniej niż 2 cale) niesione w taki sposób, aby użytkownik mógł szybko na niego spojrzeć.
setHTMLUnsafe
i parseHTMLUnsafe
Metody setHTMLUnsafe
i parseHTMLUnsafe
umożliwiają korzystanie z deklaratywnego DOM Shadow z JavaScriptu. Te metody są też łatwiejszym sposobem na imperatywną analizę kodu HTML w modelu DOM w porównaniu z metodami innerHTML
czy DOMParser
.
Aktualizacje interfejsu Shared Storage API
Ta aktualizacja dodaje obsługę uruchamiania workletów z innych domen bez konieczności tworzenia elementu iframe.
Streams API: iteracja asynchroniczna ReadableStream
Interfejsy API strumieni dostarczają wszechobecne, interoperacyjne elementy podstawowe do tworzenia, tworzenia i wykorzystywania strumieni danych. W ramach tej zmiany dodaliśmy obsługę asynchronicznego, iteracyjnego protokołu do interfejsu ReadableStream API, co umożliwiło używanie czytelnych strumieni jako źródła pętli await...of
.
SVG context-fill
i context-stroke
Stosuje istniejącą funkcję SVG, która zezwala słowom kluczowym context-fill
i context-stroke
do określania właściwości wypełnienia i kreski. Dotyczy to tylko poddrzew SVG utworzonych z elementem <use>
oraz elementów <marker>
utworzonych za pomocą właściwości marker
w elemencie <path>
. W takim przypadku właściwości context-fill
i context-stroke
są ustawiane na wartości właściwości fill
i stroke
w elemencie <use>
lub <path>
.
WebGPU: obsługa ServiceWorker i SharedWorker
Dodano obsługę ServiceWorker i SharedWorker do interfejsu WebGPU, kolidując z istniejącymi funkcjami WebGL.
Skrypty service worker włączają funkcje offline i przetwarzanie w tle przez WebGPU. Oznacza to, że aplikacje internetowe i rozszerzenia do Chrome o dużej mocy obliczeniowej mogą buforować zasoby i wykonywać obliczenia nawet wtedy, gdy użytkownik nie wchodzi aktywnie w interakcję ze stroną.
Współdzielone instancje robocze umożliwiają koordynowanie i udostępnianie zasobów WebGPU za pomocą wielu kart lub kontekstów rozszerzeń. Umożliwia to płynniejsze działanie i bardziej efektywne wykorzystanie sprzętu graficznego użytkownika.
Interfejs API WebSocketStream
WebSocket API udostępnia interfejs JavaScript dla protokołu RFC6455 WebSocket. Pomimo tego, że było dobrze, jest dziwne z punktu widzenia ergonomii i brakuje ważnej cechy, jaką jest ciśnienie wsteczne. Interfejs API WebSocketStream ma na celu rozwiązanie tych problemów przez integrację strumieni WhatWG z interfejsem WebSocket API.
Więcej informacji znajdziesz w artykule WebSocketStream: integracja strumieni z interfejsem WebSocket API.
Herbata klucza X25519Kyber768 dla protokołu TLS
Chroni bieżący ruch TLS w Chrome przed przyszłą kryptoanalizą kwantową przez wdrożenie algorytmu kwantowego uzgadniania kluczy Kyber768.
Jest to hybrydowa umowa kluczy X25519 i Kyber768 oparta na standardzie IETF. Ta specyfikacja i jego wprowadzenie wykraczają poza zakres W3C. Ta umowa klucza zostanie uruchomiona jako szyfr TLS i powinna być przejrzysta dla użytkowników.
Więcej informacji znajdziesz w artykule Ochrona ruchu w Chrome przy użyciu Hybrid Kyber KEM.
Testowanie origin w toku
W Chrome 124 możesz włączyć te nowe testy origin.
Okres próbny wycofania zdarzeń mutacji
Zdarzenia mutacji, w tym DOMSubtreeModified
, DOMNodeInserted
, DOMNodeRemoved
, DOMNodeRemovedFromDocument
, DOMNodeInsertedIntoDocument
i DOMCharacterDataModified
, mogą negatywnie wpływać na wydajność strony i znacznie zwiększyć złożoność dodawania nowych funkcji do internetu. Te interfejsy API zostały wycofane ze specyfikacji w 2011 roku, a w 2012 r. zastąpione znacznie lepszym interfejsem Mutation Observer API.
Obsługa zdarzeń mutacji zostanie domyślnie wyłączona w Chrome 127 około 30 lipca 2024 r. Aby uniknąć uszkodzenia witryny, przed tą datą należy przenieść kod do interfejsu Mutation Observer API. Jeśli potrzebujesz więcej czasu, zarejestruj się w okresie próbnym wycofywania zdarzeń modyfikacji, aby na ograniczony czas ponownie włączyć tę funkcję w danej witrynie. Można z niego korzystać w Chrome 134 do 25 marca 2025 r.
Do tego samego celu można też używać zasady przedsiębiorstwa MutationEventsEnabled
, również w Chrome 134.
Zarejestruj się, aby wziąć udział w okresie próbnym wycofywania zdarzeń modyfikacji.
Elementy wycofane i usunięte
W tej wersji Chrome wprowadziliśmy opisane poniżej elementy wycofane i usunięte. Na stronie ChromeStatus.com znajdziesz listę planowanych wycofań, obecnie wycofanych i wcześniejszych usunięć.
W tej wersji Chrome usunięto jedną funkcję.
Usunięcie aliasu „window-placement” na potrzeby zasady uprawnień i uprawnień „window-management”
Usuwa alias „window-placement” dotyczący uprawnień i uprawnień „window-management”. To część działań mających na celu zmianę nazw ciągów poprzez wycofanie i usunięcie parametru „window-placement”. Zmiana terminologii wydłuża trwałość deskryptora w miarę ewoluowania interfejsu Window Management API.