Dipublikasikan: 3 April 2025
Kecuali jika dinyatakan lain, perubahan berikut berlaku untuk rilis saluran Chrome beta 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 adalah versi beta mulai 3 April 2025. Anda dapat mendownload versi terbaru 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.
Mengabaikan spasi huruf dalam skrip kursif
Fitur ini menambahkan logika untuk mengabaikan setelan spasi huruf untuk skrip kursif, meskipun ditentukan oleh developer sesuai spesifikasi, untuk memastikan spasi huruf tidak memisahkan kata.
Partisi 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 side-channel yang telah dikembangkan untuk mendapatkan informasi gaya
link :visited
kini tidak berlaku lagi. Cookie ini tidak lagi memberikan informasi baru tentang pengguna kepada situs.
Pelajari lebih lanjut peningkatan privasi link :visited
ini.
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)
sekarang menjadi attr(data-foo raw-string)
.
Penggantian var()
yang tidak bergantung pada jenis
Bagian penggantian dari fungsi var()
tidak memvalidasi terhadap jenis
properti kustom yang dirujuk.
print-color-adjust
tanpa awalan
Properti
print-color-adjust
memungkinkan Anda menyesuaikan warna di halaman web yang dicetak. Ini sama seperti
-webkit-print-color-adjust
Chrome yang sudah didukung, tetapi dengan nama
yang distandardisasi. Versi dengan awalan -webkit
tidak dihapus.
Web API
Status AudioContext terganggu
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, ini menerapkan partisi Akses URL Blob berdasarkan 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 jika situs yang dituju lintas situs dengan situs tingkat atas 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 responsif
Fitur ini menangkap stack panggilan JavaScript saat halaman web menjadi tidak responsif karena kode JavaScript menjalankan loop tanpa batas atau komputasi yang sangat lama lainnya. Hal ini membantu developer mengidentifikasi penyebab ketidakresponsif. Stack panggilan JavaScript disertakan dalam API pelaporan error jika alasannya tidak responsif.
Captured Surface Control API
Captured Surface Control API memungkinkan aplikasi Web meneruskan peristiwa roda ke tab yang diambil, serta membaca dan mengubah tingkat zoom tab yang diambil.
CapturedSurfaceResolution
Mengekspos rasio piksel platform yang diambil saat berbagi layar. Fitur ini akan membantu aplikasi menghemat resource sistem atau menyesuaikan kompromi kualitas dan bandwidth sesuai dengan resolusi fisik dan logis platform yang diambil.
Mengirim peristiwa klik ke pointer yang direkam
Jika pointer diambil saat peristiwa pointerup
dikirim, peristiwa
click
akan dikirim ke target yang diambil, bukan ancestor umum terdekat
peristiwa pointerdown
dan pointerup
sesuai spesifikasi Peristiwa UI. Untuk pointer yang tidak diambil, target click
tetap tidak berubah.
Petunjuk kompilasi eksplisit dengan komentar ajaib
Memungkinkan lampiran informasi tentang fungsi mana yang harus diuraikan dan dikompilasi dengan cepat dalam file JavaScript. Informasi akan dienkode sebagai komentar ajaib.
Update 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. Kita berencana untuk terlebih dahulu menangani kasus sederhana dengan
memiliki 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 lainnya di pemilih. Fitur
ini saat ini tidak digunakan, dan percakapan UX telah membuat kami yakin bahwa
mendukung fitur ini akan menyebabkan alur yang lebih rumit tanpa banyak manfaat. Fitur
ini akan tetap berfungsi dalam mode aktif FedCM.
Scrollbar 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 Linux Chrome secara historis telah diselaraskan dengan yang dikirimkan 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 telah meningkatkan efisiensi kompresi (kualitas per bitrate lebih tinggi) dibandingkan dengan codec generasi lama seperti VP8 dan H264 serta dukungan hardware yang sangat kuat sejak 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.
Update 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
resolusi variabel dalam MP4. Dukungan untuk encoding platform HEVC ditambahkan di
WebCodecs di 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.
Pelaporan dan logging 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 mengirim alamat IP tersebut ke Log Investigasi Keamanan (SIT). Selain itu, Chrome Enterprise akan memungkinkan admin untuk secara opsional mengirim alamat IP ke penyedia SIEM pihak pertama dan pihak ketiga menggunakan konektor Pelaporan Chrome Enterprise. Fitur ini akan tersedia untuk pelanggan Chrome Enterprise Core.
Menyertakan pemicu navigasi ke dalam kunci partisi cache HTTP
Skema kunci cache HTTP Chrome diperbarui untuk menyertakan
boolean is-cross-site-main-frame-navigation
guna mengurangi serangan kebocoran
lintas situs yang melibatkan navigasi tingkat atas. Secara khusus, hal ini akan mencegah
serangan lintas situs saat penyerang dapat memulai navigasi tingkat atas 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 glyph khusus lokalitas). Browser mematuhi atribut ini. Namun,
saat OffscreenCanvas dibuat, tidak ada cara untuk menetapkan informasi lokalitas,
yang mungkin menghasilkan status saat kanvas offscreen 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 Kebijakan Izin untuk iframe
Memperkenalkan jenis pelanggaran baru yang disebut "Potensi pelanggaran Kebijakan Izin",
yang hanya akan melihat Kebijakan Izin (termasuk kebijakan khusus laporan) dan
atribut allow
yang ditetapkan di iframe untuk mendeteksi konflik antara Kebijakan Izin
yang diterapkan versus izin yang di-propagate ke iframe.
Kuota penyimpanan yang dilaporkan dapat diprediksi
Melaporkan kuota penyimpanan yang dapat diprediksi dari Estimate API StorageManager untuk situs yang tidak memiliki izin penyimpanan tak terbatas. Anda dapat mendeteksi mode penjelajahan pengguna menggunakan kuota penyimpanan yang dilaporkan karena ruang penyimpanan yang tersedia jauh lebih kecil dalam mode Samaran daripada dalam mode reguler.
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 jenis error tertentu terjadi. Fitur ini mendukung pengukuran frekuensi kondisi error dan untuk memisahkan pengukuran ini berdasarkan dimensi yang ditentukan developer yang relevan (misalnya, versi kode yang di-deploy). Karena error itu sendiri mungkin merupakan informasi lintas situs, kami tidak dapat begitu saja mengeksposnya ke halaman untuk pengguna tanpa cookie pihak ketiga. Sebagai gantinya, fitur ini menggunakan kembali pipeline pelaporan agregat yang berisi derau yang ada melalui Layanan Agregasi.
RegExp.escape
RegExp.escape
adalah metode statis yang mengambil string dan menampilkan versi yang di-escape
yang dapat digunakan sebagai pola di 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. Semua tag yang terkait dengan spekulasi
akan dikirim dengan header Sec-Speculation-Tags
.
Kebijakan Asal yang Sama yang Ketat untuk Storage Access API
Menyesuaikan semantik Storage Access API untuk mengikuti Kebijakan Asal
yang Sama secara ketat. Artinya, penggunaan document.requestStorageAccess()
dalam frame hanya
meletakkan cookie ke permintaan ke origin iframe (bukan situs) secara default. Perhatikan
bahwa kebijakan CookiesAllowedForUrls
atau Header Akses Penyimpanan mungkin masih
dapat digunakan untuk berhenti memblokir cookie lintas situs.
Update ProgressEvent
untuk 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 ini diubah menjadi double
, yang memberi developer
kontrol lebih besar atas nilai. Misalnya, developer kini dapat membuat
ProgressEvent dengan total
1 dan loaded
meningkat dari 0 menjadi 1
secara bertahap. Hal ini selaras dengan perilaku default elemen HTML <progress>
jika atribut maksimum dihilangkan.
Gunakan DOMPointInit
untuk getCharNumAtPosition
, isPointInFill
, isPointInStroke
Perubahan ini membuat kode Chromium sesuai dengan spesifikasi W3C terbaru untuk
SVGGeometryElement
dan SVGPathElement
dalam hal penggunaan DOMPointInit
di atas SVGPoint
untuk getCharNumAtPosition
, isPointInFill
, isPointInStroke
.
Pembuatan bersyarat Autentikasi Web (Upgrade kunci sandi)
Permintaan pembuatan kondisional WebAuthn memungkinkan situs mengupgrade kredensial sandi yang ada menjadi 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 privasi yang lebih baik. Perhatikan bahwa adaptor penggantian mungkin tidak ada di semua sistem.
Uji coba origin baru
Di Chrome 136, Anda dapat memilih untuk ikut serta dalam uji coba origin baru berikut.
Audio Output Devices API: setDefaultSinkId()
Fitur ini menambahkan setDefaultSinkId()
ke MediaDevices, yang memungkinkan
frame tingkat atas 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 kendali aplikasi web. Contoh:
- Saat pertama kali diluncurkan (skenario "cold start"), agen pengguna harus menjalankan banyak tugas inisialisasi yang mahal yang 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 mengakibatkan waktu respons yang lebih lambat.
- Jika mesin sibuk melakukan tugas yang intensif, hal ini dapat menyebabkan pemuatan halaman web menjadi lebih lambat.
Dalam skenario ini, konten yang dicoba dimuat oleh aplikasi web akan bersaing dengan tugas lain yang terjadi di sistem. Hal ini mempersulit deteksi apakah masalah performa ada dalam aplikasi web itu sendiri, atau karena faktor eksternal.
Kolom confidence
baru pada objek PerformanceNavigationTiming
akan memungkinkan
developer untuk mengetahui apakah pengaturan waktu navigasi mewakili aplikasi
web mereka.
Kredensial Sesi yang Terikat Perangkat
Cara bagi situs untuk mengikat sesi dengan aman ke satu perangkat.
Hal ini memungkinkan server memiliki sesi yang terikat dengan aman ke perangkat. Browser akan memperpanjang sesi secara berkala seperti yang diminta oleh server, dengan bukti kepemilikan kunci pribadi.
Memperbarui penerapan rendering teks kanvas
Bagian internal CanvasRenderingContext2D dan
measureText()
, fillText()
, dan
strokeText()
OffscreenCanvasRenderingContext2D telah diganti dengan implementasi baru yang lebih mendukung
teks RTL dan penyimpanan dalam cache. Hal ini dapat memengaruhi performa dan output teks BIDI, sehingga
uji coba origin ini memungkinkan aplikasi kanvas yang banyak teks untuk mencoba
implementasi baru dan melaporkan masalah yang mungkin mereka alami.
Penghentian dan penghapusan
Versi Chrome ini memperkenalkan penghentian dan penghapusan berikut. Buka ChromeStatus.com untuk melihat daftar penghentian penggunaan yang direncanakan, penghentian penggunaan saat ini, dan penghapusan sebelumnya.
Rilis Chrome ini tidak lagi menggunakan dua fitur.
Menghentikan 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 pengambil yang tidak digunakan lagi dalam perubahan spesifikasi sejak dikirim.
Menghapus HTMLFencedFrameElement.canLoadOpaqueURL()
.
canLoadOpaqueURL()
diganti dengan navigator.canLoadAdAuctionFencedFrame()
pada tahun 2023, dan memanggilnya akan menghasilkan peringatan konsol penghentian penggunaan sejak
mengarahkan developer ke API baru. Tidak masuk akal jika fungsi
disertakan ke HTMLFencedFrameElement
dan sebagai gantinya harus disertakan ke
objek navigator
(yang berisi metode lelang iklan dan bingkai berpagar lainnya).