Penghentian dan Penghapusan di Chrome 58

Joe Medley
Joe Medley

Di hampir setiap versi Chrome, kami melihat sejumlah update dan peningkatan yang signifikan pada produk, performanya, dan juga kemampuan Platform Web. Artikel ini menjelaskan penghentian penggunaan dan penghapusan di Chrome 58, yang masih dalam versi beta per 16 Maret. Daftar ini dapat berubah sewaktu-waktu.

Mouse di Android berhenti mengaktifkan TouchEvents

Hingga Chrome 57, peristiwa mouse level rendah Android di Chrome terutama mengikuti jalur peristiwa yang dirancang untuk interaksi sentuh. Misalnya, gerakan tarik mouse yang terjadi saat tombol mouse ditekan akan menghasilkan MotionEvents, yang dikirim melalui View.onTouchEvent.

Namun, karena peristiwa sentuh tidak dapat mendukung pengarahan kursor, gerakan mouse akan mengikuti jalur terpisah. Desain ini memiliki banyak efek samping termasuk interaksi mouse yang mengaktifkan TouchEvents, semua tombol mouse muncul sebagai tombol mouse kiri, dan MouseEvents ditekan oleh TouchEvents.

Mulai Chrome 58, mouse di Android M atau yang lebih baru akan:

  • Tidak lagi mengaktifkan TouchEvents.
  • Aktifkan urutan MouseEvents yang konsisten dengan tombol yang sesuai dan properti lainnya.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghapus pencocokan yang tidak peka huruf besar/kecil untuk atribut usemap

Atribut usemap sebelumnya ditetapkan sebagai tanpa huruf besar/kecil. Sayangnya, penerapannya cukup rumit sehingga tidak ada browser yang menerapkannya dengan benar. Penelitian menunjukkan bahwa algoritma yang rumit seperti itu tidak diperlukan, dan bahkan pencocokan ASCII yang tidak peka huruf besar/kecil pun tidak diperlukan.

Akibatnya, spesifikasi diperbarui sehingga pencocokan yang peka huruf besar/kecil diterapkan. Perilaku lama tidak digunakan lagi di Chrome 57, dan kini telah dihapus.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghapus navigasi bingkai atas yang dimulai konten ke URL data

Karena mereka tidak terbiasa dengan pengguna browser nonteknis, sekarang kami semakin melihat skema data: yang 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 di bawah oleh halaman.

Fitur ini akan dihapus di Chrome 60.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghapus nama yang tidak digunakan lagi untuk properti jalur gerakan

Properti CSS jalur gerakan memungkinkan penulis menganimasikan objek grafis apa pun di sepanjang jalur yang ditentukan penulis. Sesuai dengan spesifikasi ini, beberapa properti diterapkan di Chrome 45. Nama properti ini diubah dalam spesifikasi pada pertengahan 2016. Chrome menerapkan nama baru tersebut di Chrome 55 dan Chrome 56. Peringatan penghentian konsol juga diterapkan.

Di Chrome 58, nama properti lama akan dihapus. Properti yang terpengaruh dan nama barunya ditampilkan di bawah ini.

Properti yang Dihapus Nama Saat Ini
jalur gerak jalur-offset
offset gerakan jarak offset
rotasi-gerak offset-rotasi
gerakan offset

Rencana Penghapusan

Menghapus EME dari konteks yang tidak aman

Beberapa penggunaan Encrypted Media Extensions (EME) mengekspos implementasi pengelolaan hak digital yang bukan open source, melibatkan akses ke ID unik persisten, dan/atau menjalankan tanpa sandbox atau dengan akses istimewa. Risiko keamanan meningkat untuk situs yang terekspos melalui HTTP yang tidak aman karena dapat diserang oleh siapa saja di saluran tersebut. Selain itu, jika izin pengguna diperlukan, penerimaan yang dipertahankan untuk situs HTTP yang tidak aman dapat dieksploitasi oleh penyerang tersebut.

Dukungan untuk konteks yang tidak aman telah dihapus dari spesifikasi EME versi 1 dan tidak didukung dalam rekomendasi yang diusulkan atau diantisipasi dalam final berikutnya. Tidak akan ada dalam rekomendasi yang diusulkan mendatang atau rekomendasi akhir berikutnya. API telah menampilkan pesan penghentian penggunaan pada origin yang tidak aman sejak Chrome 44 (Mei 2015). Di Chrome 58, tindakan ini kini telah dihapus. Perubahan ini adalah bagian dari upaya kami yang lebih luas untuk menghapus fitur canggih dari origin yang tidak aman.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghapus pemanggil lama untuk HTMLEmbedElement dan HTMLObjectElement

Jika antarmuka memiliki pemanggil lama, artinya instance dapat dipanggil sebagai fungsi. Saat ini, HTMLEmbedElement dan HTMLObjectElement mendukung fungsi ini. Di Chrome 57, kemampuan ini tidak digunakan lagi. Mulai Chrome 58, panggilan akan menampilkan pengecualian.

Perubahan ini membuat Chrome sejalan dengan perubahan spesifikasi terbaru. Perilaku lama tidak didukung di Edge atau Safari, dan akan dihapus dari Firefox.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghapus cipher ChaCha20-Poly1305 pra-standar

Pada tahun 2013, Chrome 31 men-deploy cipher suite TLS baru berdasarkan algoritma ChaCha20 dan Poly1305 Prof. Dan Bernstein. Versi ini kemudian distandardisasi, dengan sedikit penyesuaian, di IETF sebagai RFC 7539 dan RFC 7905. Kami mengirimkan varian standar tersebut pada awal tahun 2016 dengan Chrome 49. Kini kami menghapus varian pra-standar.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghapus dukungan untuk pencocokan commonName di sertifikat

