Chrome 121 beta

Kecuali dinyatakan lain, perubahan berikut 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 diberikan, atau dari daftar di ChromeStatus.com. Chrome 121 masih dalam versi beta per 6 Desember 2023. Anda dapat mendownload versi terbaru di Google.com untuk desktop, atau di Google Play Store untuk Android.

CSS

Rilis ini menambahkan enam fitur CSS baru.

Pewarisan Sorotan CSS

Dengan Pewarisan Sorotan CSS, class pseudo Highlight CSS, seperti ::selection dan ::highlight, mewarisi propertinya melalui rantai sorotan pseudo, bukan rantai elemen. Hasilnya adalah model yang lebih intuitif untuk pewarisan properti dalam highlight.

Tindakan ini akan menerapkan persyaratan dari spesifikasi Pseudos Level 4 CSS:

"Jika properti yang didukung tidak diberi nilai oleh cascade ... nilai yang ditetapkan ditentukan oleh pewarisan dari pseudo-element sorotan yang sesuai dari elemen induk elemennya."

Scrollbar CSS: scrollbar-color dan scrollbar-width

Spesifikasi Scrollbar CSS memungkinkan developer menata gaya scrollbar dengan menentukan warna dan ketebalannya. Spesifikasi ini menambahkan dua properti berikut. Properti scrollbar-color memberikan kemampuan untuk mengubah skema warna scrollbar agar lebih cocok dengan gaya tertentu halaman web. Properti scrollbar-width memungkinkan penggunaan scrollbar yang lebih sempit, yang mungkin lebih sesuai untuk beberapa kasus penggunaan, atau bahkan menyembunyikan scrollbar sepenuhnya tanpa memengaruhi kemampuan scroll.

Animasi CSS font-palette untuk font warna

Properti font-palette CSS memungkinkan pemilihan palet tertentu yang digunakan untuk merender font warna. Dengan dukungan yang baru ditambahkan untuk menganimasikan properti ini, transisi antar palet tidak lagi menjadi langkah yang terpisah, tetapi menjadi transisi yang mulus antara dua palet yang dipilih. Hal ini berfungsi di mana saja dalam animasi dan transisi CSS.

Fitur ejaan dan tata bahasa CSS

CSS menandai elemen semu untuk menata gaya teks yang telah ditandai agen pengguna sebagai salah eja atau salah secara tata bahasa, dan dekorasi garis mengekspos dekorasi default agen pengguna untuk kesalahan ejaan dan tata bahasa. Fitur ini memungkinkan developer memilih warna yang lebih mudah dibaca untuk kesalahan ejaan dan tata bahasa default, menyoroti kata yang salah eja dengan warna latar belakang atau dekorasi lainnya, serta menerapkan pemeriksaan ejaan khusus yang menyatu dengan pengalaman perangkat.

Peningkatan penyamaran CSS untuk SVG

