Chrome 136 beta

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.

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).