Penghentian dan penghapusan di Chrome 60

Joe Medley
Joe Medley

Di hampir setiap versi Chrome, kami melihat sejumlah pembaruan dan pada produk, kinerjanya, dan juga kemampuan web Peron. Artikel ini menjelaskan penghentian dan penghapusan di Chrome 60, yang masih dalam versi beta per 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 pada origin. Karena kebijakan Chrome yang sudah lama ada tentang lebih memilih origin aman untuk fitur canggih, crypto.subtle tidak hanya terlihat di origin yang aman.

Rencana Penghapusan | Bug Chromium

Menghapus navigasi frame teratas yang dimulai konten ke URL data

Karena ketidaktahuan mereka terhadap pengguna {i>browser<i} non-teknis, kami semakin sering melihat skema data: yang digunakan dalam spoofing dan phishing serangan. Untuk mencegah hal ini, kami memblokir halaman web agar tidak memuat data: URL di {i>frame<i} atas. 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.

Rencana Penghapusan | Pelacak Chromestatus | Bug Chromium

Menonaktifkan navigator.sendBeacon() untuk beberapa blob untuk sementara

Fungsi navigator.sendBeacon() telah tersedia sejak Chrome 39. Seperti yang awalnya diterapkan, argumen data fungsi dapat berisi semua blob arbitrer yang jenisnya tidak termasuk dalam daftar aman CORS. Kami yakin ini adalah potensi ancaman keamanan, meskipun belum ada yang mencoba mengeksploitasinya. Karena kita TIDAK memiliki perbaikan langsung yang wajar untuk masalah ini, untuk sementara, sendBeacon() tidak dapat lagi dapat dipanggil di blob yang jenisnya TIDAK termasuk dalam daftar aman CORS.

Meskipun perubahan ini diterapkan untuk Chrome 60, perubahan ini telah digabungkan kembali ke Chrome 59.

Bug Chromium

CSS

Membuat kombinator turunan yang menembus bayangan berperilaku seperti kombinator turunan

kombinator turunan shadow-piercing (>>>), bagian dari Modul Cakupan CSS Level 1 , dimaksudkan untuk mencocokkan turunan dari elemen ancestor tertentu bahkan saat muncul di dalam pohon bayangan. Tindakan ini memiliki beberapa batasan. Pertama, sesuai spesifikasi, hanya dapat digunakan dalam panggilan JavaScript seperti querySelector() dan tidak bekerja di stylesheet. Lebih penting lagi, vendor {i>browser<i} tidak dapat melakukannya bekerja di luar satu level Shadow DOM.

Akibatnya, kombinator turunan telah dihapus dari spesifikasi yang relevan termasuk Shadow DOM v1. Daripada merusak halaman web dengan menghapus pemilih ini dari Chromium, kita memilih untuk menggunakan alias turunan yang menembus bayangan kombinator ke kombinator turunan. Perilaku aslinya adalah tidak digunakan lagi di Chrome 45. Perilaku baru ini diterapkan di Chrome 61.

Rencana Penghapusan | Pelacak Chromestatus | Bug Chromium

JavaScript

Menghentikan penggunaan dan menghapus RTCPeerConnection.getStreamById()

Hampir dua tahun yang lalu, getStreamById() telah dihapus dari spesifikasi WebRTC. Kebanyakan {i>browser<i} lain memiliki menghapus ini dari implementasi mereka. Meskipun fungsi ini dianggap jarang digunakan, dan juga diyakini bahwa ada beberapa kelompok risiko interoperabilitas dengan browser berbasis Edge dan WebKit selain Safari di mana getStreamById() masih didukung. Developer yang membutuhkan alternatif bisa menemukan kode contoh dalam Intent to Remove, di bawah ini.

Penghapusan dilakukan di Chrome 62.

Rencana Penghapusan | Pelacak Chromestatus | Bug Chromium

Menghentikan penggunaan SVGPathElement.getPathSegAtLength

Lebih dari dua tahun lalu, getPathSegAtLength() telah dihapus dari spesifikasi SVG. Karena hanya ada sedikit klik untuk metode ini di httparchive, tidak digunakan lagi di Chrome 60. Penghapusan diperkirakan akan dilakukan di Chrome 62, yang akan dikirimkan pada awal atau pertengahan Oktober.