Ini adalah tindak lanjut dari dukungan mask CSS yang ditingkatkan di Chrome 120, yang menambahkan dukungan mask baru ke SVG (beberapa mask, serta mask-mode, mask-composite, mask-position, dan mask-repeat). Selain itu, mask SVG jarak jauh (misalnya, mask: url(masks.svg#star)) kini didukung.

Nilai tampilan khusus Ruby

Nilai properti tampilan CSS baru, ruby dan ruby-text, ditambahkan. Nilai tampilan default <ruby> dan <rt> masing-masing diubah menjadi ruby dan ruby-text, dan tata letak ruby mengikuti nilai tampilan ini. Penulis web dapat menggunakan elemen apa pun seperti <div> untuk merender ruby dengan menetapkan nilai tampilan baru.

Web API

Paket Fitur Pelaporan Atribusi: Pengurangan Penundaan Gabungan, Kolom Epsilon Laporan Tingkat Peristiwa, Kunci yang Direservasi

Chrome menyertakan perubahan pada Attribution Reporting API yang berfokus pada:

  • Mengurangi hilangnya transmisi dengan mendukung pengurangan penundaan laporan agregat.
  • Kemampuan konfigurasi API tambahan dengan mendukung kolom epsilon pelaporan tingkat peristiwa.
  • Meningkatkan ekstensibilitas API dengan pendaftaran yang gagal saat menemukan kunci yang dicadangkan.

API back-forward cache notPulihkanAlasan

notRevertReason API akan melaporkan daftar alasan halaman tidak ditayangkan dari bfcache menggunakan PerformanceNavigationTiming API.

Wajibkan gestur pengguna untuk mengubah ukuran API dalam picture-in-picture Dokumen

Hal ini mengaktifkan metode resizeBy() dan resizeTo() di jendela picture-in-picture dokumen, tetapi dengan batasan tambahan persyaratan gestur pengguna untuk mengurangi potensi penyalahgunaan.

API EditContext

EditContext API menyederhanakan proses integrasi aplikasi web dengan metode input teks lanjutan seperti penulisan bentuk VK, panel tulisan tangan, pengenalan ucapan, dan Komposisi IME. API ini meningkatkan aksesibilitas dan performa, serta memberikan kemampuan baru untuk editor berbasis web.

Deteksi fitur untuk format papan klip yang didukung

Sekarang Anda dapat memeriksa apakah Async Clipboard API mendukung jenis MIME tertentu dengan memanggil fungsi supports() baru, dengan meneruskan jenis MIME sebagai argumen, seperti misalnya, ClipboardItem.supports('image/png').

HTMLSelectElement showPicker()

Metode showPicker() HTMLSelectElement memberi developer cara untuk membuka alat pilih opsi dari elemen <select> secara terprogram, dengan mengikuti pola input.showPicker().

MediaCapabilities: Mengkueri dukungan HDR dengan decodingInfo()

Memperluas Media Capabilities API untuk memungkinkan deteksi dukungan rendering HDR melalui tiga kolom kamus VideoConfiguration baru: hdrMetadataType, colorGamut, transferFunction.

Chromium menerapkan algoritma pemetaan nadanya sendiri sehingga akan selalu mengembalikan true untuk metadata statis HDR10 (smpteSt2086). smpteSt2094-40 (HDR10+) dan metadata dinamis smpteSt2094-10 saat ini tidak didukung, jadi akan mengembalikan false.

Private Aggregation API: pemilihan koordinator agregasi

Modifikasi pada Private Aggregation API ini menyediakan mekanisme untuk memilih koordinator yang akan digunakan untuk enkripsi payload (dari daftar yang diizinkan yang ditentukan vendor). Pilihan layanan dibuat dengan opsi tambahan di panggilan run() dan selectURL() Penyimpanan Bersama, serta dalam panggilan runAdAuction() dan joinAdInterestGroup() Protected Audience. Pendekatan luas tersebut sangat selaras dengan pendekatan Attribution Reporting API.

Remote Playback API di desktop

API ini memperluas HTMLMediaElement yang memungkinkan pengontrolan pemutaran media jarak jauh dari halaman web. Fitur ini diluncurkan di Android pada Chrome 56, dan tersedia di Desktop dari Chrome 121.

API Aturan Spekulasi

Ada beberapa fitur baru untuk Speculation Rules API.

Dukungan aturan dokumen: Ini adalah ekstensi sintaksis aturan spekulasi yang memungkinkan browser mendapatkan daftar URL untuk pemuatan spekulatif dari elemen <a> di halaman. Link tersebut dapat menyertakan kriteria yang dapat digunakan untuk link tersebut. Hal ini, ditambah dengan kolom "keinginan" baru untuk aturan spekulasi memungkinkan developer mengambil data atau melakukan pra-render secara otomatis pada halaman dengan segera, saat mengarahkan kursor atau mengarahkan mouse ke bawah.

Perubahan terpisah memungkinkan penentuan aturan spekulasi menggunakan header respons HTTP Speculation-Rules sebagai alternatif dari penggunaan elemen <script> inline. Nilai header ini harus berupa URL yang mengarah ke resource teks dengan jenis MIME "application/speculationrules+json". Aturan resource akan ditambahkan ke kumpulan aturan dokumen.

Terakhir, petunjuk No-Vary-Search memungkinkan pengambilan data spekulatif agar cocok meskipun parameter kueri URL berubah. Header respons HTTP No-Vary-Search mendeklarasikan bahwa beberapa atau semua bagian kueri URL dapat diabaikan untuk tujuan pencocokan. Fungsi ini dapat mendeklarasikan bahwa urutan kunci parameter kueri tidak boleh mencegah kecocokan, parameter kueri tertentu tidak boleh mencegah kecocokan, atau bahwa hanya parameter kueri tertentu yang diketahui yang harus menyebabkan ketidakcocokan.

Objek antarmuka SpeechSynthesis dan SpeechSynthesisVoice

Menambahkan objek antarmuka untuk SpeechSynthesis dan SpeechSynthesisVoice, ke fitur yang sudah didukung. Ini memungkinkan deteksi fitur menggunakan SpeechSynthesisVoice.prototype.

API Bucket Penyimpanan

Dengan Bucket Penyimpanan, situs dapat mengatur data di perangkat ke dalam "bucket" yang terpisah, sehingga agen pengguna dapat mengeluarkan data yang dikelompokkan secara terpisah dari data yang ada di bucket lain, dan memungkinkan situs mengelola data yang terkait secara semantik secara ergonomis. Setiap bucket penyimpanan dapat berisi data yang terkait dengan API penyimpanan yang telah ditetapkan, seperti IndexedDB dan CacheStorage.

URLPattern: Wariskan kiri, kanan karakter pengganti

Perilaku berubah pada pola yang dibuat menggunakan URL dasar, sintaksis string konstruktor, atau keduanya, tetapi bukan pola yang secara eksplisit menentukan komponen tanpa URL dasar.

Komponen tidak diwariskan dari URL dasar jika komponen "sebelumnya" ditentukan secara eksplisit. Dalam format string, komponen "nanti" yang tidak ditentukan bersifat karakter pengganti secara implisit, tidak wajib kosong (dengan pengecualian port, yang selalu dianggap ditetapkan saat nama host). Nama pengguna dan sandi tidak pernah ditetapkan atau diwarisi secara implisit.

Hal ini membuat pola menjadi lebih luas daripada sebelumnya, dalam kasus di mana karakter pengganti cenderung diinginkan.

URLPattern: Flag RegExp v, bukan u

URL Pattern API memungkinkan developer menentukan string pola. Parameter ini diubah menjadi ekspresi reguler secara internal.

Saat API pertama kali diimplementasikan, ekspresi reguler ini dikompilasi dengan flag u. Chrome 121 akan mengupdatenya ke flag v, yang memungkinkan kumpulan Unicode.

Penambahan ke WebGPU

WebGPU kini memungkinkan developer untuk menghilangkan titik entri ke modul shader saat membuat pipeline, sehingga meningkatkan ergonomi. Jika tidak ada titik entri default yang ditemukan, GPUValidationError akan dipicu seperti biasa.

Kueri stempel waktu WebGPU memungkinkan aplikasi WebGPU mengukur secara tepat (hingga hingga nanodetik) jumlah waktu yang diperlukan untuk mengeksekusi perintah GPU, terutama di awal dan akhir penerusan. Kueri stempel waktu banyak digunakan untuk mendapatkan insight tentang performa dan perilaku beban kerja GPU.

Meskipun spesifikasi WebGPU menjadikan kueri stempel waktu sebagai fitur opsional karena masalah serangan waktu, kami percaya bahwa kuantisasi kueri stempel waktu memberikan jalan tengah yang baik dengan mengurangi ketepatan timer dengan resolusi 100 mikrodetik.

Enkapsulasi kunci X25519Kyber768 untuk TLS

Lindungi traffic TLS Chrome saat ini dari kriptoanalisis kuantum di masa mendatang dengan men-deploy algoritma perjanjian kunci yang tahan terhadap kuantum Kyber768. Ini adalah perjanjian kunci hibrida X25519 + Kyber768 berdasarkan standar IETF. Spesifikasi dan peluncuran ini berada di luar cakupan W3C. Perjanjian kunci ini akan diluncurkan sebagai penyandian TLS, dan harus transparan kepada pengguna.

Uji coba origin sedang berlangsung

Di Chrome 121, Anda dapat ikut serta dalam uji coba origin baru berikut.

Element Capture API

Element Capture API menyediakan metode untuk menangkap subhierarki DOM.

Mengingat MediaStreamTrack video diperoleh melalui cara yang sudah ada sebelumnya untuk memulai penangkapan tab, Tangkapan Elemen memungkinkan mutasi trek agar hanya menangkap subpohon DOM yang dimulai pada Elemen tertentu.

API ini mirip dengan Region Capture API, tetapi memberikan fleksibilitas yang lebih besar untuk aplikasi, karena konten yang tersumbat dan tersumbat keduanya dikecualikan dari pengambilan gambar.

Mendaftar ke uji coba origin ElementCapture

Perubahan pada perilaku yang ada

Chrome 121 menyertakan perubahan berikut pada perilaku yang ada, yang disertakan di sini agar developer mengetahui perubahan tersebut .

Hapus Peristiwa Input ke Iframe Lintas Asal yang Baru Dipindahkan

Jika iframe lintas origin baru saja dipindahkan dalam halaman penyematannya, Chrome akan otomatis menghapus peristiwa yang menargetkan iframe tersebut. Alasannya adalah jika iframe dipindahkan baru-baru ini, kemungkinan pengguna tidak bermaksud mengklik atau mengetuknya.

Perubahan ini dikirimkan dalam bentuk terbatas pada tahun 2019: perubahan ini hanya memengaruhi iframe yang berisi skrip yang menggunakan fitur IntersectionObserver versi 2 (yaitu, deteksi oklusi atau efek). Peluncuran ini memperluas perilaku ini ke semua iframe lintas origin, dan akan dimulai sebagai eksperimen terbatas di Chrome 121 lalu dioptimalkan.