Chrome 123 beta

Kecuali jika dinyatakan lain, perubahan berikut berlaku untuk rilis saluran Chrome beta 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 123 adalah versi beta mulai 21 Februari 2024. Anda dapat mendownload versi terbaru di Google.com untuk desktop atau di Google Play Store di Android.

CSS

Rilis ini menambahkan lima fitur CSS baru.

Fungsi warna light-dark() CSS

Fungsi light-dark() di CSS memungkinkan developer menyesuaikan skema warna dengan preferensi pengguna untuk mode terang atau gelap dengan lebih mudah.

Gunakan light-dark() untuk menentukan dua nilai warna yang berbeda dalam satu properti CSS. Browser (atau perangkat) akan otomatis memilih warna yang sesuai berdasarkan nilai color-scheme yang dihitung elemen. Misalnya, dengan CSS berikut:

  • Jika pengguna telah memilih tema terang, elemen .target akan memiliki latar lime.
  • Jika pengguna telah memilih tema gelap, elemen .target akan memiliki latar belakang hijau.
html {
  color-scheme: light dark;
}
.target {
    background-color: light-dark(lime, green);
}

Mode tampilan picture-in-picture CSS

Menambahkan dukungan ke fitur media display-mode CSS untuk nilai picture-in-picture. Hal ini memungkinkan developer web menulis aturan CSS tertentu yang hanya diterapkan saat (bagian dari) aplikasi web ditampilkan dalam mode picture-in-picture.

Pelajari lebih lanjut fitur media ini, di dokumentasi picture-in-picture.

Properti CSS align-content untuk blok

Properti CSS align-content kini didukung di penampung blok dan sel tabel. Sebelumnya, properti ini hanya didukung pada item petak dan fleksibel. Misalnya, display: block, display: list-item, dan display: table-cell kini dapat disejajarkan menggunakan align-content.

Pelajari lebih lanjut di Dukungan untuk align-content dalam tata letak blok dan tabel.

Properti CSS field-sizing

Dengan menggunakan properti field-sizing, developer dapat menonaktifkan ukuran default kontrol formulir yang tetap, dan membuat ukurannya bergantung pada kontennya. Hal ini menyediakan cara untuk membuat kolom teks yang bertambah secara otomatis.

Properti text-spacing-trim CSS

Properti ini menerapkan kerning ke karakter tanda baca China, Jepang, dan Korea (CJK) untuk menghasilkan tipografi yang menyenangkan secara visual seperti yang ditentukan oleh JLREQ (Persyaratan untuk Tata Letak Teks Jepang) dan CLREQ (Persyaratan untuk Tata Letak Teks China).

Banyak karakter tanda baca CJK menyertakan spasi internal glyph. Misalnya, titik penuh CJK dan tanda kurung tutup CJK biasanya memiliki spasi internal glyph di bagian kanan ruang glyph, untuk memberinya kemajuan konstan seperti karakter ideografis lainnya. Namun, jika muncul dalam baris, spasi internal glif menjadi berlebihan. Fitur ini akan menyesuaikan spasi yang berlebihan tersebut.

Properti text-spacing-trim menerima salah satu dari empat nilai berikut: normal, trim-start, space-all, dan space-first. Pelajari lebih lanjut di Memperkenalkan empat fitur internasional baru di CSS.

Web API

Mengizinkan pembuatan kredensial WebAuthn di iframe lintas origin

Fitur ini memungkinkan developer web membuat kredensial WebAuthn (yaitu, kredensial "publickey", yang dikenal sebagai kunci sandi) di iframe lintas origin. Ada dua kondisi yang diperlukan untuk kemampuan baru ini:

  • Iframe memiliki kebijakan izin publickey-credentials-create-feature.
  • Iframe memiliki aktivasi pengguna sementara.

Hal ini akan memungkinkan developer membuat kunci sandi dalam skenario tersemat, seperti setelah alur peningkatan identitas saat Pihak Penerima menyediakan pengalaman identitas gabungan.

Paket fitur pelaporan atribusi

Chrome 123 menambahkan penyesuaian data pemicu dan filter nilai agregat ke Attribution Reporting API yang berfokus pada:

  • Konfigurasi API tambahan untuk pelaporan tingkat peristiwa dengan mendukung penyesuaian untuk kardinalitas dan nilai data pemicu.
  • Konfigurasi API tambahan untuk laporan ringkasan dengan mendukung filter dalam nilai gabungan.

