Chrome 145

Tanggal rilis stabil: 10 Februari 2026

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

CSS dan UI

Menambahkan dukungan untuk properti CSS text-justify

Anda dapat mengontrol cara teks diratakan saat text-align: justify diterapkan dengan menggunakan properti text-justify. Misalnya, Anda dapat menerapkan pembenaran dengan memperluas ruang antar-karakter bahkan dalam teks bahasa Inggris.

Melacak bug #40321528 | Entri ChromeStatus.com | Spesifikasi

Mengaktifkan nilai persentase untuk properti CSS letter-spacing dan word-spacing

Aktifkan nilai persentase untuk properti CSS letter-spacing dan word-spacing, seperti yang ditentukan dalam spesifikasi CSS Text Module Level 4. Nilai persentase dihitung relatif terhadap ukuran maju karakter spasi (U+0020). Hal ini memberi Anda kontrol yang lebih kuat dan fleksibel atas tipografi, terutama dalam desain responsif yang memerlukan penyesuaian spasi teks dengan berbagai ukuran font dan area tampilan.

Bug pelacakan #327740939 | Entri ChromeStatus.com | Spesifikasi

Memperbaiki penghitungan tepi bayangan border-radius untuk border-radius tinggi

Perubahan ini memastikan bahwa bayangan dan batas klip pada elemen hampir melingkar (dengan border-radius mendekati 50%) cocok dengan tepat dengan kontur visual tepi melengkung.

Hal ini memberikan rendering bentuk bulat kompleks yang lebih konsisten, sehingga menghilangkan perbedaan visual untuk nilai radius yang tinggi. Faktor penyesuaian border-radius, yang memastikan sudut tampak tajam untuk radius kecil, secara progresif diredam saat nilai radius mendekati 50%.

Hal ini juga berlaku untuk kontur non-bulat (menggunakan corner-shape), yang kini menggunakan mekanisme penyesuaian radius yang sama.

Melacak bug #448651073 | Entri ChromeStatus.com | Spesifikasi

Pengepasan kolom untuk multi-kolom

Menambahkan dukungan untuk properti CSS column-wrap dan column-height, dari multicol Level 2.

Hal ini memungkinkan tata letak kolom vertikal, atau bahkan tata letak kolom 2D. Kolom dapat memiliki tinggi yang dibatasi secara eksplisit, bukan berasal dari tinggi penampung multi-kolom.content-box Kolom akan diatur ke baris kolom baru jika semua kolom telah diisi untuk satu baris, bukan membuat kolom yang meluap dalam arah inline.

Melacak bug #403183884 | Entri ChromeStatus.com | Spesifikasi

Mengekspos peristiwa onanimationcancel ke GlobalEventHandlers

CSS Animations Level 1 memperluas antarmuka GlobalEventHandlers yang ditentukan dalam spesifikasi HTML, dengan mendeklarasikan empat pengendali peristiwa baru: onanimationstart, onanimationiteration, onanimationend, dan onanimationcancel. Hanya pengendali peristiwa onanimationcancel yang tidak ada dari IDL GlobalEventHandlers.

Bug pelacakan #464010037 | Entri ChromeStatus.com | Spesifikasi

Kotak daftar pilihan yang dapat disesuaikan

Hal ini memperluas dukungan pemilihan yang dapat disesuaikan ke mode rendering listbox, termasuk pemilihan tunggal dan multi-pilihan dalam mode listbox.

Mode rendering kotak daftar merender elemen select dalam alur atau di halaman, bukan dengan tombol dan pop-up terpisah. Anda dapat memilih untuk menggunakan mode rendering kotak daftar di seluruh platform menggunakan atribut multiple atau size, misalnya, <select multiple> atau <select size=4>. Jika diterapkan ke elemen select dengan atribut ini, properti CSS appearance: base-select akan meningkatkan rendering dan perilaku input.

Hal ini tidak mendukung select yang dapat disesuaikan untuk pop-up multi-pilihan, yang akan didukung nanti. Anda harus menyetel atribut berikut untuk mendapatkan pop-up multi-pilihan: <select multiple size=1>.

Melacak bug #357649033 | Entri ChromeStatus.com | Spesifikasi

Opsi focusVisible di focus

Saat memanggil metode focus(), Anda dapat memberikan boolean focusVisible di kamus FocusOptions. Jika benar (true), ring fokus selalu digambar di sekitar elemen yang baru difokuskan, dan cocok dengan pseudo-class :focus-visible. Jika salah, ring fokus tidak dilukis, dan :focus-visible tidak cocok. Jika tidak ada, agen pengguna akan menentukan sendiri apakah ring fokus harus digambar, dan pseudo-class :focus-visible akan cocok.

