Chrome 120 beta

Penyamaran CSS, aturan longgar untuk penyusunan bertingkat CSS, buat pola akordeon dengan elemen <details>, tindakan enterpictureinpicture untuk Media Session API.

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 120 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 kustom yang terdaftar

Mendukung penggunaan sintaksis <image> untuk properti khusus yang terdaftar dengan @property atau registerProperty(). Sintaksis <image> dapat digunakan untuk membatasi nilai properti kustom ke nilai url() dan gambar yang dihasilkan seperti gradien.

Sintaksis CSS <transform-function> dan <transform-list> untuk properti kustom yang terdaftar

Mendukung penggunaan sintaksis <transform-function> dan <transform-list> untuk properti khusus yang terdaftar dengan @property atau registerProperty().

Sintaksis dapat digunakan untuk membatasi nilai properti kustom untuk mewakili transformasi. Hal ini juga memungkinkan penggunaan transisi dan animasi secara langsung pada properti kustom yang terdaftar ini.

Kueri Media: fitur pembuatan skrip

Fitur media skrip digunakan untuk melakukan kueri apakah bahasa skrip, seperti JavaScript, didukung pada dokumen saat ini. Opsi yang valid adalah 'enabled', 'initial-only', dan 'none'. Namun, 'initial-only' tidak pernah cocok di dalam browser.

Pemilih kelas semu :dir()

Pemilih class pseudo CSS :dir() mencocokkan elemen berdasarkan arah, yang ditentukan berdasarkan atribut dir HTML.

:dir(ltr) cocok dengan arah teks kiri-ke-kanan. :dir(rtl) mencocokkan elemen dengan arah teks kanan-ke-kiri.

Nilai 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 spesifikasi Unit Level 4.

Penyamaran CSS

CSS mask, 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 membatalkan awalan properti -webkit-mask* dan menggabungkannya dengan spesifikasi saat ini. Ini mencakup mask-image, mask-mode, mask-repeat, mask-position, mask-clip, mask-origin, mask-size, dan mask-composite, serta pintasan mask. Referensi mask-image lokal didukung, serialisasi kini sesuai dengan spesifikasi, dan nilai yang diterima kini cocok dengan spesifikasi (misalnya, add, bukan source-over untuk mask-composite.)

Penyusunan 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. Atribut ini menambahkan atribut nama ke elemen <details>. Jika atribut ini digunakan, beberapa elemen <details> yang memiliki nama yang sama akan membentuk grup. 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 mengizinkan pemisahan buffer array dan menggunakan buffer yang sesuai di dalam VideoFrame, ImageDecoder, EncodedVideoChunk, EncodedAudioChunk, AudioData tanpa salinan.

CSS Font Loading API FontFaceSet: metode 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.

Permintaan penutupan 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. Integrasinya ke Chrome menghadirkan dua perubahan:

  • CloseWatcher, API baru untuk memproses dan merespons permintaan tertutup secara langsung.
  • Upgrade ke <dialog> dan popover="" untuk menggunakan framework permintaan tutup yang baru, agar 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 pengguna login ke situs atau aplikasi (dalam konteks ini dikenal sebagai pihak tepercaya (RP)) dengan penyedia identitas. Dengan kata lain, setelah pengguna mengklik tombol Continue as.

Dengan Error API, jika upaya login pengguna gagal, penyedia identitas dapat membagikan alasan ke browser agar pengguna dan developer RP terus diupdate.

Dengan AutoSelectedFlag API, penyedia identitas dan developer RP dapat memiliki pemahaman yang lebih baik tentang UX login, serta mengevaluasi performa dan metrik segmen sebagaimana mestinya.

Cari tahu selengkapnya di postingan blog Chrome 120 FedCM.

Update fungsi Frame dengan Fence

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 masuk 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.

