Firma Google opublikowała wydanie przeglądarki internetowej Chrome 119. Jednocześnie dostępne jest stabilne wydanie projektu Chromium, stanowiącego bazę dla Chrome. Przeglądarka Chrome różni się od Chromium używaniem logo Google, obecnością systemu powiadamiania o awariach, modułami do odtwarzania treści wideo chronionej przed kopiowaniem (DRM), automatycznym systemem aktualizacji, stałym włączeniem izolacji Sandbox, dostarczaniem kluczy do Google API oraz przekazywaniem parametrów RLZ podczas wyszukiwania. Dla tych, którzy potrzebują więcej czasu na aktualizację, oddzielnie wspierana jest gałąź Extended Stable, która jest utrzymywana przez 8 tygodni. Następne wydanie Chrome 120 zaplanowane jest na 5 grudnia.
Główne zmiany w Chrome 119:
- Skrócono cykl wydania, w którym zmniejszono czas pomiędzy stworzeniem nowej gałęzi a rozpoczęciem testów beta – wersja beta jest teraz tworzona dwa dni po utworzeniu gałęzi, a nie po 8 dniach. Stabilizacja wersji beta, jak wcześniej, trwa przez 4 tygodnie. W ten sposób cykl przygotowania nowych wydań stał się o tydzień krótszy.
- Dodano możliwość zapisywania grup kart. Użytkownik może teraz zapisać grupę i zamknąć należące do niej karty, aby nie zajmowały zasobów. Później, gdy zajdzie taka potrzeba, karty z zapisanej grupy można przywrócić oraz otworzyć na innych urządzeniach uczestniczących w synchronizacji kart. Opcja ta jest włączona dla części użytkowników, a dla przymusowego włączenia przewidziano ustawienie „chrome://flags/#tab-groups-save”.
- W interfejsie zmieniono sformułowania operacji i ustawień związanych z usuwaniem i utratą danych. Zamiast terminu „oczyszczanie” (Clear) w podobnych operacjach stosowane jest teraz słowo „usunięcie” (Delete), ponieważ termin „oczyszczanie” nie był postrzegany przez niektórych użytkowników jako oznaka bezpowrotnej utraty danych.
- Przy automatycznym uzupełnianiu adresów URL uwzględniane jest teraz jakiekolwiek słowo kluczowe, które wcześniej zostało użyte do wyszukiwania strony, a nie tylko słowa zgodne z początkiem adresu. Na przykład, automatyczne uzupełnienie adresu „https://www.google.com/travel/flights” zadziała nie tylko przy wpisaniu słowa „google”, ale także przy wpisaniu „flights”.

- Wprowadzono automatyczne poprawianie literówek podczas wprowadzania adresu strony oraz zapewniono wyświetlanie odpowiednich podpowiedzi, które uwzględniają strony wcześniej odwiedzane przez danego użytkownika. Na przykład, podczas wpisywania „youutube” zaproponowane zostanie otwarcie YouTube.com.

- Dodano możliwość przeszukiwania sekcji zakładek przez pasek adresu. Na przykład, można wpisać nazwę sekcji zakładek, a Chrome zaproponuje linki z tej sekcji, odpowiadające wprowadzonej frazie. Na przykład, podczas wpisywania „podróże 2023 Nowy” zaproponowane zostaną linki z sekcji zakładek „podróże 2023”, związane z Nowym Jorkiem.

- Wprowadzono rekomendacje popularnych stron, nawet jeśli użytkownik wcześniej ich nie odwiedzał lub popełnił błąd podczas wprowadzania URL. Na przykład, gdy użytkownik próbował otworzyć Google Earth, zaczynając wpisywanie „googleear” nie znając dokładnego adresu, przeglądarka zaproponuje przejście na stronę earth.google.com.

