Subgrid petak CSS, dukungan animasi masuk dan keluar untuk CSS, pengelompokan array, helper iterator, dan lainnya.
Kecuali jika dinyatakan lain, perubahan yang dijelaskan berlaku pada rilis saluran beta Chrome terbaru untuk Android, ChromeOS, Linux, macOS, dan Windows. Pelajari lebih lanjut fitur yang tercantum di sini melalui link yang disediakan atau dari daftar di ChromeStatus.com. Chrome 117 masih dalam versi beta mulai 16 Agustus 2023. Anda dapat mendownload aplikasi terbaru di Google.com untuk desktop atau di Google Play Store di Android.
CSS
Rilis ini menambahkan enam fitur CSS baru. Tiga properti pertama adalah bagian dari pekerjaan untuk mengaktifkan transisi pada properti terpisah, yang memungkinkan animasi masuk dan keluar.
Aturan @mulai-gaya
Sesuai aturan ini, penulis dapat memulai transisi CSS pada pembaruan gaya pertama.
Transisi CSS tidak memicu transisi dari gaya awal pada pembaruan gaya pertama untuk sebuah elemen, atau saat jenis tampilan berubah dari none
ke jenis lainnya. Hal ini untuk menghindari transisi yang tidak diharapkan dari gaya awal. Untuk memulai transisi dari pembaruan gaya pertama, Anda kini dapat menerapkan gaya dari dalam aturan @starting-style
. Misalnya, CSS berikut memulai transisi warna latar belakang dari hijau ke limau pada pembaruan gaya pertama untuk div:
div {
transition: background-color 0.5s;
background-color: lime;
}
@starting-style {
div {
background-color: green;
}
}
Properti overlay
Properti overlay
memungkinkan developer menyimpan elemen di lapisan atas untuk transisi keluar. Properti overlay ditambahkan untuk menunjukkan apakah elemen berada di lapisan atas atau tidak, dan dapat menggunakan dua nilai: none
atau auto
.
Properti transisi-perilaku CSS
Properti CSS transition-behavior
adalah milik properti transition
yang memungkinkan properti diskret digunakan dalam transisi. Dengan menentukan nilai allow-discrete
untuk perilaku transisi, properti terpisah kini akan memulai animasi dan beralih dari nilai awal ke nilai akhirnya di 50%. Untuk transisi dengan display: none
dan content-visibility: hidden
sebagai salah satu nilai awal atau akhir, nilai yang terlihat akan digunakan selama durasi transisi.
Nilai subgrid petak CSS
Nilai subgrid
untuk grid-template-columns
dan grid-template-rows
kini diterapkan di Chrome. Nilai ini memungkinkan grid bertingkat untuk menggunakan trek yang ditentukan pada induknya, bukan membuat definisi trek baru untuk baris, kolom, atau keduanya.
Text-wrap CSS: cantik
Nilai pretty
untuk properti text-wrap
CSS dioptimalkan untuk tata letak terbaik, bukan kecepatan. Teks ini ditujukan untuk teks isi, sehingga mengharapkan beberapa baris. Dengan menggunakan pretty
, developer secara eksplisit memilih menggunakan metode tata letak yang mungkin lebih lambat dari wrap
, yang mengoptimalkan performa. Implementasi saat ini di Chrome mengoptimalkan orphans untuk mencegah satu kata ditampilkan di bagian bawah paragraf teks.
Di Chrome 117, coba demo text-wrap: terkini dan lihat bagaimana nilai mengubah presentasi teks.
dukungan-intrinsik-ukuran: auto none
Fitur ini memperluas sintaksis contain-intrinsic-size
yang ada agar juga menyertakan auto && none
.
Web API
Pengelompokan array
Pengelompokan array adalah operasi yang sangat umum, dicontohkan dengan klausa GROUP BY dan pemrograman MapReduce dari SQL (yang lebih baik dianggap sebagai map-group-reduce). Kemampuan untuk menggabungkan data ke dalam grup memungkinkan developer menghitung set data dengan urutan yang lebih tinggi, seperti usia rata-rata suatu kelompok atau nilai LCP harian untuk halaman web. Fitur ini memungkinkan hal ini dengan menambahkan metode statis Object.groupBy
dan Map.groupBy
. Metode Object menampilkan objek biasa, dengan grup tersebut adalah kunci properti. Metode Maps menampilkan Peta, dengan kuncinya dapat berupa nilai arbitrer.
Menghapus Petunjuk Klien melalui header Clear-Site-Data
Situs kini akan dapat menghapus cache client hints menggunakan Clear-Site-Data: "clientHints"
. Client hints kini juga akan dihapus saat "cookies", "cache", atau "*" ditargetkan oleh {i>header<i} yang sama. Hal ini terjadi karena jika pengguna menghapus cookie di client hints UI yang juga sudah dihapus, cache client hints adalah cache, dan agar konsisten dengan target karakter pengganti masing-masing.
Sintaksis karakter pengganti header Clear-Site-Data
Situs kini akan dapat menghapus semua target penyimpanan ("cookie", "cache", dan "penyimpanan") dengan mengirimkan Clear-Site-Data: "*"
. Perlu diketahui bahwa Chrome tidak mendukung penghapusan "executionContexts" sekarang, tetapi jika kita menambahkannya di masa mendatang, header apa pun yang menargetkan "*" akan menghapusnya juga.
customElements.getName
Metode customElements.getName()
menampilkan nama tag dari definisi elemen kustom yang diberikan.
Helper iterator
Bantuan iterator adalah metode baru pada prototipe iterator yang memungkinkan penggunaan dan pemakaian iterator secara umum.
Membuat CaptureController berasal dari antarmuka EventTarget
Antarmuka CaptureController memungkinkan manipulasi sesi screenshot lebih lanjut. Di masa mendatang, peristiwa yang terkait dengan sesi pengambilan diperkirakan akan dikirim pada pengontrol tersebut. Agar dapat mengelola pemroses untuk peristiwa tersebut, metode EventTarget
tersedia di CaptureController
.
PerformanceResourceTiming deliveryType
Properti deliveryType
dari PerformanceResourceTiming
menampilkan informasi tentang cara resource dikirim. Misalnya, resource yang dikirim dari cache (saat ini diekspos melalui transferSize
) dan navigasi yang diambil data dari halaman sebelumnya.
Pemeriksaan kelebihan port di penyetel URL
Nilai port akan diperiksa saat menyetel url.port
. Semua nilai yang melebihi batas numerik 16-bit tidak akan valid lagi. Misalnya, skrip berikut berperilaku berbeda setelah perubahan:
u = new URL("http://test.com");
u.port = 65536;
console.log(u.port);
Sebelum perubahan, output-nya adalah 65536. Setelah perubahan, output-nya akan menjadi 80.
API Token Status Pribadi
Ini adalah API baru untuk menerapkan sinyal pribadi terbatas di seluruh situs, tanpa menggunakan ID persisten lintas situs seperti cookie pihak ketiga. Metode antipenipuan yang mengandalkan cookie pihak ketiga tidak akan berfungsi setelah cookie pihak ketiga dihentikan. Private State Token API tidak menghasilkan atau menentukan sinyal antipenipuan: hal ini bergantung pada pihak pertama yang terkait dan penerbit token. Namun, API akan menjaga privasi dengan menerapkan batasan pada informasi yang ditransfer dalam sinyal ini. API ini didasarkan pada varian protokol Privacy Pass, yang sedang dalam proses distandarisasi oleh IETF. Hal ini dapat dianggap sebagai bentuk protokol Privacy Pass yang terekspos web. Spesifikasi API akan diupdate untuk versi dan jenis token baru, serta akan terus diperbarui dengan spesifikasi grup kerja Privacy Pass. Perubahan yang diharapkan terletak pada protokol kriptografis dan kode penerbitan token yang mendasarinya: kami tidak mengharapkan adanya perubahan pada Fetch API dari penerbitan dan penukaran oleh developer. Private State Token API sebelumnya dikenal sebagai Trust Token API. Nama ini diganti agar lebih akurat dalam menangkap semantik dasar dan menyoroti manfaat privasi kepada pengguna.
Parser host IPv6 yang disematkan dan kompatibel dengan Standar IPv4 URL
Perilaku penguraian parser host IPv6 yang disematkan untuk IPv4 akan diperbarui agar hanya mengikuti standar URL web. Batasan yang diperkenalkan pada alamat IPv6 adalah:
- Alamat IPv4 yang disematkan harus selalu terdiri dari 4 bagian.
- Alamat yang berisi kurang dari 4 bagian seperti
http://[::1.2]
tidak akan valid lagi. Fitur ini merupakan bagian dari interop URL 2023.
URL: Izinkan "%00" sebagai jalur URL yang valid
Chrome saat ini menganggap URL tidak valid jika bagian jalur URL berisi "%00" (atau null), yang tidak sesuai dengan Standar URL. Misalnya, pengujian berikut gagal di Chrome karena new URL(...)
menampilkan pengecualian URL yang Tidak Valid.
assertEquals(new URL("http://example.com/%00").pathname, "/%00");
Menurut Standar URL, setiap karakter atau urutan byte di jalur URL tidak boleh membuat URL menjadi tidak valid, dan perubahan ini akan memperbarui Chrome untuk mengikuti standar tersebut.
Kontrol ekstensi header RTP WebRTC
Memperluas WebRTC RTCRtpTransceiver
API untuk menawarkan kontrol atas ekstensi header RTP mana yang dinegosiasikan.
Kuantitas per frame di VideoEncoder
Menambahkan "quantizer" VideoEncoderBitrateMode
untuk VideoEncoder.
API ini memberikan kemampuan untuk menentukan parameter quantizer bagi setiap frame untuk codec video AV1, VP9, dan AVC.
Opsi exclusionFilters
WebUSB di requestDevice()
Opsi exclusionFilters
di navigator.usb.requestDevice()
memungkinkan developer web mengecualikan beberapa perangkat dari alat pilih browser. Filter ini dapat digunakan untuk mengecualikan perangkat yang cocok dengan filter yang lebih luas, tetapi tidak didukung.
Uji coba origin sedang berlangsung
Di Chrome 117, Anda dapat memilih untuk mengikuti uji coba origin baru berikut.
Transpor kamus kompresi dengan Brotli Bersama
Fitur ini menambahkan dukungan untuk menggunakan respons sebelumnya yang ditetapkan, sebagai kamus eksternal untuk respons HTTP kompresi Brotli.
Daftar untuk uji coba origin CompressionDictionaryTransport.
Uji coba penghentian penggunaan WebSQL
WebSQL akan dihapus dari Chrome. Situs yang mengandalkannya disarankan untuk berpindah ke SQLite melalui Wasm.
Uji coba penghentian penggunaan ini memberi developer yang memerlukan lebih banyak waktu untuk migrasi kemampuan untuk terus menggunakan WebSQL hingga Chrome 123 (Maret 2024). Daftar ke uji coba penghentian penggunaan WebSQL.
Aplikasi web dengan tab
Misalnya, izinkan jendela aplikasi web memiliki tab setrip untuk mengedit beberapa dokumen di aplikasi yang sama. Tindakan ini akan menambahkan mode tampilan baru "bertab" dan bidang manifes baru untuk memungkinkan penyesuaian pada tab setrip.
Daftar ke uji coba origin Aplikasi Web dengan Tab.
Penghentian penggunaan dan penghapusan
Versi Chrome ini memperkenalkan penghentian penggunaan dan penghapusan yang tercantum di bawah. Kunjungi ChromeStatus.com untuk melihat daftar penghentian yang direncanakan, penghentian penggunaan saat ini, dan penghapusan sebelumnya.
Rilis Chrome ini menghentikan dua fitur.
Menghentikan penggunaan peristiwa penghapusan muatan
Chrome 117 akan memulai proses penghentian pengendali peristiwa unload
. Jika situs Anda menggunakannya, sebaiknya baca postingan khusus tentang penghentian penggunaan unload
untuk mengetahui detail selengkapnya.
Penghentian penggunaan tanda tangan server SHA-1 TLS
Chrome menghapus dukungan untuk algoritma tanda tangan yang menggunakan SHA-1 untuk tanda tangan server selama TLS handshake. Hal ini tidak memengaruhi dukungan SHA-1 di sertifikat server, yang memang sudah dihapus, atau di sertifikat klien, yang masih terus didukung.
Rilis Chrome ini menghapus empat fitur.
[WebRTC] Menghapus getStats() lama berbasis callback
RTCPeerConnection memiliki dua versi getStats()
, satu versi sesuai spesifikasi dan menampilkan laporan melalui penyelesaian promise, dan versi non-standar menampilkan laporan yang sangat berbeda melalui callback sebagai argumen pertama. getStats() berbasis callback kini telah dihapus.
Untuk informasi lebih lanjut tentang migrasi, dan hal yang harus dilakukan jika Anda memerlukan lebih banyak waktu, lihat Panduan migrasi getStats() lama.
Penghapusan nilai -1 untuk WebRTC getStats datachannelIdentifier
WebRTC getStats API mengekspos properti dataChannelIdentifier. Parameter ini tidak akan lagi memberikan nilai "-1" jika statistik dikueri sebelum koneksi datachannel dibuat. Sebagai gantinya, bagian kamus akan dihilangkan.
Penghapusan WebRTC getStats encoderImplementation dan decoderImplementation "tidak diketahui"
WebRTC getStats API mengekspos nama penerapan encoder dan decoder untuk video keluar dan masuk. API ini tidak akan lagi memberikan nilai “tidak diketahui” biasanya jika statistik dikueri sebelum frame video dienkode atau didekode. Sebagai gantinya, bagian kamus akan dihilangkan.
Properti CSS -webkit-highlight
Hapus properti CSS -webkit-highlight
yang dimaksudkan untuk menyoroti teks, tetapi tidak pernah standar. Zat ini tidak memiliki efek yang terlihat di kromium (diurai, tetapi tidak pernah digunakan dalam merender konten). Properti ini dihapus dari WebKit pada tahun 2014, telah ditandai sebagai tidak digunakan lagi di MDN, dan baru-baru ini telah diganti dengan spesifikasi Pseudo Sorotan CSS.