Chrome wersja 90

Google zaprezentowało wersję przeglądarki internetowej Chrome 90. Jednocześnie dostępna jest stabilna wersja darmowego projektu Chromium, na którym opiera się przeglądarka Chrome. Przeglądarkę Chrome wyróżnia użycie logo Google, obecność systemu wysyłania powiadomień w przypadku awarii, modułów do odtwarzania chronionych treści wideo (DRM), systemu automatycznego instalowania aktualizacji i przesyłania parametrów RLZ podczas wyszukiwania. Następną wersję Chrome 91 zaplanowano na 25 maja.

Kluczowe zmiany w Chrome 90:

  • Wszyscy użytkownicy mają domyślnie włączone otwieranie witryn za pośrednictwem protokołu HTTPS podczas wpisywania nazw hostów w pasku adresu. Na przykład, gdy wejdziesz na hosta example.com, witryna https://example.com zostanie domyślnie otwarta, a jeśli podczas otwierania pojawią się problemy, zostanie przywrócona do http://example.com. Aby kontrolować użycie domyślnego „https://”, zaproponowano ustawienie „chrome://flags#omnibox-default-typed-navigations-to-https”.
  • Można teraz przypisać różne etykiety do okien, aby wizualnie je od siebie oddzielić na panelu pulpitu. Obsługa zmiany nazwy okna uprości organizację pracy w przypadku korzystania z oddzielnych okien przeglądarki do różnych zadań, na przykład podczas otwierania oddzielnych okien do zadań służbowych, zainteresowań osobistych, rozrywki, materiałów odroczonych itp. Nazwę zmienia się poprzez opcję „Dodaj tytuł okna” w menu kontekstowym, które pojawia się po kliknięciu prawym przyciskiem myszy pustego obszaru na pasku zakładek. Po zmianie nazwy w panelu aplikacji, zamiast nazwy witryny z aktywnej zakładki, wyświetlana jest wybrana nazwa, co może być przydatne podczas otwierania tych samych witryn w różnych oknach powiązanych z oddzielnymi kontami. Powiązanie jest utrzymywane pomiędzy sesjami, a po ponownym uruchomieniu okna zostaną przywrócone z wybranymi nazwami.
    Chrome wersja 90
  • Dodano możliwość ukrycia „Listy do przeczytania” bez konieczności zmiany ustawień w „chrome://flags” („chrome://flags#read-later”). Aby ukryć, możesz teraz skorzystać z opcji „Pokaż listę czytelniczą” znajdującej się na dole menu kontekstowego wyświetlanego po kliknięciu prawym przyciskiem myszy paska zakładek. Przypomnijmy, że w ostatniej wersji, gdy niektórzy użytkownicy klikną w gwiazdkę w pasku adresu, oprócz przycisku „Dodaj zakładkę”, pojawia się drugi przycisk „Dodaj do listy przeczytanych”, a w prawym rogu strony panelu zakładek pojawia się menu „Lista do przeczytania”, w którym znajdują się wszystkie strony dodane wcześniej do listy. Gdy otworzysz stronę z listy, zostanie ona oznaczona jako przeczytana. Strony na liście można także ręcznie oznaczyć jako przeczytane lub nieprzeczytane albo usunąć z listy.
  • Dodano obsługę segmentacji sieci w celu ochrony przed metodami śledzenia ruchów użytkowników pomiędzy witrynami w oparciu o przechowywanie identyfikatorów w obszarach nieprzeznaczonych do stałego przechowywania informacji („Supercookies”). Ponieważ zasoby buforowane są przechowywane we wspólnej przestrzeni nazw, niezależnie od domeny źródłowej, jedna witryna może określić, czy inna witryna ładuje zasoby, sprawdzając, czy zasób ten znajduje się w pamięci podręcznej. Ochrona polega na wykorzystaniu segmentacji sieci (Network Partitioning), której istotą jest dodanie do współdzielonych pamięci podręcznych dodatkowego powiązania rekordów z domeną, z której otwierana jest strona główna, co ogranicza pokrycie pamięci podręcznej jedynie dla skryptów śledzących ruch do aktualnej witryny (skrypt z ramki iframe nie będzie mógł sprawdzić, czy zasób został pobrany z innej witryny). Ceną segmentacji jest spadek wydajności buforowania, co prowadzi do nieznacznego wydłużenia czasu ładowania strony (maksymalnie o 1.32%, ale dla 80% witryn o 0.09-0.75%).
  • Czarna lista portów sieciowych, dla których blokowane jest wysyłanie żądań HTTP, HTTPS i FTP, została uzupełniona w celu ochrony przed atakami typu slipstreaming NAT, co pozwala podczas otwierania w przeglądarce specjalnie przygotowanej przez atakującego strony internetowej nawiązać połączenie sieciowe połączenie serwera atakującego z dowolnym portem UDP lub TCP w systemie użytkownika, pomimo wykorzystania wewnętrznego zakresu adresów (192.168.xx, 10.xxx). Do listy zabronionych portów dodano 554 (protokół RTSP) i 10080 (używany w kopii zapasowej Amanda i VMWare vCenter). Wcześniej porty 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 i 6566 były już zablokowane.
  • Dodano wstępną obsługę otwierania dokumentów PDF za pomocą formularzy XFA w przeglądarce.
  • Dla części użytkowników została aktywowana nowa sekcja ustawień „Ustawienia Chrome > Prywatność i bezpieczeństwo > Piaskownica prywatności”, która umożliwia zarządzanie parametrami API FLoC, mającą na celu określenie kategorii zainteresowań użytkownika bez indywidualnej identyfikacji i bez odniesienia do historię odwiedzania konkretnych stron.
  • Gdy użytkownik łączy się z profilem, dla którego włączone jest scentralizowane zarządzanie, wyświetlane jest teraz wyraźniejsze powiadomienie z listą dozwolonych działań.
  • Sprawiono, że interfejs żądania uprawnień był mniej inwazyjny. Żądania, które użytkownik prawdopodobnie odrzuci, są teraz automatycznie blokowane za pomocą odpowiedniego wskaźnika wyświetlanego na pasku adresu, za pomocą którego użytkownik może przejść do interfejsu zarządzania uprawnieniami dla poszczególnych witryn.
    Chrome wersja 90
  • Dołączona jest obsługa rozszerzeń Intel CET (Intel Control-flow Enforcement Technology) w celu ochrony sprzętu przed exploitami zbudowanymi przy użyciu technik programowania zorientowanego na zwrot (ROP, Return-Oriented Programming).
  • Trwają prace nad przeniesieniem przeglądarki tak, aby korzystała z terminologii włączającej. Nazwa pliku „master_preferences” została zmieniona na „initial_preferences”, aby nie urazić uczuć użytkowników, którzy słowo „master” postrzegają jako wskazówkę dotyczącą dawnej niewoli swoich przodków. Aby zachować kompatybilność, przez jakiś czas w przeglądarce pozostanie obsługa „master_preferences”. Wcześniej przeglądarka pozbyła się już słów „biała lista”, „czarna lista” i „natywna”.
  • W wersji na Androida, gdy włączony jest tryb oszczędzania ruchu „Lite”, przepływność jest zmniejszana podczas pobierania wideo przy połączeniu przez sieci operatorów komórkowych, co obniży koszty użytkowników, którzy mają włączone taryfy oparte na ruchu. Tryb „Lite” zapewnia także kompresję obrazów żądanych z publicznie dostępnych zasobów (nie wymagających uwierzytelniania) za pośrednictwem protokołu HTTPS.
  • Dodano koder formatu wideo AV1, specjalnie zoptymalizowany do użytku w wideokonferencjach w oparciu o protokół WebRTC. Zastosowanie AV1 w wideokonferencjach pozwala zwiększyć efektywność kompresji i zapewnić możliwość transmisji na kanałach o przepustowości 30 kbit/s.
  • W JavaScript obiekty Array, String, TypedArrays implementują metodę at(), która pozwala na zastosowanie indeksowania względnego (pozycja względna jest określona jako indeks tablicy), łącznie z określeniem wartości ujemnych względem końca (np. „arr.at(-1)” zwróci ostatni element tablicy).
  • JavaScript dodał właściwość „.indices” dla wyrażeń regularnych, która zawiera tablicę z pozycjami początkowymi i końcowymi grup dopasowań. Właściwość jest wypełniana tylko podczas wykonywania wyrażenia regularnego z flagą „/d”. stała re ​​= /(a)(b)/d; const m = re.exec('ab'); konsola.log(m.indices[0]); // 0 — wszystkie grupy dopasowań // → [0, 2] console.log(m.indices[1]); // 1 to pierwsza grupa dopasowań // → [0, 1] console.log(m.indices[2]); // 2 - druga grupa dopasowań // → [1, 2]
  • Zoptymalizowano wydajność „super” właściwości (na przykład super.x), dla których włączona jest wbudowana pamięć podręczna. Wydajność korzystania z „super” jest teraz zbliżona do wydajności uzyskiwania dostępu do zwykłych właściwości.
  • Wywoływanie funkcji WebAssembly z JavaScript zostało znacznie przyspieszone dzięki zastosowaniu wdrożenia inline. Optymalizacja ta pozostaje na razie eksperymentalna i wymaga działania z flagą „-turbo-inline-js-wasm-calls”.
  • Dodano API WebXR Depth Sensing, które pozwala określić odległość pomiędzy obiektami w otoczeniu użytkownika a urządzeniem użytkownika, na przykład w celu tworzenia bardziej realistycznych aplikacji rzeczywistości rozszerzonej. Przypomnijmy, że WebXR API pozwala ujednolicić pracę z różnymi klasami urządzeń wirtualnej rzeczywistości, od stacjonarnych hełmów 3D po rozwiązania bazujące na urządzeniach mobilnych.
  • Funkcja szacowania oświetlenia WebXR AR została ustabilizowana, umożliwiając sesjom WebXR AR określanie parametrów oświetlenia otoczenia, aby nadać modelom bardziej naturalny wygląd i lepszą integrację ze środowiskiem użytkownika.
  • Tryb próbny Origin (funkcje eksperymentalne wymagające osobnej aktywacji) dodaje kilka nowych interfejsów API, które obecnie są ograniczone do platformy Android. Wersja próbna Origin oznacza możliwość pracy z określonym API z aplikacji pobranych z localhost lub 127.0.0.1 lub po zarejestrowaniu się i otrzymaniu specjalnego tokena, który jest ważny przez ograniczony czas dla konkretnej witryny.
    • Metoda getCurrentBrowsingContextMedia(), która umożliwia przechwytywanie strumienia wideo MediaStream odzwierciedlającego zawartość bieżącej karty. W odróżnieniu od podobnej metody getDisplayMedia(), przy wywołaniu metody getCurrentBrowsingContextMedia() użytkownikowi prezentowane jest proste okno dialogowe umożliwiające potwierdzenie lub zablokowanie operacji przesyłania wideo wraz z zawartością zakładki.
    • Interfejs API Insertable Streams, który umożliwia manipulowanie nieprzetworzonymi strumieniami multimediów przesyłanymi przez interfejs API MediaStreamTrack, takimi jak dane z kamery i mikrofonu, wyniki przechwytywania ekranu lub pośrednie dane dekodowania kodeka. Interfejsy WebCodec służą do prezentowania surowych klatek, a strumień jest generowany podobnie do tego, co generuje interfejs API WebRTC Insertable Streams na podstawie RTCPeerConnections. Z praktycznego punktu widzenia nowy interfejs API umożliwia korzystanie z takich funkcji, jak stosowanie technik uczenia maszynowego do identyfikowania obiektów i dodawania o nich adnotacji w czasie rzeczywistym lub dodawanie efektów, takich jak przycinanie tła przed kodowaniem lub po dekodowaniu przez kodek.
    • Możliwość pakowania zasobów w pakiety (Web Bundle) w celu efektywniejszego ładowania dużej liczby plików towarzyszących (style CSS, JavaScript, obrazy, ramki iframe). Wśród niedociągnięć w istniejącej obsłudze pakietów dla plików JavaScript (webpack), które Web Bundle stara się wyeliminować: sam pakiet, a nie jego części składowe, może wylądować w pamięci podręcznej HTTP; kompilację i wykonanie można rozpocząć dopiero po całkowitym pobraniu pakietu; Dodatkowe zasoby, takie jak CSS i obrazy, muszą być zakodowane w postaci ciągów JavaScript, co zwiększa rozmiar i wymaga kolejnego etapu analizy.
    • Obsługa obsługi wyjątków w WebAssembly.
  • Ustabilizowano deklaratywny interfejs API Shadow DOM w celu tworzenia nowych gałęzi głównych w Shadow DOM, na przykład w celu oddzielenia zaimportowanego stylu elementu innej firmy i powiązanej z nim gałęzi podrzędnej DOM od dokumentu głównego. Proponowane deklaratywne API pozwala na odpinanie gałęzi DOM za pomocą wyłącznie HTML, bez konieczności pisania kodu JavaScript.
  • Właściwość CSS współczynnik proporcji, która pozwala jawnie powiązać współczynnik proporcji z dowolnym elementem (aby automatycznie obliczyć brakujący rozmiar przy podaniu tylko wysokości lub szerokości), implementuje możliwość interpolacji wartości podczas animacji (płynne przejście z jednego współczynnik proporcji do innego).
  • Dodano możliwość odzwierciedlenia stanu niestandardowych elementów HTML w CSS poprzez pseudoklasę „:state()”. Funkcjonalność jest realizowana analogicznie do możliwości zmiany stanu standardowych elementów HTML w zależności od interakcji użytkownika.
  • Właściwość CSS „wygląd” obsługuje teraz wartość „auto”, która jest ustawiona domyślnie I , a na platformie Android dodatkowo dla , , , I .
  • Do właściwości CSS „overflow” dodano obsługę wartości „clip”, gdy jest ustawiona, treść wykraczająca poza blok jest obcinana do granicy dopuszczalnego przepełnienia bloku bez możliwości przewijania. Wartość określająca, jak daleko zawartość może wysunąć się poza rzeczywistą granicę ramki przed rozpoczęciem przycinania, jest ustawiana za pomocą nowej właściwości CSS „overflow-clip-margin”. W porównaniu do „przepełnienia: ukryte”, użycie „przepełnienia: klipu” pozwala na lepszą wydajność.
    Chrome wersja 90Chrome wersja 90
  • Nagłówek HTTP Feature-Policy został zastąpiony nowym nagłówkiem Permissions-Policy w celu kontrolowania delegowania uprawnień i włączania zaawansowanych funkcji, które obejmują obsługę wartości pól strukturalnych (na przykład można teraz określić „Permissions-Policy: geolokalizacja =()” zamiast „Zasady dotyczące funkcji: geolokalizacja „brak””).
  • Wzmocniona ochrona przed wykorzystaniem buforów protokołu do ataków spowodowanych spekulatywnym wykonywaniem instrukcji w procesorach. Ochrona jest realizowana poprzez dodanie typu MIME „application/x-protobuffer” do listy nigdy nie wąchanych typów MIME, która jest przetwarzana poprzez mechanizm Cross-Origin-Read-Blocking. Wcześniej typ MIME „application/x-protobuf” był już uwzględniony na podobnej liście, ale „application/x-protobuffer” został pominięty.
  • Interfejs API dostępu do systemu plików implementuje możliwość przesunięcia bieżącej pozycji pliku poza jego koniec, wypełniając powstałą lukę zerami podczas późniejszego zapisu za pomocą wywołania FileSystemWritableFileStream.write(). Ta funkcja umożliwia tworzenie rzadkich plików z pustymi spacjami i znacznie upraszcza organizację zapisu do strumieni plików z nieuporządkowanym przybyciem bloków danych (jest to praktykowane na przykład w BitTorrent).
  • Dodano konstruktor StaticRange z implementacją lekkich typów Range, które nie wymagają aktualizacji wszystkich powiązanych obiektów przy każdej zmianie drzewa DOM.
  • Zaimplementowano możliwość określenia parametrów szerokości i wysokości elementów określone wewnątrz elementu . Ta funkcja umożliwia obliczenie proporcji elementów , przez analogię do tego, jak to się robi , I .
  • Niestandardowa obsługa kanałów danych RTP została usunięta z WebRTC i zamiast tego zaleca się korzystanie z kanałów danych opartych na SCTP.
  • Właściwości navigator.plugins i navigator.mimeTypes teraz zawsze zwracają pustą wartość (po zakończeniu obsługi Flash te właściwości nie były już potrzebne).
  • Wprowadzono dużą część drobnych ulepszeń w narzędziach dla twórców stron internetowych i dodano nowe narzędzie do debugowania CSS, flexbox.
    Chrome wersja 90

