Chrome 117 beta

Subgrid petak CSS, dukungan animasi masuk dan keluar untuk CSS, pengelompokan array, helper iterator, dan lainnya.

Kecuali jika dinyatakan lain, perubahan yang dijelaskan berlaku untuk 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 dalam versi beta per 16 Agustus 2023. Anda dapat mendownload versi terbaru di Google.com untuk desktop atau di Google Play Store pada Android.

CSS

Rilis ini menambahkan enam fitur CSS baru. Tiga properti pertama adalah bagian dari pekerjaan untuk mengaktifkan transisi pada properti terpisah, yang mengaktifkan animasi masuk dan keluar.

Aturan @starting-style

Dengan aturan at ini, penulis dapat memulai transisi CSS pada pembaruan gaya yang pertama.

Transisi CSS tidak memicu transisi dari gaya awal pada pembaruan gaya pertama untuk suatu elemen, atau saat jenis tampilan berubah dari none ke jenis tertentu. Hal ini untuk menghindari transisi yang tidak terduga dari gaya awal. Untuk memulai transisi dari pembaruan gaya yang pertama, Anda kini dapat menerapkan gaya dari dalam aturan @starting-style. Misalnya, CSS berikut memulai transisi warna latar belakang dari hijau ke hijau 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 mempertahankan elemen di lapisan atas untuk transisi keluar. Properti overlay ditambahkan untuk menunjukkan apakah suatu elemen berada di lapisan atas atau tidak, dan dapat berisi dua nilai: none, atau auto.

Properti perilaku transisi CSS

Properti CSS transition-behavior adalah garis panjang dari properti transition yang memungkinkan properti terpisah 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 sebesar 50%. Untuk transisi dengan display: none dan content-visibility: hidden adalah salah satu dari nilai awal atau akhir, nilai yang terlihat akan digunakan selama seluruh durasi transisi.

Nilai subgrid petak CSS

Nilai subgrid untuk grid-template-columns dan grid-template-rows sekarang diimplementasikan di Chrome. Nilai ini memungkinkan petak bertingkat menggunakan jalur yang ditentukan pada induknya, bukan membuat definisi jalur baru untuk baris, kolom, atau keduanya.

Penggabungan teks CSS: cukup

Nilai pretty untuk properti text-wrap CSS dioptimalkan untuk tata letak terbaik, bukan kecepatan. Kode ini dimaksudkan untuk teks isi, dan karenanya mengharapkan beberapa baris. Dengan menggunakan pretty, developer secara eksplisit memilih metode tata letak yang mungkin lebih lambat dari wrap—yang akan mengoptimalkan performa. Implementasi saat ini di Chrome dioptimalkan untuk orphans guna mencegah satu kata ditampilkan di bagian bawah paragraf teks.

Di Chrome 117, coba demo text-wrap: tampilan ini dan lihat bagaimana nilai mengubah presentasi teks.

contain-intrinsic-size: dukungan tidak ada otomatis

Fitur ini memperluas sintaksis contain-intrinsic-size yang ada untuk menyertakan juga auto && none.

Web API

Pengelompokan array

Pengelompokan array adalah operasi yang sangat umum, sebaiknya dicontohkan dengan klausa GROUP BY dan pemrograman MapReduce dari SQL. Kemampuan untuk menggabungkan data ke dalam grup memungkinkan developer menghitung set data dengan urutan yang lebih tinggi, seperti usia rata-rata 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, di mana grup tersebut adalah kunci properti. Metode Peta menampilkan Peta, yang kuncinya dapat berupa nilai arbitrer.

Hapus Petunjuk Klien melalui header Clear-Site-Data

Situs kini dapat menghapus cache client hints menggunakan Clear-Site-Data: "clientHints". Client hints juga akan dihapus saat "cookie", "cache", atau "*" ditargetkan oleh header 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 dapat menghapus semua target penyimpanan ("cookie", "cache", dan "penyimpanan") dengan mengirimkan Clear-Site-Data: "*". Perlu diketahui bahwa Chrome tidak mendukung penghapusan "executionContexts" saat ini, tetapi jika kami menambahkannya di masa mendatang, penargetan header apa pun "*" akan menghapusnya juga.

customElements.getName

Metode customElements.getName() menampilkan nama tag dari definisi elemen kustom yang ditentukan.

Helper iterator

Helper iterator adalah metode baru pada prototipe iterator untuk memungkinkan penggunaan dan konsumsi iterator secara umum.

Membuat CaptureController berasal dari antarmuka EventTarget

Antarmuka CaptureController memungkinkan manipulasi sesi screenshot lebih lanjut. Di masa mendatang, diharapkan peristiwa yang terkait dengan sesi pengambilan gambar 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 pengiriman resource. Misalnya, resource yang dikirim dari cache (saat ini ditampilkan melalui transferSize) dan navigasi yang diambil data dari halaman sebelumnya.

