Firma Google opublikowała wydanie przeglądarki internetowej Chrome 122. Jednocześnie dostępne jest stabilne wydanie otwartego projektu Chromium, który stanowi podstawę Chrome. Przeglądarka Chrome różni się od Chromium użyciem logo Google, systemem wysyłania powiadomień w przypadku awarii, modułami do odtwarzania treści wideo chronionych przed kopiowaniem (DRM), systemem automatycznej instalacji aktualizacji, stałym włączaniem izolacji w trybie Sandbox, dostarczaniem kluczy do Google API oraz przesyłaniem parametrów RLZ podczas wyszukiwania. Dla tych, którzy potrzebują więcej czasu na aktualizację, oddzielnie wspierana jest gałąź Extended Stable, utrzymywana przez 8 tygodni. Kolejne wydanie Chrome 123 zaplanowane jest na 19 marca.
Główne zmiany w Chrome 122:
- Zgodnie z wymogami europejskiego prawa DMA (Digital Markets Act) do przeglądarki dodano ekran wyboru wyszukiwarki, która będzie używana domyślnie. Do wyboru są wyszukiwarki dostępne w sekcji ustawień „chrome://settings/search”. Wyszukiwarki na liście wyświetlane są w losowej kolejności.

- Na stronę „chrome://settings/security” dodano ustawienie, które pozwala wyłączyć optymalizatory JIT w silniku JavaScript V8. Wyłączenie JIT może być przydatne dla zwiększenia bezpieczeństwa podczas pracy z potencjalnie niebezpiecznymi aplikacjami internetowymi poprzez ograniczenie możliwych wektorów ataków.

- W wersji na Androida dodano funkcję głośnego czytania tekstu znajdującego się na stronie internetowej. Tryb czytania można włączyć w rozwijanym menu i obsługiwać za pomocą standardowych przycisków sterujących odtwarzaniem. Funkcja ta korzysta z zewnętrznego serwisu i przesyła link do serwery Google, który zapewnia syntezę mowy.
- Trwa testowanie eksperymentalnych funkcjonalności wykorzystujących uczenie maszynowe — trybu inteligentnego grupowania kart, generatora motywów oraz interaktywnego asystenta, o których wspomniano w zapowiedzi wydania Chrome 121.
- W trybie ochrony przeglądarki (Bezpieczne przeglądanie) wprowadzono asynchroniczne zewnętrzne kontrole, które nie blokują ładowania sprawdzanej strony. Kontrole lokalnych list nadal odbywają się w trybie synchronicznym, a strona nie jest wyświetlana do momentu ich zakończenia, aby chronić użytkownika przed korzystaniem z exploitów. Jeśli chodzi o phishing, mało prawdopodobne jest, aby użytkownik zdążył zareagować na stronę przed zakończeniem zewnętrznej kontroli i wyświetleniem ostrzeżenia.
- Przerobiono tekst ostrzeżeń, które są wyświetlane podczas próby pobierania złośliwych plików oraz dla już pobranych plików w menedżerze pobierania.

