Chrome 137 beta

Dipublikasikan: 1 Mei 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 130 adalah versi beta mulai 30 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 tujuh fitur CSS dan UI baru.

Fungsi if()

Fungsi if() CSS memberikan cara ringkas untuk mengekspresikan nilai bersyarat. Fungsi ini menerima serangkaian pasangan nilai kondisi, yang dipisahkan oleh titik koma. Fungsi ini mengevaluasi setiap kondisi secara berurutan dan menampilkan nilai yang terkait dengan kondisi pertama yang benar. Jika tidak ada kondisi yang bernilai benar, fungsi akan menampilkan streaming token kosong. Hal ini memungkinkan Anda mengekspresikan logika kondisional yang kompleks dengan cara yang sederhana dan ringkas. Contoh:

div {
      color: var(--color);
      background-color: if(style(--color: white): black; else: white);
  }
  .dark {
      --color: black;
  }
  .light {
      --color: white;
  }
<div class="dark">dark</div>
<div class="light">light</div>

Properti reading-flow dan reading-order

Properti CSS reading-flow mengontrol urutan elemen dalam tata letak flex, grid, atau blok yang ditampilkan ke alat aksesibilitas dan difokuskan menggunakan navigasi fokus keyboard tab. Properti ini memerlukan salah satu nilai kata kunci berikut:

  • normal
  • flex-visual
  • flex-flow
  • grid-rows
  • grid-columns
  • grid-order
  • source-order

Properti CSS reading-order memungkinkan Anda mengganti urutan secara manual dalam penampung alur membaca. Ini adalah bilangan bulat dengan nilai default 0.

Untuk mempelajari lebih lanjut, baca Menggunakan alur pembacaan CSS untuk navigasi fokus berurutan yang logis dan coba beberapa contoh alur pembacaan.

offset-path: shape()

Fungsi shape() sudah didukung di clip-path, dan memungkinkan pemangkasan responsif. Mengaktifkannya juga untuk offset-path akan menutup celah kecil tempat jenis bentuk yang sama dapat digunakan untuk properti tersebut.

Mendukung atribut transformasi di SVGSVGElement

Fitur ini memungkinkan penerapan properti transformasi—seperti penskalaan, rotasi, terjemahan, dan kemiringan—langsung ke elemen root <svg> menggunakan atribut transformasinya. Peningkatan ini memungkinkan Anda memanipulasi seluruh sistem koordinat SVG atau kontennya secara keseluruhan, sehingga memberikan fleksibilitas yang lebih besar dalam membuat grafik vektor yang dinamis, responsif, dan interaktif. Dengan mendukung atribut ini, elemen SVG dapat ditransformasi tanpa memerlukan elemen wrapper tambahan atau solusi CSS yang kompleks, sehingga menyederhanakan proses mem-build grafik web yang skalabel dan animasi.

Mengizinkan <use> mereferensikan elemen root dokumen eksternal dengan menghapus fragmen.

Dalam fitur ini, kami menyederhanakan elemen <use> SVG dengan melonggarkan persyaratan referensi. Saat ini, Anda perlu mereferensikan fragmen secara eksplisit dalam dokumen SVG. Jika tidak ada ID fragmen yang diberikan, <use> tidak akan dapat me-resolve target dan tidak ada yang akan dirender atau dirujuk.

Dengan fitur ini, menghilangkan fragmen atau hanya memberikan nama file SVG eksternal akan otomatis mereferensikan elemen root, sehingga Anda tidak perlu mengubah dokumen yang direferensikan hanya untuk menetapkan ID ke root. Peningkatan ini menyederhanakan proses pengeditan manual ini dan meningkatkan efisiensi.

Warna aksen sistem untuk properti accent-color diperluas ke Windows dan ChromeOS

Tindakan ini memungkinkan Anda menggunakan warna aksen sistem operasi untuk elemen formulir. Dengan menggunakan properti CSS accent-color, Anda dapat memastikan bahwa elemen formulir seperti kotak centang, tombol pilihan, dan status progres secara otomatis mengadopsi warna aksen yang ditentukan oleh sistem operasi pengguna. Fitur ini telah didukung di macOS sejak 2021, dan kini didukung di Windows dan ChromeOS.

view-transition-name: match-element

Nilai match-element untuk properti view-transition menghasilkan ID unik berdasarkan identitas elemen dan tetap sama untuk elemen ini. Ini digunakan dalam kasus Aplikasi Web Satu Halaman saat elemen dipindahkan dan Anda ingin menganimasikannya dengan transisi tampilan.

Web API

Menyelaraskan jenis error yang ditampilkan untuk pembuatan kredensial WebAuthn 'pembayaran'