Beacon otomatis sekarang akan dikirim ke semua URL terdaftar. Sebelumnya, hanya tujuan yang ditentukan saat memanggil setReportEventDataForAutomaticBeacons() yang akan menerima beacon otomatis, meskipun tujuan yang disebut registerAdBeacon() untuk reserved.top_navigation di workletnya. Sekarang, semua tujuan yang memanggil registerAdBeacon() untuk reserved.top_navigation akan mendapatkan beacon otomatis, tetapi hanya tujuan yang ditentukan dalam setReportEventDataForAutomaticBeacons() yang akan mendapatkan data beacon otomatis bersama dengan beacon. Parameter once di setReportEventDataForAutomaticBeacons() kini akan menentukan apakah data dikirim sekali, bukan menentukan apakah seluruh beacon dikirim sekali.

Margin Scroll Observer Persimpangan

Intersection Observer scrollMargin memungkinkan developer untuk mengamati target di dalam penampung scroll bertingkat yang saat ini terpotong oleh container scroll. Hal ini dicapai dengan memperluas clipping rect container sebesar scrollMargin saat menghitung persimpangan.

Laporan pelanggaran kebijakan izin

API ini mengintegrasikan API kebijakan Izin dengan Reporting API, yang memungkinkan developer web mengonfigurasi endpoint tempat laporan pelanggaran kebijakan izin akan dikirim, sehingga pemilik situs dapat melihat kapan fitur yang tidak diizinkan diminta di halaman mereka di kolom.

Rilis ini juga mencakup header Permissions-Policy-Report-Only, yang memungkinkan laporan dikirim berdasarkan kebijakan yang diusulkan (analog dengan Content-Security-Policy-Report-Only) sehingga perubahan kebijakan dapat dievaluasi potensi kerusakan sebelum menerapkannya dalam mode penerapan reguler.

Media Session API: Tindakan enterpictureinpicture

Menambahkan tindakan enterpictureinpicture ke Media Session API. Situs 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 tipe f16 floating-point presisi setengah dalam shader WebGPU (WGSL).

Developer dapat menggunakan fitur 'shader-f16' dari spesifikasi WebGPU dan ekstensi 'f16' dari spesifikasi WGSL untuk mengakses variabel floating point 16-bit dan API di shader mereka.

MediaCapabilities: Meminta dukungan HDR dengan decodingInfo()

Memperluas Media Capabilities API untuk memungkinkan deteksi dukungan rendering HDR melalui tiga kolom kamus VideoConfiguration baru: hdrMetadataType, colorGamut, dan transferFunction. Chrome menerapkan algoritma pemetaan nadanya sendiri, sehingga akan selalu menampilkan nilai benar untuk metadata statis HDR10 (smpteSt2086). Metadata dinamis HDR10+ (smpteSt2094-10) dan Dolby Vision (smpteSt2094-40) saat ini tidak didukung, jadi akan menampilkan nilai salah. Kami mengantisipasi penambahan dukungan untuk metadata dinamis di 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 (dikirim, dihapus, total) untuk jenis video MediaStreamTrack. Statistik audio akan dicakup oleh peluncuran fitur Chrome yang terpisah.

Private Aggregation API: pemilihan koordinator agregasi

Modifikasi Private Aggregation API untuk menyediakan mekanisme dalam memilih koordinator yang akan digunakan untuk enkripsi payload (dari daftar yang diizinkan yang ditentukan vendor). Pilihan layanan dibuat dengan opsi tambahan pada panggilan SharedStorage run() dan selectURL(), serta dalam panggilan Protected Audience runAdAuction() dan joinAdInterestGroup(). Pendekatan yang 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.

Sistem ini digunakan oleh FedCM untuk mengatasi serangan silent pengaturan waktu, sehingga memungkinkan FedCM beroperasi tanpa cookie pihak ketiga sama sekali.

Di masa mendatang, API ini mungkin akan tersedia untuk kasus penggunaan lainnya.

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

