Chrome wersja 74

Google представила wydanie przeglądarki internetowej Chrome 74... Jednocześnie dostępny stabilne wydanie darmowego projektu chrom, który jest podstawą Chrome. Przeglądarka Chrome inny wykorzystanie logo Google, możliwość pobrania modułu Flash na żądanie, obecność systemu wysyłania powiadomień w przypadku awarii, moduły do ​​odtwarzania chronionych treści wideo, system automatycznego instalowania aktualizacji i transmisji podczas wyszukiwania Parametry RLZ. Następna wersja Chrome 75 zaplanowana jest na 4 czerwca.

Głównym zmiany в Chrom 74:

  • Gdy wystąpi zdarzenie onUnload, które jest wywoływane po zamknięciu strony, now Zabronione wyświetlać wyskakujące okienka (wywołanie window.open() jest zablokowane), co uchroni użytkowników przed zmuszaniem do otwierania stron reklamowych po zamknięciu podejrzanych witryn;
  • W silniku JavaScript wdrożone nowy tryb Bez JIT (flaga „—jitless”), która umożliwia wykonanie JavaScript bez użycia JIT (używany jest tylko interpreter) i bez przydzielania pamięci wykonywalnej podczas wykonywania kodu. Wyłączenie JIT może być przydatne do poprawy bezpieczeństwa podczas pracy z potencjalnie niebezpiecznymi aplikacjami internetowymi, a także do zapewnienia kompilacji na platformach, które zabraniają korzystania z JIT (na przykład iOS, niektóre inteligentne telewizory i konsole do gier. Gdy JIT jest wyłączony, wykonywanie JavaScript wydajność spada o 40% w teście Speedometer 2.0 i 80% w teście Web Tooling Benchmark, ale podczas symulacji pracy z YouTube spadek wydajności wynosił tylko 6%, natomiast zużycie pamięci nieznacznie spadło, bo tylko o 1.7%;
  • V8 oferuje także dużą porcję nowych optymalizacji. Przykładowo wykonanie wywołań funkcji, w których liczba faktycznie przekazanych parametrów nie odpowiada liczbie argumentów podanych przy definiowaniu funkcji, zostało przyspieszone o 60%. Przyspieszono dostęp do właściwości DOM za pomocą funkcji get, co pozytywnie wpływa na wydajność frameworku Angular. Przyspieszono parsowanie JavaScriptu: optymalizacja dekodera UTF-8 pozwoliła zwiększyć wydajność parsera w trybie strumieniowym (parsowanie podczas ładowania) o 8%, a wyeliminowanie zbędnych operacji deduplikacji dało wzrost o kolejne 10.5%;
  • Włożono wiele pracy, aby zmniejszyć zużycie pamięci przez silnik JavaScript.
    Dodano kod do czyszczenia pamięci podręcznej kodu bajtowego, która zajmuje około 15% całkowitego rozmiaru sterty. Do modułu zbierającego elementy bezużyteczne dodano etap usuwający rzadko kompilowany kod bajtowy z pamięci podręcznej dla funkcji, które są używane lub funkcji, które są wywoływane tylko podczas inicjalizacji. Decyzja o oczyszczeniu jest podejmowana na podstawie nowych liczników, które uwzględniają czas ostatniego dostępu do kodu bajtowego. Ta zmiana zmniejszyła zużycie pamięci o 5–15% bez negatywnego wpływu na wydajność. Dodatkowo kompilator kodu bajtowego wyklucza generowanie oczywiście nieużywanego kodu, który następuje np. po powrocie lub przerwaniu (jeśli nie ma do niego przejścia Jump);

    Chrome wersja 74

  • Dla zestawu WebAssembly wdrożone obsługa wątków i operacji atomowych (API WebAssembly Threads i WebAssembly Atomics);
  • W celu oddzielnego dostarczania skryptów dodano obsługę nagłówka „#!”, który określa, który interpreter ma zostać uruchomiony. Na przykład, podobnie jak w przypadku innych języków skryptowych, plik JavaScript może wyglądać mniej więcej tak:

    #!/usr/bin/env węzeł
    konsola.log(42);

  • Do CSS dodano nowe zapytanie o media „preferuje ograniczony ruch„, umożliwiając witrynie określenie stanu ustawień w systemie operacyjnym związanych z wyłączeniem efektów animowanych. Korzystając z sugerowanej prośby, właściciel witryny może dowiedzieć się, że użytkownik wyłączył efekty animowane, a także wyłączyć różne funkcje animacji na stronie, na przykład usuń efekt drżenia przycisków służących do przyciągania uwagi;
  • Oprócz możliwości definiowania pól publicznych wprowadzonej w Chrome 72 wsparcie wdrożone Oznaczenie pól jako prywatne, po czym dostęp do ich wartości będzie otwarty tylko w obrębie klasy. Aby oznaczyć pole jako prywatne, dodaj znak „#” przed nazwą pola. Podobnie jak w przypadku pól publicznych, właściwości prywatne nie wymagają jawnego użycia konstruktora.
  • Dodano nagłówek HTTP Feature-Policy, który pozwala kontrolować zachowanie API i włączać określone funkcje (na przykład można włączyć tryb pracy synchronicznej XMLHttpRequest lub wyłączyć API Geolokalizacji). JavaScript API kontrolować działanie pewnych możliwości. Dla programistów dostępne są dwie nowe metody document.featurePolicy i ramka.featurePolicy, oferujące trzy funkcje:
    dozwoloneFeatures() w celu uzyskania listy funkcji dozwolonych w bieżącej domenie, pozwalaFeature() w celu selektywnego sprawdzenia, czy określone funkcje są włączone, oraz getAllowlistForFeature() w celu zwrócenia listy domen, w których określona funkcja jest dozwolona na bieżącej stronie;

  • Dodano eksperymentalną obsługę tego trybu („chrome://flags#enable-text-fragment-anchor”) Przewiń do tekstu, który umożliwia tworzenie linków do poszczególnych słów lub fraz, bez konieczności określania jednoznacznie etykiet w dokumencie za pomocą znacznika „a name” lub właściwości „id”. Aby wysłać link, dostępny jest specjalny parametr „#targetText=”, w którym można określić tekst przejścia. Dopuszcza się określenie maski zawierającej frazy wskazujące początek i koniec fragmentu, stosując jako separator przecinek (np. „example.com#targetText=start%20words, end%20words”);
  • Do konstruktora AudioContext dodano opcję próbna stawka, który umożliwia ustawienie częstotliwości próbkowania dla operacji audio za pośrednictwem Web Audio API;
  • Dodano obsługę klas Międzynarodowe, który zapewnia metody analizowania i przetwarzania parametrów języka, regionu i stylu ustawionych przez ustawienia regionalne, a także odczytywania i zapisywania znaczników rozszerzeń Unicode, zapisując ustawienia regionalne użytkownika w formacie serializowanym;
  • mechanizm Podpisane wymiany HTTP (SXG) rozbudowany o narzędzia do informujący dystrybutorom treści o błędach w pobieraniu podpisanych treści, np. problemach z weryfikacją certyfikatu. Obsługa błędów odbywa się poprzez rozszerzenia API Rejestrowanie błędów sieciowych. Przypomnijmy sobie SXG pozwala on właściciel jednej witryny, korzystając z podpisu cyfrowego, zezwala na umieszczenie określonych stron w innej witrynie, po czym w przypadku uzyskania dostępu do tych stron w drugiej witrynie przeglądarka wyświetli użytkownikowi adres URL oryginalnej witryny, mimo że że strona została załadowana z innego hosta;
  • Do klasy TextEncoder została dodana metoda kodujInto(), co umożliwia zapisanie zakodowanego ciągu bezpośrednio do wstępnie przydzielonego bufora. Metoda encodeInto() to wydajna alternatywa dla metody encode(), która wymaga wykonania operacji alokacji bufora przy każdym uzyskaniu dostępu.
  • W pracowniku serwisu zabezpieczone buforowanie wywołania client.postMessage() do czasu, aż dokument będzie gotowy. Wiadomości wysyłane za pośrednictwem client.postMessage() będą przechowywane do czasu wywołania zdarzenia DOMContentLoaded, ustawienia onmessage lub wywołania startMessages();
  • Zgodnie z wymaganiami specyfikacji CSS Transitions dodany zdarzenia transitrun, transitcancel, transitstart i transitend generowane, gdy przejście CSS jest umieszczane w kolejce, anulowane, rozpoczyna się lub kończy wykonywanie.
  • Podczas określania nieprawidłowego kodowania znaków za pomocą overrideMimeType() lub typu MIME dla XMLHttpRequest, teraz powraca do UTF-8 zamiast Latin-1;
  • Właściwość „allow-downloads-without-user-activation”, dzięki której możliwe było automatyczne pobieranie plików podczas przetwarzania ramek iframe, została przestarzała i zostanie usunięta w przyszłej wersji. W przyszłości inicjowanie pobierania plików bez wyraźnego działania użytkownika będzie zabronione, ponieważ jest ono aktywnie wykorzystywane do nadużyć, wymuszania pobierania i umieszczania części złośliwego oprogramowania na komputerze użytkownika. Aby rozpocząć pobieranie, konieczne będzie kliknięcie przez użytkownika tej samej strony. Pierwotnie planowano usunąć tę usługę w przeglądarce Chrome 74, ale tak się stało odłożony aż do Chrome 76.
  • Opcjonalnie dla platformy Windows oferowany jest ciemny motyw do projektowania interfejsu (w poprzedniej wersji przygotowano ciemny motyw dla systemu macOS). Ponieważ ciemny wygląd jest prawie identyczny z wyglądem w trybie incognito, zamiast ikony profilu użytkownika dodano specjalny wskaźnik, aby podświetlić prywatny tryb pracy;
  • Dodano możliwość dla użytkowników korporacyjnych Zarządzanie przeglądarką Chrome w chmurze do zarządzania ustawieniami przeglądarki użytkownika poprzez konsolę administracyjną Google;

    Chrome wersja 74

Oprócz innowacji i poprawek błędów, nowa wersja eliminuje 39 luk w zabezpieczeniach. Wiele luk w zabezpieczeniach zostało zidentyfikowanych w wyniku zautomatyzowanych narzędzi testujących AdresSanitizer, Odkażacz do pamięci, Integralność przepływu sterowania, LibFuzzer и 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 Google wypłacił 19 nagród na kwotę 26837 3000 dolarów (cztery nagrody po 2000 dolarów, cztery nagrody po 1337 dolarów, jedna nagroda po 1000 dolarów, cztery nagrody po 500 dolarów i trzy nagrody po 4 dolarów). Wielkość XNUMX nagród nie została jeszcze ustalona.

Źródło: opennet.ru

Dodaj komentarz