Oprócz innowacji i poprawek błędów nowa wersja eliminuje 37 luk. Wiele luk zostało zidentyfikowanych w wyniku automatycznych testów przy użyciu narzędzi AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer i AFL. 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 odkrycie luk w bieżącej wersji firma Google wypłaciła 19 nagród o wartości 54000 20000 USD (jedna nagroda 10000 5000 USD, jedna nagroda 3000 2000 USD, dwie nagrody 1000 USD, trzy nagrody 500 USD, jedna nagroda 6 USD, jedna nagroda XNUMX USD i cztery nagrody XNUMX USD ). ). Wielkość XNUMX nagród nie została jeszcze ustalona.

Osobno można zauważyć, że wczoraj, po utworzeniu wersji korygującej 89.0.4389.128, ale przed wydaniem Chrome 90, został opublikowany kolejny exploit, który wykorzystywał nową lukę 0-day, która nie została naprawiona w Chrome 89.0.4389.128 . Nie jest jeszcze jasne, czy problem ten został naprawiony w przeglądarce Chrome 90. Podobnie jak w pierwszym przypadku, exploit obejmuje tylko jedną lukę i nie zawiera kodu umożliwiającego ominięcie izolacji piaskownicy (przy uruchomieniu przeglądarki Chrome z flagą „--no-sandbox” exploit występuje, gdy otwarcie strony internetowej na platformie Windows pozwala na uruchomienie Notatnika). Luka związana z nowym exploitem dotyczy technologii WebAssembly.

Źródło: opennet.ru

Dodaj komentarz