Google opublikowało wersję przeglądarki internetowej Chrome 126. Jednocześnie dostępna jest stabilna wersja darmowego projektu Chromium, na którym opiera się przeglądarka Chrome. Przeglądarka Chrome różni się od Chromium wykorzystaniem logo Google, obecnością systemu wysyłania powiadomień w przypadku awarii, modułami do odtwarzania treści wideo chronionych przed kopiowaniem (DRM), systemem automatycznego instalowania aktualizacji, trwałym umożliwieniem izolacji Sandbox , dostarczając klucze do Google API i przesyłając parametry RLZ- podczas wyszukiwania. Dla tych, którzy potrzebują więcej czasu na aktualizację, dostępna jest osobno gałąź Extended Stable, po której następuje 8 tygodni. Następna wersja Chrome 127 zaplanowana jest na 23 lipca.
Kluczowe zmiany w Chrome 126:
- Wbudowana przeglądarka plików PDF integruje możliwość wyodrębnienia tekstu z dokumentu, wywoływaną poprzez opcję „Wyodrębnij tekst z pliku PDF” w menu kontekstowym. Mechanizm optycznego rozpoznawania znaków (OCR) oparty na uczeniu maszynowym służy do wyodrębniania tekstu ze zeskanowanych dokumentów, do których tekst został wstawiony jako obraz. Oczekuje się, że nowa funkcja ułatwi pracę z dokumentami PDF osobom mającym problemy ze wzrokiem i korzystającym z czytników ekranu. W przyszłości planowane jest wdrożenie rozpoznawania tekstu na obrazach wyświetlanych na stronach i na zrzutach ekranu. Silnik OCR jest domyślnie włączony dla 50% użytkowników, a reszta może go aktywować poprzez ustawienie „chrome://flags/#pdf-ocr”.