- W Chrome dla systemów desktopowych poprawiono czytelność informacji w pasku adresu oraz zwiększono responsywność interfejsu — wyniki są teraz wyświetlane natychmiast po rozpoczęciu wpisywania w pasku adresu.
- Zgodnie ze zmianą specyfikacji API Fetch, zapewniono usunięcie nagłówka HTTP Authorization podczas przekierowania na inna domenę (cross origin).
- W ustawieniach powiadomień i lokalizacji dodano opcję włączenia serwisu automatycznego blokowania zapytań o potwierdzenie uprawnień (Permission Suggestions Service). Proponowane są tryby:
- zawsze wyświetlać zapytania o przyznanie uprawnień do wyświetlania powiadomień i dostępu do lokalizacji;
- automatycznie ignorować spamerskie zapytania o uprawnienia, korzystając z mechanizmu Permission Suggestions Service;
- zawsze ignorować wszystkie zapytania o wyświetlanie powiadomień;
- zawsze blokować wszystkie zapytania o przyznanie uprawnień do wyświetlania powiadomień i dostępu do lokalizacji.
- W kompilacjach dla platformy Android przy włączonej standardowej ochronie przeglądarki (Safe Browsing > Standard protection) w trybie rzeczywistym realizowana jest kontrola bezpieczeństwa otwartych URL, dokonywana na podstawie przesyłania do serwery Google częściowych skrótów hash otwartych przez użytkownika URL. W celu wykluczenia dopasowania adresy IP użytkownika i hasha, dane są przekazywane przez pośredni proxy. Wcześniej weryfikacja odbywała się przez przesyłanie lokalnej kopii listy niebezpiecznych URL do systemu użytkownika. Nowy schemat pozwala na szybsze blokowanie złośliwych adresów URL. Dla systemów stacjonarnych taka funkcjonalność została włączona w poprzedniej wersji.
- Escaping non-alphabetic characters in the hostname when calling the URL function is aligned with the updated specification. For example, calling the function ‘URL(«http://exa(mple.com;»)’ previously returned ‘http://example.com/’, but now will result in the output of the error » Invalid URL».

- Do wszystkich wcześniej zapisanych plików cookie została zastosowana limit życia, podobny do tego, który jest stosowany począwszy od wydania Chrome 104 dla nowych i aktualizowanych plików cookie. Dla istniejących plików cookie czas życia zostanie skrócony do 400 dni od publikacji wydania Chrome 119.
- W CSS wprowadzone zostały nowe pseudoklasy „:user-valid” i „:user-invalid”, które reprezentują elementy formularzy, których wartości zostały zatwierdzone lub nie. W przeciwieństwie do „:valid” i „:invalid”, nowe pseudoklasy aktywują się tylko po interakcji użytkownika z elementem formularza.
- Podczas ustawiania kolorów w CSS dozwolone jest określenie wartości, które są obliczane względem innych parametrów koloru. Na przykład, przy podaniu „oklab(from magenta calc(l * 0.8) a b)” uzyskany zostanie kolor o 80% jaśniejszy niż purpurowy.
- W CSS właściwość clip-path, która pozwala ograniczyć widoczność elementu do określonego obszaru, zyskała wsparcie dla wartości , która służy do definiowania dowolnych obszarów przycinania. Udostępniono także możliwość używania funkcji xywh() i rect() dla uproszczenia definiowania obszarów prostokątnych lub zaokrąglonych.
- Wsparcie dla API WebSQL zostało wyłączone, zamiast którego zaleca się korzystanie z API Web Storage i Indexed Database. Obsługa WebSQL opiera się na kodzie biblioteki SQLite. API WebSQL nie było wspierane w innych przeglądarkach, wiązało się z API zewnętrznej biblioteki i zwiększało ryzyko problemów z bezpieczeństwem (WebSQL mogło być wykorzystywane przez złośliwych użytkowników do wykorzystania luk w SQLite). Aby przywrócić wsparcie WebSQL dla klientów korporacyjnych, pozostawiono politykę WebSQLAccess, która zostanie usunięta w Chrome 123.
- Tymczasowo usunięto API HTML Sanitizer, które pozwala na usuwanie z treści elementów wpływających na wyświetlanie i wykonanie przy użyciu metody setHTML(). API zostało opracowane w celu usuwania znaczników HTML, które mogą być wykorzystywane do przeprowadzania ataków XSS. Powodem usunięcia jest niedokończoność specyfikacji, która od czasu dodania Sanitizer do Chrome znacząco się zmieniła. Po zakończeniu specyfikacji API zostanie przywrócone.
- Usunięto niestandardowy atrybut shadowRoot, pozwalający z własnych elementów odwoływać się do swojego oddzielnego korzenia w Shadow DOM, niezależnie od stanu. Zamiast shadowRoot w Chrome 111 zaproponowano atrybut shadowRootMode, który wszedł w skład standardu webowego.
- Improved implementation of the HTML element «<fencedframe>», which is similar to «iframe» and also allows embedding third-party content on the page. The differences are reduced to limiting the interaction of embedded content with the page's DOM and attributes. For example, the page news.example, which embeds an ad block using fencedframe loaded from shoes.example, cannot access data from shoes.example, and in turn, the code from shoes.example cannot access data related to news.example. The new version has added support for the macro substitutions of ad block size introduced in the Protected Audience API, for example, «https://ad.com?width={/_WIDTH%}&height={/_HEIGHT%}».
- Do metody getDisplayMedia() dodano parametr monitorTypeSurfaces, który można wykorzystać do zabronienia udostępniania całego ekranu.
- Do metody window.open() dodano eksperymentalny (origin trial) parametr fullscreen, który pozwala na otwarcie okna od razu w trybie pełnoekranowym.
- W API AudioEncoderConfig dodano flaga „bitrateMode” do wyboru między stałym (constant) a zmiennym (variable) bitrate'em.
- W TLS zaimplementowano mechanizm enkapsulacji kluczy (KEM, Key Encapsulation Mechanism), wykorzystujący hybrydowy algorytm X25519Kyber768, odporny na ataki z użyciem komputerów kwantowych. Do tworzenia sesyjnych kluczy stosowanych do szyfrowania danych wewnątrz połączeń TLS można teraz wykorzystać kombinację mechanizmu wymiany kluczy X25519, opartego na krzywych eliptycznych i stosowanego obecnie w TLS, oraz algorytmu Kyber-768, stosującego metody kryptografii opartej na rozwiązaniach problemów z teorii krat, których czas rozwiązania nie różni się na klasycznych i kwantowych komputerach.
- Domyślnie włączono wsparcie dla rozszerzenia WasmGC, które ułatwia portowanie programów do WebAssembly napisanych w językach programowania wykorzystujących garbage collector (Kotlin, PHP, Java itp.). WasmGC wprowadza nowe typy struktur i tablic, dla których można zastosować nieliniowe przydzielanie pamięci.
- Wprowadzono ulepszenia w narzędziach dla programistów webowych. Dodano możliwość edytowania reguł CSS „@property” oraz wyświetlania ostrzeżeń w przypadku ich nieprawidłowego zdefiniowania. Zaktualizowano listę emulowanych urządzeń (na przykład dodano iPhone 14 i Pixel 7). W konsoli webowej wprowadzono autouzupełnianie prywatnych pól. Zrealizowano formatowanie danych JSON umieszczonych w blokach

Oprócz nowości i poprawek błędów w nowej wersji usunięto 15 podatności. Wiele z nich zidentyfikowano w wyniku automatyzowanego testowania narzędziami AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer i AFL. Nie zidentyfikowano krytycznych problemów, które pozwalałyby na ominięcie wszystkich poziomów ochrony przeglądarki i wykonanie kodu w systemie poza środowiskiem sandbox. W ramach programu wypłaty nagród za wykrywanie podatności, w bieżącym wydaniu firma Google wypłaciła 13 nagród na łączną kwotę 40,5 tysiąca dolarów USA (w tym jedna nagroda w wysokości 16 000$, 11 000$, 2 000$ i 500$, trzy nagrody po 3 000$ oraz dwie nagrody po 1 000$). Wartość 4 nagród nie została jeszcze określona.
Źródło: opennet.ru