Melindungi traffic TLS Chrome saat ini terhadap kriptoanalisis kuantum di masa mendatang dengan men-deploy algoritma perjanjian kunci yang tahan kuantum Kyber768. Ini adalah perjanjian kunci hybrid 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 120, Anda dapat ikut serta dalam uji coba origin baru berikut.

Header permintaan HTTP 'prioritas'

Fitur ini menambahkan header permintaan priority untuk semua permintaan HTTP dengan informasi prioritas permintaan pada saat permintaan tersebut dikirim.

RFC 9218 (Extensible Prioritization Scheme untuk HTTP) menentukan header permintaan HTTP 'prioritas' yang akan digunakan untuk memberi sinyal prioritas permintaan ke origin (dan perantara). Ini juga mendefinisikan proses negosiasi dan frame tingkat protokol untuk HTTP/2 dan HTTP/3 untuk membawa informasi prioritas yang sama. Header hanya dapat memberikan sinyal prioritas awal untuk suatu resource saat pertama kali diminta sementara mekanisme berbasis frame memungkinkan untuk memodifikasi prioritas setelah fakta. Header dapat beroperasi secara menyeluruh ke server origin (dan menyediakan mekanisme bagi origin untuk mengganti prioritas jika dikenali oleh perantara) sementara frame dibatasi untuk beroperasi di tingkat link. Fitur ini khusus untuk mendukung skema prioritas berbasis header.

Kami mengusulkan ekstensi Storage Access API (kompatibel dengan versi lama) untuk mengizinkan akses ke penyimpanan yang tidak dipartisi (cookie dan non-cookie) dalam konteks pihak ketiga.

Izin Akses Jaringan Pribadi untuk melonggarkan konten campuran

Agar terhubung ke perangkat di jaringan lokal yang tidak memiliki nama yang unik secara global, sehingga tidak dapat memperoleh sertifikat TLS, fitur ini memperkenalkan opsi baru untuk fetch() guna mendeklarasikan niat developer untuk berkomunikasi dengan perangkat tersebut, fitur baru yang dikontrol kebijakan untuk membatasi akses setiap situs ke kemampuan ini, dan header baru untuk respons preflight server guna memberikan metadata tambahan.

Daftar ke uji coba origin Prompt Izin Akses Jaringan Pribadi.

Akses tidak terbatas ke performance.measureUserAgentSpecificMemory()

performance.measureUserAgentSpecificMemory() ditetapkan agar hanya tersedia di lingkungan terisolasi lintas asal (di belakang COOP/COEP). Fitur ini menghapus batasan 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 pekerja.

performance.measureUserAgentSpecificMemory()

Fitur ini menambahkan fungsi performance.measureUserAgentSpecificMemory() yang memperkirakan penggunaan memori halaman web. Situs harus diisolasi lintas origin untuk menggunakan API ini.

Penghentian penggunaan dan penghapusan

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

Rilis Chrome ini menghentikan satu fitur.

Menghentikan penggunaan dan menghapus dukungan Theora

Chrome akan menghentikan dan menghapus dukungan untuk codec video Theora di Chrome desktop karena risiko keamanan yang muncul. Penggunaan Theora yang rendah (dan sekarang sering salah) tidak lagi membenarkan dukungan untuk sebagian besar pengguna.

Rilis Chrome ini menghapus dua fitur.

Hapus data: URL di SVGUseElement

Menetapkan data: URL dalam SVGUseElement dapat menyebabkan XSS. Hal ini juga menyebabkan pengabaian Jenis Tepercaya. Oleh karena itu, kami berencana untuk menghentikan dan menghapus dukungan untuknya.

Menghapus penerapan menyeluruh origin yang sama di CSPEE

Menghapus perlakuan khusus untuk iframe origin yang sama dari CSP Embedded Enforcement. Hal ini selaras dengan perilaku penerapan Penerapan Tersemat CSP untuk iframe lintas origin dan iframe origin sama.