Google zaprezentowało wersję przeglądarki internetowej Chrome 89. Jednocześnie dostępna jest stabilna wersja darmowego projektu Chromium, na którym opiera się 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ępna wersja Chrome 90 zaplanowana jest na 13 kwietnia.
Kluczowe zmiany w Chrome 89:
- Wersja przeglądarki Chrome na Androida będzie teraz działać tylko na urządzeniach z certyfikatem Play Protect. Na maszynach wirtualnych i emulatorach można używać przeglądarki Chrome na Androida, jeśli emulowane urządzenie jest prawidłowe lub emulator został opracowany przez Google. Certyfikat certyfikatu urządzenia możesz sprawdzić w aplikacji Google Play w sekcji ustawień (na stronie ustawień na samym dole widoczny jest status „Certyfikat Play Protect”). W przypadku urządzeń niecertyfikowanych, na przykład korzystających z oprogramowania firm trzecich, użytkownicy są proszeni o zarejestrowanie swoich urządzeń w celu uruchomienia przeglądarki Chrome.
- Niewielki procent użytkowników domyślnie umożliwia 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”.
- Dostępna jest obsługa profili, dzięki czemu różni użytkownicy mogą oddzielić swoje konta podczas pracy w tej samej przeglądarce. Na przykład, korzystając z profili, możesz zorganizować dostęp między członkami rodziny lub oddzielne sesje wykorzystywane do celów zawodowych i osobistych. Użytkownik może utworzyć nowy profil Chrome i skonfigurować go tak, aby aktywował się po połączeniu z określonym kontem Google, umożliwiając różnym użytkownikom udostępnianie zakładek, ustawień i historii przeglądania. Podczas próby zalogowania się na konto powiązane z innym profilem użytkownik zostanie poproszony o przełączenie się na ten profil. Jeśli użytkownik jest powiązany z kilkoma profilami, będzie miał możliwość wyboru żądanego profilu. Możliwe jest przypisanie własnych schematów kolorystycznych do różnych profili, aby wizualnie oddzielić użytkowników.
- Włączono wyświetlanie miniatur treści po najechaniu myszką na karty na górnym pasku. Wcześniej podgląd zawartości zakładek był domyślnie wyłączony i wymagał zmiany ustawienia „chrome://flags/#tab-hover-cards”.
- Dla niektórych użytkowników funkcja „Lista do przeczytania” („chrome://flags#read-later”) zostaje włączona, gdy jest aktywowana, po kliknięciu gwiazdki w pasku adresu, oprócz przycisku „Dodaj zakładkę”, pojawia się drugi przycisk „Dodaj do listy przeczytanych”, a w prawym rogu paska zakładek pojawia się menu „Lista czytelnicza”, w którym wyszczególnione są wszystkie strony wcześniej dodane 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.
- Użytkownicy zalogowani na konto Google bez włączonej synchronizacji Chrome mają dostęp do metod płatności i haseł przechowywanych na koncie Google. Ta funkcja jest włączona dla niektórych użytkowników i będzie stopniowo udostępniana innym.
- Włączono obsługę szybkiego wyszukiwania kart, które wcześniej wymagało aktywacji za pomocą flagi „chrome://flags/#enable-tab-search”. Użytkownik może wyświetlić listę wszystkich otwartych zakładek i szybko przefiltrować żądaną zakładkę, niezależnie od tego, czy znajduje się ona w bieżącym, czy w innym oknie.
- W przypadku wszystkich użytkowników zatrzymano przetwarzanie poszczególnych słów w pasku adresu podczas prób otwarcia stron wewnętrznych. Poprzednio, wpisując jedno słowo w pasek adresu, przeglądarka najpierw próbowała ustalić obecność hosta o tej nazwie w DNS, wierząc, że użytkownik próbował otworzyć subdomenę, a dopiero potem przekierowywała żądanie do wyszukiwarki. Tym samym właściciel serwera DNS określony w ustawieniach użytkownika otrzymał informację o zapytaniach wyszukiwania jednowyrazowego, co zostało ocenione jako naruszenie poufności. Dla firm korzystających z hostów internetowych bez subdomeny (np. „https://helpdesk/”) dostępna jest opcja powrotu do starego zachowania.
- Istnieje możliwość przypięcia wersji dodatku lub aplikacji. Na przykład, aby mieć pewność, że przedsiębiorstwo korzysta tylko z zaufanych dodatków, administrator może użyć nowej zasady ExtensionSettings, aby skonfigurować przeglądarkę Chrome tak, aby do pobierania aktualizacji używała własnego adresu URL zamiast adresu URL określonego w manifeście dodatku.
- W systemach x86 przeglądarka wymaga teraz obsługi instrukcji SSE3 przez procesor, które są obsługiwane przez procesory Intel od 2003 r. i przez AMD od 2005 r.
- Dodano dodatkowe interfejsy API mające na celu zapewnienie funkcjonalności, która może zastąpić pliki cookies podmiotów trzecich służące do śledzenia ruchów użytkownika pomiędzy witrynami w kodzie sieci reklamowych, widżetach sieci społecznościowych i systemach analityki internetowej. Do testów proponowane są następujące interfejsy API:
- Zaufaj tokenowi, aby oddzielić użytkowników bez używania identyfikatorów między witrynami.
- Zestawy własne — umożliwiają powiązanym domenom zadeklarowanie się jako podstawowe, dzięki czemu przeglądarka może uwzględnić to połączenie podczas połączeń między witrynami.
- Schemeful Same-Site w celu rozszerzenia koncepcji tej samej witryny na różne schematy adresów URL, tj. Adresy http://website.example i https://website.example będą traktowane jako jedna witryna w przypadku żądań między witrynami.
- Floc w celu określenia kategorii zainteresowań użytkownika bez indywidualnej identyfikacji i bez odwoływania się do historii odwiedzania konkretnych stron.
- Pomiar konwersji pozwalający ocenić aktywność użytkownika po przejściu na reklamę.
- Klient User-Agent Wskazówki dotyczące zastąpienia User-Agent i selektywnego zwracania danych o określonych parametrach przeglądarki i systemu (wersja, platforma itp.).
- Dodano Serial API, umożliwiający stronom odczytywanie i zapisywanie danych przez port szeregowy. Powodem pojawienia się takiego API jest możliwość tworzenia aplikacji internetowych służących do bezpośredniego sterowania urządzeniami takimi jak mikrokontrolery i drukarki 3D. Aby uzyskać dostęp do urządzenia peryferyjnego, wymagana jest wyraźna zgoda użytkownika.
- Dodano interfejs API WebHID umożliwiający niskopoziomowy dostęp do urządzeń HID (urządzenia interfejsu ludzkiego, klawiatury, myszy, gamepady, touchpady), który umożliwia zaimplementowanie logiki pracy z urządzeniem HID w języku JavaScript w celu zorganizowania pracy z rzadkimi urządzeniami HID bez obecność określonych sterowników w systemie. Przede wszystkim nowe API ma na celu zapewnienie obsługi gamepadów.
- Dodano interfejs API Web NFC, umożliwiający aplikacjom internetowym odczytywanie i zapisywanie tagów NFC. Przykładami wykorzystania nowego API w aplikacjach webowych jest m.in. udostępnianie informacji o eksponatach muzealnych, prowadzenie inwentaryzacji, pozyskiwanie informacji z identyfikatorów uczestników konferencji itp. Tagi są wysyłane i skanowane przy użyciu obiektów NDEFWriter i NDEFReader.
- Interfejs Web Share API (obiekt navigator.share) został rozszerzony poza urządzenia mobilne i jest teraz dostępny dla użytkowników przeglądarek stacjonarnych (obecnie tylko dla systemów Windows i Chrome OS). Web Share API udostępnia narzędzia do udostępniania informacji w sieciach społecznościowych, pozwala na przykład wygenerować ujednolicony przycisk umożliwiający publikację w sieciach społecznościowych, z których korzysta odwiedzający, czy zorganizować przesyłanie danych do innych aplikacji.
- Wersje na Androida i komponent WebView obsługują dekodowanie formatu obrazu AVIF (AV1 Image Format), który wykorzystuje technologie kompresji wewnątrzklatkowej z formatu kodowania wideo AV1 (w wersjach na komputery stacjonarne obsługa AVIF została uwzględniona w przeglądarce Chrome 85). Kontener do dystrybucji skompresowanych danych w AVIF jest całkowicie podobny do HEIF. AVIF obsługuje zarówno obrazy w HDR (High Dynamic Range) i szerokiej gamie kolorów, jak i w standardowym zakresie dynamiki (SDR).
- Dodano nowy Reporting API umożliwiający uzyskanie informacji o naruszeniach zasad bezpiecznego użytkowania na stronie operacji uprzywilejowanych określonych poprzez nagłówek COOP (Cross-Origin-Opener-Policy), który umożliwia także wprowadzenie COOP w tryb debugowania, który działa bez blokowania naruszeń reguł.
- Dodano funkcję performance.measureUserAgentSpecificMemory(), która określa ilość pamięci zużywanej podczas przetwarzania strony.
- Aby zachować zgodność ze standardami sieciowymi, wszystkie adresy URL typu „data:” są teraz traktowane jako potencjalnie godne zaufania, tj. są częścią chronionego kontekstu.
- API Streams dodało obsługę strumieni bajtów, które są specjalnie zoptymalizowane pod kątem wydajnego przesyłania dowolnych zestawów bajtów i minimalizacji liczby operacji kopiowania danych. Dane wyjściowe strumienia można zapisać w elementach podstawowych, takich jak ciągi znaków lub ArrayBuffer.
- Elementy SVG obsługują teraz pełną składnię właściwości „filtru”, umożliwiając jednoczesne stosowanie funkcji filtrujących, takich jak rozmycie(), sepia() i skala szarości() do elementów SVG i innych.
- CSS implementuje pseudoelement „::target-text”, za pomocą którego można podświetlić fragment, do którego nawigowano (przewinąć do tekstu) w innym stylu niż ten, którego używa przeglądarka przy podświetlaniu tego, co został znaleziony.
- Dodano właściwości CSS do kontroli zaokrąglania narożników: border-start-start-radius, border-start-end-radius, border-end-start-radius, border-end-end-radius.
- Dodano właściwość CSS wymuszone kolory, aby określić, czy przeglądarka używa na stronie ograniczonej palety kolorów określonej przez użytkownika.
- Dodano właściwość CSS z wymuszoną regulacją kolorów, aby wyłączyć wymuszone ograniczenia kolorów dla poszczególnych elementów, pozostawiając im pełną kontrolę kolorów CSS.
- JavaScript umożliwia użycie słowa kluczowego Wait w modułach na najwyższym poziomie, co pozwala na płynniejszą integrację wywołań asynchronicznych z procesem ładowania modułu i bez konieczności owijania ich w „funkcję asynchroniczną”. Na przykład zamiast (asyncfunction() { czekaj Promise.resolve(console.log('test')); }()); teraz możesz napisać Wait Promise.resolve(console.log('test'));
- W silniku JavaScript V8 wywołania funkcji są przyspieszane w sytuacjach, gdy liczba przekazanych argumentów nie odpowiada parametrom zdefiniowanym w funkcji. Przy rozbieżności w liczbie argumentów wydajność wzrosła o 11.2% w trybie innym niż JIT i o 40% przy zastosowaniu JIT TurboFan.
- W narzędziach dla twórców stron internetowych wprowadzono dużą część drobnych ulepszeń.
Oprócz innowacji i poprawek błędów, nowa wersja eliminuje 47 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. Należy zauważyć, że jedna z poprawionych podatności (CVE-2021-21166), związana z czasem życia obiektów w podsystemie dźwiękowym, ma charakter problemu 0-day i została wykorzystana w jednym z exploitów przed naprawą. W ramach programu nagród pieniężnych za odkrycie luk w bieżącej wersji Google wypłacił 33 nagrody o wartości 61000 10000 dolarów (dwie nagrody o wartości 7500 5000 dolarów, dwie nagrody o wartości 3000 dolarów, trzy nagrody o wartości 1000 dolarów, dwie nagrody o wartości 500 dolarów, cztery nagrody o wartości 18 dolarów i dwie nagrody o wartości XNUMX dolarów). Wielkość XNUMX nagród nie została jeszcze ustalona.
Źródło: opennet.ru