Data premiery stabilnej: 14 maja 2024 r.
O ile nie wskazano inaczej, poniższe zmiany dotyczą wersji stabilnej Chrome 125 dla systemów Android, ChromeOS, Linux, macOS i Windows.
HTML i DOM
Deklarowana serializacja cienia DOM
Funkcja umożliwiająca programistom serializowanie drzew DOM zawierających pierwiastki cienia, która została niedawno ujednolicona w standardzie HTML.
Śledzenie błędu #41490936 | Wpis na ChromeStatus.com | Specyfikacja
CSS
Pozycjonowanie zakotwiczonych elementów CSS
Pozycjonowanie zakotwiczenia CSS pozwala programistom w sposób deklaratywny powiązać element znajdujący się bezwzględnego elementu na stronie (kotwice) w sposób deklaratywny bez użycia JavaScriptu. Pozycjonowanie zakotwiczenia działa wydajnie, gdy można je przewijać. Typowym przypadkiem użycia jest umieszczenie wyskakującego okienka, np. etykietki, obok elementu, który go wywołał, lub menu wyboru i jego listy opcji w wyskakującym okienku. Przed wprowadzeniem funkcji pozycjonowania zakotwiczonych te przypadki użycia wymagały JavaScriptu do dynamicznego pozycjonowania wyskakującego okienka i utrzymywania go w tym samym miejscu, gdy element wywołujący się przewijał, co jest podstawą wydajności i trudno się było dopasować. Dzięki pozycjonowaniu zakotwiczonych te przypadki użycia mogą być wdrażane skutecznie i deklaratywnie.
Funkcja pozycjonowania zakotwiczenia składa się z wielu właściwości CSS. Oto kilka z nich:
anchor-name
: konfiguruje element jako kotwicę w przypadku innych elementów.position-anchor
: opisuje domyślną kotwicę, której powinien używać zakotwiczony element do pozycjonowania.- Funkcja
anchor()
: służy do określenia pozycji elementu zakotwiczonego i określa położenie zakotwiczonego elementu. inset-area
: skrót odnoszący się do pozycjonowania popularnych pozycji względnych.
Przedstawiamy interfejs API pozycjonowania kotwicy CSS | Błąd śledzenia nr 40059176 | Wpis na ChromeStatus.com | Specyfikacja
Funkcje wartości krokowe CSS – round()
, mod()
i rem()
Funkcje wartości krokowej round()
, mod()
i rem()
przekształcają daną wartość zgodnie z inną „wartością kroków”.
Funkcja CSS round()
zwraca zaokrągloną liczbę na podstawie wybranej strategii zaokrąglania.
Funkcja CSS mod()
zwraca moduł pozostały, gdy pierwszy parametr jest podzielony przez drugi parametr, podobnie jak operator reszty JavaScriptu (%). Moduł to wartość pozostała, gdy jeden operand – dzielna – zostanie podzielona przez drugi operand – dzielnik. Zawsze używa znaku dzielnika.
Funkcja CSS rem()
zwraca resztę, gdy pierwszy parametr jest podzielony przez drugi parametr, podobnie jak w przypadku operatora reszty JavaScriptu (%). Reszta to wartość pozostała po podzieleniu jednego argumentu (dzielna) przez drugi operand – dzielnik. To zawsze bierze znak dzielnika.
Śledzenie błędu #40253179 | Wpis na ChromeStatus.com | Specyfikacja
Nowa składnia niestandardowego elementu CSS :state()
Niestandardowy stan CSS pozwala elementom niestandardowym ujawniać własne pseudoklasy. Składnia została teraz określona w CSSWG, a Chrome 125 obsługuje nową składnię :state(foo)
. W ramach tej zmiany pojawi się okno, w którym Chrome będzie obsługiwać zarówno starą, jak i nową składnię (:--foo
), aby witryny mogły przełączać się na nową.
Wpis ChromeStatus.com | Specyfikacja
Usuń nieciągłość kolorów Oklab i Oklch z jasnością równą 100% lub 0
Przed tą zmianą wszystkie kolory Laboratorium, LCH, Oklab i Oklch o jasności 100% były renderowane jako białe, niezależnie od pozostałych 2 parametrów. Wszystkie kolory w tych przestrzeniach z wartością jasności 0 zostały wyrenderowane jako czarne. Te 2 mapowania spowodowały nieciągłości w gradientach i były nieoczekiwane dla programistów.
Po przywróceniu kolory te nie są już sztucznie mapowane, a wyświetlany kolor jest ciągły z bliskimi kolorami i zależy od mapowania gamy wyświetlacza.
Wpis na ChromeStatus.com | Specyfikacja
Użyte główne paski przewijania schematu kolorów
Jeśli wartość „schematów kolorów obsługiwanych strony” jest „normalna” lub nie została określona, a obliczona wartość color-scheme
elementu głównego wynosi normal
, przeglądarka korzysta ze schematu kolorów preferowanego użytkownika do renderowania pasków przewijania widocznego obszaru. Paski przewijania w widocznym obszarze można uznać za
poza treścią internetową. Dlatego też, jeśli programista nie określił wyraźnie obsługi schematów kolorów, klienty użytkownika podczas renderowania pasków przewijania widocznego obszaru powinny uwzględniać preferowany schemat kolorów użytkownika.
Ta zmiana nie uniemożliwia programistom kontrolowania schematu kolorów pasków przewijania. Dzięki temu przeglądarka korzysta z preferowanego przez użytkownika schematu kolorów do renderowania nienakładanych pasków przewijania widocznego obszaru tylko wtedy, gdy programista nie określił schematu kolorów elementu głównego.
title | Błąd śledzenia nr 40259909 | Wpis na ChromeStatus.com | Specyfikacja
view-transitions
zajęcia
Dostępna jest nowa właściwość CSS view-transition-class
, która umożliwia określenie co najmniej jednej klasy przejścia widoku. Dzięki nim możesz wybrać pseudoelementy ViewTransition
, na przykład ::view-transition-group(*.class)
.
Jest to rozszerzenie interfejsu ViewMove API, które upraszcza stylizowanie pseudoelementów przejścia widoku w podobny sposób, w jaki klasy CSS upraszczają styl zwykłych elementów DOM.
Śledzenie błędu nr 41492972 | Wpis na ChromeStatus.com | Specyfikacja
Wczytuję
Akceptuj adresy URL HTTP i HTTPS podczas tworzenia protokołu WebSocket
Ta aktualizacja włącza schematy HTTP i HTTPS w konstruktorze WebSocket, dzięki czemu deweloperzy mogą używać względnych adresów URL. Są one znormalizowane do schematów wewnętrznych ws:
i wss:
.
Śledzenie błędu #325979102 | Wpis na ChromeStatus.com | Specyfikacja
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.
Compute Pressure API
Compute Pressure API udostępnia stany wysokiego poziomu, które reprezentują obciążenie procesora w systemie. Umożliwia wdrożenie z użyciem odpowiednich podstawowych wskaźników sprzętowych, aby użytkownicy mogli korzystać z całej dostępnej mocy obliczeniowej, o ile system nie jest podatny na stres.
Za projektowaniem i wdrażaniem tego interfejsu API odpowiadała firma Intel, dzięki której aplikacje do rozmów wideo dynamicznie równoważą funkcje i wydajność.
Compute Pressure API | Błąd śledzenia nr 40683064 | Wpis na ChromeStatus.com | Specyfikacja
Rozszerzenie interfejsu Storage Access API (SAA) na pamięć masową inną niż pliki cookie
Spowoduje to uruchomienie proponowanego rozszerzenia interfejsu Storage Access API (zgodnego wstecznie, które jest w trakcie testowania origin), które umożliwia dostęp do plików cookie i innych plików cookie w kontekście osób trzecich. Obecny interfejs API zapewnia dostęp tylko do plików cookie, które mają inne przypadki użycia niż pliki cookie.
Śledzenie błędu nr 40282415 | Wpis na ChromeStatus.com | Specyfikacja
Wymagania CORS FedCM dotyczące punktu końcowego potwierdzenia identyfikatora
Trudno uzasadnić pobieranie danych przez interfejs FedCM API ze względu na wymagane właściwości. Chociaż toczy się dyskusja na temat punktu końcowego kont, panuje też w dużej mierze zgoda, że punkt końcowy potwierdzenia identyfikatora powinien używać CORS. Ta aktualizacja ściśle dopasowuje właściwości zabezpieczeń tego pobierania do innych operacji pobierania na platformie internetowej.
Aktualizacje FedCM: wersja próbna interfejsu API trybu przycisku, CORS i SameSite | Błąd śledzenia nr 40284123 | Wpis na ChromeStatus.com
Żądanie z danymi uwierzytelniającymi FedCM nie wysyła już pliku cookie SameSite=Strict
FedCM wysyła teraz żądania potwierdzenia identyfikatora za pomocą CORS. Ta zmiana oznacza, że Chrome nie będzie już wysyłać plików cookie SameSite=Strict
do punktu końcowego potwierdzenia identyfikatora, chociaż Chrome nadal będzie wysyłać plik SameSite=None
. Wysyłanie innego zestawu plików cookie do punktu końcowego konta i do punktu końcowego potwierdzenia identyfikatora nie ma sensu, więc ta zmiana sprawia, że są one spójne.
Niewysyłanie plików cookie SameSite=Strict
jest też zgodne z działaniem requestStorageAccess
i ogólnie z żądaniami z innych witryn.
Śledzenie błędu #329145816 | Wpis na ChromeStatus.com | Specyfikacja
Domyślne działanie interoperacyjności przesuwania myszą
W Chrome można było anulować zdarzenia ruchu kursora myszy, aby zapobiec korzystaniu z innych interfejsów API, takich jak zaznaczanie tekstu (a nawet przeciąganie i upuszczanie elementów w przeszłości). Nie pasuje do innych popularnych przeglądarek ani specyfikacji zdarzeń interfejsu. Teraz zaznaczanie tekstu nie będzie już domyślnym działaniem polegającym na przesuwaniu myszą. Zaznaczanie tekstu oraz przeciąganie i upuszczanie można nadal blokować przez anulowanie zdarzeń selectstart
i dragstart
.
Ta funkcja będzie wdrażana stopniowo od wersji Chrome 125. Przewidujemy, że będzie ona dostępna dla wszystkich użytkowników do wersji Chrome 126.
Prezentacja | Śledzenie błędu nr 40078978 | Wpis na ChromeStatus.com | Specyfikacja
Modyfikatory wyrażeń regularnych
Modyfikatory wyrażeń regularnych dodają możliwość lokalnego modyfikowania flag i
, m
i s
wewnątrz wzorca.
Aby włączyć flagę dla podwyrażenia, użyj (?X:subexpr)
, gdzie X
to jedna z wartości i
, m
lub s
. Aby wyłączyć flagę dla podwyrażenia, użyj (-X:subexpr)
.
Na przykład w przypadku flagi i
bez rozróżniania wielkości liter:
const re1 = /^[a-z](?-i:[a-z])$/i;
re1.test("ab"); // true
re1.test("Ab"); // true
re1.test("aB"); // false
const re2 = /^(?i:[a-z])[a-z]$/;
re2.test("ab"); // true
re2.test("Ab"); // true
re2.test("aB"); // false
Wpis na ChromeStatus.com | Specyfikacja
Zduplikowane nazwy grup przechwytywania wyrażeń regularnych
Zduplikowane nazwane grupy przechwytywania umożliwiają używanie tej samej nazwy grupy przechwytywania w różnych alternatywach. Przykład
const re = /(?<year>[0-9]{4})-[0-9]{2}|[0-9]{2}-(?<year>[0-9]{4})/;
W tym przypadku zasada year
obowiązuje w przypadku pierwszej opcji ((?<year>[0-9]{4})-[0-9]{2}
) lub drugiej ([0-9]{2}-(?<year>[0-9]{4})
).
Wpis na ChromeStatus.com | Specyfikacja
Aplikacje Chrome
Direct Sockets API w aplikacjach Chrome
Ta aktualizacja ułatwia przeniesienie wyspecjalizowanych aplikacji z aplikacji Chrome do izolowanych aplikacji internetowych przez włączenie bezpośrednich gniazd w aplikacjach Chrome, co pozwala aplikacjom internetowym nawiązywać komunikację bezpośrednio przy użyciu protokołu kontroli transmisji (TCP) i protokołu datagramu użytkownika (UDP) z urządzeniami sieciowymi i systemami.
Wpis na ChromeStatus.com | Specyfikacja
Nowe wersje próbne origin
Interfejs FedCM Button Mode API i Use Other Account API
Ta wersja próbna origin obejmuje 2 opisane poniżej interfejsy API FedCM.
Interfejs Button Mode API pozwala witrynom wywoływać FedCM przez kliknięcie przycisku, na przykład po kliknięciu przycisku Zaloguj się w dostawcy tożsamości. Oznacza to, że FedCM musi gwarantować, że odpowiada zawsze z widocznym interfejsem, a nie w trybie widżetu, który nie wyświetla interfejsu po wylogowaniu się użytkownika. Wywołanie interfejsu FedCM API w trybie przycisku powoduje, że użytkownicy są zalogowani w dostawcy tożsamości (w oknie).
Poza tym tryb przycisku jest wywoływany w ramach wyraźnego gestu użytkownika, dlatego interfejs użytkownika może być bardziej widoczny (np. wyśrodkowany i modalny) niż interfejs z trybu widżetu (który nie ma takiego wyraźnego zamiaru). Więcej informacji o tym, jak działa interfejs Button Mode API, znajdziesz w artykule o aktualizacjach FedCM: test origin interfejsu Button Mode API, CORS i SameSite.
Interfejs Use Other Account API umożliwia dostawcy tożsamości zezwalanie użytkownikom na logowanie się na inne konta.
Wersja próbna origin | Demonstracja | Błąd śledzenia nr 40284792 | Wpis na ChromeStatus.com | Specyfikacja
Składane interfejsy API
Ta wersja próbna origin obejmuje interfejsy Device Posture API i Viewport Profiles Enumeration API. Te interfejsy API powstały po to, by pomóc programistom w kierowaniu reklam na urządzenia składane.
Wersja próbna origin | Testowanie origin dla składanych interfejsów API | Wpis na ChromeStatus.com | Specyfikacja
Próba wycofania właściwości i metod pełnego ekranu HTMLVideoElement z prefiksem
Jeśli potrzebujesz więcej czasu na dostosowanie kodu, ten okres próbny wycofywania pozwala ponownie włączyć obsługę właściwości i metod HTMLVideoElement z przedrostkiem.
Wersja próbna origin | Wpis na ChromeStatus.com
Pomiń skanowanie wstępnego wczytywania
Pomija skaner wstępnego wczytywania w celu zbadania spadków wydajności w przypadku stron bez pobierania zasobów podrzędnych.
Ten krok skanera wstępnego ładowania poprawia wydajność stron z pobieraniem zasobów podrzędnych przez wdrożenie spekulatywnego pobierania z wyprzedzeniem. Jednak w przypadku stron, na których ten krok nie jest korzystny, czyli w przypadku stron bez zasobów podrzędnych, jest to dodatkowy nakład pracy przy minimalnym wkładzie pracy.
Zaawansowani użytkownicy internetu, którzy chcą ograniczyć to nakłady pracy, mogą w tym celu skorzystać z funkcji na poziomie strony, która umożliwia wyłączenie skanera wstępnego wczytywania. Dane zebrane w ramach tego eksperymentu pomogłyby nam ocenić, czy pomocny byłby zmodyfikowany interfejs API lub inne wdrożenie skanera wstępnego wczytywania HTML.
Wersja próbna origin | Śledzenie błędu nr 330802493 | Wpis na ChromeStatus.com | Dane
Elementy wycofane i usunięte
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.
title | Błąd śledzenia nr 40842072 | Wpis na ChromeStatus.com | Specyfikacja
Usunięcie zasady Enterprise: NewBaseUrlInheritanceBehaviorAllowed
Podstawowa zmiana w kodzie (włączenie nowego podstawowego dziedziczenia adresów URL), którą zastępowanie tej zasady firmy jest włączona, została włączona w stabilnych wersjach od sierpnia 2023 r. (Chrome 118). Ponieważ rozwiązaliśmy znane problemy, ta zasada przedsiębiorstwa została usunięta w Chrome 125.
Usunięcie właściwości i metod pełnego ekranu HTMLVideoElement z prefiksem
Pełnoekranowe interfejsy API z prefiksem HTMLVideoElement
zostały wycofane z Chrome 38. Została ona zastąpiona przez wersję Element.requestFullscreen()
, która w 2018 r. została udostępniona bez prefiksu w Chrome 71.
Poniższe właściwości i metody zostaną usunięte z elementu HTMLVideoElement:
webkitSupportsFullscreen
webkitDisplayingFullscreen
webkitEnterFullscreen()
webkitExitFullscreen()
webkitEnterFullScreen()
(zwróć uwagę na inną wielkość liter w literach „S” na pełnym ekranie)webkitExitFullScreen()
Zarejestruj się, by skorzystać z okresu próbnego wycofania opisanego w tym poście, jeśli są one nadal używane w Twojej witrynie i potrzebujesz więcej czasu na zaktualizowanie kodu.
Więcej informacji
Chcesz więcej? Zapoznaj się z dodatkowymi materiałami.
- Nowości w Chrome 125
- Nowości w Narzędziach deweloperskich w Chrome 125
- Aktualizacje ChromeStatus.com w Chrome 125
- Kalendarz wydań Chrome
- Planowane wycofanie
- Nadchodzące operacje usunięcia