Firma Google wydanie przeglądarki internetowej . Jednocześnie stabilne wydanie projektu open source , będącego podstawą Chrome. Przeglądarka Chrome użyciem logotypów Google, systemem powiadamiania w przypadku awarii, możliwością pobierania modułu Flash na żądanie, modułami do odtwarzania chronionych treści wideo (DRM), systemem automatycznego instalowania aktualizacji oraz przekazami w trakcie wyszukiwania . Kolejne wydanie Chrome 86 jest zaplanowane na 6 października.
:
- możliwością grupowania kart. Karty są łączone w grupy za pomocą menu kontekstowego i mogą być powiązane z określonym kolorem i etykietą. Po kliknięciu na etykietę grupy, powiązane karty są teraz ukrywane, a zamiast nich pozostaje jedna etykieta. Ponowne kliknięcie na etykietę przywraca ukrycie.
- Zrealizowany podgląd zawartości kart. Po najechaniu kursorem na przycisk karty, wyświetlany jest miniaturowy widok strony znajdującej się na karcie. Funkcja jest obecnie aktywowana nie dla wszystkich użytkowników i można ją włączyć za pomocą ustawienia „chrome://flags/#tab-hover-cards”.
- Dodano możliwość zapisywania edytowanych formularzy PDF oraz zaproponowano ustawienia „chrome://flags#pdf-viewer-update” i „chrome://flags/#pdf-two-up-view” do eksperymentów z przeglądania dokumentów PDF.
- Dodano możliwość wymiany linków za pomocą kodów QR. Aby wygenerować kod QR dla bieżącej strony, w pasku adresu pojawia się specjalna ikona, która pojawia się po kliknięciu w pasek adresu. Funkcja jest obecnie aktywowana nie dla wszystkich użytkowników i można ją włączyć za pomocą ustawienia „chrome://flags/#sharing-qr-code-generator”.
- Na stronie about:flags pojawiła się opcja „Ukryj stałą ścieżkę URL w UI Omnibox, zapytanie i referencje” („chrome://flags#omnibox-ui-hide-steady-state-url-path-query-and-ref-on-interaction”) wyłącz wyświetlanie elementów ścieżki i parametrów zapytania w pasku adresu, pozostawiając widoczny tylko domenę strony. Ukrywanie odbywa się na początku interakcji ze stroną (podczas ładowania i dopóki użytkownik nie zacznie przewijać, wyświetlany jest pełny adres URL). Po ukryciu, aby zobaczyć pełny adres URL, proponuje się kliknięcie na pasku adresu. Dostępna jest również opcja „chrome://flags#omnibox-ui-reveal-steady-state-url-path-query-and-ref-on-hover” do wyświetlania pełnego adresu URL po najechaniu kursorem. Ustawienie w menu kontekstowym „Zawsze pokazuj URL w całości” unieważnia ukrycie „https://”, „www.”, ścieżek i parametrów. Domyślnie ukrycie aktywowane jest tylko dla niewielkiego procenta użytkowników. Powodem zmiany podawanym jest chęć ochrony użytkowników przed phishingiem, manipulującym parametrami w URL.
- W trybie tabletowym dla urządzeń z ekranami dotykowymi włączona jest pozioma nawigacja po otwartych kartach, w której oprócz nagłówków na kartach wyświetlane są duże miniatury stron powiązanych z kartami. Karty można przenosić i przestawiać za pomocą gestów ekranowych. Wyświetlanie miniatur włącza się i wyłącza specjalnym przyciskiem, umieszczonym obok paska adresu i awatara użytkownika. Aby wyłączyć tryb, przewidziane są ustawienia „chrome://flags/#webui-tab-strip” i „chrome://flags/#scrollable-tabstrip”.
- W wersji na Androida podczas wpisywania w pasku adresu w liście sugerowanych stron zapewniono wyświetlanie podpowiedzi do szybkiego przejścia do już otwartych kart.
- W wersji dla Androida w menu kontekstowym linków, które pojawia się po długim naciśnięciu linku, etykiety do wyróżnienia szybkich stron. Szybkość określa się na podstawie metryk , uwzględniających zbiorcze wskaźniki czasu ładowania, responsywności i stabilności zawartości.
- zapewniono blokowanie (bez szyfrowania) plików wykonywalnych oraz dodano wyświetlanie ostrzeżeń przy niebezpiecznym załadowaniu archiwów (zip, iso itp.). W następnym wydaniu przewiduje się blokadę archiwów i wyświetlanie ostrzeżenia dla dokumentów (docx, pdf itp.). W przyszłości stopniowo planowane jest całkowite zaprzestanie wsparcia dla przesyłania plików bez zastosowania szyfrowania. Blokada została wdrożona, ponieważ przesyłanie plików bez szyfrowania może być wykorzystywane do przeprowadzania złośliwych działań poprzez manipulację treścią w trakcie ataków MITM.
- Wsparcie dla formatu obrazów AVIF (AV1 Image Format) jest domyślnie włączone, wykorzystując technologie kompresji intra-frame z formatu kodowania wideo AV1. Kontener do dystrybucji skompresowanych danych w AVIF jest w pełni analogiczny do HEIF. AVIF obsługuje zarówno obrazy w HDR (High Dynamic Range) i przestrzeni barwnej Wide-gamut, jak i w standardowym zakresie dynamicznym (SDR).
- Podczas kompilacji pakietów dla systemów Windows i macOS domyślnie przy wywołaniach kompilatorów MSVC i Clang optymalizacje oparte na wynikach profilowania kodu (PGO – Profile-guided optimization), które pozwalają generować bardziej optymalny kod na podstawie analizy cech wykonania programu. Włączenie PGO umożliwiło przyspieszenie ładowania zakładek o około 10% (przyspieszenie w teście Speedometer 2.0 na macOS o 7.7%, a na Windows o 11.4%). Responsywność interfejsu wzrosła w macOS o 3.9%, a w Windows o 7.3%.
- Dodano eksperymentalny tryb ograniczania aktywności zakładek w tle („Tab Throttling”), dostępny poprzez ustawienie „chrome://flags##intensive-wake-up-throttling” (oczekiwane włączenie w Chrome 86). Po włączeniu trybu, przekazywanie kontroli do zakładek w tle (TaskQueues) ogranicza się do 1 wywołania na minutę, jeśli strona znajduje się w tle dłużej niż 5 minut.
- Dla wszystkich kategorii użytkowników włączono tryb redukcji zużycia zasobów CPU, gdy okno przeglądarki nie znajduje się w polu widzenia użytkownika. Chrome sprawdza, czy okno przeglądarki nie jest zasłonięte przez inne okna i wyłącza renderowanie pikseli w obszarach nakładania.
- ochrona przed ładowaniem mieszanej zawartości multimedialnej (gdy na stronie HTTPS ładowane są zasoby przez protokół http://). Na stronach otwartych przez HTTPS realizowana jest automatyczna zamiana linków „http://” na „https://” w blokach związanych z ładowaniem obrazów (wcześniej zamienione były skrypty i iframe, pliki dźwiękowe i filmy). Jeśli obraz nie jest dostępny przez https, jego ładowanie jest zablokowane (ręcznie można zaznaczyć blokadę przez menu dostępne przez symbol kłódki w pasku adresu).
- Do certyfikatów TLS wydanych od 1 września 2020 roku, stosowane nowe ograniczenie dotyczące okresu ważności — czas życia tych certyfikatów nie może przekraczać 398 dni (13 miesięcy). Podobne ograniczenia wprowadzono w Firefox i Safari. Certyfikaty uzyskane przed 1 września zachowają zaufanie, ale będą ograniczone do 825 dni (2,2 roku).
- W trybie Origin Trials (eksperymentalne funkcje wymagające osobnej aktywacji) dodano kilka nowych API. Origin Trial oznacza możliwość pracy z określonym API z aplikacji ładowanych z localhost lub 127.0.0.1, lub po zarejestrowaniu się i uzyskaniu specjalnego tokena, który jest ważny przez ograniczony czas dla konkretnej witryny.
- koncept w celu zapewnienia płynnej nawigacji między stronami i osadzenia jednej strony w drugiej w celu podglądu zawartości przed przejściem. Zaproponowano nowy tag , który umożliwia wyświetlenie innej strony w formie osadzenia, na którą, gdy uzyska fokus, pokazana w osadzeniu strona zostanie przekształcona w stan głównego dokumentu, wewnątrz którego dozwolona jest nawigacja. W przeciwieństwie do iframe osadzenie jest całkowicie izolowane od podstawowej strony i traktowane jako oddzielny dokument.
- API , co umożliwia realizację zapytań fetch z ładowaniem zawartości w formie strumienia (wcześniej zapytanie wymagało pełnej gotowości zawartości, a teraz możliwe jest rozpoczęcie wysyłania danych w formie strumienia, nie czekając na pełną gotowość ciała zapytania). Na przykład aplikacja internetowa może rozpocząć wysyłanie danych formularza internetowego, jak tylko użytkownik zacznie wpisywać tekst w polu wejściowym, a gdy pisanie zostanie zakończone, dane przez fetch() będą już wysyłane. W tym również za pomocą nowego API można przesyłać dane dźwiękowe i wideo generowane po stronie klienta.
- Zaproponowano API do tworzenia nowych korzeni w , na przykład aby oddzielić importowany styl elementu zewnętrznego oraz związaną z nim poddrzewo DOM od głównego dokumentu. Zaproponowane deklaracyjne API pozwala na oddzielanie gałęzi DOM tylko w HTML, bez konieczności pisania kodu w JavaScript.
- Dodano właściwość , które pozwala nadawcy strumieni RTC (komunikacja w czasie rzeczywistym) zarządzać włączaniem adaptacyjnego mechanizmu wysyłania pakietów.
- Uproszczono zapewnienie trwałej pamięci dla już zainstalowanych aplikacji PWA (Aplikacje internetowe o progresywnym działaniu) i TWA (Zaufane działania internetowe).
Aplikacja wystarczy, że wywoła metodę navigator.storage.persist() i zostanie przydzielona automatycznie.
- Wprowadzono nowe reguły CSS , które pozwalają rejestrować z dziedziczeniem, sprawdzaniem typów i wartościami domyślnymi. Działanie @property jest podobne do wcześniej dodanej metody registerProperty().
- Dla systemów Windows zapewniono możliwość korzystania z metody w celu określenia zainstalowanych aplikacji PWA. Wcześniej metoda ta działała tylko na platformie Android.
- Dla systemów stacjonarnych wprowadzono wsparcie dla , które pozwalają na szybki dostęp do popularnych, standardowych działań w aplikacji. Aby stworzyć ikonki, wystarczy dodać elementy do manifestu aplikacji internetowej w formacie PWA (Aplikacje internetowe o progresywnym działaniu). Wcześniej ikonki aplikacji były dostępne tylko na platformie Android.
- Dodano właściwość CSS do zarządzania widocznością zawartości w celu optymalizacji renderowania. Przy ustawieniu wartości ‘auto’ widoczność określa przeglądarka na podstawie bliskości elementu do granicy widocznego obszaru. Wartość ‘hidden’ pozwala w pełni zarządzać wyświetlaniem elementu z poziomu skryptów.
- Dodano właściwość CSS do ustawienia określonej wartości dla istniejących liczników. Nowa właściwość CSS uzupełnia wcześniej dostępne właściwości counter-reset i counter-increment, stosowane do tworzenia nowego licznika lub zwiększania istniejącego.
- Dodano właściwość CSS ‘page’, odzwierciedlającą stronę podczas druku, a także właściwość ‘page-orientation’ do uzyskiwania informacji o orientacji strony (‘upright’, ‘rotate-left’ i ‘rotate-right’). Wdrożono wsparcie dla odnoszenia się do stron przy użyciu nazw, na przykład ‘@page foobar {}’.
- Wprowadzono API do pomiaru opóźnień zdarzenia przed i po załadowaniu strony.
- W zdarzeniu leavepictureinpicture teraz przekazywany jest link do pictureInPictureWindow, aby uzyskać dostęp do okna w trybie Picture-in-Picture.
- Podczas wypełniania nagłówka Referrer domyślnie teraz zasada strict-origin-when-cross-origin (przesyłać Referrer skrócony do innych hostów, z których ładowane są zasoby) zamiast no-referrer-when-downgrade (Referrer nie jest wypełniany przy przejściu z HTTPS na HTTP, ale jest przesyłany przy ładowaniu zasobów przez HTTPS).
- W API WebAuthn nowe metody getPublicKey(), getPublicKeyAlgorithm() i getAuthenticatorData().
- W WebAssembly wsparcie importu i eksportu 64-bitowych parametrów funkcji, przy użyciu typu JavaScript BigInt.
- W WebAssembly zrealizowano rozszerzenie , funkcje zwracane wielu wartości.
- Początkowy (baseline) kompilator Liftoff dla WebAssembly jest używany dla wszystkich architektur i platform, a nie tylko dla systemów Intel. Kluczowa różnica między Liftoff a wcześniej stosowanym kompilatorem TurboFan polega na tym, że Liftoff dąży do uzyskania jak największej prędkości początkowej kompilacji, kosztem niskiej wydajności generowanego kodu. Liftoff jest znacznie prostszy niż TurboFan i generuje gotowy do uruchomienia kod maszynowy bardzo szybko, co pozwala niemal od razu na jego wykonanie, minimalizując opóźnienie związane z kompilacją. Aby przyspieszyć kod roboczy, równolegle uruchamiana jest faza optymalizującej rekompilacji, która jest realizowana z użyciem kompilatora Turbofan. Po przygotowaniu zoptymalizowanych instrukcji maszynowych, początkowa wersja robocza jest zastępowana szybszym kodem. W sumie, dzięki zmniejszeniu opóźnienia przed rozpoczęciem wykonania, zastosowanie Liftoff doprowadziło do zwiększenia wydajności zestawu testowego WebAssembly o około 20%.
- W JavaScript dodano nowe operatory логического присвоения: „??=”, „&&=” i „||=”. Operator „x ??= y” dokonuje przypisania tylko wtedy, gdy „x” ma wartość null lub undefined. Operator „x ||= y” dokonuje przypisania tylko wtedy, gdy „x” ma wartość FALSE, natomiast „x &&= y” — TRUE.
- Dodano metodę String.prototype.replaceAll(), zwracającą nowy ciąg (oryginalny ciąg nie jest zmieniany), w którym na podstawie zadanego wzoru dokonano zamiany wszystkich pasujących wartości. Wzory mogą być zarówno prostymi maskami, jak i wyrażeniami regularnymi.
- Zrealizowano metodę Promise.any(), która zwraca pierwszy spełniony Promise z listy.
- Zakończono działanie manifestu AppCache (technologia do organizacji pracy aplikacji webowej w trybie offline). Jako powód podano chęć pozbycia się jednego z wektorów do przeprowadzania ataków związanych z międzystronowym skryptowaniem. Zamiast AppCache zaleca się korzystanie z API. .
- Przekazywanie plików cookie w trybie SameSite=None dla połączeń bez szyfrowania jest zabronione. Atrybut SameSite jest określany w nagłówku Set-Cookie, aby zarządzać przesyłaniem plików cookie i domyślnie ustawiany jest na wartość „SameSite=Lax”, co ogranicza wysyłanie plików cookie dla międzystronowych subzapytań, takich jak żądanie obrazu lub ładowanie treści przez iframe z innej strony.
Strony mogą nadpisać domyślny tryb SameSite, jawnie ustawiając przy instalacji plików cookie wartość SameSite=None. Wartość SameSite=None dla plików cookie może być teraz ustawiana tylko w trybie Secure, który działa dla połączeń przez HTTPS. - W narzędziach dla programistów webowych wsparcie dla edytowania stylów stworzonych przy pomocy frameworków CSS-in-JS za pomocą API CSSOM (Model Obiektowy CSS), a także stylów dodanych z JavaScript. Panel audytu został zaktualizowany do wydania , który wprowadza nowe metryki Largest Contentful Paint (LCP), Cumulative Layout Shift (CLS) oraz Total Blocking Time (TBT).
- W panelu oceny wydajności wyświetlana jest informacja o . W przypadku nawigacji użytkownika po stronie w skali zapewniono wyświetlanie czasu w odniesieniu do początku nawigacji, a nie początku nagrania.
Oprócz wprowadzenia nowości i poprawy błędów w nowej wersji usunięto . Wiele luk zostało wykrytych w wyniku automatycznego testowania narzędziami , , , i . Nie stwierdzono krytycznych problemów, które pozwalają obejść wszystkie poziomy zabezpieczeń przeglądarki i wykonać kod w systemie poza środowiskiem sandbox. W ramach programu wypłat nagród za wykrywanie luk w bieżącej wersji firma Google przyznała 14 nagród o łącznej wartości 10 000 dolarów amerykańskich (jedna nagroda 5000 dolarów, trzy nagrody 1000 dolarów i cztery nagrody 500 dolarów). Wartość 6 nagród nie została jeszcze określona.
Źródło: opennet.ru