- Rozpoczął się stopniowy proces ignorowania obsługi zdarzeń «unload», co uniemożliwia efektywne wykorzystanie pamięci podręcznej przejścia (BFCache — pamięć podręczna powrotu i przyszłości), zapewniającej natychmiastowe przejście przy użyciu przycisków «Wstecz» i «Dalej» lub podczas nawigacji po wcześniej przeglądanych stronach bieżącej witryny. Zachowanie stacjonarnego Chrome będzie zbliżone do przeglądarek mobilnych, które w większości przypadków nie generują zdarzenia «unload», priorytetowo traktując pamiętanie przejść. W Chrome 122 obsługa zdarzenia «unload» jest wyłączona dla 1% użytkowników.
- W systemie automatycznego uzupełniania danych płatniczych dodano możliwość zapisywania kodów weryfikacji tożsamości (CVV/CVC) dla kart lokalnych i serwerowych. Kody są zapisywane po wyświetleniu ostrzeżenia i wyraźnej zgodzie użytkownika.
- Dodano API Storage Buckets, które zapewniają dodatkowe możliwości zarządzania stałym przechowywaniem danych na lokalnym systemie użytkownika. Nowe API pozwala na organizowanie przechowywania danych, dzieląc magazyn na osobne segmenty, powiązane z API IndexedDB i CacheStorage. Segmenty są usuwane przez przeglądarkę niezależnie od siebie, a użytkownik ma możliwość określenia priorytetów, które decydują o tym, które segmenty należy usunąć w pierwszej kolejności. Taki sposób organizacji pozwala na przechowywanie ważnych danych w segmentach o wysokim priorytecie, a drugorzędnych, których utrata nie będzie miała dużego znaczenia, w segmentach o niskim priorytecie. W ten sposób rozwiązuje się problem utraty ważnych danych w przypadku przekroczenia dostępnych limitów rozmiaru pamięci, dostarczanej przez API IndexedDB i localStorage.
- W API Async Clipboard do metody read() dodano opcję „unsanitized”, stosowaną podczas kopiowania i wklejania z bufu schowka. W przypadku ustawienia tej opcji aplikacja otrzymuje niezmienioną treść kodu HTML z danych z bufora schowka, bez oczyszczania, normalizacji i zamiany niebezpiecznych konstrukcji (np. treść bloku „” nie jest przetwarzana).
- Zapytania CSS „@container” nie będą teraz działać przy użyciu nieobsługiwanych możliwości; na przykład zapytanie „@container (width > 0px) or (unknown) {}” nie zadziała z powodu wyrażenia „unknown”.
- W CSS dozwolone jest definiowanie warunków w regułach importu „@import … supports(…)”. Jeśli sprawdzanie nie przechodzi, import nie jest wykonywany. Na przykład, aby załadować style w przypadku ustawienia wartości „animation-timeline” na „auto”, można określić ‘scroll-driven-animations.css’ @import „scroll-driven-animations.css” supports(animation-timeline: auto);.
- W CSS zmieniono i dostosowano logikę przetwarzania pseudo-elementu „::backdrop” do wymagań zaktualizowanej specyfikacji, który teraz dziedziczy z elementu źródłowego (wcześniej „::backdrop” nie dziedziczył wartości z innych elementów, co uniemożliwiało dostęp do właściwości określonych w elemencie głównym).
- Działanie metody dataTransfer.clearData() ograniczone jest tylko do obiektów tekstowych, tzn. metoda ta nie może być już stosowana do obiektów pliku File.
- W WebGL dodano funkcję drawingBufferStorage, która umożliwia konfigurację formatu pikseli dla bufora rysowania, co pozwala na bezpośrednie wyprowadzenie zawartości z większą niż 8-bitową głębią kolorów i unikanie zbędnych operacji kopiowania wymaganych do konwersji na domyślny format pikseli.
- Wprowadzono ulepszenia w narzędziach dla programistów webowych. Dodano wsparcie dla zmiany kolorystyki i dostosowania stylu do motywu wybranego w przeglądarce.

Rozszerzono możliwości panelu analizy wydajności, w którym na osi czasu dodano wsparcie dla zapisywania zakresów przebiegu (segmentów na osi czasu) i przełączania między nimi.
Na głównym torze (Performance > Main) dodano wyświetlanie inicjatorów zdarzeń oraz ich wizualne połączenia z wywoływanymi zdarzeniami.

W panelu analizy aktywności sieciowej w kolumnie ze stanem wykonania zapytań pokazano przyczyny awarii. Przeprojektowano menu kontekstowe do kopiowania linku lub zawartości zapytania.

Poza nowościami i poprawkami w nowej wersji wyeliminowano 12 luk bezpieczeństwa. Wiele z luk zostało zidentyfikowanych w wyniku automatycznego testowania narzędziami AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer i AFL. Nie wykryto krytycznych problemów, które pozwalałyby na obejście wszystkich poziomów ochrony przeglądarki i uruchomienie kodu w systemie poza środowiskiem sandbox. W ramach programu wypłaty nagród za wykryte luki w bieżącej wersji firma Google wypłaciła 8 nagród na łączną kwotę 28 tysięcy dolarów amerykańskich (po jednej nagrodzie w wysokości 8000, 7000, 5000, 3000 i 2000 oraz trzy nagrody po 1000 dolarów). Największe nagrody przyznano za błąd w implementacji izolacji stron, wykrycie przepełnienia bufora w silniku Blink oraz odwołanie do już zwolnionej pamięci (Use-after-free) w bibliotece Mojo.
Źródło: opennet.ru