Pengukuran Atribusi Lintas Aplikasi dan Web

Memperluas Attribution Reporting API untuk memungkinkan atribusi konversi yang terjadi di web ke peristiwa yang terjadi di luar browser, dalam aplikasi lain.

Proposal di sini memanfaatkan dukungan tingkat OS untuk atribusi. Secara khusus, hal ini memberi developer opsi untuk mengizinkan peristiwa di web seluler dapat digabungkan dengan peristiwa di Privacy Sandbox Android, meskipun dukungan untuk platform lain juga dapat diterapkan.

blocking=render pada skrip modul inline

Ini adalah perubahan kecil yang menghapus batasan buatan dari <script blocking="render">. Sebelum perubahan ini, <script blocking="render"type="module"> memerlukan atribut src, meskipun src ini adalah URI data. Ini adalah batasan yang tidak perlu, karena skrip modul inline yang mengimpor skrip lainnya masih dapat memblokir rendering.

Motivasi untuk hal ini adalah transisi tampilan lintas dokumen sering kali mengandalkan skrip pemblokir render untuk penyesuaian, sehingga membuat skrip pemblokir render lebih mudah untuk ditulis akan mendukung fitur ini.

Gambar dalam gambar dokumen: mengizinkan focus() API memfokuskan pembuka

Anda kini dapat menggunakan opener.focus() dari jendela picture-in-picture dokumen untuk mengarahkan fokus tingkat sistem ke tab yang memiliki jendela picture-in-picture dokumen.

Hal ini memungkinkan developer mengembalikan tab asli ke latar depan jika diperlukan. Misalnya, saat pengguna perlu mengakses pengalaman UI yang tidak sesuai dengan jendela picture-in-picture yang lebih kecil.

Sintaks with atribut impor

Atribut impor adalah fitur JavaScript untuk memungkinkan anotasi deklarasi impor, misalnya import xxx from "mod" with { type: "json" }. Chrome awalnya mengirimkan proposal versi sebelumnya (di Chrome 91) menggunakan assert sebagai kata kunci. Versi ini kemudian telah diperbarui untuk menggunakan with karena beberapa perubahan diperlukan saat mengintegrasikannya dengan modul HTML untuk JSON dan CSS.

jitterBufferTarget

Atribut jitterBufferTarget memungkinkan aplikasi menentukan durasi waktu target dalam milidetik media untuk buffer jitter RTCRtpReceiver yang akan disimpan. Hal ini memengaruhi jumlah buffering yang dilakukan oleh agen pengguna, yang pada akhirnya memengaruhi transmisi ulang dan pemulihan kehilangan paket. Mengubah nilai target memungkinkan aplikasi mengontrol kompromi antara penundaan pemutaran dan risiko kehabisan frame audio atau video karena jitter jaringan.

Pengaturan Waktu Frame Animasi Panjang

Long Animation Frames API adalah ekstensi dari Long Tasks API. Alat ini mengukur tugas bersama dengan update rendering berikutnya, menambahkan informasi seperti skrip yang berjalan lama, waktu rendering, dan waktu yang dihabiskan dalam tata letak dan gaya yang dipaksakan, yang dikenal sebagai thrashing tata letak.

Developer dapat menggunakannya sebagai diagnostik untuk "kelambatan", yang diukur dengan INP, dengan menemukan penyebab kemacetan thread utama yang sering menjadi penyebab INP yang buruk.

Antarmuka NavigationActivation menambahkan navigation.activation. Ini menyimpan status tentang kapan Dokumen saat ini diaktifkan (misalnya, saat diinisialisasi, atau dipulihkan dari cache kembali/maju).

Artinya, developer dapat menawarkan halaman yang disesuaikan berdasarkan tempat pengguna membuka halaman. Misalnya, jalankan animasi yang berbeda jika pengguna berasal dari halaman beranda.

peristiwa pagereveal

Peristiwa pagereveal diaktifkan pada objek jendela Dokumen pada peluang rendering pertama setelah Dokumen: pertama kali dimuat, dipulihkan dari cache kembali-maju, atau diaktifkan dari pra-rendering.

Ini dapat digunakan oleh penulis halaman untuk menyiapkan pengalaman entri halaman—seperti transisi tampilan dari status sebelumnya.

PointerEvent.deviceId untuk Coretan Multi-Pena