Bug pelacakan #462191849 | Entri ChromeStatus.com | Spesifikasi

Mengaktifkan rendering emoji monokrom dalam mode warna paksa.

Perubahan ini memperbarui perilaku rendering emoji Chromium dalam Mode Warna Paksa. Selama penyelesaian nilai terkomputasi, emoji yang nilai font-variant-emoji-nya dihitung menjadi normal atau unicode dirender menggunakan glif monokromatiknya jika tersedia.

Oleh karena itu, Chromium menekan rendering emoji warna, yang memastikan emoji berpartisipasi sepenuhnya dalam pipeline Mode Warna Paksa dan mematuhi warna kontras tinggi sistem. Perilaku di luar Mode Warna Paksa tidak berubah.

Melacak bug #420857717 | Entri ChromeStatus.com | Spesifikasi

Efek overscroll pada peng-scroll non-root

Contoh ini menunjukkan efek overscroll elastis pada penampung scroll non-root. Saat elemen yang dapat di-scroll bertingkat mencapai batas scroll-nya, kemampuan overscroll berlaku untuk elemen tersebut, bukan hanya scroller root. Hal ini mengurangi kebutuhan akan solusi JavaScript kustom dan dapat dikontrol per elemen dengan overscroll-behavior.

Bug pelacakan #41102897 | Entri ChromeStatus.com | Spesifikasi

Kemampuan

Menampilkan posisi jendela sebenarnya di Android

Chrome di Android melaporkan secara akurat posisi dan ukuran jendela browser menggunakan window.screenX, window.screenY, window.outerWidth, dan window.outerHeight.

Sebelumnya, Chrome salah mengasumsikan bahwa semua jendela browser di Android dimulai pada koordinat (0, 0). Asumsi ini tidak akurat untuk tablet Android yang menggunakan mode jendela bentuk bebas. Situs selalu menerima 0 saat mengkueri posisi di layar jendela menggunakan window.screenX dan window.screenY. Kolom ini menyimpan koordinat sudut kiri atas jendela dalam ruang koordinat area kerja global.

Selain itu, Chrome di Android secara keliru mengasumsikan bahwa dimensi luar jendela browser sama dengan dimensi dalam area pandang situs.

window.screenX dan window.screenY memiliki alias: window.screenLeft dan window.screenTop.

Bug pelacakan #417632037 | Entri ChromeStatus.com | Spesifikasi

JavaScript

Upsert

Ini adalah proposal ECMAScript untuk Map.prototype.getOrInsert, Map.prototype.getOrInsertComputed, WeakMap.prototype.getOrInsert, dan WeakMap.prototype.getOrInsertComputed.

Bug pelacakan #434977728 | Entri ChromeStatus.com | Spesifikasi

Crash Reporting key-value API

API nilai kunci baru, window.crashReport, didukung oleh peta per-Dokumen yang menyimpan data yang ditambahkan Chrome ke laporan error.

Data yang ditempatkan di peta pendukung API ini dikirim dalam CrashReportBody jika terjadi error pada proses perender yang disebabkan oleh situs. Hal ini memungkinkan Anda men-debug status tertentu dalam aplikasi yang mungkin menyebabkan error tertentu.

Melacak bug #400432195 | Entri ChromeStatus.com | Spesifikasi

String Agen Pengguna yang dikurangi secara default

Mulai Chrome 145, Chrome menghapus kebijakan UserAgentReduction. Kebijakan ini tersedia untuk mengontrol apakah Chrome mengirimkan string User-Agent yang dikurangi atau lengkap.

Untuk meningkatkan privasi pengguna dan mengurangi kemampuan pelacakan pasif, Chrome mulai mengurangi informasi yang terdapat di header Agen Pengguna secara default di Chrome versi 110. Kebijakan UserAgentReduction diberikan sebagai tindakan sementara bagi perusahaan untuk mengelola transisi ini.

Mekanisme yang direkomendasikan bagi situs untuk mengakses informasi browser dan perangkat adalah Petunjuk Klien Agen Pengguna (UA-CH). UA-CH mewajibkan situs untuk secara aktif meminta informasi tertentu, yang merupakan pendekatan yang lebih menjaga privasi daripada string Agen Pengguna lama. Untuk mengetahui informasi selengkapnya, lihat artikel web.dev, Bermigrasi ke Petunjuk Klien Agen Pengguna.

Mulai Chrome 145 dan seterusnya, kebijakan UserAgentReduction tidak akan berpengaruh. Chrome mengirim string Agen Pengguna yang dikurangi secara default. Sistem atau aplikasi yang mengandalkan kebijakan ini untuk menerima string User-Agent lengkap (lama) mungkin tidak lagi menerima informasi mendetail yang mereka harapkan.

Entri ChromeStatus.com

NavigationTransition memiliki properti from, yang menampilkan URL lama navigasi. Mengekspos to (NavigationDestination) akan menyelesaikan hal ini. Hal ini sangat berguna saat menggunakan handler pra-commit, karena selama pra-commit, URL saat ini belum beralih ke tujuan.

navigation.transition hanya diekspos untuk navigasi yang dicegat—yang berarti navigasi yang dimulai dokumen dari origin yang sama.

Melacak bug #447171238 | Entri ChromeStatus.com | Spesifikasi

Konfirmasi Pembayaran Aman: Kunci Terikat Browser

Tindakan ini menambahkan tanda tangan kriptografi tambahan pada pernyataan dan pembuatan kredensial Secure Payment Confirmation. Kunci pribadi yang sesuai tidak disinkronkan di seluruh perangkat. Hal ini membantu Anda memenuhi persyaratan pengikatan perangkat untuk transaksi pembayaran.

Bug pelacakan #377278827 | Entri ChromeStatus.com | Spesifikasi

Konfirmasi Pembayaran Aman: Pembaruan UX

Memperbarui elemen UX untuk dialog SPC di Chrome Android.

Selain presentasi UX, berikut ini yang ditambahkan:

  • Penjual dapat memberikan daftar logo entitas pembayaran opsional yang terkait dengan pembayaran yang ditampilkan di UX.
  • Status output yang berbeda akan ditampilkan kepada penjual, bergantung pada apakah pengguna ingin melanjutkan transaksi tanpa SPC atau membatalkan transaksi. Hanya satu status output yang dikirim untuk kedua kasus.
  • Kolom label detail pembayaran baru ditambahkan ke alat pembayaran sehingga teks ditampilkan dalam dua baris di SPC.

Melacak bug #405173922 | Entri ChromeStatus.com | Spesifikasi

Anda dapat menentukan maxAge saat menyetel cookie dengan Cookie Store API.

Waktu habis masa berlaku cookie sudah dapat dikonfigurasi menggunakan atribut expires, tetapi maxAge memberikan opsi yang lebih idiomatis dan menyelaraskan Cookie Store API dengan opsi yang diberikan oleh document.cookie dan Header HTTP Set-Cookie.

Bug pelacakan #430926231 | Entri ChromeStatus.com | Spesifikasi

Jenis InputEvent untuk perintah penghapusan pada pilihan yang tidak diciutkan

Tindakan ini melaporkan nilai inputType yang akurat untuk pintasan keyboard penghapusan pada teks yang dipilih. Saat perintah penghapusan seperti Ctrl+Backspace atau Ctrl+Delete digunakan dengan teks yang dipilih dalam elemen contenteditable, peristiwa beforeinput dan input melaporkan deleteContentBackward atau deleteContentForward, bukan deleteWordBackward atau deleteWordForward. Hal ini memungkinkan Anda memahami dengan benar operasi pengeditan yang terjadi dan menerapkan perilaku pengeditan khusus, urungkan, atau ulangi yang andal.

Bug pelacakan #41423062 | Entri ChromeStatus.com | Spesifikasi

Aktivasi tetap untuk acara clipboardchange

Hal ini memerlukan aktivasi pengguna tetap atau izin clipboard-read untuk memicu clipboardchange peristiwa, sehingga mencegah pemantauan papan klip yang tidak sah.

Peristiwa clipboardchange relatif baru (Chrome 144), dan perubahan ini memiliki perubahan minimal yang terlihat di web. Dalam sebagian besar kasus, aktivasi pengguna tetap atau izin clipboard-read sudah ada di tempat pemantauan papan klip terjadi (misalnya, di klien desktop jarak jauh).

Bug pelacakan #468821937 | Entri ChromeStatus.com | Spesifikasi

Multimedia

Mengekspos rtpTimestamp dari frame video WebRTC dengan VideoFrame.metadata()

Menambahkan metode VideoFrame.metadata() yang menampilkan kamus yang berisi kolom rtpTimestamp, jika VideoFrame pokok memiliki kolom ini dalam metadata aslinya. Jika tidak, kamus kosong akan ditampilkan. Hanya frame video yang berasal dari sumber WebRTC yang memiliki metadata rtpTimestamp.

Kolom metadata tambahan sudah ada dalam penerapan native dan mungkin diekspos ke JavaScript dari waktu ke waktu, seperti yang diuraikan dalam spesifikasi yang diusulkan.

Entri ChromeStatus.com | Spesifikasi

Penyimpanan

IndexedDB: Backend SQLite (konteks dalam memori)

Implementasi IndexedDB Chromium telah ditulis ulang di atas SQLite, untuk menggantikan implementasi sebelumnya yang menggunakan hybrid LevelDB dan file datar. Tidak ada perubahan pada Web API.

Hal ini meningkatkan keandalan dan, pada tingkat yang lebih rendah, performa.

Setelan ini hanya diterapkan pada konteks dalam memori seperti mode Samaran di Chromium dan Google Chrome. Hal ini membatasi dampak bug baru dan menunda kebutuhan untuk memigrasikan data yang ada yang dipertahankan ke disk.

Bug pelacakan #436880911 | Entri ChromeStatus.com | Spesifikasi

Performa

Memungkinkan aplikasi web memahami waktu performa bimodal

Kolom confidence baru pada objek PerformanceNavigationTiming memungkinkan Anda membedakan apakah waktu navigasi mewakili aplikasi web Anda.

Bug pelacakan #1413848 | Entri ChromeStatus.com | Spesifikasi

Menambahkan presentationTime dan paintTime ke entri performa

Hal ini mengekspos paintTime dan presentationTime dalam waktu elemen, LCP, frame animasi panjang, dan waktu paint.

paintTime berarti waktu saat fase rendering berakhir dan browser memulai fase paint. presentationTime berarti waktu saat "piksel mencapai layar", yang agak ditentukan oleh implementasi.

Entri fitur ini menghilangkan pengaturan waktu acara, yang dilakukan secara terpisah.

Bug pelacakan #378827535 | Entri ChromeStatus.com | Spesifikasi

Penggunaan CssPixels di LayoutShift API

Fitur ini mengubah data atribusi (prevRect dan currentRect) di LayoutShift API agar dilaporkan dalam piksel CSS, bukan piksel fisik. Perilakunya tidak konsisten dengan API terkait tata letak lainnya, yang semuanya menggunakan piksel CSS. Perubahan ini meningkatkan konsistensi, menyederhanakan penggunaan untuk Anda, dan selaras dengan unit yang diharapkan dalam proses debug dan alat.

Bug pelacakan #399058544 | Entri ChromeStatus.com | Spesifikasi

Keamanan

Kredensial Sesi yang Terikat Perangkat

Kredensial Sesi Terikat Perangkat (DBSC) memungkinkan situs mengikat sesi pengguna ke perangkat tertentu, sehingga mempersulit penggunaan cookie sesi curian di komputer lain.

Entri ChromeStatus.com | Spesifikasi

Origin API

Origin adalah komponen mendasar dari penerapan web, yang penting untuk batas keamanan dan privasi yang dipertahankan oleh agen pengguna. Konsep ini didefinisikan dengan baik antara HTML dan URL, beserta konsep berdekatan yang banyak digunakan seperti situs.

Namun, origin tidak diekspos secara langsung kepada Anda. Meskipun ada berbagai pengambil asal pada berbagai objek, masing-masing objek tersebut menampilkan serialisasi ASCII dari asal, bukan asal itu sendiri. Hal ini memiliki beberapa implikasi negatif. Secara praktis, Anda mencoba melakukan perbandingan origin yang sama atau situs yang sama saat menangani origin yang diserialkan sering kali salah dengan cara yang menyebabkan kerentanan. Secara filosofis, sepertinya ada primitif keamanan yang hilang dan Anda kesulitan melakukan polyfill secara akurat.

Di Chrome 145, Chrome mengatasi kesenjangan ini di platform dengan memperkenalkan objek Origin yang merangkum konsep origin dan menyediakan metode yang berguna seperti perbandingan, serialisasi, dan parsing.

Bug pelacakan #434131026 | Entri ChromeStatus.com | Spesifikasi

Izin terpisah untuk Akses Jaringan Lokal

Hal ini merupakan peningkatan pada pembatasan Akses Jaringan Lokal (LNA), di mana Chrome membagi izin yang diperlukan dari satu izin Akses Jaringan Lokal menjadi dua izin terpisah.

Izin lama adalah local-network-access. Izin baru adalah local-network (untuk permintaan LNA ke IP di ruang alamat lokal) dan loopback-network (untuk permintaan LNA ke IP di ruang alamat loopback).

Izin lama disimpan sebagai alias dan terus berfungsi untuk permissions.query dan Permissions Policy. Kebijakan perusahaan akan terus berfungsi seperti sebelumnya; kebijakan perusahaan yang lebih baru dan lebih terperinci akan ditambahkan nanti.

Melacak bug #465491626 | Entri ChromeStatus.com | Spesifikasi

Penyelarasan spesifikasi Trusted Types

Trusted Types awalnya diterapkan dan diluncurkan di Chromium pada tahun 2019 dan telah digunakan di banyak situs sejak saat itu. Baru-baru ini, fitur ini menarik minat vendor browser lain.

Spesifikasi Trusted Types ditulis bersama sebagai spesifikasi "monkey patch" bersama dengan implementasi aslinya. Fitur ini mendapatkan perhatian baru karena orang lain mencoba menerapkan spesifikasi yang sama. Fitur ini telah "di-upstream" ke HTML + DOM (plus sedikit CSP). Sebagai bagian dari proses tersebut, berbagai ketidakkonsistenan diidentifikasi dan diperbaiki. Beberapa perbaikan ini mungkin dapat diamati oleh developer. Tujuannya adalah untuk memperbarui implementasi agar sesuai dengan spesifikasi saat di-upstream ke HTML.

Sementara itu, WebKit telah meluncurkan penerapan spesifikasi Trusted Types yang diperbarui, yang memberi Chrome keyakinan tinggi bahwa update ini sangat kompatibel dengan web.

Melacak bug #330516530 | Entri ChromeStatus.com | Spesifikasi

Grafik

WebGPU: Fitur subgroup_uniformity

Hal ini menambahkan cakupan baru ke analisis keseragaman dan mengubah bagian bahasa yang diperiksa di setiap cakupan agar fungsi subgrup dianggap seragam dalam lebih banyak kasus.

Bug pelacakan #454653380 | Entri ChromeStatus.com | Spesifikasi

Aplikasi Web Terisolasi (IWA)

WebRequest.SecurityInfo di Controlled Frame

Fitur ini memperkenalkan WebRequest.SecurityInfo API untuk ControlledFrame. API ini memungkinkan aplikasi web mencegat permintaan HTTPS, WSS, atau WebTransport ke server, mengambil sidik jari sertifikat server (seperti yang diverifikasi oleh browser), lalu menggunakan sidik jari tersebut untuk memverifikasi sertifikat koneksi TCP/UDP mentah terpisah ke server yang sama secara manual. Hal ini menyediakan metode bagi aplikasi untuk mengonfirmasi bahwa aplikasi berkomunikasi dengan server yang benar.

Bug pelacakan #462114142 | Entri ChromeStatus.com | Spesifikasi

Uji coba origin

Menambahkan dukungan untuk mendekode gambar JPEG XL (image/jxl) di Blink menggunakan jxl-rs, dekoder Rust murni yang aman untuk memori.

JPEG XL adalah format gambar modern yang distandardisasi sebagai ISO/IEC 18181 yang menawarkan:

  • Dekode progresif untuk meningkatkan performa pemuatan yang dirasakan.
  • Dukungan untuk wide color gamut, HDR, dan kedalaman bit tinggi.
  • Dukungan animasi.

Implementasi ini menggunakan jxl-rs, bukan decoder referensi libjxl C++, untuk memenuhi persyaratan keamanan memori Chromium. Decoder di-gated di balik flag enable-jxl-image-format dan flag build enable_jxl_decoder.

Entri ChromeStatus.com

WebAudio: Kuantum render yang dapat dikonfigurasi

AudioContext dan OfflineAudioContext kini menerima renderSizeHint opsional, yang memungkinkan pengguna meminta ukuran kuantum render tertentu saat bilangan bulat diteruskan, menggunakan default 128 frame jika tidak ada atau default yang diteruskan, atau meminta Agen Pengguna memilih ukuran kuantum render yang baik jika hardware ditentukan.

Uji Coba Origin | Entri ChromeStatus.com

Penghentian penggunaan dan penghapusan

Menghapus dukungan untuk kamera virtual yang sudah tidak digunakan lagi di macOS

Chrome menghapus dukungan untuk kamera virtual usang untuk semua rilis macOS yang didukungnya.

Bug pelacakan #461717105 | Entri ChromeStatus.com

Menghapus Ekstensi BMP untuk Menyematkan JPEG atau PNG dalam BMP

Chrome menghapus ekstensi BMP untuk menyematkan JPEG atau PNG dalam BMP.

Bug pelacakan #456842524 | Entri ChromeStatus.com | Spesifikasi