RFC 2818 menjelaskan dua metode untuk mencocokkan nama domain dengan sertifikat: menggunakan nama yang tersedia dalam ekstensi subjectAlternativeName, atau, jika tidak ada ekstensi SAN, kembali ke commonName. Penggantian ke commonName tidak digunakan lagi dalam RFC 2818 (dipublikasikan tahun 2000), tetapi dukungan tetap ada di sejumlah klien TLS, sering kali secara keliru.

Penggunaan kolom subjectAlternativeName membuat tidak ambiguitas sertifikat menyatakan binding ke alamat IP atau nama domain, dan sepenuhnya ditentukan dalam hal interaksinya dengan Batasan Nama. Namun, commonName bersifat ambigu, dan karena itu, dukungan untuknya telah menjadi sumber bug keamanan di Chrome, library yang digunakannya, dan dalam ekosistem TLS secara keseluruhan.

Risiko kompatibilitas untuk menghapus commonName rendah. RFC 2818 telah menghentikan penggunaan ini selama hampir dua dekade, dan persyaratan dasar pengukuran (yang harus dipatuhi oleh semua certificate authority yang tepercaya secara publik) mengharuskan kehadiran subjectAltName sejak 2012. Firefox sudah mewajibkan subjectAltName untuk setiap sertifikat tepercaya publik yang baru diterbitkan sejak Firefox 48.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Elemen antarmuka regions, addRegion(), dan removeRegion() telah dihapus dari spesifikasi WebVTT dan dihapus di Chrome 58 untuk mematuhi spesifikasi terbaru. Kami memperkirakan dampak yang kecil dari penghapusan ini karena fitur tidak pernah diaktifkan secara default (artinya di balik tanda). Mereka yang membutuhkan alternatif dapat menggunakan properti VTTCue.region yang ditambahkan di Chrome 58.

Pelacak Chromestatus | Bug Chromium

WebAudio: menghapus antarmuka AudioSourceNode

Antarmuka AudioSourceNode bukan bagian dari spesifikasi Audio Web, tidak dapat dibuat, dan tidak memiliki atribut sehingga pada dasarnya tidak memiliki fungsi yang dapat diakses developer. Oleh karena itu, status tersebut sedang dihapus.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghapus atribut global webkitdropzone

Atribut global dropzone diperkenalkan oleh spesifikasi tarik lalu lepas HTML5 sebagai metode deklaratif untuk menentukan kesediaan elemen HTML untuk menjadi target operasi tarik lalu lepas, jenis konten yang dapat ditempatkan ke elemen, dan operasi tarik lalu lepas (salin/pindahkan/link).

Atribut gagal mendapatkan perhatian di antara vendor browser. Blink dan WebKit hanya menerapkan bentuk awalan dari atribut, webkitdropzone. Karena atribut dropzone telah dihapus dari spesifikasi pada awal Maret 2017, versi yang berawalan akan dihapus dari Chrome.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghentikan penggunaan notifikasi yang tidak aman

Notifikasi adalah fitur canggih karena memungkinkan situs memanggil UI sistem untuk mengirimkan informasi pribadi itu sendiri atau sinyal bahwa informasi pribadi telah diubah. Penyerang dapat mengendus atau mencuri informasi apa pun yang dikirim melalui notifikasi pada koneksi yang tidak aman. Push web memerlukan origin yang aman, jadi perubahan ini akan menyelaraskan notifikasi non-push dengan notifikasi push. Perubahan ini adalah bagian dari upaya kami yang lebih luas untuk menghapus fitur canggih dari origin yang tidak aman.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghentikan penggunaan notifikasi dari iframe yang tidak aman

Permintaan izin dari iframe dapat membingungkan pengguna karena sulit untuk membedakan asal halaman penampung dan asal iframe yang membuat permintaan. Jika cakupan permintaan tidak jelas, pengguna akan kesulitan untuk menilai apakah akan memberikan atau menolak izin.

Melarang notifikasi di iframe juga akan menyelaraskan persyaratan untuk izin notifikasi dengan notifikasi push, sehingga memudahkan developer.

Developer yang memerlukan fungsi ini dapat membuka jendela baru untuk meminta izin notifikasi.

Penghapusan dilakukan di Chrome 62.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghapus indexedDB.webkitGetDatabaseNames()

Kami menambahkan fitur ini saat Indexed DB relatif baru di Chrome dan penggunaan awalan adalah hal yang populer. API secara asinkron menampilkan daftar nama database yang ada di origin, yang tampaknya cukup logis.

Sayangnya, desain ini memiliki kekurangan, sehingga hasilnya mungkin sudah tidak berlaku segera setelah ditampilkan, sehingga benar-benar hanya dapat digunakan untuk logging, bukan logika aplikasi yang serius. Masalah github melacak/menautkan ke diskusi sebelumnya tentang alternatif, yang akan memerlukan pendekatan berbeda. Meskipun ada minat yang tidak diinginkan oleh developer, mengingat kurangnya progres lintas browser, masalah tersebut telah diatasi oleh penulis library.

Developer yang membutuhkan fungsi ini perlu mengembangkan solusi mereka sendiri. Library seperti Dexie.js misalnya menggunakan tabel global yang merupakan database lain untuk melacak nama database.

Fitur ini dihapus di Chrome 60.

Rencana Penghentian Penggunaan | Pelacak Chromestatus | Bug Chromium