Rencana Penghentian Penggunaan | Pelacak Chromestatus | Bug Chromium

Memindahkan getContextAttributes() di belakang tanda

Fungsi getContextAttributes() telah didukung di CanvasRenderingContext2D sejak 2013. Namun, fitur tersebut bukan bagian dari standar apa pun dan tidak menjadi satu bagian dari satu sejak saat itu. Sistem ini seharusnya diterapkan di balik Tanda command line --enable-experimental-canvas-features, tetapi keliru tidak. Pada Chrome 60, kesalahan ini telah diperbaiki. Hal ini diyakini bahwa perubahan itu aman, karena tidak ada data yang menunjukkan bahwa ada orang yang menggunakan metode ini.

Bug Chromium

Menghapus Header.prototype.getAll()

Fungsi Headers.prototype.getAll() sedang dihapus berdasarkan versi terbaru dari Spesifikasi pengambilan.

Rencana Penghapusan | Pelacak Chromestatus | Bug Chromium

Menghapus indexedDB.webkitGetDatabaseNames()

Kami menambahkan fitur ini saat Indexed DB relatif baru di Chrome dan memberikan awalan itu semua. API secara asinkron menampilkan daftar database yang ada nama dalam suatu asal, yang tampak cukup masuk akal.

Sayangnya, desain ini cacat, sehingga hasilnya mungkin akan segera usang ketika dikembalikan, sehingga hanya dapat digunakan untuk pencatatan, tidak logika aplikasi. Tujuan masalah github jalur/link ke diskusi sebelumnya tentang berbagai alternatif, yang memerlukan pendekatan berbeda. Meskipun ada minat aktif dan nonaktif oleh pengembang, mengingat kurangnya kemajuan {i>browser<i} masalah telah diselesaikan oleh penulis {i>library<i}.

Developer yang memerlukan fungsi ini harus mengembangkan solusi mereka sendiri. Misalnya, library seperti Dexie.js menggunakan tabel global yang merupakan {i>database<i} lain untuk melacak nama-nama {i>database<i}.

Fitur ini tidak digunakan lagi di Chrome 58 dan sekarang dihapus.

Rencana Penghapusan | Pelacak Chromestatus | Bug Chromium

Hapus WEBKIT_KEYFRAMES_Rules dan WEBKIT_KEYFRAME_Rules

Konstanta WEBKIT_KEYFRAMES_RULE dan WEBKIT_KEYFRAME_RULE non-standar dihapus dari Aturan CSS. Sebagai gantinya, developer sebaiknya menggunakan KEYFRAMES_RULE dan KEYFRAME_RULE.

Rencana Penghapusan | Pelacak Chromestatus | Bug Chromium

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 {i>gesture <i}pengguna atau interaksi pengguna (atau jika {i>frame<i} yang tersemat telah menerima {i>gesture <i}tersebut). Untuk lebih jelasnya, ini bukanlah ubah pengiriman peristiwa beforeunload. Ini hanyalah perubahan pada apakah dialog ditampilkan.

Dialog beforeunload adalah kotak dialog modal aplikasi. Dengan demikian, secara inheren bermusuhan dengan pengguna, artinya merespons navigasi pengguna dengan mempertanyakan keputusan tersebut. Fitur ini memiliki kegunaan yang positif. Misalnya, sering digunakan untuk memperingatkan pengguna saat mereka akan kehilangan data dengan melakukan navigasi.

Meskipun kemampuan halaman untuk menyediakan teks untuk dialog beforeunload dihapus beberapa waktu lalu, dialog beforeunload tetap menjadi vektor penyalahgunaan. Di beberapa khususnya, dialog beforeunload merupakan ramuan situs scam, dengan audio putar otomatis dan teks ancaman memberikan konteks di mana Chromium diberikan "apakah Anda yakin ingin meninggalkan halaman ini" menjadi mengkhawatirkan.

Kita ingin memasukkan thread, dan hanya mengizinkan penggunaan beforeunload yang baik dialog. Penggunaan dialog yang baik adalah ketika pengguna memiliki status yang mungkin turun. Jika pengguna tidak pernah berinteraksi dengan halaman, maka pengguna tidak dapat memiliki status yang mungkin hilang, dan karena itu kita tidak risiko kehilangan data pengguna dengan menyembunyikan dialog dalam kasus tersebut.