Chrome 133

Tanggal rilis stabil: 4 Februari 2025

Kecuali jika dinyatakan lain, perubahan berikut berlaku untuk rilis saluran stabil Chrome 133 untuk Android, ChromeOS, Linux, macOS, dan Windows.

HTML dan DOM

Nilai petunjuk atribut popover

Popover API menentukan perilaku untuk dua nilai atribut popover: otomatis 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 bahwa petunjuk berada di bawah otomatis saat membuka tumpukan popover bertingkat. Jadi, Anda dapat membuka popover petunjuk yang tidak terkait saat tumpukan popover otomatis 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>.

Melacak bug #1416284 | Entri ChromeStatus.com

Peningkatan posisi anchor dan pemanggil popover

Menambahkan cara imperatif untuk menetapkan hubungan pemanggil antara popover dengan popover.showPopover({source}). Mengaktifkan hubungan pemanggil untuk membuat referensi elemen anchor implisit.

Melacak bug #364669918 | Entri ChromeStatus.com

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 balon klik popover ke <button> dan mengaktifkan pemanggil, yang mengalihkan popover ditutup. Hal ini kini telah diubah menjadi perilaku yang diharapkan.

Melacak bug #https://crbug.com/379241451 | Entri ChromeStatus.com

CSS

Fungsi attr() lanjutan CSS

Mengimplementasikan penambahan ke attr() yang ditentukan di CSS Level 5, yang memungkinkan jenis selain <string> dan penggunaan di semua properti CSS (selain dukungan yang ada untuk konten pseudo-elemen).

MDN attr() | Melacak bug #246571 | Entri ChromeStatus.com | Spesifikasi

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.

Melacak bug #324293874 | Entri ChromeStatus.com | Spesifikasi

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 sejajar dengan snap scroll saat ini di-snap secara horizontal atau vertikal.
  • scrollable: Apakah penampung scroll dapat di-scroll ke arah yang dikueri.

Jenis penampung baru: scroll-state memungkinkan penampung dikueri.

Melacak bug #40268059 | Entri ChromeStatus.com | Spesifikasi

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, bersama dengan 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.

Melacak bug #1411581 | Entri ChromeStatus.com | Spesifikasi

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 perlu 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 kuantitas waktu absolut (seperti dalam kasus animasi yang didorong waktu).

Melacak bug #40914396 | Entri ChromeStatus.com | Spesifikasi

Metode pause() dari objek Atomics

Menambahkan metode pause() ke objek namespace Atomics, untuk memberi tahu CPU bahwa kode saat ini sedang mengeksekusi spinlock.

Entri ChromeStatus.com | Spesifikasi

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/asal yang sama) dari semua resource skrip yang dimuat dokumen.

Melacak bug #377830102 | Entri ChromeStatus.com

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

Entri ChromeStatus.com

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.

Melacak bug #379275911 | Entri ChromeStatus.com | Spesifikasi

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 Origin), dan diberi tahu tentang info perubahan dasar, seperti jenis perubahan.

Melacak bug #40105284 | Entri ChromeStatus.com

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 digunakan dalam skenario kehidupan nyata: Setiap modul yang dimuat sebelum modul ini akan merusak seluruh aplikasi, dan di aplikasi dengan banyak modul, modul ini 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 secara konsisten dan deterministik.

Entri ChromeStatus.com

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.

Melacak bug #329698698 | Entri ChromeStatus.com | Spesifikasi

Mendukung pembuatan ClipboardItem dengan Promise<DOMString>

ClipboardItem, yang merupakan input ke metode write() papan klip asinkron, kini menerima nilai string selain Blob dalam konstruktornya. ClipboardItemData dapat berupa Blob, string, atau Promise yang me-resolve ke Blob atau string.

Melacak bug #40766145 | Entri ChromeStatus.com | Spesifikasi

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.

Entri ChromeStatus.com | Spesifikasi

Web Authentication API: Metode PublicKeyCredential getClientCapabilities()

Metode PublicKeyCredential getClientCapabilities() memungkinkan Anda menentukan fitur WebAuthn yang didukung oleh klien pengguna. Metode ini menampilkan daftar kemampuan yang didukung, yang memungkinkan developer menyesuaikan pengalaman dan alur kerja autentikasi berdasarkan fungsi spesifik klien.

Melacak bug #360327828 | Entri ChromeStatus.com | Spesifikasi

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.

Melacak bug #378856322 | Entri ChromeStatus.com | Spesifikasi

