Tanggal rilis stabil: 7 April 2026
Kecuali dinyatakan lain, perubahan berikut berlaku untuk rilis saluran stabil Chrome 147 untuk Android, ChromeOS, Linux, macOS, dan Windows.
CSS dan UI
Transisi tampilan cakupan elemen
Mengekspos element.startViewTransition() pada elemen HTML arbitrer.
Elemen menetapkan cakupan untuk transisi,
yang berarti bahwa elemen semu transisi dipengaruhi oleh klip
dan transformasi ancestor,
dan beberapa transisi pada elemen terpisah dapat berjalan secara bersamaan.
Melacak bug #394052227 | Entri ChromeStatus.com | Spesifikasi
CSS contrast-color()
Fungsi ini membantu Anda memenuhi persyaratan kontras untuk aksesibilitas.
Anda dapat menggunakan fungsi contrast-color() di mana saja dalam CSS yang memerlukan nilai warna. Fungsi ini mengambil argumen nilai warna dan menampilkan 'black' atau
'white', bergantung pada warna mana yang memberikan kontras tertinggi terhadap argumen
warna.
Bug pelacakan #40142548 | Entri ChromeStatus.com | Spesifikasi
Rentang bernama linimasa scroll
Fitur ini memperluas kumpulan rentang bernama untuk linimasa tampilan dengan menambahkan rentang scroll ke kumpulan entry, exit, cover, dan contain yang ada.
Bug pelacakan #41483848 | Entri ChromeStatus.com | Spesifikasi
Properti border-shape CSS
Properti border-shape CSS memungkinkan Anda membuat batas non-persegi panjang dengan bentuk arbitrer apa pun, misalnya, poligon, lingkaran, atau shape().
Meskipun border-shape menerima bentuk yang sama dengan clip-path, border-shape pada dasarnya berbeda. border-shape menentukan bentuk batas,
menghiasnya, dan hanya memotong bagian dalamnya.
border-shape memiliki dua varian: satu yang menggores bentuk dan yang lainnya mengisi
di antara dua bentuk.
Bug pelacakan #370041145 | Entri ChromeStatus.com | Spesifikasi
Antarmuka CSSPseudoElement
Antarmuka CSSPseudoElement merepresentasikan elemen semu di JavaScript.
CSSPseudoElement ditampilkan dari Element.pseudo(type), dengan type saat ini
adalah ::after, ::before, atau ::marker. CSSPseudoElement adalah objek
proxy yang merepresentasikan elemen semu. Tidak seperti elemen semu, CSSPseudoElement selalu ada.
CSSPseudoElement memiliki atribut dan metode berikut:
- Atribut
typeadalah string yang merepresentasikan jenis elemen semu. - Atribut
elementadalah elemen asal utama pseudo-elemen. - Atribut
parentadalah elemen asal pseudo-elemen (ElementatauCSSPseudoElementuntuk pseudo-elemen bertingkat). - Metode
pseudo(type)mengambil elemen semu bertingkat.
Bug pelacakan #40639103 | Entri ChromeStatus.com | Spesifikasi
Target semu pada peristiwa
Peristiwa tertentu kini menyertakan .pseudoTarget, yang berupa
CSSPseudoElement (jika interaksi dilakukan dengan elemen semu) atau null.
Hal ini memberikan informasi yang lebih spesifik tentang asal peristiwa. Misalnya, hal ini menunjukkan bahwa elemen semu ::after diklik, bukan hanya elemen asal
terakhir (Event.target). Perhatikan bahwa Event.target tetap
tidak berubah, sehingga peristiwa hanya memiliki informasi tambahan tentang interaksi elemen semu.
Peristiwa tersebut adalah UIEvent, AnimationEvent, dan TransitionEvent.
mouseover, mouseout, mouseenter, mouseleave, dan pointer*
yang setara belum didukung.
Bug pelacakan #40639103 | Entri ChromeStatus.com | Spesifikasi
Memisahkan properti *-width dan *-style
Chrome 147 selaras dengan spesifikasi CSS yang diperbarui untuk perilaku properti border-width, outline-width, dan column-rule-width. Sebelumnya,
jika border-style, outline-style, atau column-rule-style yang terkait disetel ke
none atau hidden, lebar yang dihitung untuk properti ini akan diotomatiskan ke
0px, terlepas dari nilai yang ditentukan.
Dengan perubahan ini, nilai border-width, outline-width, dan
column-rule-width yang dihitung akan selalu mencerminkan nilai yang ditentukan penulis situs, terlepas dari
properti *-style. Selain itu, nilai yang di-resolve (seperti yang ditampilkan oleh
getComputedStyle()) untuk outline-width dan column-rule-width juga mencerminkan
nilai yang ditentukan.
Perubahan ini menyelaraskan Chrome dengan Firefox dan WebKit, yang telah menerapkan perilaku ini.
Bug pelacakan #393631108 | Entri ChromeStatus.com | Spesifikasi
Mendukung atribut path pada elemen <textPath> SVG
Perubahan ini menambahkan dukungan untuk atribut path pada elemen <textPath>
SVG. Hal ini memungkinkan developer menentukan geometri jalur teks secara inline menggunakan data jalur SVG dan mengurangi kebutuhan akan elemen <path> yang ditentukan secara terpisah.
Elemen <textPath> menyelesaikan geometri jalur teksnya menggunakan aturan berikut:
- Jika
pathdanhrefada, geometri akan diselesaikan dari atributpath. - Jika hanya atribut
pathyang ada dan berhasil diuraikan, definisi jalur inline akan digunakan. - Jika atribut
pathtidak ada atau gagal diuraikan, dan atributhrefdisediakan, elemen<path>yang dirujuk akan digunakan sebagai penggantian. - Perilaku khusus
hrefyang ada dipertahankan tanpa perubahan.
Implementasi ini mengikuti definisi atribut path
pada <textPath> dalam spesifikasi SVG 2. Perilaku penyelesaian konsisten dengan mesin browser lainnya, yang meningkatkan interoperabilitas dan kepatuhan terhadap standar. Catatan:
Jika path dan href ditentukan di <textPath>, path kini diprioritaskan, sesuai dengan spesifikasi SVG 2.
Bug pelacakan #374010056 | Entri ChromeStatus.com | Spesifikasi
Perangkat
Deteksi Bidang WebXR
WebXR Plane Detection API memungkinkan situs mengambil kumpulan bidang yang terdeteksi di lingkungan pengguna. Hal ini lebih mudah dilakukan oleh developer dan lebih canggih daripada menggunakan fitur WebXR pendeteksi kedalaman. Misalnya, bidang seperti dinding yang terhalang oleh objek masih dapat direpresentasikan sepenuhnya jika sistem mengetahui batas dinding. Peta kedalaman akan menampilkan dinding, tetapi objek di depannya akan memecahnya, sehingga berpotensi mengaburkan cakupan penuh dinding. Selain itu, informasi pemberian label semantik ditampilkan saat perangkat mengetahui label tersebut dan sesuai dengan kategori yang telah ditentukan sebelumnya, sehingga memberikan pengetahuan yang lebih baik tentang dunia.
Bug pelacakan #394636076 | Entri ChromeStatus.com | Spesifikasi
DOM
Dukungan JSON dan gaya untuk link rel=modulepreload
Menambahkan dukungan untuk jenis modul gaya dan JSON sebagai tujuan <link rel="modulepreload">. <link rel="modulepreload"> sudah didukung di Chromium (lihat
fitur Chromestatus), tetapi
saat ini hanya mendukung pemuatan awal skrip modul seperti skrip. Fitur ini mengatasi kesenjangan fungsi karena skrip modul JSON dan CSS didukung di Chromium di tempat lain, tetapi tidak sebagai tujuan <link rel="modulepreload">. Anda
dapat memuat modul gaya terlebih dahulu dengan
<link rel="modulepreload" as="style" href="..."> dan modul JSON dengan
<link rel="modulepreload" as="json" href="...">.
Melacak bug #466888680 | Entri ChromeStatus.com | Spesifikasi
Penguraian XML di Rust untuk skenario non-XSLT
Menerapkan parser XML Rust untuk skenario yang tidak memerlukan pemrosesan XSLT.
Parser XML Rust meningkatkan keamanan dengan menghilangkan bug kerusakan memori dalam parsing XML. API ini menggantikan penggunaan libxml2 (ditulis dalam C) dengan alternatif
yang aman.
Kami menghentikan penggunaan XSLT. Selama proses ini berlanjut, Anda sudah dapat menggunakan penguraian XML Rust yang aman dalam skenario yang tidak memerlukan XSLT.
Melacak bug #466303347 | Entri ChromeStatus.com
Grafik
Lapisan WebXR
Lapisan WebXR menawarkan cara yang lebih efisien untuk menggambar konten imersif.
Selain mendukung tekstur warna dan kedalaman native serta array tekstur, API ini juga menyediakan dukungan untuk berbagai jenis lapisan yang dikelola oleh compositor sistem (bukan JavaScript).
Bug pelacakan #409255534 | Entri ChromeStatus.com | Spesifikasi
JavaScript
Math.sumPrecise
Menerapkan proposal TC39 untuk menambahkan metode guna menjumlahkan beberapa nilai di JavaScript.
Tambahkan metode Math.sumPrecise yang mengambil iterable dan menampilkan jumlah nilai dalam iterable menggunakan algoritma yang lebih presisi daripada penjumlahan sederhana.
Bug pelacakan #374310075 | Entri ChromeStatus.com | Spesifikasi
Jaringan / Konektivitas
Request.isReloadNavigation atribut
Menambahkan atribut boolean hanya baca isReloadNavigation ke antarmuka
Request Fetch API. Atribut ini menunjukkan apakah permintaan navigasi saat ini dimulai sebagai pemuatan ulang yang dipicu pengguna (misalnya, menggunakan tombol Muat Ulang, location.reload(), atau history.go(0)). Sinyal ini terutama diekspos pada objek Request dalam FetchEvent Service Worker.
Melacak bug #40487194 | Entri ChromeStatus.com | Spesifikasi
Performa
Memperbarui batas Device Memory API
Perubahan pada kumpulan nilai baru yang mungkin untuk Device Memory API:
- Android: 1, 2, 4, 8
- Lainnya: 2, 4, 8, 16, 32 Nilai ini menggantikan nilai lama 0,25, 0,5, 1, 2, 4, dan 8, yang sudah tidak berlaku.
Hal ini mengurangi risiko identifikasi sidik jari di ujung bawah karena kemampuan perangkat telah meningkat sejak nilai ini ditetapkan. Fitur ini juga memungkinkan penggunaan dan segmentasi perangkat kelas atas yang lebih baik, seperti yang diminta oleh developer. Untuk mengetahui informasi selengkapnya, lihat Masalah Memori Perangkat.
Melacak bug #454354290 | Entri ChromeStatus.com | Spesifikasi
Akses Jaringan Lokal (LNA)
Untuk mengetahui informasi selengkapnya tentang LNA, lihat Akses Jaringan Lokal.
Pembatasan Akses Jaringan Lokal pada pekerja layanan WindowClient.navigate()
Pembatasan Akses Jaringan Lokal (LNA) baru-baru ini ditambahkan untuk mencegah situs membuat permintaan ke jaringan lokal dan perangkat lokal secara sepihak. Batasan ini ditambahkan untuk permintaan pengambilan data yang dimulai oleh pekerja layanan, tetapi tidak untuk navigasi yang dilakukan pekerja layanan melalui WindowClient.navigate().
Peluncuran ini menutup kesenjangan tersebut dengan menambahkan batasan LNA ke panggilan WindowClient.navigate(). Menggunakan WindowClient sebagai inisiator
navigasi untuk menentukan apakah navigasi adalah permintaan LNA.
Hal ini hanya berlaku jika WindowClient yang sedang dijelajahi adalah subframe. Chrome
saat ini tidak menerapkan batasan LNA apa pun pada navigasi frame utama.
Pembatasan akses jaringan lokal untuk WebTransport
Membatasi kemampuan untuk membuat permintaan ke jaringan lokal pengguna menggunakan WebTransport, yang kini perlu melewati dialog izin.
Permintaan jaringan lokal adalah permintaan apa pun dari situs publik ke alamat IP lokal atau loopback, atau dari situs lokal (misalnya, intranet) ke loopback. Dengan menerapkan dialog izin untuk membatasi kemampuan situs dalam melakukan permintaan ini, kemampuan situs untuk menggunakan permintaan tersebut sebagai metode pelacakan sidik jari terhadap jaringan lokal pengguna bisa dikurangi.
Izin ini dibatasi untuk konteks yang aman.
Bug pelacakan #421216834 | Entri ChromeStatus.com | Spesifikasi
Pembatasan akses jaringan lokal untuk WebSockets
Pembatasan Akses Jaringan Lokal (LNA) diperluas untuk mencakup WebSockets. Koneksi WebSockets ke alamat lokal kini memicu dialog izin.
Semua kebijakan perusahaan LNA saat ini masih berlaku untuk batasan LNA WebSockets (LocalNetworkAccessAllowedForUrls, LocalNetworkAccessBlockedForUrls, dan LocalNetworkAccessRestrictionsTemporaryOptOut).
Melacak bug #421156866 | Entri ChromeStatus.com | Spesifikasi
Aplikasi Web Terisolasi (IWA)
Web Printing API
API ini memungkinkan integrasi yang lebih mendalam dengan fungsi terkait printer di Aplikasi Web Terisolasi.
API ini hanya menargetkan Aplikasi Web Terisolasi dan mengikuti proses Aplikasi Web Terisolasi.
API ini menyediakan serangkaian metode JavaScript yang memungkinkan developer mengkueri printer lokal, mengirimkan tugas cetak ke printer yang paling sesuai, serta mengelola opsi dan status tugas cetak. Untuk merepresentasikan konsep ini, atribut nama dan semantik dari spesifikasi Internet Printing Protocol (IPP) digunakan.
Bug pelacakan #302505962 | Entri ChromeStatus.com | Spesifikasi
Uji coba origin
Melakukan pra-render iframe lintas origin
Melakukan pra-render iframe lintas origin menggunakan header respons keikutsertaan.
Browser kini melakukan pra-render semua frame lintas origin jika respons HTTP frame tingkat atas menyertakan Supports-Loading-Mode: prerender-cross-origin-frames.
Uji Coba Origin | Melacak bug #440387014 | Entri ChromeStatus.com | Spesifikasi
Peristiwa isi otomatis
Isi Otomatis adalah fitur web utama yang mengurangi hambatan bagi jutaan pengguna setiap hari. Namun, agar isi otomatis berfungsi dengan andal dengan formulir dinamis di beberapa penerapan memerlukan upaya yang signifikan.
Fitur ini menambahkan peristiwa autofill yang memungkinkan developer mengubah formulir agar sesuai dengan data yang diisi otomatis dan memberi tahu browser saat mereka telah melakukannya.
Uji Coba Origin | Bug pelacakan #466333215 | Entri ChromeStatus.com | Spesifikasi
WebNN
WebNN memungkinkan aplikasi dan framework web memanfaatkan layanan sistem operasi native untuk machine learning dan kemampuan hardware yang mendasarinya yang tersedia di komputer pengguna. Hal ini membantu menerapkan pengalaman ML yang konsisten, efisien, dan andal di web.
Uji Coba Origin | Bug pelacakan #40206287 | Entri ChromeStatus.com | Spesifikasi
Penghentian penggunaan dan penghapusan
Menghapus XSLT Inline untuk produksi SVG
File XML yang dibuat khusus dapat berisi stylesheet XSL yang mengubah data XML umum menjadi file SVG.
Misalnya, lihat gist.github.com.
Ini adalah kasus khusus pemrosesan XSLT yang, menurut penghitung penggunaan XSLPIInSVGImage (ID UseCounter 5777) dan XSLPIInSVGStandaloneDoc (ID UseCounter 5778) yang baru diperkenalkan, kami anggap hampir tidak ada di web. Kami ingin menghentikan penggunaan dan menghapusnya sebelum menghentikan penggunaan XSLT sepenuhnya.
Peluncuran ini disinkronkan dengan pengujian eksperimental parser XML berbasis Rust. Fitur ini tidak akan langsung di-deploy ke 100% di Chrome 147.