Firma Google opublikowała wydanie przeglądarki internetowej Chrome 137. Jednocześnie dostępna jest stabilna wersja wolnego projektu Chromium, na którym oparty jest Chrome. Przeglądarka Chrome różni się od Chromium używaniem logo Google, posiadaniem systemu powiadomień w przypadku awarii, modułami do odtwarzania chronionych treści wideo (DRM), systemem automatycznego instalowania aktualizacji, ciągłym włączonym trybem izolacji Sandbox, dostarczaniem kluczy do Google API oraz przesyłaniem parametrów RLZ podczas wyszukiwania. Dla tych, którzy potrzebują więcej czasu na aktualizację, osobno wspierana jest gałąź Extended Stable z 8-tygodniowym wsparciem. Następne wydanie Chrome 138 zaplanowane jest na 24 czerwca.
Główne zmiany w Chrome 137:
- Do wersji dla systemów Windows i macOS zintegrowano chatbota Gemini, który może wyjaśniać treść przeglądanej strony i odpowiadać na związane z nią pytania bez przełączania się na inną kartę. Obsługiwane jest interakcja tekstowa i głosowa z Gemini. Praca z chatbotem jest na razie dostępna tylko dla części użytkowników z USA, posiadających subskrypcje Google AI Pro i Ultra.
- Na wzór wcześniej wprowadzonego segmentowania magazynu, zapewniono izolację przetwarzania schematu URL „blob:”, przeznaczonego do dostępu do lokalnie generowanych danych przez API Blob lub File. Przy segmentowaniu do klucza, używanego do wyodrębniania obiektów, dołączany jest osobny znacznik, który określa powiązanie z podstawowym domeny, z którego otwarta jest strona główna, co pozwala blokować metody śledzenia zachowań użytkownika między stronami za pomocą manipulacji URL „blob:.
- W trybie rozszerzonej ochrony przeglądarki (Safe Browsing > Enhanced protection) włączona została możliwość używania dużego modelu językowego do określania podejrzanych stron na podstawie ich treści. Model AI działa po stronie klienta, ale w przypadku wykrycia podejrzenia co do wątpliwej treści, przeprowadzana jest dodatkowa kontrola na serwerach Google. W bieżącej wersji gromadzone są tylko informacje o problematycznych stronach. W następnym wydaniu planowane jest wprowadzenie ostrzeżeń dla użytkownika.
- Włączona została ochrona przed ukrytą identyfikacją użytkowników za pomocą pamięci podręcznej HSTS (HTTP Strict Transport Security). HSTS pozwala stronom podczas logowania przez HTTP przekierować użytkownika na HTTPS. W trakcie działania nazwa hosta ustawiona przez HSTS jest przechowywana w wewnętrznej pamięci podręcznej, co umożliwia wykorzystanie obecności lub braku hosta w pamięci podręcznej do przechowywania jednego bitu informacji. Do ukrytego przechowywania 32-bitowego identyfikatora użytkownika można wykorzystać tablicę 32 obrazów, przesyłanych z różnych hostów przez HTTP (http://bit0.example.com/image.jpg, http://bit1.example.com/image.jpg itp.). Identyfikator jest określany poprzez sprawdzanie, z jakich hostów obrazy zostały załadowane przez HTTPS, a z jakich przez HTTP (jeśli obrazy wcześniej były przesyłane przez HTTP i poprzez HSTS przekierowane na HTTPS, to przy kolejnych żądaniach będą od razu ładowane przez HTTPS, omijając zapytanie przez HTTP). Ochrona polega na zezwoleniu na aktualizację HSTS tylko dla zasobów najwyższego poziomu oraz zablokowaniu aktualizacji HSTS w żądaniach zasobów podrzędnych.
- Dla połączeń WebRTC zrealizowano wsparcie protokołu DTLS 1.3 (Datagram Transport Layer Security, odpowiednik TLS dla UDP). Wsparcie DTLS 1.3 jest niezbędne do wykorzystania algorytmów postkwantowego szyfrowania w WebRTC.
- Usunięto opcję wiersza poleceń „—load-extension”, pozwalającą na ładowanie dodatków. Opcja została wycofana w celu zmniejszenia ryzyka jej wykorzystania do wstawienia złośliwych dodatków. W celu wymuszenia załadowania rozpakowanych dodatków zaleca się użycie przycisku Load Unpacked na stronie zarządzania dodatkami (chrome://extensions/) po włączeniu trybu dewelopera. W Chromium i testowych wersjach Chrome For Testing wsparcie opcji „—load-extension” zostało zachowane.
- Postanowiono zrezygnować z automatycznego przełączania na użycie systemu oprogramowania renderującego SwiftShader dla WebGL, który realizuje interfejs API Vulkan. W przypadku braku odpowiedniego backendu opartego na GPU, tworzenie kontekstu WebGL teraz zwróci błąd, a nie przełączy się na SwiftShader. Zaprzestanie korzystania z SwiftShader zwiększy bezpieczeństwo przez wyeliminowanie wykonywania kodu generowanego przez kompilator JIT w procesie odpowiedzialnym za interakcję z GPU. Aby przywrócić użycie SwiftShader, przewidziano osobną opcję w wierszu poleceń: „—enable-unsafe-swiftshader”. W wersji Chrome 137 dla użytkowników platform Linux i macOS, przy użyciu SwiftShader, w konsoli webowej będzie wyświetlane ostrzeżenie, a w Chrome 138 wycofanie SwiftShader zostanie wyłączone. Dla użytkowników Windows system SwiftShader został zastąpiony wbudowanym w system Windows systemem oprogramowania renderującego WARP (Windows Advanced Rasterization Platform).
- Do ustawień dodano możliwość włączenia funkcji „Autofill with AI”, która ułatwia wypełnianie formularzy internetowych. Po włączeniu przeglądarka wykorzystuje model AI do zrozumienia formularza internetowego i automatycznego wypełnienia pól, opierając się na tym, jak wcześniej użytkownik wypełniał podobne formularze.
- W API Web Cryptography dodano wsparcie dla algorytmów kryptograficznych opartych na krzywej eliptycznej Curve25519, takich jak algorytm generowania podpisów cyfrowych Ed25519.
- Wprowadzono właściwość CSS „reading-flow”, która pozwala zarządzać kolejnością przetwarzania elementów w kontenerach flex, grid i blokowych podczas korzystania z czytników ekranu oraz w trakcie sekwencyjnej nawigacji. Dodano również właściwość „reading-order”, umożliwiającą ręczne nadpisywanie kolejności elementów.
- W CSS zaproponowano funkcję „if()”, która ma na celu wybór wartości w zależności od wyniku wykonywania wyrażeń warunkowych. Jako argument przekazywana jest lista par „warunek:wartość”, oddzielona średnikiem. Funkcja przeszukuje te pary i zatrzymuje się przy pierwszym spełnionym warunku. Na przykład: „background-color: if(style(—color: white): black; else: white);”.
- W właściwości CSS offset-path wprowadzono funkcję shape(), która pozwala na tworzenie kształtów za pomocą poleceń równoważnych funkcji path(), ale umożliwiających użycie standardowej składni CSS.
- Dodano API JSPI (JavaScript Promise Integration), które zapewnia integrację aplikacji WebAssembly z obiektem Promise w JavaScript i pozwala programom WebAssembly działać jako generatory Promise oraz współpracować z API opartym na Promise.
- W API CanvasRenderingContext2D, OffscreenCanvasRenderingContext2D i ImageData dodano wsparcie dla formatów pikseli wykorzystujących wartości zmiennoprzecinkowe do reprezentacji składników koloru.
- W trybie Origin trials oferowane są eksperymentalne API Rewriter i Writer, które umożliwiają przerabianie (np. skracanie treści lub zmianę stylu narracji) lub generowanie tekstu za pomocą dużych modeli językowych.
- Do narzędzi dla web-developerów dodano możliwość powiązania z przestrzeniami roboczymi, co pozwala na zapisywanie zmian dokonanych w plikach JavaScript, HTML i CSS podczas pracy z wbudowanymi narzędziami w przeglądarce. Rozszerzono możliwości asystenta AI, który może zmieniać CSS i analizować wydajność.
Oprócz nowości i poprawek błędów w nowej wersji usunięto 1 lukę. Wiele z luk wykryto 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 wykonanie kodu w systemie poza środowiskiem sandbox. W ramach programu nagród za odkrywanie luk w obecnym wydaniu firma Google wypłaciła 8 nagród o łącznej wartości 7500 dolarów (w tym jedną nagrodę w wysokości 4000 dolarów, 2000 dolarów, 1000 dolarów i 500 dolarów). Wysokość czterech nagród nie została jeszcze ustalona.
Źródło: opennet.ru
