Rilis Chrome 74

Google disajikan rilis browser web Krom 74... Serentak tersedia rilis stabil dari proyek gratis Khrom, yang merupakan dasar dari Chrome. Peramban Chrome berbeda penggunaan logo Google, kemampuan untuk mengunduh modul Flash berdasarkan permintaan, keberadaan sistem untuk mengirimkan pemberitahuan jika terjadi kerusakan, modul untuk memutar konten video yang dilindungi, sistem untuk menginstal pembaruan dan transmisi secara otomatis selama pencarian parameter RLZ. Rilis Chrome 75 berikutnya dijadwalkan pada 4 Juni.

Utama perubahan в Chrome 74:

  • Saat event onUnload terjadi, yang dipanggil saat halaman ditutup, sekarang Hal ini dilarang menampilkan jendela pop-up (panggilan window.open() diblokir), yang akan melindungi pengguna dari keharusan membuka halaman iklan setelah menutup situs yang meragukan;
  • Di mesin JavaScript diimplementasikan rezim baru telah muncul Tanpa JIT (“—jitless” flag), yang memungkinkan eksekusi JavaScript tanpa menggunakan JIT (hanya interpreter yang digunakan) dan tanpa mengalokasikan memori yang dapat dieksekusi selama eksekusi kode. Menonaktifkan JIT dapat berguna untuk meningkatkan keamanan saat bekerja dengan aplikasi web yang berpotensi berbahaya, serta untuk memastikan pembangunan pada platform yang melarang penggunaan JIT (misalnya, iOS, beberapa smart TV, dan konsol game. Saat JIT dinonaktifkan, eksekusi JavaScript performa menurun sebesar 40% pada pengujian Speedometer 2.0 dan 80% pada pengujian Web Tooling Benchmark, namun saat melakukan simulasi bekerja dengan YouTube, hanya terjadi penurunan performa sebesar 6%, sedangkan konsumsi memori sedikit menurun, hanya sebesar 1.7%;
  • V8 juga menawarkan sebagian besar optimasi baru. Misalnya, eksekusi pemanggilan fungsi yang jumlah parameter sebenarnya yang diteruskan tidak sesuai dengan jumlah argumen yang ditentukan saat mendefinisikan fungsi telah dipercepat sebesar 60%. Akses ke properti DOM menggunakan fungsi get telah dipercepat, yang berdampak positif pada kinerja kerangka Angular. Penguraian JavaScript telah dipercepat: optimalisasi decoder UTF-8 memungkinkan peningkatan kinerja parser dalam mode streaming (penguraian saat dimuat) sebesar 8%, dan menghilangkan operasi deduplikasi yang tidak perlu memberikan peningkatan sebesar 10.5%;
  • Pekerjaan telah dilakukan untuk mengurangi konsumsi memori mesin JavaScript.
    Menambahkan kode untuk menghapus cache bytecode, yang memakan sekitar 15% dari total ukuran heap. Sebuah tahapan telah ditambahkan ke pengumpul sampah untuk mengeluarkan bytecode yang jarang dikompilasi dari cache untuk fungsi yang digunakan atau fungsi yang hanya dipanggil saat inisialisasi. Keputusan untuk membersihkan dibuat berdasarkan penghitung baru yang memperhitungkan waktu terakhir bytecode diakses. Perubahan ini mengurangi konsumsi memori sebesar 5–15% tanpa berdampak negatif pada kinerja. Selain itu, kompiler bytecode mengecualikan pembuatan kode yang jelas-jelas tidak digunakan, misalnya, yang mengikuti return atau break (jika tidak ada transisi Jump ke sana);

    Rilis Chrome 74

  • Untuk WebAssembly diimplementasikan dukungan untuk thread dan operasi atom (API WebAssembly Threads dan WebAssembly Atomics);
  • Untuk pengiriman skrip terpisah, dukungan untuk header “#!” telah ditambahkan, yang menentukan penerjemah yang akan dijalankan. Misalnya, mirip dengan bahasa skrip lainnya, file JavaScript mungkin terlihat seperti ini:

    #!/usr/bin/env simpul
    konsol.log(42);

  • Kueri media baru telah ditambahkan ke CSS "lebih menyukai gerakan yang dikurangi“, memungkinkan situs untuk menentukan status pengaturan di sistem operasi terkait dengan penonaktifan efek animasi. Menggunakan permintaan yang disarankan, pemilik situs bisa mengetahui bahwa pengguna telah menonaktifkan efek animasi dan juga menonaktifkan berbagai fitur animasi di situs, misalnya menghilangkan efek guncangan pada tombol yang digunakan untuk menarik perhatian;
  • Selain kemampuan untuk menentukan bidang publik yang diperkenalkan di Chrome 72 dukungan dilaksanakan Menandai bidang sebagai pribadi, setelah itu akses ke nilainya hanya akan terbuka di dalam kelas. Untuk menandai suatu bidang sebagai pribadi, tambahkan tanda “#” sebelum nama bidang tersebut. Seperti halnya bidang publik, properti pribadi tidak memerlukan penggunaan konstruktor secara eksplisit.
  • Header HTTP Feature-Policy, yang memungkinkan Anda mengontrol perilaku API dan mengaktifkan fitur tertentu (misalnya, Anda dapat mengaktifkan mode operasi sinkron XMLHttpRequest atau menonaktifkan API Geolokasi), telah ditambahkan API JavaScript untuk mengontrol aktivitas peluang tertentu. Untuk pengembang, ada dua metode baru document.featurePolicy dan frame.featurePolicy, yang menawarkan tiga fungsi:
    AllowFeatures() untuk mendapatkan daftar fitur yang diizinkan untuk domain saat ini, AllowFeature() untuk memeriksa secara selektif apakah fitur tertentu diaktifkan, dan getAllowlistForFeature() untuk mengembalikan daftar domain yang fitur tertentu diizinkan pada halaman saat ini;

  • Menambahkan dukungan eksperimental (“chrome://flags#enable-text-fragment-anchor”) untuk mode ini Gulir-Ke-Teks, yang memungkinkan Anda membuat tautan ke setiap kata atau frasa, tanpa secara eksplisit menentukan label dalam dokumen menggunakan tag “a name” atau properti “id”. Untuk mengirim tautan, parameter khusus “#targetText=” ditawarkan, di mana Anda dapat menentukan teks untuk transisi. Diperbolehkan untuk menentukan topeng yang menyertakan frasa yang menunjukkan awal dan akhir fragmen menggunakan koma sebagai pemisahnya (misalnya, “example.com#targetText=start%20words, end%20words”);
  • Opsi telah ditambahkan ke konstruktor AudioContext tingkat sampel, yang memungkinkan Anda menyetel laju pengambilan sampel untuk operasi audio melalui Web Audio API;
  • Menambahkan dukungan kelas Internasional Lokal, yang menyediakan metode untuk menguraikan dan memproses parameter bahasa, wilayah, dan gaya yang ditetapkan oleh lokal, serta untuk membaca dan menulis tag ekstensi Unicode, menyimpan pengaturan lokal pengguna dalam format serial;
  • Mekanisme Pertukaran HTTP yang Ditandatangani (SXG) diperluas dengan alat untuk menginformasikan distributor konten tentang kesalahan dalam mengunduh konten yang ditandatangani, seperti masalah dengan verifikasi sertifikat. Penanganan kesalahan dilakukan melalui ekstensi API Pencatatan Kesalahan Jaringan. Ingat SXG itu memungkinkan pemilik satu situs, dengan menggunakan tanda tangan digital, mengizinkan penempatan halaman tertentu di situs lain, setelah itu, jika halaman ini diakses di situs kedua, browser akan menampilkan URL situs aslinya kepada pengguna, meskipun faktanya bahwa halaman tersebut dimuat dari host yang berbeda;
  • Sebuah metode telah ditambahkan ke kelas TextEncoder menyandikan ke dalam(), yang memungkinkan Anda menulis string yang disandikan langsung ke buffer yang telah dialokasikan sebelumnya. Metode encodeInto() adalah alternatif berkinerja tinggi terhadap metode encode(), yang memerlukan operasi alokasi buffer yang harus dilakukan setiap kali diakses.
  • Di pekerja Layanan dijamin buffering panggilan client.postMessage() hingga dokumen siap. Pesan yang dikirim melalui client.postMessage() akan ditahan hingga event DOMContentLoaded dimunculkan, onmessage disetel, atau startMessages() dipanggil;
  • Seperti yang disyaratkan oleh spesifikasi Transisi CSS ditambahkan peristiwa transisi, transisi batal, mulai transisi, dan akhir transisi dihasilkan ketika transisi CSS dimasukkan ke dalam antrean, dibatalkan, dimulai, atau selesai dijalankan.
  • Saat menentukan pengkodean karakter yang salah melalui overrideMimeType() atau tipe MIME untuk XMLHttpRequest, sekarang akan kembali ke UTF-8, bukan Latin-1;
  • Properti “izinkan-unduh-tanpa-aktivasi-pengguna”, yang memungkinkan pengunduhan file secara otomatis saat memproses iframe, sudah tidak digunakan lagi dan akan dihapus pada rilis mendatang. Di masa mendatang, memulai pengunduhan file tanpa tindakan pengguna secara eksplisit akan dilarang, karena file tersebut telah digunakan secara aktif untuk penyalahgunaan, memaksa pengunduhan, dan memasukkan bagian malware ke komputer pengguna. Klik pengguna pada halaman yang sama akan diminta untuk memulai pengunduhan. Properti ini awalnya direncanakan untuk dihapus di Chrome 74, tetapi penghapusan tersebut berhasil dilakukan ditunda hingga Chrome 76.
  • Tema gelap opsional untuk desain antarmuka ditawarkan untuk platform Windows (di rilis sebelumnya, tema gelap disiapkan untuk macOS). Karena desain gelap hampir identik dengan desain dalam mode penyamaran, indikator khusus telah ditambahkan sebagai ganti ikon profil pengguna untuk menyorot mode operasi pribadi;
  • Peluang telah ditambahkan untuk pengguna korporat Pengelolaan Cloud Browser Chrome untuk mengelola setelan browser pengguna melalui konsol Google Admin;

    Rilis Chrome 74

Selain inovasi dan perbaikan bug, versi baru menghilangkan 39 kerentanan. Banyak kerentanan diidentifikasi sebagai hasil dari alat pengujian otomatis Pembersih Alamat, Pembersih Memori, Kontrol Aliran Integritas, LibFuzzer и AFL. Tidak ada masalah kritis yang teridentifikasi yang memungkinkan seseorang melewati semua tingkat perlindungan browser dan mengeksekusi kode pada sistem di luar lingkungan sandbox. Sebagai bagian dari program pembayaran hadiah uang tunai karena menemukan kerentanan pada rilis saat ini, Google membayar 19 penghargaan senilai $26837 (empat penghargaan $3000, empat penghargaan $2000, satu penghargaan $1337, empat penghargaan $1000, tiga penghargaan $500). Besaran dari 4 hadiah tersebut belum ditentukan.

Sumber: opennet.ru

Tambah komentar