Penyamaran CSS, aturan longgar untuk penyusunan bertingkat CSS, membuat pola akordeon dengan elemen <details>
, tindakan enterpictureinpicture
untuk Media Session API.
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 120 masih dalam versi beta mulai 1 November 2023. Anda dapat mendownload aplikasi terbaru di Google.com untuk desktop atau di Google Play Store di Android.
CSS
Rilis ini menambahkan tujuh fitur CSS baru.
Sintaksis <image>
CSS untuk properti khusus terdaftar
Mendukung penggunaan sintaksis <image>
untuk properti kustom yang didaftarkan dengan @property
atau registerProperty()
. Sintaksis <image>
dapat digunakan untuk membatasi nilai properti kustom ke nilai url()
dan gambar yang dihasilkan seperti gradien.
Sintaksis <transform-function>
dan <transform-list>
CSS untuk properti khusus terdaftar
Mendukung penggunaan sintaksis <transform-function>
dan <transform-list>
untuk properti kustom yang didaftarkan dengan @property
atau registerProperty()
.
Sintaksis dapat digunakan untuk membatasi nilai properti kustom untuk mewakili transformasi. Ini juga memungkinkan untuk menggunakan transisi dan animasi secara langsung pada properti khusus yang terdaftar ini.
Kueri Media: fitur pembuatan skrip
Fitur media pembuatan skrip digunakan untuk menanyakan apakah bahasa skrip, seperti JavaScript, didukung pada dokumen saat ini. Opsi yang valid adalah 'enabled', 'initial-only', dan 'none'. Namun, 'hanya awal' tidak pernah cocok dengan dalam {i>browser<i}.
:dir() pemilih class semu
Pemilih class semu CSS :dir()
mencocokkan elemen berdasarkan arah, yang ditentukan berdasarkan atribut direktori HTML.
:dir(ltr)
cocok dengan arah teks kiri-ke-kanan.
:dir(rtl)
mencocokkan elemen dengan arah teks kanan-ke-kiri.
Fungsi ini tidak setara dengan pemilih atribut [dir]
karena cocok dengan rute yang diwarisi dari ancestor dengan atribut dir
, dan karena cocok dengan arah yang dihitung dari penggunaan dir=auto
(yang menentukan arah dari karakter pertama dalam teks dengan arah yang kuat).
Fungsi eksponensial CSS
Menambahkan fungsi eksponensial CSS: pow()
, sqrt()
, hypot()
, log()
, dan exp()
dari spesifikasi Nilai CSS dan Unit Level 4.
Penyamaran CSS
mask
CSS, dan properti terkait seperti mask-image
dan mask-mode
digunakan untuk menyembunyikan elemen (sebagian atau seluruhnya) dengan menyamarkan atau memotong gambar pada titik tertentu.
Fitur ini menghapus awalan properti -webkit-mask*
dan menyelaraskannya dengan spesifikasi saat ini. Ini mencakup mask-image
, mask-mode
, mask-repeat
, mask-position
, mask-clip
, mask-origin
, mask-size
, dan mask-composite
, serta singkatan mask
. Referensi mask-image
lokal didukung, serialisasi kini sesuai dengan spesifikasi, dan nilai yang diterima kini sesuai dengan spesifikasi (misalnya, add
, bukan source-over
untuk mask-composite
.)
Penyusunan bertingkat CSS yang santai
Perubahan pada penerapan bertingkat CSS ini memungkinkan aturan gaya bertingkat dimulai dengan elemen, misalnya h1
, bukan memerlukan simbol &
di depan, atau digabungkan dengan is()
. Contoh berikut kini valid dalam spesifikasi, dan berfungsi di Chrome 120.
.card {
h1 {
/* h1 does not start with a symbol */
}
}
HTML
Pola akordeon menggunakan atribut nama di <details>
Fitur ini menambahkan kemampuan untuk membuat akordeon menggunakan urutan elemen <details>
HTML. Contoh ini menambahkan atribut nama ke elemen <details>
. Jika atribut ini digunakan, beberapa elemen <details>
yang memiliki nama yang sama akan membentuk kelompok. Maksimal satu elemen dalam grup yang dapat dibuka sekaligus.
Web API
Mengizinkan transfer ArrayBuffer ke dalam konstruktor VideoFrame, AudioData, EncodedVideoChunk, EncodedAudioChunk, ImageDecoder
Tindakan ini akan memungkinkan pemisahan buffer array dan penggunaan buffer yang sesuai di dalam VideoFrame, ImageDecoder, EncodedVideoChunk, EncodedAudioChunk, AudioData tanpa salinan.
Metode CSS Font Loading API FontFaceSet: check()
Metode check()
dari FontFaceSet
memverifikasi apakah teks dapat ditampilkan menggunakan font yang ditentukan tanpa mencoba menggunakan font di FontFaceSet
yang belum selesai dimuat. Hal ini memungkinkan pengguna menggunakan font dengan aman tanpa memicu penggantian font di kemudian hari.
Permintaan tutup dan CloseWatcher
Permintaan tutup adalah konsep baru yang mencakup permintaan pengguna untuk menutup sesuatu yang sedang terbuka, menggunakan tombol Esc di desktop atau gestur atau tombol kembali di Android. Pengintegrasian alat tersebut ke Chrome hadir dengan dua perubahan:
CloseWatcher
, API baru untuk langsung memproses dan merespons permintaan tutup.- Mengupgrade ke
<dialog>
danpopover=""
untuk menggunakan framework permintaan tutup baru, sehingga framework tersebut merespons tombol kembali di Android.
Pekerja khusus dan Storage Access API
Pekerja khusus akan mewarisi status akses penyimpanan dari konteks induk. Oleh karena itu, jika dokumen memperoleh akses penyimpanan melalui document.requestStorageAccess()
, lalu membuat pekerja khusus, pekerja tersebut juga akan memiliki akses penyimpanan (dan dapat mengakses cookie yang tidak dipartisi.)
FedCM: Error API dan AutoSelectedFlag API
API khusus untuk membantu developer dan pengguna lebih memahami alur autentikasi. Kedua API dipicu setelah izin pengguna login ke situs atau aplikasi (dalam konteks ini dikenal sebagai pihak tepercaya (RP)) dengan penyedia identitas. Dengan kata lain, setelah pengguna mengklik tombol Lanjutkan sebagai.
Dengan Error API, jika upaya login pengguna gagal, penyedia identitas dapat membagikan alasannya ke browser agar pengguna dan developer RP terus mendapatkan info terbaru.
Dengan AutoSelectedFlag API, penyedia identitas dan developer RP dapat lebih memahami UX login, serta mengevaluasi performa dan menyegmentasi metrik sebagaimana mestinya.
Cari tahu selengkapnya di postingan blog FedCM Chrome 120.
Update fungsi Fenced Frames
Ada opsi format tambahan untuk makro ukuran iklan Protected Audience di Protected Audience API dalam Privacy Sandbox. Fitur keikutsertaan memungkinkan Anda menggunakan makro untuk menentukan ukuran iklan yang memenangkan lelang ke URL iklan, misalnya:
https://ad.com?width={/%AD_WIDTH%}&height={/%AD_HEIGHT%}
Agar lebih konsisten dengan jenis makro lain di Protected Audience, seperti yang digunakan oleh deprecatedReplaceInURN
dan registerAdMacro()
, di Chrome 120 kami menambahkan kemampuan untuk menggunakan ${AD_WIDTH} dan ${AD_HEIGHT} sebagai format untuk makro selain format saat ini.
Suar otomatis kini akan mengirim ke semua URL yang terdaftar. Sebelumnya, hanya tujuan yang ditentukan saat memanggil setReportEventDataForAutomaticBeacons()
yang akan menerima beacon otomatis, meskipun tujuan tersebut memanggil registerAdBeacon()
untuk reserved.top_navigation
dalam workletnya. Sekarang, tujuan apa pun yang memanggil registerAdBeacon()
untuk reserved.top_navigation
akan mendapatkan beacon otomatis, tetapi hanya tujuan yang ditentukan dalam setReportEventDataForAutomaticBeacons()
yang akan mendapatkan data beacon otomatis beserta beacon. Parameter once
di setReportEventDataForAutomaticBeacons()
kini akan menentukan apakah data dikirim sekali, bukan menentukan apakah seluruh beacon dikirim satu kali.
Margin Scroll Pengamat Persimpangan
Intersection Observer scrollMargin
memungkinkan developer mengamati target di dalam penampung scroll bertingkat yang saat ini terpotong oleh container scroll. Hal ini dilakukan dengan meluaskan persegi panjang clipping container dengan scrollMargin
saat menghitung persimpangan.
Laporan pelanggaran kebijakan izin
Hal ini mengintegrasikan Permissions Policy API dengan Reporting API, yang memungkinkan developer web mengonfigurasi endpoint yang akan dikirimi laporan pelanggaran kebijakan izin, sehingga pemilik situs dapat melihat saat fitur yang tidak diizinkan diminta di halaman mereka di kolom.
Kebijakan ini juga mencakup header Permissions-Policy-Report-Only
, yang memungkinkan laporan dikirim berdasarkan kebijakan yang diusulkan (mirip dengan Content-Security-Policy-Report-Only
) sehingga perubahan kebijakan dapat dievaluasi untuk menemukan potensi kerusakan sebelum menerapkannya dalam mode penerapan reguler.
Media Session API: tindakan enterpictureinpicture
Menambahkan tindakan enterpictureinpicture
ke Media Session API. Situs web dapat mendaftarkan pengendali tindakan yang dapat digunakan untuk membuka jendela Picture-in-Picture atau Document Picture-in-Picture.
Pelajari lebih lanjut di Picture-in-picture otomatis untuk aplikasi web.
Dukungan WebGPU f16
Memungkinkan penggunaan jenis floating point presisi setengah f16 dalam shader WebGPU (WGSL).
Developer dapat menggunakan 'shader-f16' dari spek WebGPU dan fitur "f16", tambahan dari spesifikasi WGSL untuk mengakses API dan variabel floating point 16-bit dalam shader.
MediaKemampuan: Mengkueri dukungan HDR dengan decodingInfo()
Memperluas Media Kemampuan API untuk memungkinkan deteksi dukungan rendering HDR melalui tiga kolom kamus VideoConfiguration baru: hdrMetadataType
, colorGamut
, dan transferFunction
. Chrome mengimplementasikan algoritma pemetaan nadanya sendiri sehingga akan selalu menampilkan true (benar) untuk metadata statis HDR10 (smpteSt2086). Metadata dinamis HDR10+ (smpteSt2094-10) dan Dolby Vision (smpteSt2094-40) saat ini tidak didukung, sehingga akan menghasilkan nilai salah. Kami akan menambahkan dukungan untuk metadata dinamis pada masa mendatang, sehingga API ini akan memungkinkan developer memilih konten yang sesuai untuk pengguna yang memiliki dukungan.
Statistik MediaStreamTrack (Video)
API yang mengekspos penghitung frame (ditayangkan, dihapus, total) untuk video jenis MediaStreamTracks. Statistik audio akan dibahas dalam peluncuran fitur Chrome yang terpisah.
Private Aggregation API: pemilihan koordinator agregasi
Modifikasi pada Private Aggregation API guna menyediakan mekanisme guna memilih koordinator yang akan digunakan untuk enkripsi payload (dari daftar yang diizinkan yang ditentukan vendor). Pilihan layanan dibuat dengan opsi tambahan dalam panggilan SharedStorage run()
dan selectURL()
, serta dalam panggilan Protected Audience runAdAuction()
dan joinAdInterestGroup()
. Pendekatan luas ini sebagian besar selaras dengan pendekatan Attribution Reporting API.
Login Status API di FedCM
Login Status API (sebelumnya IdP Sign-in Status API) memungkinkan penyedia identitas memberi sinyal ke browser saat pengguna login atau logout.
Hal ini digunakan oleh FedCM untuk mengatasi serangan waktu senyap, dan dengan demikian, memungkinkan FedCM beroperasi tanpa cookie pihak ketiga sepenuhnya.
Di masa mendatang, API ini mungkin akan tersedia untuk lebih banyak kasus penggunaan.
Cari tahu selengkapnya di postingan blog pengumuman.
View Transitions: membuat callback non-nullable
Panggilan startViewTransition
saat ini menggunakan jenis callback nullable opsional dengan nilai default null: startViewTransition(optional UpdateCallback? callback = null)
.
Fitur ini mengubah ini menjadi jenis non-nullable: startViewTransition(optional UpdateCallback callback)
.
Enkapsulasi kunci X25519Kyber768 untuk TLS
Lindungi traffic Chrome TLS saat ini dari kriptoanalisis kuantum mendatang dengan men-deploy algoritma perjanjian kunci yang tahan kuantum Kyber768. Ini adalah perjanjian kunci X25519 + Kyber768 hibrida berdasarkan standar IETF. Spesifikasi dan peluncuran ini berada di luar cakupan W3C. Perjanjian kunci ini akan diluncurkan sebagai penyandian TLS, dan harus transparan bagi pengguna.
Uji coba origin sedang berlangsung
Di Chrome 120, Anda dapat memilih untuk mengikuti uji coba origin baru berikut.
'prioritas' Header permintaan HTTP
Fitur ini menambahkan header permintaan priority
untuk semua permintaan HTTP dengan informasi prioritas untuk permintaan tersebut pada saat permintaan tersebut dikirim.
RFC 9218 (Skema Prioritas yang Dapat Diperluas untuk HTTP) menentukan 'prioritas' Header permintaan HTTP yang akan digunakan untuk memberi sinyal prioritas permintaan ke origin (dan perantara). Kebijakan ini juga menentukan proses negosiasi dan frame tingkat protokol untuk HTTP/2 dan HTTP/3 guna membawa informasi prioritas yang sama. Header hanya dapat menandakan prioritas awal untuk resource saat pertama kali diminta, sedangkan mekanisme berbasis frame memungkinkan modifikasi prioritas berdasarkan permintaan. Header dapat beroperasi end-to-end ke server asal (dan menyediakan mekanisme bagi origin untuk mengganti prioritas jika dikenali oleh perantara) sementara frame terbatas untuk beroperasi pada tingkat link. Fitur ini ditujukan khusus untuk mendukung skema prioritas berbasis header.
Memperluas Storage Access API (SAA) ke penyimpanan non-cookie
Kami mengusulkan ekstensi Storage Access API (kompatibel dengan versi lama) untuk memungkinkan akses ke penyimpanan tanpa partisi (cookie dan non-cookie) dalam konteks pihak ketiga.
Izin Akses Jaringan Pribadi untuk melonggarkan konten campuran
Agar dapat membuat koneksi ke perangkat di jaringan lokal yang tidak memiliki nama unik secara global, sehingga tidak dapat memperoleh sertifikat TLS, fitur ini memperkenalkan opsi baru untuk fetch()
untuk mendeklarasikan untuk berkomunikasi dengan perangkat tersebut, fitur baru yang dikontrol
kebijakan untuk membatasi setiap situs akses ke kemampuan ini, dan header baru untuk respons preflight server guna memberikan metadata tambahan.
Daftar ke uji coba origin Permintaan Izin Akses Jaringan Pribadi.
Akses tidak terbatas ke performance.measureUserAgentSpecificMemory()
performance.measureUserAgentSpecificMemory() ditentukan agar hanya tersedia di lingkungan yang diisolasi lintas asal (di belakang COOP/COEP). Fitur ini menghapus pembatasan COOP/COEP untuk memungkinkan pengujian regresi dan pengukuran dampak saat tidak dapat men-deploy COOP/COEP sepenuhnya. Perhatikan bahwa performance.memory (API lama) tidak dapat digunakan untuk tujuan ini karena tidak pernah diaktifkan pada worker.
performance.measureUserAgentSpecificMemory()
Fitur ini menambahkan fungsi performance.measureUserAgentSpecificMemory()
yang memperkirakan penggunaan memori halaman web. Situs harus diisolasi lintas origin untuk menggunakan API.
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 satu fitur.
Menghentikan penggunaan dan menghapus dukungan Theora
Chrome akan menghentikan penggunaan dan menghapus dukungan untuk codec video Theora di Chrome desktop karena adanya risiko keamanan yang muncul. Penggunaan Theora yang rendah (dan sekarang sering kali tidak benar) tidak lagi sesuai dengan dukungan untuk sebagian besar pengguna.
Rilis Chrome ini menghapus dua fitur.
Hapus data: URL di SVGUseElement
Menetapkan data: URL dalam SVGUseElement dapat menyebabkan XSS. Penetapan ini juga menyebabkan pengabaian Trusted Types. Oleh karena itu, kami berencana menghentikan penggunaan dan menghapus dukungan untuk model ini.
Menghapus penerapan menyeluruh origin yang sama di CSPEE
Menghapus perlakuan khusus untuk iframe origin yang sama dari Penerapan Sematan CSP. Hal ini selaras dengan perilaku penerapan Penerapan Sematan CSP untuk iframe lintas origin dan iframe origin yang sama.