Pemeriksaan kelebihan port di penyetel URL

Nilai port akan diperiksa saat menetapkan 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.

Private State Token API

Ini adalah API baru untuk menyebarkan sinyal pribadi terbatas di seluruh situs, tanpa menggunakan ID tetap 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: ini terserah pihak pertama yang terkait dan penerbit token. Sebaliknya, 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 distandardisasi oleh IETF. Jenis ini dapat dianggap sebagai bentuk protokol Privacy Pass yang terekspos web. Spesifikasi API akan diperbarui untuk versi dan jenis token baru, dan akan terus diperbarui dengan spesifikasi kelompok kerja Privacy Pass. Perubahan yang diharapkan akan berada pada protokol kriptografi dasar dan kode penerbitan token: kami tidak mengharapkan perubahan pada Fetch API penerbitan dan penukaran yang dihadapi developer. Private State Token API sebelumnya dikenal sebagai Trust Token API. Nama ini diganti agar lebih akurat dalam menangkap semantik yang mendasarinya dan menyoroti manfaat privasi bagi pengguna.

Parser host IPv6 yang disematkan dan kompatibel dengan IPv4 standar URL

Perilaku penguraian parser host IPv6 IPv4 yang disematkan akan diupdate agar secara ketat mengikuti standar URL web. Batasan yang diperkenalkan pada alamat IPv6 adalah:

  • Alamat IPv4 tersemat 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 Tidak Valid.

assertEquals(new URL("http://example.com/%00").pathname, "/%00"); 

Menurut Standar URL, urutan karakter atau byte apa pun di jalur URL tidak boleh membuat URL menjadi tidak valid, dan perubahan ini akan mengupdate Chrome agar mengikuti standar tersebut.

Kontrol ekstensi header RTP WebRTC

Memperluas WebRTC RTCRtpTransceiver API untuk menawarkan kontrol atas ekstensi header RTP mana yang dinegosiasikan.

kuantizer per frame di VideoEncoder

Menambahkan "quantizer" VideoEncoderBitrateMode untuk VideoEncoder. Ini memberikan kemampuan untuk menentukan parameter kuantizer 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 ikut serta dalam uji coba origin baru berikut.

Transportasi kamus kompresi dengan Shared Brotli

Fitur ini menambahkan dukungan untuk menggunakan respons sebelumnya yang ditetapkan, sebagai kamus eksternal untuk respons HTTP kompresi Brotli.

Daftar ke uji coba origin CompressionDictionaryTransport.

Uji coba penghentian penggunaan WebSQL

WebSQL akan dihapus dari Chrome. Situs yang mengandalkan fitur ini sebaiknya beralih ke SQLite melalui Wasm.

Uji coba penghentian penggunaan ini memberi developer yang membutuhkan lebih banyak waktu untuk melakukan migrasi kemampuan untuk terus menggunakan WebSQL hingga Chrome 123 (Maret 2024). Daftar ke uji coba penghentian penggunaan WebSQL.

Aplikasi web dengan tab

Mengizinkan jendela aplikasi web memiliki strip tab, misalnya, untuk mengedit beberapa dokumen dalam 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 asal Aplikasi Web dengan Tab.

Penghentian dan penghapusan

Versi Chrome ini memperkenalkan penghentian penggunaan dan penghapusan yang tercantum di bawah. Buka ChromeStatus.com untuk mengetahui daftar penghentian penggunaan yang direncanakan, penghentian saat ini, dan penghapusan sebelumnya.

Rilis Chrome ini menghentikan penggunaan dua fitur.

Menghentikan penggunaan peristiwa penghapusan muatan

Chrome 117 akan memulai proses penghentian penggunaan pengendali peristiwa unload. Jika situs Anda menggunakannya, sebaiknya baca postingan khusus tentang penghentian penggunaan unload untuk detail selengkapnya.

Menghentikan 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(), versi yang sesuai spesifikasi 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 selengkapnya tentang migrasi, dan apa yang harus dilakukan jika Anda membutuhkan lebih banyak waktu, lihat Panduan migrasi getStats() lama.

Penghapusan nilai -1 untuk WebRTC getStats datachannelIdentifier

WebRTC getStats API mengekspos properti dataChannelIdentifier. API tersebut 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. Alat tersebut tidak akan lagi memberikan nilai “tidak diketahui”&nbsp 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 menandai teks, tetapi tidak pernah distandardisasi. Parameter ini tidak memiliki efek yang terlihat dalam kromium (diuraikan, tetapi tidak pernah digunakan dalam rendering konten). Properti ini dihapus dari WebKit pada tahun 2014, telah ditandai sebagai tidak digunakan lagi di MDN, dan baru saja diganti dengan spesifikasi Pseudo Sorotan CSS.