Chrome 147

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 type adalah string yang merepresentasikan jenis elemen semu.
  • Atribut element adalah elemen asal utama pseudo-elemen.
  • Atribut parent adalah elemen asal pseudo-elemen (Element atau CSSPseudoElement untuk 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:

  1. Jika path dan href ada, geometri akan diselesaikan dari atribut path.
  2. Jika hanya atribut path yang ada dan berhasil diuraikan, definisi jalur inline akan digunakan.
  3. Jika atribut path tidak ada atau gagal diuraikan, dan atribut href disediakan, elemen <path> yang dirujuk akan digunakan sebagai penggantian.
  4. Perilaku khusus href yang 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

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.

Entri ChromeStatus.com

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.

Melacak bug #482223009 | Entri ChromeStatus.com