Wydanie Chrome 80

Firma Google przedstawiła wydanie przeglądarki internetowej Chrome 80. Jednocześnie dostępne stabilne wydanie projektu open source Chromium, będącego podstawą Chrome. Przeglądarka Chrome wyróżnia się 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 parametrów RLZNastępna wersja Chrome 81 jest zaplanowana na 17 marca.

Podstawowe zmiany do Chrome 80:

  • Dla niewielkiego odsetka użytkowników wprowadzono funkcję grupowania kart, która pozwala na łączenie kilku podobnych kart w wizualnie oddzielone grupy. Każdej grupie można przypisać własny kolor i nazwę. Użytkownicy, którzy nie znaleźli się w pierwszej fali aktywacji, mogą włączyć wsparcie dla grupowania kart za pomocą opcji „chrome://flags/#tab-groups”.

    Wydanie Chrome 80
  • Dodano wsparcie dla funkcji Scroll-To-Text, która umożliwia tworzenie linków do pojedynczych słów lub zwrotów, bez wyraźnego wskazywania w dokumencie znaczników za pomocą tagu „a name” lub właściwości „id”. Składnia takich linków ma być zatwierdzona jako standard webowy, który obecnie znajduje się na etapie roboczej. Maskowanie przejścia (w rzeczywistości wykonywane jest przeszukiwanie z przewijaniem) oddziela się od zwykłego kotwicy oznacznikiem „:~:”. Na przykład otwierając link „https://opennet.ru/52312/#:~:text=Chromе”, strona przesunie się na pozycję z pierwszym wspomnieniem słowa „Chromе”, a to słowo będzie podświetlone.
  • Zastosowano bardziej rygorystyczne ograniczenie przekazywania cookie między witrynami, dla zapytań nie-HTTPS zabraniające przetwarzania zewnętrznych cookie, ustalanych podczas odwiedzania witryn różniących się od domeny bieżącej strony. Tego rodzaju cookie są używane do śledzenia ruchów użytkownika między witrynami w kodzie sieci reklamowych, widżetów społecznościowych oraz systemów analityki webowej. Przypominamy, że do zarządzania przekazywaniem cookie stosuje się atrybut SameSite, podawany w nagłówku Set-Cookie, który teraz domyślnie jest ustawiony na wartość „SameSite=Lax”, ograniczającą wysyłanie cookie dla międzystronnych subzapytań, takich jak żądanie obrazka lub ładowanie treści za pomocą iframe z innej witryny. Witryny mogą nadpisać domyślny tryb SameSite, wyraźnie ustawiając przy tworzeniu cookie wartość SameSite=None. Wartość SameSite=None dla cookie może być ustawiana tylko w trybie Secure (dotyczy połączeń przez HTTPS). Zmiana rozpocznie się stopniowo być stosowane 17 lutego, najpierw dla niewielkiego odsetka użytkowników, a potem stopniowo rozszerzając zasięg.
  • Dodano ochrona przed natrętnymi powiadomieniami związanymi z potwierdzeniem uprawnień. Ponieważ tego rodzaju aktywność, na przykład spam w postaci próśb o uzyskanie powiadomień push, przerywa pracę użytkownika i odciąga uwagę od działań w dialogach potwierdzenia, w Chrome 80 zamiast oddzielnego dialogu w pasku adresu może pojawić się informacyjna podpowiedź z ostrzeżeniem o zablokowaniu prośby o uprawnienia, która następnie zwija się w wskaźnik z obrazkiem przekreślonego dzwonka. Po kliknięciu na wskaźnik można aktywować lub odrzucić żądane uprawnienie w dowolnym momencie. Automatycznie nowy tryb będzie selektywnie włączany dla użytkowników, którzy wcześniej zazwyczaj blokowali takie prośby, a także dla stron, na których rejestruje się wysoki procent odrzucania próśb. Aby włączyć nowy tryb dla wszystkich próśb, do ustawień dodano specjalną opcję (chrome://flags/#quiet-notification-prompts).

    Wydanie Chrome 80
  • Zabroniono wywołanie wyskakujących okienek (metoda window.open()) oraz wysyłanie synchronicznych zapytań XMLHttpRequest w obsługiwaczach zdarzeń zamykania lub ukrywania strony (unload, beforeunload, pagehide i visibilitychange);
  • Zaproponowano początkową ochronę przed ładowaniem mieszanych treści multimedialnych (gdy na stronie HTTPS ładowane są zasoby z protokołu http://). Na stronach otwartych przez HTTPS linki "http://" będą automatycznie zamieniane na "https://" w blokach związanych z odtwarzaniem dźwięków i filmów. Jeśli zasób dźwiękowy lub wideo nie jest dostępny przez https, jego ładowanie zostanie zablokowane (można ręcznie oznaczyć blokadę przez menu dostępne przez symbol kłódki w pasku adresu).

    Obrazy będą się nadal ładować bez zmian (automatyczna zamiana będzie stosowana w Chrome 81), ale dla zamiany na https lub blokady obrazów deweloperzy stron otrzymali właściwości CSP upgrade-insecure-requests i block-all-mixed-content. Blokada mieszanych treści dla skryptów i iframe została już wcześniej wdrożona.

  • Rozpoczęto stopniowe wyłączanie wsparcia FTP. Domyślnie wsparcie FTP na razie pozostaje, ale będzie przeprowadzone eksperyment, w ramach którego dla określonego procenta użytkowników wsparcie FTP zostanie wyłączone (aby przywrócić je, trzeba uruchomić przeglądarkę z opcją „—enable-ftp”). Przypominamy, że w poprzednich wydaniach już wyłączono wyświetlanie w oknie przeglądarki zawartości zasobów ładowanych za pomocą protokołu „ftp://” (na przykład zaprzestano pokazywania dokumentów HTML i plików README), zabroniono użycia FTP do ładowania subzasobów z dokumentów oraz zakończono wsparcie proxy dla FTP. Niemniej jednak, do tej pory pozostawała możliwość ładowania plików przez bezpośrednie linki i wyświetlanie zawartości katalogów.
  • Dodano
    możliwość używania wektorowych obrazów SVG jako ikony strony (favicon).
  • Do ustawień dodano możliwość selektywnego wyłączania poszczególnych typów danych przesyłanych podczas synchronizacji między przeglądarkami.
  • Dla centralnie zarządzanych użytkowników korporacyjnych dodano zasady BlockExternalExtensions, która pozwala zabronić instalacji zewnętrznych rozszerzeń na urządzeniu.
  • Zrealizowano możliwość jednoczesnego sprawdzania całego łańcucha własności lub wywołań w JavaScript. Na przykład, przy odniesieniu do „db.user.name.length” wcześniej wymagana była stopniowa weryfikacja definicji wszystkich składników, na przykład przez „if (db && db.user && db.user.name)”. Teraz za pomocą operatora „?.” można odwołać się do wartości „db?.user?.name?.length” bez wcześniejszych weryfikacji i to odwołanie nie spowoduje błędu. W przypadku problemów (jeśli jakiś element został przetworzony jako null lub undefined) na wyjściu zostanie wydane wartość „undefined”.
  • W JavaScript zaproponowano nowy operator logiczny łączenia „??„, który zwraca prawy operand, jeśli lewy operand ma wartość NULL lub undefined, i odwrotnie. Na przykład, „const foo = bar ?? ‘domyślna struna'” jeśli bar jest równy null, zwróci wartość struny lub wartość bar w przeciwnym razie, w tym przypadku, gdy bar jest równy 0 i ’’, w przeciwieństwie do operatora „||”.
  • W trybie Origin Trials (eksperymentalne możliwości wymagające oddzielnej aktywacji) zaproponowano API Content Indexing. 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 działa przez ograniczony czas dla konkretnej strony. API Indeksowanie treści, dostarczając metadane o treści, która została wcześniej zbuforowana przez aplikacje internetowe działające w trybie Progressive Web Apps (PWA). Aplikacja może przechowywać różne dane po stronie przeglądarki, w tym obrazy, wideo i artykuły, a w przypadku utraty połączenia sieciowego korzystać z nich za pomocą API Cache Storage i IndexedDB. Content Indexing API umożliwia dodawanie, znajdowanie i usuwanie takich zasobów. W przeglądarce to API już jest wykorzystywane do wyliczania listy stron i danych multimedialnych dostępnych do przeglądania offline.

    Wydanie Chrome 80
  • Został ustabilizowany i teraz jest rozpowszechniany poza programem Origin Trials interfejs programowania aplikacji. Wybór kontaktów, umożliwiający użytkownikowi wybór rekordów z książki adresowej i przesłanie określonych informacji o nich na stronę. Przy żądaniu ustalany jest listę właściwości, które należy uzyskać. Właściwości te są wyraźnie wyświetlane użytkownikowi, który podejmuje decyzję, czy przesłać te właściwości, czy nie. API może być używane na przykład w webowym kliencie pocztowym do wyboru odbiorców wysyłanej wiadomości, w aplikacji internetowej z funkcją VoIP do inicjowania połączenia na określony numer lub w portalu społecznościowym do wyszukiwania już zarejestrowanych znajomych. W ramach Origin Trials zaproponowano także nowe właściwości Contact Picker: oprócz wcześniej dostępnych imienia i nazwiska, adresu e-mail oraz numeru telefonu, dodano możliwość przesyłania adresu pocztowego i zdjęcia.
  • W Web Workers zaproponowano nowy sposób ładowania modułów ECMAScript, który pozwala na ominięcie używania funkcji importScripts(), która blokuje działanie worker-a podczas przetwarzania importowanego skryptu i wykonuje go w kontekście globalnym. Nowy sposób zakłada tworzenie specjalnych modułów dla Web Workers, które wspierają standardowe mechanizmy importu JavaScript i mogą być ładowane dynamicznie, nie blokując wykonania worker-a. Do ładowania modułów w konstruktorze Worker przewidziano nowy typ zasobu — 'module':

    const worker = new Worker(‘worker.js’, {
    type: ‘module’
    });

  • Zrealizowano wbudowana możliwość przetwarzania w JavaScript skompresowanych strumieni, która nie wymaga użycia zewnętrznych bibliotek. Do kompresji i dekompresji dodano API CompressionStream i DecompressionStream. Obsługiwane jest kompresowanie z użyciem algorytmów gzip i deflate.

    const compressionReadableStream
    = inputReadableStream.pipeThrough(new CompressionStream(‘gzip’));

  • Dodano właściwość CSS „line-break: anywhere«, pozwalające na łamanie w dowolnym miejscu w ramach znaku typograficznego, w tym w pobliżu znaków interpunkcyjnych, wcześniej zdefiniowanych spacji (<pre>) oraz w środku słów. Dodano również właściwość CSS «overflow-wrap: anywhere» pozwalająca na łamanie niełamliwych sekwencji znaków w dowolnym miejscu, jeżeli w wierszu nie znaleziono odpowiedniej pozycji do złamania.
  • Dla kontekstu multimedialnego, przetwarzanego w sposób szyfrowany, wprowadzono wsparcie dla metody MediaCapabilities.decodingInfo(), która dostarcza informacji o możliwościach przeglądarki związanych z dekodowaniem chronionych treści (na przykład, podana metoda może być użyta do wyboru scenariuszy wysokiej jakości lub oszczędzających energię metod dekodowania, biorąc pod uwagę dostępną przepustowość i rozmiar ekranu).
  • Dodano metodę HTMLVideoElement.getVideoPlaybackQuality(), za pomocą której można uzyskać informacje o wydajności odtwarzania wideo w celu korekty bitrate, rozdzielczości i innych parametrów wideo.
  • W API Payment Handler, które upraszcza integrację z istniejącymi systemami płatności, dodano możliwość delegowania obsługi adresu i informacji kontaktowych zewnętrznemu dostawcy usług płatniczych (aplikacja systemu płatności może mieć dokładniejsze informacje niż przeglądarka).
  • Dodano wsparcie dla nagłówka HTTP Sec-Fetch-Dest, pozwalającą na wysyłanie dodatkowych metadanych o typie treści związanej z żądaniem (na przykład, dla żądania przez tag img typ musi być «image», dla fontów — «font», dla skryptów — «script», dla stylów — «style» itd.). Na podstawie podanego typu serwer może podjąć działania ochronne przed niektórymi rodzajami ataków (na przykład mało prawdopodobne jest, aby link do przetwarzania płatności został zadany przez tag img, dlatego takie żądania nie muszą być przetwarzane).
  • Silnik JavaScript V8 przeprowadzono optymalizację przechowywania wskaźników w stercie. Zamiast pełnej wartości 64-bitowej zapewniono przechowywanie tylko unikalnych dolnych bitów wskaźnika. Taka optymalizacja pozwoliła na zmniejszenie zużycia pamięci w stercie o 40%, kosztem spadku wydajności o 3-8%.
    Wydanie Chrome 80

    Wydanie Chrome 80
  • Zmiany w narzędziach dla programistów webowych:
    • W konsoli sieciowej dodano możliwość nadpisywania wyrażeń let i class.

      Wydanie Chrome 80
    • Udoskonalono narzędzia debugujące WebAssembly. Dodano wsparcie DWARF do krokowego debugowania, wskazywania punktów zatrzymania i analizy śladów stosu w kodzie źródłowym, w którym napisano aplikację WebAssembly.

      Wydanie Chrome 80
    • Ulepszono panel do analizy aktywności sieciowej. Dodano możliwość przeglądania łańcucha wywołań skryptów związanych z inicjowaniem żądania.

      Wydanie Chrome 80

      Dodano nowe kolumny Path i URL, które pokazują absolutną ścieżkę i pełny URL dla każdego zasobu sieciowego. Umożliwiono wyróżnienie wybranego żądania na wykresie przeglądowym.

      Wydanie Chrome 80
    • Na karcie Warunki sieci dodano opcję zmiany parametru User-Agent.

      Wydanie Chrome 80
    • Zaproponowano nowy interfejs do konfiguracji panelu audytu.
      Wydanie Chrome 80
    • Na zakładce Pokrycie dostępna jest opcja zbierania danych pokrycia dla każdej funkcji lub dla każdego bloku kodu (bardziej szczegółowa statystyka, ale wymaga więcej zasobów).

      Wydanie Chrome 80
  • Działanie manifestu AppCache (technologia umożliwiająca działanie aplikacji webowych w trybie offline) jest ograniczone do bieżącego katalogu witryny (jeśli manifest został załadowany z www.example.com/foo/bar/, to możliwość nadpisania URL będzie działać tylko wewnątrz /foo/bar/). W Chrome 82 planuje się całkowite usunięcie wsparcia dla AppCache. Powodem jest chęć pozbycia się jednego z wektorów ataków związanych z międzystronowym skryptowaniem. Zamiast AppCache zaleca się używać API Cache.
  • Zakończono wsparcie dla przestarzałego API WebVR 1.1, które można zastąpić API WebXR Device, które umożliwia dostęp do komponentów do tworzenia rzeczywistości wirtualnej i rozszerzonej oraz unifikuje działanie z różnymi klasami urządzeń, od stacjonarnych hełmów rzeczywistości wirtualnej do rozwiązań opartych na urządzeniach mobilnych.
  • Obsługiwacze protokołów, podłączani za pomocą metod registerProtocolHandler() i unregisterProtocolHandler(), mogą teraz działać tylko w bezpiecznym kontekście (przy dostępie przez HTTPS).

Oprócz wprowadzenia nowości i poprawy błędów w nowej wersji usunięto 56 podatności. Wiele luk zostało wykrytych w wyniku automatycznego testowania narzędziami AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer i AFL. Krytycznych problemów, które umożliwiają ominięcie wszystkich poziomów ochrony przeglądarki i uruchomienie kodu w systemie poza środowiskiem piaskownicy, nie wykryto. W ramach programu wypłaty nagród za odkrycie podatności firma Google przyznała 37 nagród na łączną kwotę 48 tysięcy dolarów (jedna nagroda $10000, trzy nagrody $5000, trzy nagrody $3000, cztery nagrody $2000, trzy nagrody $1000 i sześć nagród $500). Wartość 17 nagród nie została jeszcze określona.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster