Dipublikasikan: 3 April 2025
Kecuali dinyatakan lain, perubahan berikut berlaku untuk rilis saluran beta Chrome 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 136 masih dalam versi beta pada 3 April 2025. Anda dapat mendownload versi terbarunya di Google.com untuk desktop atau di Google Play Store di Android.
CSS dan UI
Rilis ini menambahkan enam fitur CSS dan UI baru.
Properti dynamic-range-limit CSS
Memungkinkan halaman membatasi kecerahan maksimum konten HDR.
Abaikan jarak huruf dalam skrip kursif
Fitur ini menambahkan logika untuk mengabaikan setelan jarak antar-huruf untuk skrip kursif, meskipun ditentukan oleh developer sesuai spesifikasi, untuk memastikan bahwa jarak antar-huruf tidak merusak kata.
Mempartisi histori link :visited
Untuk menghilangkan kebocoran histori penjelajahan pengguna, elemen anchor diberi gaya sebagai
:visited hanya jika telah diklik sebelumnya dari situs tingkat teratas dan origin
frame.
Dengan hanya menata gaya link yang telah diklik di situs dan frame ini sebelumnya, banyak serangan saluran samping yang telah dikembangkan untuk mendapatkan informasi gaya link :visited kini tidak berlaku lagi. Properti tersebut tidak lagi memberikan informasi baru tentang pengguna kepada situs.
Pelajari lebih lanjut peningkatan ini pada privasi link :visited.
Mengganti nama jenis string attr() menjadi raw-string
Grup Kerja CSS memutuskan untuk mengganti jenis string attr() dengan
raw-string.
Oleh karena itu, Chrome telah mengubah sintaksis attr(), sehingga attr(data-foo string)
kini menjadi attr(data-foo raw-string).
Penggantian var() yang tidak bergantung pada jenis
Bagian penggantian fungsi var() tidak divalidasi terhadap jenis
properti kustom yang dirujuk.
Tanpa awalan print-color-adjust
Properti
print-color-adjust
memungkinkan Anda menyesuaikan warna di halaman web yang dicetak. Hal ini sama dengan -webkit-print-color-adjust yang sudah didukung Chrome, tetapi dengan nama standar. Versi dengan awalan -webkit tidak dihapus.
Web API
Status terganggu AudioContext
Menambahkan status "interrupted" ke AudioContextState. Status baru ini memungkinkan UA
menjeda pemutaran dalam skenario ini dan memungkinkan aplikasi web merespons
dengan tepat.
Partisi URL blob: Pengambilan/Navigasi
Untuk melanjutkan Partisi Penyimpanan, hal ini akan menerapkan partisi akses URL Blob menurut Kunci Penyimpanan (situs tingkat teratas, origin frame, dan boolean has-cross-site-ancestor), kecuali navigasi tingkat teratas yang akan tetap dipartisi hanya menurut origin frame. Perilaku ini mirip dengan perilaku yang diterapkan oleh Firefox dan Safari saat ini, serta menyelaraskan penggunaan URL Blob dengan skema partisi yang digunakan API penyimpanan lain sebagai bagian dari Partisi Penyimpanan.
Selain itu, noopener kini diterapkan pada navigasi tingkat teratas yang dimulai perender ke URL Blob yang situs tujuannya bersilangan dengan situs tingkat teratas yang melakukan navigasi. Hal ini menyelaraskan Chrome dengan perilaku serupa di Safari, dan spesifikasi yang relevan telah diperbarui untuk mencerminkan perubahan ini.
Stack panggilan dalam laporan error dari halaman web yang tidak merespons
Fitur ini merekam stack panggilan JavaScript saat halaman web menjadi tidak responsif karena kode JavaScript menjalankan loop tak terbatas atau komputasi yang sangat panjang. Hal ini membantu developer mengidentifikasi penyebab tidak responsifnya aplikasi. Stack panggilan JavaScript disertakan dalam API pelaporan error saat alasannya adalah tidak responsif.
Captured Surface Control API
Captured Surface Control API memungkinkan aplikasi Web meneruskan peristiwa roda ke tab yang direkam, serta membaca dan mengubah tingkat zoom tab yang direkam.
CapturedSurfaceResolution
Mengekspos rasio piksel permukaan yang direkam saat berbagi layar. Fitur ini akan membantu aplikasi menghemat resource sistemnya atau menyesuaikan kualitas dan bandwidth sesuai dengan resolusi fisik dan logis dari permukaan yang direkam.
Mengirim peristiwa klik ke pointer yang direkam
Jika pointer diambil saat peristiwa pointerup dikirim, peristiwa
click akan dikirim ke target yang diambil, bukan ke induk bersama terdekat
dari peristiwa pointerdown dan pointerup sesuai dengan spesifikasi Peristiwa
UI. Untuk pointer yang tidak diambil, target click tetap tidak berubah.
Petunjuk kompilasi eksplisit dengan komentar ajaib
Memungkinkan melampirkan informasi tentang fungsi mana yang harus di-parse dan dikompilasi dengan cepat dalam file JavaScript. Informasi akan dienkode sebagai komentar ajaib.
Pembaruan FedCM: Dukungan beberapa IdP, penghapusan fitur "tambahkan akun lain" dalam mode pasif
Dengan update ini, FedCM dapat menampilkan beberapa penyedia identitas dalam dialog yang sama.
Hal ini memberi developer cara mudah untuk menampilkan semua penyedia identitas yang didukung kepada pengguna. Kami berencana menangani kasus yang sederhana terlebih dahulu yakni menempatkan semua penyedia dalam panggilan get() yang sama. Kami juga menghapus dukungan untuk fitur 'tambahkan akun lain' dalam mode pasif FedCM. Fitur ini memungkinkan tombol 'gunakan akun lain' ditampilkan bersama akun IdP lain di pemilih. Fitur ini saat ini tidak digunakan, dan percakapan UX membuat kami yakin bahwa jika hal ini didukung, alur akan menjadi lebih rumit tanpa memberi banyak manfaat. Fitur ini akan tetap berfungsi dalam mode aktif FedCM.
Scroll bar yang lancar.
Fitur ini memodernisasi scrollbar Chrome (overlay dan non-overlay) di Windows dan Linux agar sesuai dengan bahasa desain Fluent Windows 11. Scrollbar Fluent non-overlay akan diaktifkan secara default di Linux dan Windows. Perubahan ini juga berlaku untuk Linux karena desain scrollbar Chrome di Linux secara historis selaras dengan yang ada di Windows.
Dukungan codec H265 (HEVC) di WebRTC
Mulai Chrome 136, HEVC akan bergabung dengan VP8, H.264, VP9, dan AV1 sebagai codec yang didukung di WebRTC. Dukungan akan dapat dikueri menggunakan MediaCapabilities API.
Codec yang lebih baru ini memiliki efisiensi kompresi yang lebih tinggi (kualitas yang lebih tinggi per bitrate) dibandingkan dengan codec generasi lama seperti VP8 dan H264 serta dukungan hardware yang sangat kuat selama lebih dari satu dekade. Hal ini akan meningkatkan daya tahan baterai dan mengurangi risiko masalah performa, dan, bergantung pada performa encoder hardware yang mendasarinya, sering kali akan meningkatkan pengalaman visual jika encoder VP9 atau AV1 hardware tidak tersedia.
Pembaruan dukungan Codec H26x untuk MediaRecorder
MediaRecorder API kini mendukung encoding HEVC, memperkenalkan string codec hvc1.*, dan menambahkan codec baru (hev1.* dan avc3.*) yang mendukung video beresolusi variabel dalam MP4. Dukungan untuk encoding platform HEVC ditambahkan di WebCodecs pada Chrome 130. Sebagai tindak lanjut, dukungan telah ditambahkan ke
MediaRecorder API di Chromium. API kini mendukung jenis muxer MP4 dan Matroska dengan spesifikasi jenis MIME HEVC dan H.264 yang berbeda. Encoding HEVC hanya didukung jika perangkat dan sistem operasi pengguna menyediakan kemampuan yang diperlukan.
Logging dan pelaporan alamat IP di Chrome Enterprise
Chrome Enterprise meningkatkan kemampuan pemantauan keamanan dan respons insiden dengan mengumpulkan dan melaporkan alamat IP lokal dan jarak jauh serta mengirimkan alamat IP tersebut ke Log Investigasi Keamanan (SIT). Selain itu, Chrome Enterprise akan memungkinkan admin mengirim alamat IP ini ke penyedia SIEM pihak pertama dan pihak ketiga menggunakan konektor Pelaporan Chrome Enterprise. Fitur ini akan tersedia untuk pelanggan Chrome Enterprise Core.
Menggabungkan inisiator navigasi ke dalam kunci partisi cache HTTP
Skema pengindeksan cache HTTP Chrome diupdate untuk menyertakan boolean
is-cross-site-main-frame-navigation guna memitigasi serangan kebocoran lintas situs yang melibatkan navigasi tingkat teratas. Secara khusus, hal ini akan mencegah serangan lintas situs di mana penyerang dapat memulai navigasi tingkat teratas ke halaman tertentu, lalu membuka resource yang diketahui dimuat oleh halaman tersebut untuk menyimpulkan informasi sensitif dari waktu pemuatan. Perubahan ini juga meningkatkan
privasi dengan mencegah situs berbahaya menggunakan navigasi untuk menyimpulkan apakah
pengguna telah mengunjungi situs tertentu sebelumnya.
Dukungan bahasa untuk CanvasTextDrawingStyles
Elemen DOM <canvas>, seperti semua elemen DOM, menerima atribut lang
yang digunakan untuk menentukan perlakuan khusus bahasa untuk pemilihan font (saat
font memiliki glif khusus lokalitas). Browser mematuhi atribut ini. Namun,
saat OffscreenCanvas dibuat, tidak ada cara untuk menyetel informasi lokalitas,
yang mungkin menghasilkan status saat kanvas di luar layar menghasilkan hasil
yang dirender yang berbeda dari kanvas tempat outputnya digunakan. Fitur ini
menambahkan atribut IDL lang ke CanvasTextDrawingStyles untuk memberikan kontrol langsung
terhadap bahasa untuk gambar dan metrik teks.
Laporan Permissions Policy untuk iframe
Memperkenalkan jenis pelanggaran baru yang disebut "Potensi pelanggaran Kebijakan Izin",
yang hanya akan melihat Kebijakan Izin (termasuk kebijakan hanya laporan) dan
atribut allow yang ditetapkan dalam iframe untuk mendeteksi konflik antara Kebijakan
Izin yang diterapkan versus izin yang diteruskan ke iframe.
Kuota penyimpanan terprediksi yang dilaporkan
Melaporkan kuota penyimpanan terprediksi dari Estimate API StorageManager untuk situs yang tidak memiliki izin penyimpanan tak terbatas. Mode penjelajahan pengguna dapat dideteksi menggunakan kuota penyimpanan yang dilaporkan karena ruang penyimpanan yang tersedia dalam mode Samaran jauh lebih kecil daripada dalam mode standar.
Private Aggregation API: Pelaporan error gabungan
Ada berbagai kondisi error yang dapat terjadi saat menggunakan Private Aggregation API. Misalnya, anggaran privasi dapat habis, sehingga mencegah kontribusi histogram lebih lanjut. Fitur ini memungkinkan developer mendaftarkan kontribusi histogram yang hanya boleh dikirim jika terjadi jenis error tertentu. Fitur ini mendukung pengukuran frekuensi kondisi error dan membagi pengukuran ini berdasarkan dimensi yang relevan yang ditentukan developer (misalnya, versi kode yang di-deploy). Karena error itu sendiri mungkin merupakan informasi lintas situs, kami tidak dapat menampilkannya begitu saja ke halaman untuk pengguna tanpa cookie pihak ketiga. Sebaliknya, fitur ini menggunakan kembali pipeline pelaporan gabungan yang sudah ada dan diberi derau melalui Layanan Agregasi.
RegExp.escape
RegExp.escape adalah metode statis yang mengambil string dan menampilkan versi yang di-escape yang dapat digunakan sebagai pola dalam ekspresi reguler. Contoh:
const str = prompt("Please enter a string");
const escaped = RegExp.escape(str);
const re = new RegExp(escaped, 'g'); // handles reg exp special tokens with the replacement.
console.log(ourLongText.replace(re));
Aturan spekulasi: kolom tag
Memungkinkan developer menambahkan tag field ke aturan spekulasi. Kolom opsional ini
dapat digunakan untuk melacak sumber aturan spekulasi. Misalnya, untuk memperlakukannya
secara berbeda di server perantara. Tag apa pun yang terkait dengan spekulasi
akan dikirim dengan header Sec-Speculation-Tags.
Kebijakan Origin yang Sama yang Ketat untuk Storage Access API
Menyesuaikan semantik Storage Access API agar mengikuti secara ketat Kebijakan Origin yang Sama. Artinya, penggunaan document.requestStorageAccess() dalam frame hanya akan melampirkan cookie pada permintaan yang ditujukan ke origin iframe (bukan situs) secara default. Perhatikan
bahwa kebijakan CookiesAllowedForUrls atau Header Akses Penyimpanan masih dapat
digunakan untuk berhenti memblokir cookie lintas situs.
Memperbarui ProgressEvent agar menggunakan jenis ganda untuk loaded dan total
ProgressEvent memiliki atribut loaded dan total yang menunjukkan progres,
dan jenisnya sekarang adalah unsigned long long. Dengan fitur ini, jenis untuk kedua atribut tersebut diubah menjadi double, yang memberikan kontrol lebih besar atas nilai kepada developer. Misalnya, developer kini dapat membuat
ProgressEvent dengan total 1 dan loaded yang meningkat dari 0 menjadi 1
secara bertahap. Hal ini selaras dengan perilaku default elemen HTML <progress> jika atribut max dihilangkan.
Gunakan DOMPointInit untuk getCharNumAtPosition, isPointInFill, isPointInStroke
Perubahan ini menyelaraskan kode Chromium dengan spesifikasi W3C terbaru untuk
SVGGeometryElement dan SVGPathElement dalam hal penggunaan DOMPointInit
melalui SVGPoint untuk getCharNumAtPosition, isPointInFill, isPointInStroke.
Pembuatan bersyarat Autentikasi Web (Upgrade kunci sandi)
Permintaan pembuatan kondisional WebAuthn memungkinkan situs mengupgrade kredensial sandi yang ada ke kunci sandi.
WebGPU: Atribut GPUAdapterInfo isFallbackAdapter
Atribut boolean GPUAdapterInfo isFallbackAdapter menunjukkan apakah adaptor memiliki batasan performa yang signifikan sebagai imbalan atas kompatibilitas yang lebih luas, perilaku yang lebih dapat diprediksi, atau peningkatan privasi. Perhatikan bahwa adapter penggantian mungkin tidak ada di semua sistem.
Uji coba origin baru
Di Chrome 136, Anda dapat memilih untuk mengikuti uji coba origin baru berikut.
Audio Output Devices API: setDefaultSinkId()
Fitur ini menambahkan setDefaultSinkId() ke MediaDevices, yang memungkinkan frame tingkat teratas mengubah perangkat output audio default yang digunakan oleh subframe-nya.
Memungkinkan aplikasi web memahami pengaturan waktu performa bimodal
Aplikasi web mungkin mengalami distribusi bimodal dalam performa pemuatan halaman, karena faktor di luar kontrol aplikasi web. Contoh:
- Saat pertama kali diluncurkan (skenario "cold start"), agen pengguna harus melakukan banyak tugas inisialisasi yang mahal dan bersaing untuk mendapatkan resource di sistem.
- Ekstensi browser dapat memengaruhi performa situs. Misalnya, beberapa ekstensi menjalankan kode tambahan di setiap halaman yang Anda kunjungi, yang dapat meningkatkan penggunaan CPU dan menyebabkan waktu respons yang lebih lambat.
- Saat komputer sibuk melakukan tugas intensif, hal ini dapat menyebabkan pemuatan halaman web menjadi lebih lambat.
Dalam skenario ini, konten yang coba dimuat oleh aplikasi web akan bersaing dengan pekerjaan lain yang terjadi di sistem. Hal ini menyulitkan pendeteksian apakah masalah performa ada di dalam aplikasi web itu sendiri, atau karena faktor eksternal.
Kolom confidence baru pada objek PerformanceNavigationTiming akan memungkinkan developer membedakan apakah waktu navigasi bersifat representatif untuk aplikasi web mereka.
Kredensial Sesi yang Terikat Perangkat
Cara bagi situs untuk mengikat sesi dengan aman ke satu perangkat.
Tindakan ini memungkinkan server memiliki sesi yang terikat dengan aman ke perangkat. Browser akan memperbarui sesi secara berkala seperti yang diminta oleh server, dengan bukti kepemilikan kunci pribadi.
Pembaruan penerapan rendering teks kanvas
Bagian internal measureText(), fillText(), dan
strokeText() CanvasRenderingContext2D dan OffscreenCanvasRenderingContext2D telah diganti dengan implementasi baru yang lebih mendukung teks RTL dan caching. Hal ini dapat memengaruhi performa dan output teks BIDI, sehingga uji coba origin ini memungkinkan aplikasi kanvas yang banyak menggunakan teks untuk mencoba penerapan baru dan melaporkan masalah yang mungkin mereka alami.
Penghentian penggunaan dan penghapusan
Versi Chrome ini memperkenalkan penghentian penggunaan dan penghapusan berikut. Buka ChromeStatus.com untuk melihat daftar penghentian penggunaan yang direncanakan, penghentian penggunaan saat ini, dan penghapusan sebelumnya.
Rilis Chrome ini menghentikan penggunaan dua fitur.
Penghentian penggunaan pengambil Intl Locale Info
Intl Locale Info API adalah proposal TC39 ECMAScript Tahap 3 untuk meningkatkan objek
Intl.Locale dengan mengekspos informasi Lokalitas, seperti data minggu (hari pertama dalam seminggu, hari pertama akhir pekan, hari terakhir akhir pekan, hari minimum dalam minggu pertama), dan siklus jam arah teks yang digunakan di lokalitas. Perubahan ini menghapus beberapa getter yang tidak digunakan lagi dalam perubahan spesifikasi sejak dikirim.
Menghapus HTMLFencedFrameElement.canLoadOpaqueURL().
canLoadOpaqueURL() diganti dengan navigator.canLoadAdAuctionFencedFrame()
pada tahun 2023, dan memanggilnya telah menghasilkan peringatan konsol penghentian penggunaan sejak saat itu
yang mengarahkan developer ke API baru. Tidak masuk akal jika fungsi
dilampirkan ke HTMLFencedFrameElement, dan seharusnya dilampirkan ke
objek navigator (yang berisi metode lelang iklan dan frame tertutup lainnya).