Seiring dengan semakin banyaknya perangkat dengan kemampuan input pena tingkat lanjut, platform web harus terus berkembang untuk sepenuhnya mendukung fitur lanjutan ini guna membuka pengalaman yang kaya bagi pengguna akhir dan developer. Salah satu kemajuan tersebut adalah kemampuan digitizer perangkat untuk mengenali lebih dari satu perangkat pena yang berinteraksi dengannya secara bersamaan. Fitur ini adalah ekstensi untuk antarmuka PointerEvent guna menyertakan atribut baru, deviceId, yang mewakili ID unik yang terisolasi dari dokumen dan persisten sesi yang dapat digunakan developer dengan andal untuk mengidentifikasi setiap pena yang berinteraksi dengan halaman.

Pemeriksaan akses jaringan pribadi untuk permintaan navigasi: mode peringatan saja

Sebelum situs A membuka situs B lain di jaringan pribadi pengguna, fitur ini akan melakukan tindakan berikut:

  1. Memeriksa apakah permintaan dimulai dari konteks yang aman.
  2. Mengirim permintaan preflight, dan memeriksa apakah situs B merespons dengan header yang mengizinkan akses jaringan pribadi.

Sudah ada fitur untuk subresource dan pekerja, tetapi penambahan ini khusus untuk permintaan navigasi.

Pemeriksaan ini dilakukan untuk melindungi jaringan pribadi pengguna. Karena fitur ini adalah mode "peringatan saja", fitur ini tidak akan menggagalkan permintaan jika ada pemeriksaan yang gagal. Sebagai gantinya, peringatan akan ditampilkan di DevTools untuk membantu developer bersiap menghadapi penerapan mendatang.

Petunjuk klien Sec-CH-UA-Form-Factor

Petunjuk ini menunjukkan "faktor bentuk" agen pengguna atau perangkat, sehingga situs dapat menyesuaikan responsnya.

API Pemilihan Rute Statis Service Worker

API ini memungkinkan developer mengonfigurasi pemilihan rute, dan memungkinkan mereka untuk memindahkan hal-hal sederhana yang dilakukan pekerja layanan. Jika kondisinya cocok, navigasi akan terjadi tanpa memulai pekerja layanan atau menjalankan JavaScript, yang memungkinkan halaman web menghindari penalti performa karena intersepsi pekerja layanan. Untuk informasi selengkapnya, lihat postingan blog sebelumnya tentang API ini.

Update Penyimpanan Bersama

Update ini mendukung pengoperasian worklet lintas origin tanpa harus membuat iframe.

Encoding Konten zstd

Zstandard, atau zstd, adalah mekanisme kompresi data yang dijelaskan dalam RFC8878. Ini adalah algoritma kompresi lossless yang cepat, yang menargetkan skenario kompresi real-time di tingkat zlib dan rasio kompresi yang lebih baik. Token zstd ditambahkan sebagai token Content-Encoding yang terdaftar di IANA.

Menambahkan dukungan untuk zstd sebagai Content-Encoding akan membantu memuat halaman lebih cepat dan menggunakan lebih sedikit bandwidth, serta menghabiskan lebih sedikit waktu, CPU, dan daya pada kompresi di server kami, sehingga mengurangi biaya server.

Uji coba origin baru

Di Chrome 123, Anda dapat memilih untuk mengikuti uji coba origin baru berikut.

Integrasi promise JavaScript WebAssembly

Untuk mendukung aplikasi responsif yang ditulis menggunakan WebAssembly, Anda harus menyediakan fitur yang memungkinkan program WebAssembly ditangguhkan dan dilanjutkan.

Kasus penggunaan awal utama untuk integrasi promise adalah memungkinkan program WebAssembly yang sumbernya mengandalkan API sinkron untuk menggunakan API asinkron yang semakin umum di platform Web.

Daftar untuk uji coba origin integrasi promise.

Penghapusan

Chrome 123 menghapus fitur berikut.

Alias window-placement untuk izin dan kebijakan izin window-management

Di Chrome 111, window-management ditambahkan sebagai alias untuk string izin dan kebijakan izin window-placement. Ini adalah bagian dari upaya yang lebih besar untuk mengganti nama string dengan akhirnya menghentikan penggunaan dan menghapus window-placement. Perubahan terminologi meningkatkan masa pakai deskripsi seiring perkembangan Window Management API dari waktu ke waktu.

Peringatan penghentian penggunaan untuk alias window-placement dimulai di Chrome 113, dan sekarang akan dihapus.