Di hampir setiap versi Chrome, kami melihat sejumlah besar update dan peningkatan pada produk, performanya, dan juga kemampuan Platform Web. Artikel ini menjelaskan penghentian dan penghapusan di Chrome 60, yang masih dalam versi beta mulai 8 Juni. Daftar ini dapat berubah sewaktu-waktu.
Keamanan
crypto.subtle kini memerlukan origin yang aman
Web Crypto API
yang telah didukung sejak Chrome 37 selalu berfungsi di origin
yang tidak aman. Karena kebijakan lama Chrome yang
memilih origin aman untuk fitur yang canggih,
crypto.subtle
tidak hanya terlihat di origin aman.
Intent to Remove | Bug Chromium
Menghapus navigasi frame atas yang dimulai konten ke URL data
Karena tidak dikenal oleh pengguna browser non-teknis, kami
semakin sering melihat skema data:
digunakan dalam serangan spoofing dan phishing. Untuk mencegah hal ini, kami memblokir halaman web agar tidak memuat URL data:
di frame atas. Hal ini berlaku untuk tag <a>
, window.open
,
window.location
, dan mekanisme serupa. Skema data:
akan tetap berfungsi untuk
resource yang dimuat oleh halaman.
Fitur ini tidak digunakan lagi di Chrome 58 dan sekarang dihapus.
Intent to Remove | Chromestatus Tracker | Chromium Bug
Menonaktifkan navigator.sendBeacon() untuk sementara untuk beberapa blob
Fungsi navigator.sendBeacon()
telah tersedia
sejak Chrome 39.
Seperti yang diterapkan awalnya, argumen data
fungsi dapat berisi
blob arbitrer yang jenisnya tidak ada dalam daftar aman CORS. Kami yakin ini adalah potensi
ancaman keamanan, meskipun belum ada yang mencoba mengeksploitasinya. Karena kami TIDAK
memiliki perbaikan langsung yang wajar untuk masalah ini, untuk sementara, sendBeacon()
tidak dapat
lagi dipanggil pada blob yang jenisnya BUKAN diizinkan CORS.
Meskipun perubahan ini diterapkan untuk Chrome 60, perubahan ini telah digabungkan kembali ke Chrome 59.
CSS
Membuat pengombinator turunan yang menembus bayangan berperilaku seperti pengombinator turunan
Kombinator turunan yang menembus bayangan (>>>
), bagian dari
Modul Cakupan CSS Level 1,
dimaksudkan untuk mencocokkan turunan elemen ancestor tertentu
meskipun muncul di dalam hierarki bayangan. Hal ini memiliki beberapa batasan.
Pertama, sesuai spesifikasi, properti ini
hanya dapat digunakan dalam panggilan JavaScript seperti querySelector()
dan tidak
berfungsi di stylesheet. Yang lebih penting, vendor browser tidak dapat membuatnya
berfungsi di luar satu tingkat Shadow DOM.
Akibatnya, pengombinasi turunan telah dihapus dari spesifikasi yang relevan, termasuk Shadow DOM v1. Daripada merusak halaman web dengan menghapus pemilih ini dari Chromium, kami memilih untuk membuat alias pengombinator turunan yang menembus bayangan ke pengombinator turunan. Perilaku asli tidak digunakan lagi di Chrome 45. Perilaku baru ini diimplementasikan di Chrome 61.
Intent to Remove | Chromestatus Tracker | Chromium Bug
JavaScript
Menghentikan penggunaan dan menghapus RTCPeerConnection.getStreamById()
Hampir dua tahun yang lalu, getStreamById()
dihapus dari spesifikasi WebRTC. Sebagian besar browser lainnya telah
menghapusnya dari implementasi mereka. Meskipun fungsi ini
dipercaya jarang digunakan, ada juga dugaan bahwa ada beberapa risiko
interoperabilitas kecil dengan browser berbasis Edge dan WebKit selain Safari
tempat getStreamById()
masih didukung. Developer yang memerlukan penerapan
alternatif dapat menemukan contoh kode di Intent to Remove, di bawah.
Penghapusan dilakukan di Chrome 62.
Intent to Remove | Chromestatus Tracker | Chromium Bug
Menghentikan penggunaan SVGPathElement.getPathSegAtLength
Lebih dari dua tahun yang lalu, getPathSegAtLength()
dihapus dari spesifikasi SVG.
Karena hanya ada sedikit hit untuk metode ini di httparchive, metode ini
tidak digunakan lagi di Chrome 60. Penghapusan ini diperkirakan akan dilakukan di Chrome 62, yang
akan dirilis pada awal atau pertengahan Oktober.
Intent to Deprecate | Chromestatus Tracker | Chromium Bug
Memindahkan getContextAttributes() di belakang tanda
Fungsi getContextAttributes()
telah didukung di
CanvasRenderingContext2D
sejak 2013. Namun, fitur ini bukan bagian dari standar apa pun dan belum menjadi
bagian dari standar sejak saat itu. Seharusnya diterapkan di belakang
tanda command line --enable-experimental-canvas-features
, tetapi tidak
dilakukan. Di Chrome 60, kelalaian ini telah diperbaiki. Diyakini bahwa
perubahan ini aman, karena tidak ada data yang menunjukkan bahwa ada orang yang menggunakan metode ini.
Menghapus Headers.prototype.getAll()
Fungsi Headers.prototype.getAll()
dihapus sesuai dengan versi terbaru spesifikasi Pengambilan.
Intent to Remove | Chromestatus Tracker | Chromium Bug
Menghapus indexedDB.webkitGetDatabaseNames()
Kami menambahkan fitur ini saat Indexed DB relatif baru di Chrome dan penggunaan awalan sedang populer. API secara asinkron menampilkan daftar nama database yang ada di origin, yang tampaknya cukup masuk akal.
Sayangnya, desain ini memiliki kekurangan, karena hasilnya mungkin sudah tidak berlaku begitu ditampilkan, sehingga hanya dapat digunakan untuk logging, bukan logika aplikasi yang serius. Masalah GitHub melacak/menautkan ke diskusi sebelumnya tentang alternatif, yang akan memerlukan pendekatan yang berbeda. Meskipun ada minat yang terus-menerus dari developer, mengingat kurangnya kemajuan lintas browser, masalah ini telah diatasi oleh penulis library.
Developer yang memerlukan fungsi ini harus mengembangkan solusi mereka sendiri. Library seperti Dexie.js misalnya menggunakan tabel global yang merupakan database lain untuk melacak nama database.
Fitur ini tidak digunakan lagi di Chrome 58 dan sekarang dihapus.
Intent to Remove | Chromestatus Tracker | Chromium Bug
Menghapus WEBKIT_KEYFRAMES_RULE dan WEBKIT_KEYFRAME_RULE
Konstanta WEBKIT_KEYFRAMES_RULE
dan WEBKIT_KEYFRAME_RULE
non-standar
dihapus dari
Aturan CSS.
Sebagai gantinya, developer sebaiknya menggunakan KEYFRAMES_RULE
dan KEYFRAME_RULE
.
Intent to Remove | Chromestatus Tracker | Chromium Bug
Antarmuka Pengguna
Mewajibkan gestur pengguna untuk dialog beforeunload
Mulai Chrome 60 dan seterusnya, dialog beforeunload
hanya akan muncul jika frame
yang mencoba menampilkannya telah menerima gestur pengguna atau interaksi pengguna (atau jika
frame tersemat telah menerima gestur tersebut). Untuk lebih jelasnya, ini bukan perubahan pada pengiriman peristiwa beforeunload
. Ini hanyalah perubahan pada
apakah dialog ditampilkan.
Dialog beforeunload
adalah kotak dialog modal aplikasi. Dengan demikian, secara inheren
tidak bersahabat dengan pengguna, yang berarti merespons navigasi pengguna dengan mempertanyakan
keputusan pengguna. Ada penggunaan positif untuk fitur ini. Misalnya, ini sering digunakan
untuk memperingatkan pengguna saat mereka akan kehilangan data dengan menavigasi.
Meskipun kemampuan halaman untuk memberikan teks untuk dialog beforeunload
telah
dihapus beberapa waktu lalu, dialog beforeunload
tetap menjadi vektor penyalahgunaan. Secara
khusus, dialog beforeunload
adalah bahan dari situs scam, dengan
audio putar otomatis dan teks ancaman yang memberikan konteks saat pesan "yakin ingin keluar dari halaman ini" yang disediakan
Chromium menjadi mengkhawatirkan.
Kita ingin melakukan hal yang tepat, dan hanya mengizinkan penggunaan dialog
beforeunload
yang baik. Penggunaan dialog yang baik adalah saat pengguna memiliki status yang mungkin
hilang. Jika pengguna tidak pernah berinteraksi dengan halaman, pengguna tidak dapat memiliki
status yang mungkin hilang, sehingga kami tidak berisiko kehilangan data pengguna dengan
menyembunyikan dialog dalam kasus tersebut.