Chrome 125

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.

Wpis na ChromeStatus.com

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

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

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.

Wpis na ChromeStatus.com

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.

Wpis na ChromeStatus.com

Więcej informacji

Chcesz więcej? Zapoznaj się z dodatkowymi materiałami.

Pobierz Google Chrome

Pobierz Chrome na Androida, komputera lub iOS.