- Do strony konfiguratora z parametrami wydajnościowymi
(„Performance/Memory Saver” w sekcji chrome://settings/ Performance) dodał możliwość skonfigurowania poziomu agresywności korzystania z trybu Memory Saver, który zmniejsza zużycie pamięci RAM poprzez zwolnienie pamięci zajmowanej przez nieaktywne karty. Przykładowo wybierając poziom umiarkowany, przeglądarka wyładuje z pamięci mniej kart niż przy ustawieniu go na maksymalny. Ustawienie, które domyślnie jest dostępne tylko dla niektórych użytkowników, można aktywować za pomocą parametru „chrome://flags/#memory-saver-aggressiveness”.
- W przypadku niektórych użytkowników przeglądarka plików PDF domyślnie korzysta z nowej architektury OOPIF (out-of-process iframe), w której treść dokumentu jest przetwarzana w oddzielnym procesie. Nowa architektura eliminuje złożoność implementacji opartych na GuestView i ułatwia dodawanie nowych możliwości do przeglądarki plików PDF. Aby włączyć nową architekturę, możesz użyć ustawienia „chrome://flags/#pdf-oopif”.
- Dodano tryb reaktywnego pobierania wstępnego, który ładuje zasoby powiązane ze stroną podczas nawigacji, bez oczekiwania na ich faktyczne żądanie, co pozwala przyspieszyć otwieranie nowych stron. Aby przewidzieć zasoby, które mogą być potrzebne w przyszłości, wykorzystywana jest zewnętrzna usługa Google, która zwraca listę rekomendacji po przesłaniu jej adresów URL przeglądanych stron.
- Google Lens umożliwia teraz użytkownikom wyszukiwanie dowolnych obrazów lub tekstu widocznych na ekranie. Funkcję tę można włączyć za pomocą menu kontekstowego, wskaźnika na pasku adresu lub menu „⋮”. Użytkownicy mogą następnie wybrać interesujący ich obiekt na ekranie i uzyskać o nim informacje z Google Lens. Podczas wykonywania operacji na Serwer Google wysyła
zrzut ekranu. Funkcja jest obecnie domyślnie włączona dla 1% użytkowników. Za pomocą ustawienia „chrome://flags/#enable-lens-region-search-static-page” można włączyć lub wyłączyć obsługę Google Lens. - Podsumowano wyniki optymalizacji przyspieszających test Prędkościomierza 3 – wydajność Chrome w tym teście wzrosła o 72% na przestrzeni dwóch lat. Przykładowo przyspieszono pracę funkcji SpaceSplitString używanej przy analizowaniu wyrażeń typu „class='foo bar'”, zoptymalizowano funkcje do pracy z pamięcią, usunięto niepotrzebne operacje podczas pracy z elementami formularzy internetowych i najczęściej używane przyspieszono działania, zoptymalizowano wykorzystanie internalHTML, przyspieszono renderowanie czcionek. Przyspieszenie osiągnięto także dzięki optymalizacji modułu zbierającego elementy bezużyteczne w silniku V8, którego wydajność wzrosła dzięki aktywacji usuwania śmieci w czasie przestojów procesu renderowania, aby nie konkurować z aplikacją o zasoby procesora.

- Znacząco poprawiono wydajność pracy z Cookies, co zmniejszyło opóźnienia podczas pracy ze stronami internetowymi. Poprzednio za każdym razem, gdy uzyskiwano dostęp do pliku cookie, wysyłano synchroniczne żądanie IPC z procesu przetwarzającego witrynę do procesu zapewniającego interakcję sieciową. Ponieważ aplikacje internetowe dość aktywnie korzystają z wartości z plików Cookies, takie żądania pomiędzy procesami spowalniały pracę, mimo że 87% wywołań innego procesu było zbędnych.
Aby rozwiązać problem, zastosowano nową architekturę, w której każdy proces zawiera własną kopię danych Cookie i ma do nich bezpośredni dostęp, a także zmiany w Cookie, które mogą wystąpić np. podczas pracy z tym samym Cookiem w innej zakładce , są śledzone za pomocą mechanizmu wersjonowania. Istotą tego mechanizmu jest to, że dla każdej wartości
document.cookie dołącza licznik z numerem wersji, który jest przechowywany w pamięci współdzielonej, zwiększany w przypadku zmiany wartości i sprawdzany z istniejącą instancją podczas odczytu.
- Dodano możliwość użycia interfejsu API View Transitions do tworzenia efektów animacji przejścia podczas przechodzenia z jednej strony na drugą w ramach jednej witryny (to samo pochodzenie). Wcześniej tego interfejsu API można było używać tylko do efektów pomiędzy różnymi stanami DOM na tej samej stronie (na przykład płynne przejście z jednego obrazu do drugiego). Aby zastosować efekty przejścia pomiędzy różnymi dokumentami, użyj właściwości „navigation: auto” w regule @ „przejście widoku”.
- Włączono interfejs API CloseWatcher, dzięki czemu można śledzić żądania zamknięcia w aplikacjach internetowych i reagować na ich otrzymanie (na przykład można utworzyć obsługę naciśnięcia przycisku „wstecz” na Android-smartfon).
Żądania zamknięcia są generowane podczas próby zamknięcia modalnego ( ) i wyskakujących okien dialogowych (popover="") poprzez naciśnięcie klawisza Esc, użycie przycisku Wstecz lub gestu ekranowego na smartfonach. - Gamepad API, który umożliwia śledzenie i przetwarzanie zdarzeń z gamepadów i kontrolerów gier, dodał obsługę mechanizmów sprzężenia zwrotnego (trigger-rumble), takich jak wibracje.
- Do interfejsów GeolocationCooperatives i GeolocationPosition dodano metodę .toJSON() służącą do serializacji obiektów ze współrzędnymi w formacie JSON.
- Wersja dla ChromeOS dodaje obsługę trybu wyświetlania zakładek (właściwość CSS „display: tatted”), co pozwala na wykorzystanie zakładek w jednej aplikacji internetowej, np. do uporządkowania edycji kilku dokumentów.
- Dodano funkcję eksperymentalną (wersja próbna Origin), aby wyświetlić podgląd treści otrzymanych z kamery lub mikrofonu.
- Interfejs API WebGPU znacznie przyspieszył kompilację shaderów. W backendie API graficznego Vulkan zoptymalizowano ładowanie danych do GPU (zapewniony jest bezpośredni zapis do bufora GPU bez pośredniego kopiowania).
- Wprowadzono ulepszenia w narzędziach dla twórców stron internetowych. W sekcji „Aplikacja > Przechowywanie” dodana została możliwość inspekcji danych zapisanych przy pomocy API Storage Buckets, co pozwala na organizację przechowywania danych poprzez podzielenie magazynu na osobne segmenty powiązane z API IndexedDB i CacheStorage. W panelu oceny wydajności dodano możliwość przenoszenia i ukrywania ścieżek, a także wykluczania informacji o wykonaniu skryptu z wykresu wydajności oraz włączenia trybu sztucznego spowalniania wydajności systemu 20-krotnie.

Panel śledzenia aktywności sieciowej umożliwia zastąpienie w otrzymanej odpowiedzi pełnego ciągu znaków nagłówkiem HTTP w formacie „nazwa:wartość”. Dodano filtry do panelu zużycia pamięci, aby zidentyfikować nieefektywność pamięci, taką jak zduplikowane wiersze lub pozostawienie obiektów powiązanych z odłączonymi węzłami DOM.

Oprócz innowacji i poprawek błędów, nowa wersja eliminuje 21 luk. Wiele luk zostało zidentyfikowanych w wyniku automatycznych testów przy użyciu narzędzi AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer i AFL. 9 kwestiom przypisano wysoki poziom ważności. Nie zidentyfikowano żadnych krytycznych problemów, które pozwoliłyby ominąć wszystkie poziomy ochrony przeglądarki i wykonać kod w systemie poza środowiskiem piaskownicy. W ramach programu nagród pieniężnych za wykrycie luk w aktualnej wersji Google wypłacił 11 nagród o wartości ponad 168 tys. dolarów.
Za lukę CVE-2024-5839, związaną z problemem w implementacji mechanizmu alokacji pamięci, wypłacono rekordową nagrodę w wysokości 100115 25000 dolarów. Luka ta ma średni poziom ważności i może powodować uszkodzenie pamięci sterty podczas przetwarzania specjalnie sformatowanej zawartości HTML. Ponadto wypłacono jedną premię w wysokości 7000 3000, 2000 1000, 500 10000, 5000 7, XNUMX XNUMX i XNUMX dolarów oraz po dwie nagrody po XNUMX XNUMX i XNUMX XNUMX dolarów. Wielkość XNUMX nagród nie została jeszcze ustalona.
Źródło: opennet.ru