Memperbaiki jenis error yang ditampilkan selama pembuatan kredensial WebAuthn untuk kredensial payment. Karena ketidakcocokan spesifikasi historis, membuat kredensial payment di iframe lintas origin tanpa aktivasi pengguna akan menampilkan SecurityError, bukan NotAllowedError, yang ditampilkan untuk kredensial non-pembayaran. Ini adalah perubahan yang dapat menyebabkan gangguan. Kode yang sebelumnya mendeteksi jenis error yang ditampilkan (misalnya, e instanceof SecurityError) akan terpengaruh. Kode yang umumnya menangani error selama pembuatan kredensial (misalnya, catch (e)) akan terus berfungsi dengan benar.

Partisi URL Blob: Pengambilan/Navigasi

Sebagai kelanjutan dari Partisi Penyimpanan, ini 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.

Perubahan ini dapat dikembalikan untuk sementara dengan menetapkan kebijakan PartitionedBlobURLUsage. Kebijakan ini tidak akan lagi digunakan saat kebijakan perusahaan terkait partisi penyimpanan lain tidak digunakan lagi.

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 tidak responsifnya aplikasi dan memperbaikinya dengan lebih mudah. Stack panggilan JavaScript disertakan dalam API pelaporan error jika alasannya tidak responsif.

Jenis Warna Floating Point Kanvas

Memperkenalkan kemampuan untuk menggunakan format piksel floating point (bukan titik tetap 8-bit) dengan CanvasRenderingContext2D, OffscreenCanvasRenderingContext2D, dan ImageData. Hal ini diperlukan untuk aplikasi presisi tinggi (misalnya, visualisasi medis), konten rentang dinamis tinggi, dan ruang warna kerja linear.

Tidak mengizinkan pra-rendering HTTP teks biasa yang tidak tepercaya

Saat ini pra-render diizinkan melalui HTTP dan HTTPS, sedangkan pengambilan data hanya berfungsi melalui HTTPS. Batasi pra-rendering agar konsisten dengan pengambilan data.

Document-Isolation-Policy

Document-Isolation-Policy memungkinkan dokumen mengaktifkan crossOriginIsolation untuk dirinya sendiri, tanpa harus men-deploy COOP atau COEP, dan apa pun status crossOriginIsolation halaman. Kebijakan ini didukung oleh isolasi proses. Selain itu, subresource lintas asal non-CORS dokumen akan dimuat tanpa kredensial atau harus memiliki header CORP.

Pelajari lebih lanjut di Kebijakan Isolasi Dokumen: Mengaktifkan fitur web yang canggih dengan mudah.

Ed25519 di Kriptografi Web

Fitur ini menambahkan dukungan untuk algoritma Curve25519 di Web Cryptography API, yaitu algoritma tanda tangan Ed25519

Logging dan pelaporan alamat IP

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 juga memungkinkan admin mengirim alamat IP ini ke penyedia SIEM pihak pertama dan ketiga secara opsional menggunakan konektor Pelaporan Chrome Enterprise. Fitur ini akan tersedia untuk pelanggan Chrome Enterprise Core.

Integrasi Promise JavaScript

Integrasi Promise JavaScript (JSPI) adalah API yang memungkinkan aplikasi WebAssembly berintegrasi dengan Promise JavaScript. Hal ini memungkinkan program WebAssembly bertindak sebagai generator Promise, dan memungkinkan program WebAssembly berinteraksi dengan API yang berisi Promise. Secara khusus, saat aplikasi menggunakan JSPI untuk memanggil API (JavaScript) yang memiliki Promise, kode WebAssembly ditangguhkan; dan pemanggil asli ke program WebAssembly diberi Promise yang akan dipenuhi saat program WebAssembly akhirnya selesai.

Language Detector API

Language Detector API adalah API JavaScript yang mengidentifikasi bahasa string yang diberikan. API ini didukung oleh model dasar yang disesuaikan untuk melakukan tugas deteksi bahasa.

Dengan string tertentu, Language Detector API akan menampilkan daftar bahasa yang terdeteksi secara berurutan, beserta skor keyakinan untuk setiap hasil.

Secara opsional, developer dapat meneruskan daftar bahasa input yang diharapkan saat membuat instance Language Detector untuk membantu mengoptimalkan kasus penggunaan saat deteksi diharapkan dilakukan pada bahasa tertentu.

Membatasi atribut dan argumen float di SVGMatrix, SVGRect, dan SVGPoint