Performa

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 subgrup frame dengan origin yang sama di dalamnya 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. Ini ditentukan secara formal di Page Lifecycle API.

Batas penggunaan CPU akan dikalibrasi untuk membekukan sekitar 10% tab latar belakang saat Penghemat Energi aktif.

Melacak bug #325954772 | Entri ChromeStatus.com

Mengekspos renderTime lintas-asal 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 memperlambat semua waktu render sebesar 4 md jika dokumen tidak diisolasi lintas origin. Hal ini tampaknya cukup kasar untuk menghindari kebocoran informasi waktu decoding yang berguna tentang gambar lintas origin.

Melacak bug #373263977 | Entri ChromeStatus.com | Spesifikasi

Kembalikan responseStart dan perkenalkan firstResponseHeadersStart

Dengan 103 Petunjuk Awal diaktifkan, respons memiliki dua stempel waktu:

  • Saat Petunjuk Awal tiba (103)
  • Saat header akhir tiba (misalnya 200)
  • Saat Chrome 115 mengirimkan firstInterimResponseStart untuk memungkinkan pengukuran dua stempel waktu ini, kami juga mengubah arti responseStart (digunakan oleh Time to First Byte (TTFB)) menjadi "header akhir". Hal ini menyebabkan masalah kompatibilitas web dengan browser dan alat yang tidak membuat perubahan serupa untuk metrik yang umum digunakan ini.

Chrome 133 mengembalikan perubahan responseStart ini untuk mengatasi masalah kompatibilitas ini dan sebagai gantinya memperkenalkan firstResponseHeadersStart untuk memungkinkan situs mengukur waktu ke header akhir, sekaligus mempertahankan definisi TTFB asli.

Melacak bug #40251053 | Entri ChromeStatus.com | Spesifikasi

Rendering dan grafis

WebGPU: Format vertex 1 komponen (dan unorm8x4-bgra)

Menambahkan format vertex tambahan yang tidak ada dalam rilis awal WebGPU karena kurangnya 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 membuat pemuatan warna vertex yang dienkode BGRA sedikit lebih mudah sekaligus mempertahankan shader yang sama.

Melacak bug #376924407 | Entri ChromeStatus.com

Uji coba origin

Memilih untuk tidak membekukan tab dalam mode Penghemat Energi

Uji coba pilihan tidak ikut ini memungkinkan situs memilih untuk tidak ikut dalam perilaku pembekuan pada Penghemat Energi yang disertakan dalam Chrome 133.

Uji Coba Origin | Melacak bug #325954772 | Entri ChromeStatus.com | Spesifikasi

Target Referensi untuk ARIA Lintas Root

Target Referensi adalah fitur untuk mengaktifkan penggunaan atribut IDREF seperti for dan aria-labelledby untuk merujuk ke elemen di dalam shadow DOM komponen, sekaligus mempertahankan enkapsulasi detail internal shadow DOM. Tujuan utama fitur ini adalah memungkinkan ARIA berfungsi di seluruh batas root bayangan.

Komponen dapat menentukan elemen dalam hierarki bayangannya untuk bertindak sebagai "target referensi". Jika komponen host adalah target IDREF seperti atribut for label, target referensi akan menjadi target efektif label.

Root bayangan menentukan ID elemen target di dalam shadow DOM. Hal ini dilakukan di JavaScript dengan atribut referenceTarget pada objek ShadowRoot, atau dalam markup HTML menggunakan atribut shadowrootreferencetarget pada elemen <template>.

Uji Coba Origin | Entri ChromeStatus.com

Penghentian dan penghapusan

Menghentikan penggunaan batas WebGPU maxInterStageShaderComponents

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 tersebut, 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 pada maxInterStageShaderVariables yang lebih lengkap dan diberi nama yang sesuai.

Entri ChromeStatus.com

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 dalam cache yang sesuai (Cache-Control atau Expires) untuk melihat manfaat dari <link rel=prefetch>.

Hal ini juga memengaruhi <link rel=prerender> nonstandar.

Melacak bug #40232065 | Entri ChromeStatus.com

Menghapus pemicu halaman Selamat Datang Chrome dengan preferensi awal tab yang pertama kali dijalankan

Menyertakan chrome://welcome di properti first_run_tabs dari file initial_preferences kini tidak akan berpengaruh. Halaman ini dihapus karena halaman tersebut redundan dengan Pengalaman Pengaktifan Pertama yang dipicu di platform desktop.

Entri ChromeStatus.com