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 . Następna wersja Chrome 77 jest zaplanowana na 10 września.
:
- domyślnie tryb ochrony przed przesyłaniem zewnętrznych ciasteczek, który w przypadku braku atrybutu SameSite w nagłówku Set-Cookie domyślnie ustawia wartość „SameSite=Lax”, ograniczając przesyłanie ciasteczek dla wstawek z zewnętrznych stron (jednak strony nadal będą mogły anulować to ograniczenie, wyraźnie ustawiając podczas konfigurowania ciasteczek wartość SameSite=None). Do tej pory przeglądarka przesyłała ciasteczka przy każdym żądaniu do strony, dla której są ustawione ciasteczka, nawet jeśli początkowo otwarto inną stronę, a odwołanie następuje pośrednio poprzez ładowanie obrazu lub przez iframe. W trybie 'Lax' przesyłanie ciasteczek jest blokowane tylko dla zewnętrznych podzapytań, takich jak żądanie obrazu lub ładowanie treści przez iframe, które są często wykorzystywane do organizowania ataków CSRF i do śledzenia ruchu użytkownika między stronami.
- Domyślnie wstrzymano odtwarzanie treści Flash. Do wydania Chrome 87, przewidywanego na grudzień 2020 roku, wsparcie Flash można będzie przywrócić w ustawieniach (Zaawansowane > Prywatność i zabezpieczenia > Ustawienia strony) z późniejszym wyraźnym potwierdzeniem operacji odtwarzania treści Flash dla każdej strony (potwierdzenie zostanie zapamiętane do ponownego uruchomienia przeglądarki). Całkowite usunięcie kodu gwarantującego wsparcie dla Flash jest zsynchronizowane z wcześniej ogłoszonym przez firmę Adobe planem zakończenia wsparcia technologii Flash w 2020 roku;
- Dla przedsiębiorstw dodano możliwość wyszukiwania plików w Google Drive w pasku adresu;
- Rozpoczęto w Chrome nieakceptowalnej reklamy, utrudniającej odbiór treści i niespełniającej kryteriów ustalonych przez Koalicję do poprawy reklam;
- Zrealizowano adaptacyjny tryb przełączania na nową stronę, w którym czyszczenie bieżącej zawartości oraz wyświetlenie białego tła odbywa się nie od razu, lecz z niewielkim opóźnieniem. Dla szybko ładujących się stron czyszczenie prowadzi jedynie do migotania i nie niesie użytecznej informacji dla użytkownika o rozpoczęciu ładowania nowej strony. W nowym wydaniu, jeśli strona otwiera się szybko i mieści się w niewielkim opóźnieniu, nowa strona jest wyświetlana w miejscu, płynnie zastępując poprzednią (np. co jest wygodne przy przejściu na inne strony tej samej witryny, które mają podobny wygląd i kolorystykę). Jeśli wyświetlenie strony wymaga zauważalnego czasu, to jak wcześniej ekran zostanie wstępnie wyczyszczony;
- Zaostrzone kryteria określania aktywności użytkownika na stronie. Chrome zezwala na wyświetlanie powiadomień i odtwarzanie natarczywego materiału wideo/audio tylko po interakcji użytkownika ze stroną. W nowym wydaniu naciśnięcie klawisza Escape, najechanie kursorem na link czy dotknięcie ekranu nie jest już traktowane jako interakcja aktywująca stronę (wymagana jest wyraźna kliknięcie, wprowadzenie tekstu lub przewijanie);
- media-query „prefers-color-scheme”, umożliwiający stronom określenie zastosowania ciemnego motywu w przeglądarce i automatyczne włączenie ciemnego wyglądu dla odwiedzanej strony.
- Po włączeniu ciemnego motywu w wydaniach dla Linuxa, ciemnym kolorem wyświetlana jest także pasek adresu;
- możliwość określenia otwierania strony w trybie incognito poprzez manipulacje z FileSystem API, które wcześniej były używane przez niektóre redakcje do wymuszania płatnej subskrypcji w przypadku bezosobowego otwierania stron bez zapamiętywania ciasteczek (aby użytkownicy nie używali trybu prywatnego do omijania mechanizmów oferujących bezpłatny dostęp próbny). Wcześniej przy pracy w trybie incognito przeglądarka blokowała dostęp do FileSystem API, aby zapobiec osiedlaniu danych między sesjami, co umożliwiało z poziomu JavaScript sprawdzenie możliwości zapisania danych przez FileSystem API i w przypadku niepowodzenia sądzenie o aktywności trybu incognito. Teraz dostęp do FileSystem API nie jest blokowany, a zawartość jest czyszczona po zakończeniu sesji;
- nowe wywołania w
API Payment Request i Payment Handler. W obiekcie PaymentRequestEvent pojawiła się nowa metoda changePaymentMethod(), a do obiektu PaymentRequest dodano nowy obsługiwacz zdarzenia paymentmethodchange, który pozwala platformie obsługującej płatności lub aplikacji webowej na reagowanie na zmianę metody płatności przez użytkownika. W nowym wydaniu uproszczono również testowanie aplikacji korzystających z samopodpisanych certyfikatów w związanych z płatnościami API. Dodano nową opcję wiersza poleceń „—ignore-certificate-errors”, aby zignorować błędy weryfikacji certyfikatów podczas rozwoju. - W pasku adresu obok przycisku dodawania do zakładek dla aplikacji webowych działających w trybie Desktop Progressive Web Apps (PWA), skróty do instalacji aplikacji webowej w systemie jako samodzielny program;
- Dla urządzeń mobilnych wprowadzono możliwość zarządzania wyświetlaniem mini-panelu z zaproszeniem do dodania aplikacji na ekran główny. Dla aplikacji PWA (Progressive Web App) mini-panel jest domyślnie automatycznie wyświetlany przy pierwszym otwarciu strony. Teraz programista może zrezygnować z wyświetlania tego panelu i zrealizować własne zaproszenie do instalacji, w tym celu można ustawić obsługę zdarzenia
beforeinstallprompt i powiązać je z wywołaniem preventDefault(); - Zwiększono częstotliwość sprawdzania aktualizacji dla zainstalowanych w środowisku Android aplikacji PWA (Progressive Web App). Aktualizacje WebAPK są teraz sprawdzane raz dziennie, a nie co trzy dni jak wcześniej. Jeśli w manifeście zostanie wykryta zmiana jakiejkolwiek kluczowej właściwości, przeglądarka pobierze i zainstaluje nowy WebAPK;
- W API dodano możliwość programowego odczytu i zapisu obrazów przez schowek, korzystając z metod navigator.clipboard.read() i navigator.clipboard.write();
- Zrealizowano obsługę grupy nagłówków HTTP (Sec-Fetch-Dest, Sec-Fetch-Mode, Sec-Fetch-Site i Sec-Fetch-User), które pozwalają na przesyłanie dodatkowych metadanych o charakterze żądania (żądanie międzydomenowe, żądanie przez tag img itd.) w celu podjęcia przez serwer działań mających na celu ochronę przed niektórymi typami ataków (na przykład mało prawdopodobne jest, aby link do obsługi przelewu pieniędzy był wywoływany przez tag img, dlatego takie żądania można blokować bez przesyłania ich do aplikacji);
- Dodano funkcję , który inicjuje programowe wysyłanie danych formularza na wzór kliknięcia na przycisk wysyłania danych. Funkcję tę można stosować przy tworzeniu własnych przycisków wysyłania formularza, dla których wywołanie form.submit() nie jest wystarczające, ponieważ nie prowadzi do interaktywnej weryfikacji parametrów, generowania zdarzenia ‘submit’ oraz przesyłania powiązanych z przyciskiem danych;
- W IndexedDB dodano funkcję , która umożliwia finalizację transakcji związanych z obiektem IDBTransaction bez czekania na zakończenie obsługi zdarzeń we wszystkich powiązanych zapytaniach. Użycie commit() pozwala zwiększyć przepustowość zapytań do zapisu i odczytu w magazynie oraz wyraźnie kontrolować zakończenia transakcji;
- W funkcji Intl.DateTimeFormat, takie jak formatToParts() i resolveOptions(), dodano opcje , które umożliwiają żądanie lokalnych stylów wyświetlania daty i czasu;
- Metoda BigInt.prototype.toLocaleString() została zmieniona w celu formatowania liczb z uwzględnieniem lokalizacji, a metoda Intl.NumberFormat.prototype.format() oraz funkcja formatToParts() zostały dostosowane do obsługi wartości wejściowych typu BigInt;
- Zezwolono na użycie API we wszystkich typach Web Worker, co może być wykorzystane do wyboru optymalnych parametrów podczas tworzenia MediaStream z worker-a;
- Dodano metodę , która zwraca tylko już wykonane lub odrzucone promise, nie uwzględniając promise oczekujących na wykonanie;
- Usunięto opcję ‘—disable-infobars’, która wcześniej mogła być stosowana do ukrywania wyskakujących powiadomień w interfejsie Chrome (do ukrywania powiązanych z bezpieczeństwem powiadomień zaproponowano zasadę CommandLineFlagSecurityWarningsEnabled);
- W interfejsie do pracy z blobami metody text(), arrayBuffer() oraz stream() do odczytu określonych typów danych;
- Dodano właściwość CSS ‘white-space: break-spaces’, która określa, że każda sekwencja spacji prowadząca do przepełnienia wiersza powinna być złamana;
- Rozpoczęto prace nad czyszczeniem flag w chrome://flags, na przykład, flaga do wyłączenia atrybutu „ping”, umożliwiającego właścicielom stron śledzenie kliknięć w linki z ich stron. W przypadku kliknięcia w link z atrybutem „ping=URL” w tagu „a href”, w przeglądarce nie da się już wyłączyć wysyłania dodatkowego zapytania POST do wskazanego w atrybucie URL z informacjami o dokonanym przejściu. Sens blokowania ping jest tracony, ponieważ ten atrybut w specyfikacjach HTML5, a istnieje wiele obejść, które pozwalają na wykonanie tej samej czynności (na przykład przekierowanie przez link tranzytowy lub przechwytywanie kliknięć za pomocą obsłużenia zdarzeń w JavaScript);
- Usunięto flagę do wyłączenia , w którym strony różnych hostów są zawsze ładowane w pamięci różnych procesów, w każdym z nich stosując swój sandbox.
- W silniku V8 znacznie zwiększono wydajność skanowania i analizowania formatu JSON. Dla popularnych stron internetowych zaobserwowano przyspieszenie działania JSON.parse do 2,7 razy. Zdecydowanie przyspieszono konwersję ciągów unicode, na przykład wydajność wywołań String#localeCompare, String#normalize oraz niektórych API Intl, wzrosła prawie dwukrotnie. Ponadto znacząco zoptymalizowano wydajność operacji na zamrożonych tablicach przy użyciu operacji podobnych do frozen.indexOf(v), frozen.includes(v), fn(…frozen), fn(…[…frozen]) i fn.apply(this, […frozen]).

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 wykryto krytycznych problemów, które pozwalają 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 odkrywanie podatności w obecnym wydaniu firma Google wypłaciła 16 nagród na łączną kwotę 23500 dolarów amerykańskich (jedna nagroda $10000, jedna nagroda $6000, dwie nagrody $3000 i trzy nagrody $500). Wysokość 9 nagród nie została jeszcze określona.
Źródło: opennet.ru