Saat menetapkan atribut atau argumen float pada SVGMatrix, SVGRect, dan SVGPoint, Anda kini tidak dapat menetapkannya sebagai Infinity atau Nan. Pengecualian JavaScript akan ditampilkan jika Anda mencoba menetapkannya, seperti yang ditentukan dalam spesifikasi SVG.

Selection API getComposedRanges dan direction

Fitur ini mengirimkan dua metode API baru untuk Selection API:

  • Selection.direction yang menampilkan arah pilihan sebagai "none", "forward", atau "backward"
  • Selection.getComposedRanges() yang menampilkan daftar 0 atau 1 "composed" StaticRange

StaticRange "tersusun" diizinkan untuk melintasi batas bayangan, yang tidak dapat dilakukan oleh Rentang normal.

Contoh:

const range = getSelection().getComposedRanges({ shadowRoots: [root] });

Jika pilihan melintasi batas root bayangan yang tidak diberikan dalam daftar shadowRoots, endpoint StaticRange akan "diperluas cakupannya" agar berada di luar hierarki tersebut. Hal ini memastikan bahwa kita tidak mengekspos hierarki bayangan yang tidak diketahui.

Ekstensi cakupan aplikasi web

Menambahkan kolom manifes aplikasi web scope_extensions yang memungkinkan aplikasi web memperluas cakupannya ke origin lain.

Contoh:

{
  "name": "Example",
  "display": "standalone",
  "start_url": "/index.html",
  "scope_extensions": [
    {"type" : "type", "origin" : "https://example.com"}
  ]
}

Hal ini memungkinkan situs yang mengontrol beberapa subdomain dan domain level teratas untuk ditampilkan sebagai satu aplikasi web.

Memerlukan origin yang tercantum untuk mengonfirmasi pengaitan dengan aplikasi web menggunakan file konfigurasi .well-known/web-app-origin-association.

{
  "https://sample-app.com/": {
    "scope": "/"
  }
}

Petunjuk Cabang WebAssembly

Meningkatkan performa kode WebAssembly yang dikompilasi dengan memberi tahu mesin bahwa petunjuk cabang tertentu sangat mungkin mengambil jalur tertentu. Hal ini memungkinkan mesin membuat keputusan yang lebih baik untuk tata letak kode (meningkatkan hit cache petunjuk) dan alokasi register.

WebGPU: GPUTextureView untuk binding externalTexture

GPUTextureView kini diizinkan untuk digunakan untuk binding externalTexture saat membuat GPUBindGroup.

WebGPU: Overload copyBufferToBuffer

Metode GPUCommandEncoder copyBufferToBuffer() kini menyertakan cara yang lebih sederhana untuk menyalin seluruh buffering menggunakan overload baru dengan parameter offset dan ukuran opsional.

Uji coba origin baru

Di Chrome 137, Anda dapat memilih untuk ikut serta dalam uji coba origin baru berikut.

Atribut pemblokiran rendering kecepatan frame penuh

Menambahkan token pemblokiran render baru dengan kecepatan frame penuh ke atribut pemblokiran. Jika perender diblokir dengan token kecepatan frame penuh, perender akan berfungsi pada kecepatan frame yang lebih rendah untuk mencadangkan lebih banyak resource untuk pemuatan.

Menjeda pemutaran media pada iframe yang tidak dirender

Menambahkan kebijakan izin "media-playback-while-not-rendered" untuk mengizinkan situs penyematan menjeda pemutaran media iframe tersemat yang tidak dirender—yaitu, memiliki properti "display" yang disetel ke "none". Hal ini akan memungkinkan developer membuat pengalaman yang lebih mudah digunakan dan juga meningkatkan performa dengan memungkinkan browser menangani pemutaran konten yang tidak terlihat oleh pengguna.

Rewriter API

Rewriter API mengubah dan menyusun ulang teks input dengan cara yang diminta, yang didukung oleh model bahasa AI di perangkat. Developer dapat menggunakan API ini untuk menghapus redundansi dalam teks agar sesuai dengan batas kata, menyusun ulang pesan agar sesuai dengan audiens yang dituju atau menjadi lebih konstruktif jika pesan ditemukan menggunakan bahasa negatif, menyusun ulang postingan atau artikel untuk menggunakan kata dan konsep yang lebih sederhana, dan banyak lagi.

Writer API

Writer API dapat digunakan untuk menulis materi baru berdasarkan perintah tugas menulis, yang didukung oleh model bahasa AI di perangkat. Developer akan dapat menggunakan API ini untuk membuat penjelasan tekstual tentang data terstruktur, menulis postingan tentang produk berdasarkan ulasan atau deskripsi produk, memperluas daftar pro dan kontra menjadi tampilan lengkap, dan lainnya.