Firma Google opublikowała wydanie przeglądarki internetowej Chrome 139. Jednocześnie dostępna jest stabilna wersja wolnego projektu Chromium, będącego podstawą Chrome. Przeglądarka Chrome różni się od Chromium wykorzystaniem logo Google, systemem wysyłania powiadomień w przypadku awarii, modułami do odtwarzania zabezpieczonego materiału wideo (DRM), automatycznym instalowaniem aktualizacji, zawsze włączoną izolacją Sandbox, dostarczaniem kluczy do Google API i przekazywaniem parametrów RLZ w wyszukiwarce. Dla tych, którzy potrzebują więcej czasu na aktualizacje, osobno wspierana jest gałąź Extended Stable, która jest wspierana przez 8 tygodni. Następne wydanie Chrome 140 planowane jest na 2 września.
Główne zmiany w Chrome 139:
- Dodano możliwość korzystania z modelu AI do generowania rekomendacji wyszukiwania w pasku adresu i na stronie otwierania nowej karty. Aby wyświetlić takie rekomendacje AI w pasku adresu, dodano przycisk „Tryb AI”, a w liście rekomendacji wyniki z AI są oznaczone lub wyróżnione w osobnej sekcji. Możliwość ta jest tymczasowo aktywna domyślnie tylko dla niektórych użytkowników.

- W systemach zarządzanych centralnie rozszerzono możliwości tworzenia własnych skrótów wyszukiwania przez pasek adresu (można stworzyć skrót „@nazwa” do wyszukiwania na określonej stronie). W nowej wersji dodano dodatkowe ustawienie, które pozwala na pozwolenie użytkownikowi na nadpisywanie, usuwanie lub wyłączanie skrótów określonych przez administratora.
- W wersji na Androida w trybach standardowym i rozszerzonym systemu Google Safe Browsing wprowadzono sprawdzanie bezpieczeństwa pobieranych pakietów APK. Kontrola przeprowadzana jest za pomocą łącza do serwerów Google. W przypadku uznania pliku za niebezpieczny, użytkownik otrzymuje odpowiednie ostrzeżenie, a dostęp do pliku jest zablokowany (w interfejsie przewidziano osobną możliwość uzyskania dostępu do zablokowanych plików).

- Usunięto ustawienie ExtensionManifestV2Availability, które umożliwiało przywrócenie wsparcia dla drugiej wersji manifestu Chrome, określającego możliwości i zasoby dostępne dla rozszerzeń napisanych przy użyciu API WebExtensions. W przeglądarce możliwe jest teraz używanie tylko rozszerzeń opartych na trzeciej wersji manifestu.
- W stabilnych, oficjalnych wersjach Chrome zaprzestano wspierania opcji wiersza poleceń „—extensions-on-chrome-urls” i „—disable-extensions-except”, które pozwalały na wyłączenie blokady instalacji ryzykownych dodatków, na przykład zainstalowanych w przeglądarce bez zgody użytkownika. W Chromium i testowych wersjach Chrome wsparcie dla tych opcji nadal jest dostępne.
- Na stronie otwierania nowej karty wprowadzono dolny pasek, na którym wyświetlane są informacje o dodatkach wpływających na zawartość strony nowej karty oraz szczegóły dotyczące stosowanych polityk centralnego zarządzania.

- Dodano ochronę przed przypadkowym usunięciem zapisanych haseł podczas wybierania operacji pełnego usunięcia danych. W przypadku posiadania zapisanych haseł przeglądarka teraz przekierowuje użytkownika na stronę menedżera haseł, gdzie można zrozumiale i osobno usunąć hasła oraz klucze passkey.

- Wyłączono możliwość automatycznego powrotu do korzystania z systemu programowego renderowania SwiftShader dla WebGL, który programowo implementuje API Vulkan. W przypadku braku odpowiedniego backendu opartego na GPU, tworzenie kontekstu WebGL teraz zakończy się błędem, a nie przełączeniem na SwiftShader. Zakończenie korzystania ze SwiftShader zwiększy bezpieczeństwo, ponieważ wyeliminuje wykonywanie kodu generowanego przez kompilator JIT w procesie odpowiedzialnym za interakcję z GPU. Na platformach Linux i macOS systemy bez GPU już nie będą mogły korzystać z WebGL. W systemie Windows wsparcie dla SwiftShader pozostawiono tylko dla urządzeń bez GPU lub z problematycznymi GPU, które zostały dodane do czarnej listy.
- W wbudowanym magazynie głównych certyfikatów (Chrome Root Store) zakończono uznawanie zaufania do centrów certyfikacji Chunghwa Telecom i Netlock z powodu naruszeń wymagań dotyczących centrów certyfikacji. W związku z brakiem działań mających na celu usunięcie wykrytych wad, certyfikaty TLS wydane przez Chunghwa Telecom i Netlock po 31 lipca 2025 roku będą teraz postrzegane w Chrome jako niewiarygodne. Certyfikaty wydane przed 31 lipca nadal będą uznawane za normalne.
- W API Web Speech dodano wsparcie dla rozpoznawania mowy, wykorzystując lokalnie dostępne na urządzeniu silniki. Strona może sprawdzić obecność silników rozpoznawania dla danego języka, wybrać pomiędzy lokalnymi a chmurowymi usługami, poprosić o instalację niezbędnych zasobów do lokalnego rozpoznawania oraz upewnić się, że rozpoznawanie będzie wykonywane na urządzeniu użytkownika bez przesyłania danych do zewnętrznych usług.
- W CSS, oprócz określania promienia zaokrąglenia za pomocą właściwości border-radius, wprowadzono właściwość „corner-shape” do zarządzania kształtem i krzywizną rogów prostokątnych elementów. Na przykład, za pomocą „corner-shape” można tworzyć płynne przejścia od kwadratu do koła (squircle), wklęsłe rogi (scoop), ściąć fazę (bevel) oraz robić wycięcia (notch), a także animować zmianę kształtu rogów.
- Dodano wsparcie dla specyfikacji Custom Functions, umożliwiającej tworzenie własnych funkcji dla CSS, działających na podobieństwo własnych parametryzowanych właściwości CSS. Różnica sprowadza się do tego, że właściwości CSS mogą zwracać tylko jedną stałą wartość, natomiast funkcje CSS mogą zwracać wartości na podstawie innych własnych właściwości CSS, parametrów i warunków. Aby zdefiniować funkcje CSS, dodano regułę „@function”. @function —negative(—value) { result: calc(-1 * var(—value)); } @function —shadow(—shadow-color <color> : inherit) { result: 2px 2px var(—shadow-color, black); }
- Dodano właściwość CSS „caret-animation”, umożliwiającą zarządzanie animacją zmiany wskaźnika w polach wejściowych (na przykład, miganie wskaźnika można zastąpić własną animacją).
- W celu przestrzegania specyfikacji i poprawienia zgodności z innymi przeglądarkami dodano właściwość CSS „font-width”, podobną do wcześniej dostępnej właściwości „font-stretch”.
- Przy zablokowaniu Service Workera z powodu zastosowania zasad CSP (Content Security Policy) teraz w trybie asynchronicznym wysyłane jest wydarzenie „error”, zamiast generowania wyjątku SecurityError natychmiast po wywołaniu konstruktora „new Worker(url)” lub „new SharedWorker(url)”.
- Umożliwiono tworzenie jednego web-aplikacji działającej z wieloma domenami najwyższego poziomu lub różnymi poddomenami. Aby skonfigurować powiązania z domenami, w manifeście przewidziano pole „scope_extensions”. { „name”: „Example”, „display”: „standalone”, „start_url”: „/index.html”, „scope_extensions”: [ { „origin”: „https://*.example.com” }, { „origin”: „https://example.co.uk” }, { „origin”: „https://*.example.co.uk” } ] }
- Zrealizowano określenie wszystkich poprawnych typów MIME dla danych JSON, zaznaczonych w specyfikacji WHATWG MIME Sniffing. Oprócz tradycyjnych typów MIME „application/json” i „text/json” dodano wsparcie dla złożonych typów MIME, takich jak „text/html+json” i „image/svg+json”.
- W API Invoker Commands dodano komendę „request-close” do wymuszonego zamykania dialogu opartego na elemencie HTML
- W WebGPU dodano wsparcie dla tekstur 3D, skompresowanych przy użyciu formatów BC i ASTC. Dodano również eksperymentalny (Origin Trial) tryb zapewniający zgodność, oferujący ograniczone API WebGPU, przystosowane do pracy z przestarzałymi API graficznymi, takimi jak OpenGL i Direct3D11.
- Dla elementów SVG (SVGScriptElement) dodano wsparcie dla atrybutu „async” do wykonywania skryptów w trybie asynchronicznym.
- Aby utrudnić pasywną identyfikację instancji przeglądarki, w nagłówku HTTP Accept-Language będą teraz wymieniane nie wszystkie wybrane przez użytkownika języki, a jedynie języki o najwyższym priorytecie.
- Dodano eksperymentalne (Origin Trials) API Prompt, oferujące wywołania do interakcji z dużymi modelami językowymi, pozwalające wykorzystać w zapytaniach tekst, obrazy i dźwięk. Wynik zwracany jest w łatwym do analizy formacie strukturalnym. Wśród przykładów użycia wymieniane są generacja opisów obrazów, wyszukiwanie wizualne, transkrypcja mowy, klasyfikacja dźwięków, generowanie tekstu na podstawie instrukcji oraz wydobywanie informacji z tekstu.
- W narzędziach dla twórców webowych prowadzono prace nad eliminowaniem znanych problemów z funkcjonalnością i niedociągnięciami w interfejsie użytkownika. Dzięki podjętym działaniom liczba otwartych powiadomień o problemach została zmniejszona o 27%. Wbudowany asystent AI zyskał wsparcie dla przesyłania dowolnych obrazów. W panelu inspekcji sieci wprowadzono możliwość dodawania kolumn do wyświetlania stanu dowolnych nagłówków HTTP.

- Wsparcie dla systemu operacyjnego macOS 11 zostało zakończone, teraz wymagana jest przynajmniej wersja macOS 12.
- W wersji na Androida zakończono wsparcie dla platform Android 8 (Oreo) i Android 9 (Pie).
Oprócz nowości i poprawek w nowej wersji usunięto 12 luk w zabezpieczeniach. Wiele z nich wykryto w wyniku automatycznych testów przeprowadzonych narzędziami AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer i AFL. Nie wykryto krytycznych problemów, które umożliwiają obejście wszystkich poziomów ochrony przeglądarki i wykonanie kodu w systemie poza środowiskiem piaskownicy. W ramach programu nagród za wykrywanie luk w zabezpieczeniach, w obecnym wydaniu firma Google wypłaciła 8 nagród o łącznej wartości 18500 dolarów (jedna nagroda 10000 dolarów, trzy po 2000 dolarów, dwie po 1000 dolarów i jedna 500 dolarów). Wysokość jednej nagrody nie została jeszcze określona.
Dodatkowo warto wspomnieć o wprowadzeniu do kodu, na podstawie którego powstaje wydanie Chrome 140, trybu OverrideDefaultOzonePlatformHintToAuto, aktywującego automatyczny wybór backendu w warstwie Ozone, która abstrahuje interakcję z systemem graficznym. Zmiana ta umożliwi adaptacyjne aktywowanie backendu Wayland na systemach wspierających Wayland, bez domyślnego powiązania z backendem X11. Ręczne włączenie automatycznego wyboru backendu jest możliwe także w wydaniu Chrome 139 za pomocą ustawienia „chrome://flags/#ozone-platform-hint” lub flagi wiersza poleceń „—ozone-platform-hint=auto”.
Źródło: opennet.ru





