Dipublikasikan: 15 Januari 2024
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 133 adalah versi beta mulai 15 Januari 2024. Anda dapat mendownload versi terbaru di Google.com untuk desktop atau di Google Play Store di Android.
CSS dan UI
Rilis ini menambahkan tujuh fitur CSS dan UI baru.
Fungsi attr()
lanjutan CSS
Mengimplementasikan penambahan ke attr()
yang ditentukan di CSS Level 5, yang memungkinkan
jenis selain <string>
dan digunakan di semua properti CSS (selain
dukungan yang ada untuk elemen pseudo content
).
Cari tahu selengkapnya di CSS attr()
mendapatkan upgrade.
Pseudo-class :open
CSS
Class pseudo :open
cocok dengan <dialog>
dan <details>
saat berada dalam
status terbuka, dan cocok dengan <select>
dan <input>
saat berada dalam mode
yang memiliki pemilih dan pemilih ditampilkan.
Kueri penampung status scroll CSS
Gunakan kueri penampung untuk menata gaya turunan penampung berdasarkan status scroll-nya.
Penampung kueri adalah penampung scroll, atau elemen yang terpengaruh oleh posisi scroll penampung scroll. Status berikut dapat dikueri:
stuck
: Penampung yang diposisikan melekat menempel ke salah satu tepi kotak scroll.snapped
: Penampung yang disejajarkan dengan snap scroll saat ini di-snap secara horizontal atau vertikal.scrollable
: Apakah penampung scroll dapat di-scroll dalam arah yang dikueri.
container-type: scroll-state
baru memungkinkan penampung dikueri.
#sticky {
position: sticky;
container-type: scroll-state;
}
@container scroll-state(stuck: top) {
#sticky-child {
font-size: 75%;
}
}
Pelajari lebih lanjut di scroll-state()
CSS.
CSS text-box
, text-box-trim
, dan text-box-edge
Untuk mencapai keseimbangan konten teks yang optimal, properti text-box-trim
dan
text-box-edge
, beserta properti singkatan text-box
, memungkinkan
kontrol yang lebih baik terhadap perataan vertikal teks.
Properti text-box-trim
menentukan sisi yang akan dipangkas, di atas atau di bawah, dan
properti text-box-edge
menentukan cara tepi harus dipangkas.
Properti ini memungkinkan Anda mengontrol spasi vertikal secara akurat menggunakan metrik font. Cari tahu lebih lanjut di text-box-trim CSS.
Nilai hint
dari atribut popover
Popover API menentukan perilaku untuk dua nilai atribut popover
: auto
dan manual
. Fitur ini menjelaskan nilai ketiga,
popover=hint
. Petunjuk, yang paling sering dikaitkan dengan perilaku jenis "tooltip", memiliki perilaku yang sedikit berbeda. Perbedaan utamanya adalah
hint
berada di bawah auto
saat membuka tumpukan popover bertingkat. Jadi,
Anda dapat membuka popover hint
yang tidak terkait saat tumpukan
popover auto
yang ada tetap terbuka.
Contoh kanonisnya adalah pemilih <select>
terbuka (popover=auto
) dan
tooltip yang dipicu pengarahan kursor (popover=hint
) ditampilkan. Tindakan tersebut tidak menutup pemilih <select>
.
Peningkatan posisi anchor dan pemanggil pop-up
Menambahkan cara imperatif untuk menetapkan hubungan pemanggil antara popover dengan
popover.showPopover({source})
. Mengaktifkan hubungan pemanggil untuk membuat
referensi elemen anchor implisit.
Popover yang disusun bertingkat di dalam pemanggil tidak boleh memanggilnya kembali
Dalam kasus berikut, mengklik tombol akan mengaktifkan popover dengan benar, tetapi mengklik popover itu sendiri setelah itu tidak akan menutup popover.
<button popovertarget=foo>Activate
<div popover id=foo>Clicking me shouldn't close me</div>
</button>
Sebelumnya, hal ini terjadi karena klik popover memunculkan balon ke <button>
dan mengaktifkan pemanggil, yang mengalihkan popover ke posisi tertutup. Hal ini kini telah
berubah menjadi perilaku yang diharapkan.
Web API
Animation.overallProgress
Memberikan representasi yang mudah dan konsisten kepada developer tentang sejauh mana
animasi telah berkembang di seluruh iterasinya dan terlepas dari
sifat linimasanya. Tanpa properti overallProgress
, Anda harus
menghitung secara manual seberapa jauh animasi telah maju, dengan mempertimbangkan jumlah
iterasi animasi dan apakah currentTime
animasi adalah
persentase dari total waktu (seperti dalam kasus animasi yang didorong scroll) atau
jumlah waktu absolut (seperti dalam kasus animasi yang didorong waktu).
Metode pause()
dari objek Atomics
Menambahkan metode pause()
ke objek namespace Atomics
, untuk memberi tahu CPU
bahwa kode saat ini sedang menjalankan spinlock.
Pelaporan hash CSP untuk skrip
Aplikasi web yang kompleks sering kali perlu melacak sub-resource yang didownload, untuk tujuan keamanan.
Secara khusus, standar industri dan praktik terbaik mendatang (misalnya, PCI-DSS v4) mewajibkan aplikasi web menyimpan inventaris semua skrip yang didownload dan dieksekusi.
Fitur ini dibuat berdasarkan CSP dan Reporting API untuk melaporkan URL dan hash (untuk CORS/origin yang sama) dari semua resource skrip yang dimuat dokumen.
Pemindahan yang mempertahankan status DOM
Menambahkan primitif DOM (Node.prototype.moveBefore
) yang memungkinkan Anda memindahkan elemen
di sekitar hierarki DOM, tanpa mereset status elemen.
Saat memindahkan, bukan menghapus dan menyisipkan, status berikut seperti berikut akan dipertahankan:
- Elemen
<iframe>
tetap dimuat. - Elemen aktif tetap menjadi fokus.
- Pop-up, layar penuh, dan dialog modal tetap terbuka.
- Transisi dan animasi CSS akan berlanjut.
Mengekspos atribut attributionsrc
di <area>
Menyelaraskan eksposur atribut attributionsrc
di <area>
dengan perilaku pemrosesan
atribut yang ada, meskipun tidak diekspos.
Selain itu, sebaiknya dukung atribut di <area>
, karena elemen tersebut adalah platform navigasi kelas satu, dan Chrome sudah mendukungnya di platform lain <a>
dan window.open
Mengekspos renderTime
lintas origin yang dipertajam dalam pengaturan waktu elemen dan LCP (terlepas dari Timing-Allow-Origin
)
Waktu elemen dan entri LCP memiliki atribut renderTime
, yang selaras dengan
frame pertama tempat gambar atau teks di-paint.
Atribut ini saat ini dilindungi untuk gambar lintas-asal dengan mewajibkan
header Timing-Allow-Origin
pada resource gambar. Namun, pembatasan tersebut
mudah diatasi (misalnya, dengan menampilkan gambar dengan origin yang sama dan lintas origin
dalam frame yang sama).
Karena hal ini menjadi sumber kebingungan, kami berencana untuk menghapus batasan ini, dan sebagai gantinya memperlambat semua waktu render sebesar 4 ms saat dokumen tidak diisolasi lintas origin. Hal ini tampaknya cukup kasar untuk menghindari kebocoran informasi waktu decoding yang berguna tentang gambar lintas origin.
Antarmuka FileSystemObserver
Antarmuka FileSystemObserver
memberi tahu
situs tentang perubahan pada sistem file. Situs mengamati perubahan pada file dan
direktori, yang sebelumnya telah diberi izin oleh pengguna, di perangkat lokal
pengguna, atau di Sistem File Bucket (juga dikenal sebagai Sistem File Pribadi
Asal), dan diberi tahu tentang info perubahan dasar, seperti jenis perubahan.
Pembekuan dalam mode Penghemat Energi
Saat Penghemat Energi aktif, Chrome akan membekukan "grup konteks penjelajahan" yang telah disembunyikan dan disenyapkan selama lebih dari lima menit jika ada subgrup frame asal yang sama di dalamnya yang melebihi batas penggunaan CPU, kecuali jika:
- Memberikan fungsi konferensi audio atau video (terdeteksi dengan mengidentifikasi mikrofon, kamera, atau tangkapan layar/jendela/tab atau RTCPeerConnection dengan RTCDataChannel 'terbuka' atau MediaStreamTrack 'live').
- Mengontrol perangkat eksternal (terdeteksi dengan penggunaan WebUSB, Web Bluetooth, WebHID, atau Web Serial).
- Menyimpan Kunci Web atau koneksi IndexedDB yang memblokir update versi atau transaksi pada koneksi lain.
Pembekuan terdiri dari menjeda eksekusi. Hal ini ditentukan secara formal di Page Lifecycle API.
Batas penggunaan CPU akan dikalibrasi untuk membekukan sekitar 10% tab latar belakang saat Penghemat Energi aktif.
Beberapa peta impor
Peta impor saat ini harus dimuat sebelum modul ES dan hanya boleh ada satu peta impor per dokumen. Hal ini membuatnya rapuh dan berpotensi lambat untuk digunakan dalam skenario kehidupan nyata: Setiap modul yang dimuat sebelum modul tersebut akan merusak seluruh aplikasi, dan dalam aplikasi dengan banyak modul, modul tersebut menjadi resource pemblokir yang besar, karena seluruh peta untuk semua kemungkinan modul harus dimuat terlebih dahulu.
Fitur ini memungkinkan beberapa peta impor per dokumen, dengan menggabungkannya dengan cara yang konsisten dan deterministik.
Header Akses Penyimpanan
Menawarkan cara alternatif bagi penyematan yang diautentikasi untuk memilih ikut serta dalam cookie yang tidak dipartisi. Header ini menunjukkan apakah cookie yang tidak dipartisi (atau dapat) disertakan dalam permintaan jaringan tertentu, dan memungkinkan server mengaktifkan izin 'akses penyimpanan' yang telah diberikan. Memberikan cara alternatif untuk mengaktifkan izin 'storage-access' memungkinkan penggunaan oleh resource non-iframe, dan dapat mengurangi latensi untuk penyematan yang diautentikasi.
Mendukung pembuatan ClipboardItem
dengan Promise<DOMString>
ClipboardItem
, yang merupakan input ke metode write()
papan klip asinkron,
sekarang menerima nilai string selain Blob dalam konstruktornya.
ClipboardItemData
dapat berupa Blob, string, atau Promise yang me-resolve ke
Blob atau string.
WebAssembly Memory64
Proposal memory64 menambahkan dukungan untuk memori WebAssembly linear dengan ukuran lebih besar dari 2^32 bit. API ini tidak memberikan petunjuk baru, tetapi memperluas petunjuk yang ada untuk mengizinkan indeks 64-bit untuk memori dan tabel.
Web Authentication API: Metode getClientCapabilities()
PublicKeyCredential
Metode getClientCapabilities()
PublicKeyCredential memungkinkan Anda menentukan
fitur WebAuthn yang didukung oleh klien pengguna. Metode ini menampilkan
daftar kemampuan yang didukung, yang memungkinkan developer menyesuaikan pengalaman
autentikasi dan alur kerja berdasarkan fungsi spesifik klien.
WebGPU: Format vertex 1 komponen (dan unorm8x4-bgra)
Menambahkan format vertex tambahan yang tidak ada dalam rilis awal WebGPU karena kekurangan dukungan atau versi macOS lama (yang tidak lagi didukung oleh browser apa pun). Format vertex 1 komponen memungkinkan aplikasi hanya meminta data yang diperlukan, sedangkan sebelumnya aplikasi harus meminta setidaknya dua kali lebih banyak untuk jenis data 8 dan 16-bit. Format unorm8x4-bgra membuatnya sedikit lebih mudah untuk memuat warna vertex yang dienkode BGRA sekaligus mempertahankan shader yang sama.
Algoritma X25519 dari Web Cryptography API
Algoritma "X25519" menyediakan alat untuk melakukan perjanjian kunci menggunakan fungsi X25519 yang ditentukan dalam [RFC7748]. ID algoritma "X25519" dapat digunakan di antarmuka SubtleCrypto untuk mengakses operasi yang diterapkan: generateKey, importKey, exportKey, deriveKey, dan deriveBits.
Uji coba asal baru
Di Chrome 133, Anda dapat memilih untuk ikut serta dalam uji coba origin baru berikut.
Memilih untuk tidak membekukan tab dalam mode Penghemat Energi
Uji coba pilihan tidak ikut ini memungkinkan situs memilih untuk tidak membekukan perilaku Penghemat Energi yang disertakan dalam Chrome 133.
Penghentian dan penghapusan
Versi Chrome ini memperkenalkan penghentian dan penghapusan yang tercantum di bawah. Buka ChromeStatus.com untuk melihat daftar penghentian penggunaan yang direncanakan, penghentian penggunaan saat ini, dan penghapusan sebelumnya.
Rilis Chrome ini tidak lagi menggunakan satu fitur.
Menghentikan penggunaan batas maxInterStageShaderComponents
WebGPU
maxInterStageShaderComponents limit
tidak digunakan lagi karena kombinasi
faktor. Tanggal penghapusan yang dimaksud di Chrome 135.
- Redundansi dengan
maxInterStageShaderVariables
: Batas ini sudah memiliki tujuan yang serupa, yaitu mengontrol jumlah data yang diteruskan di antara tahap shader. - Perbedaan kecil: Meskipun ada sedikit perbedaan dalam cara penghitungan kedua
batas, perbedaan ini bersifat kecil dan dapat dikelola secara efektif
dalam batas
maxInterStageShaderVariables
. - Penyederhanaan: Menghapus
maxInterStageShaderComponents
akan menyederhanakan antarmuka shader dan mengurangi kompleksitas bagi developer. Daripada mengelola dua batas terpisah dengan perbedaan yang halus, mereka dapat berfokus padamaxInterStageShaderVariables
yang lebih lengkap dan diberi nama yang sesuai.
Rilis Chrome ini menghapus dua fitur.
Menghapus aturan lima menit <link rel=prefetch>
Sebelumnya, saat resource diambil sebelumnya menggunakan <link rel=prefetch>
, Chrome
mengabaikan semantik cache-nya (yaitu max-age
dan no-cache
) untuk penggunaan pertama
dalam waktu lima menit, untuk menghindari pengambilan ulang. Sekarang, Chrome menghapus kasus khusus ini
dan menggunakan semantik cache HTTP normal.
Artinya, developer web perlu menyertakan header penyimpanan ke dalam cache yang sesuai
(Cache-Control atau Expires) untuk melihat manfaat dari <link rel=prefetch>
.
Hal ini juga memengaruhi <link rel=prerender>
nonstandar.
Menghapus pemicu halaman Sambutan Chrome dengan tab preferensi awal saat pertama kali dijalankan
Menyertakan chrome://welcome
dalam properti first_run_tabs
file
initial_preferences
kini tidak akan berpengaruh. Halaman ini dihapus karena halaman tersebut redundan dengan Pengalaman Pengaktifan Pertama yang dipicu di platform desktop.