Penghentian dan Penghapusan API di Chrome 57

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 57, yang masih dalam versi beta mulai awal Februari. Daftar ini dapat berubah sewaktu-waktu.

Menghapus atribut BluetoothDevice.uuids

Atribut BluetoothDevice.uuids dihapus untuk menghadirkan Web Bluetooth API agar sesuai dengan spesifikasi saat ini. Anda dapat mengambil semua layanan GATT yang diizinkan dengan memanggil device.getPrimaryServices().

Bug Chromium

Menghapus elemen pembuatan kunci

Sejak Chrome 49, perilaku default <keygen> adalah menampilkan string kosong, kecuali jika izin diberikan ke halaman ini. IE/Edge tidak mendukung <keygen> dan belum menunjukkan sinyal publik untuk mendukung <keygen>. Firefox sudah melindungi <keygen> di belakang gestur pengguna, tetapi mendukung penghapusan secara publik. Safari mengirimkan <keygen> dan belum menyatakan pandangan publik terkait dukungannya yang berkelanjutan. Dengan Chrome 57, elemen ini dihapus.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghapus API pengelolaan buffering pengaturan waktu resource yang diawali

Dua metode dan sebuah pengendali peristiwa, webkitClearResourceTimings(), webkitSetResourceTimingBufferSize(), dan onwebkitresourcetimingbufferfull sudah tidak digunakan lagi dan dikhususkan untuk vendor. Versi standar API ini telah didukung sejak Chrome 46, dan fungsi berawalan juga tidak digunakan lagi pada versi tersebut. Fitur ini awalnya diterapkan di WebKit, tetapi Safari belum mengaktifkannya. Firefox, IE 10+, dan Edge hanya memiliki versi API tanpa awalan. Oleh karena itu, versi webkit akan dihapus.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghapus ServiceWorkerMessageEvent dan menggantinya dengan penggunaan MessageEvent

Spesifikasi HTML memperluas MessageEvent untuk mengizinkan ServiceWorker sebagai jenis untuk atribut source. client.postMessage() dan pembuatan peristiwa pesan kustom diubah untuk menggunakan MessageEvent, bukan ServiceWorkerMessageEvent. ServiceWorkerMessageEvent dihapus.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghapus alias global IndexedDB berawalan webkit

Titik entri IndexedDB dan konstruktor global diekspos dengan awalan webkit sekitar Chrome 11. Versi tanpa awalan ditambahkan di Chrome 24 dan versi berawalan tidak digunakan lagi di Chrome 38. Antarmuka berikut akan terpengaruh:

  • webkitIndexedDB (titik entri utama)
  • webkitIDBKeyRange (konstruktor global yang tidak dapat dipanggil, tetapi memiliki metode statis yang berguna)
  • webkitIDBCursor
  • webkitIDBDatabase
  • webkitIDBFactory
  • webkitIDBIndex
  • webkitIDBObjectStore
  • webkitIDBRequest
  • webkitIDBTransaction (konstruktor global yang tidak dapat dipanggil)

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

WebAudio: Menghapus AudioContext dan OfflineAudioContext yang diawali dengan awalan

Chrome telah mendukung WebAudio sejak pertengahan 2011, termasuk AudioContext. OfflineAudioContext ditambahkan pada tahun berikutnya. Mengingat berapa lama antarmuka standar telah didukung dan tujuan jangka panjang Google untuk menghapus fitur awalan, versi berawalan antarmuka ini tidak digunakan lagi sejak akhir 2014 dan kini dihapus.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghentikan penggunaan dan menghapus webkitCancelRequestAnimationFrame

Metode webkitCancelRequestAnimationFrame() adalah API khusus vendor yang sudah tidak digunakan lagi dan cancelAnimationFrame() standar telah lama didukung di Chromium. Oleh karena itu, versi webkit akan dihapus.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghentikan penggunaan 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 algoritme 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 akan dihapus di Chrome 58.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghentikan penggunaan FileReaderSync di pekerja layanan

Spesifikasi Pekerja Layanan selalu memiliki catatan (non-normatif) bahwa "semua jenis permintaan sinkron tidak boleh dimulai di dalam pekerja layanan", untuk menghindari pemblokiran pekerja layanan. Memblokir pekerja layanan akan memblokir semua permintaan jaringan dari halaman yang dikontrol. Sayangnya, FileReaderSync API telah lama tersedia di pekerja layanan.

Saat ini, hanya Firefox dan Chrome yang mengekspos FileReaderSync di pekerja layanan. Terdapat perjanjian dari Firefox dalam diskusi spesifikasi yang menyatakan bahwa masalah ini harus diperbaiki. Penghapusan diperkirakan akan terjadi di Chrome 59.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium

Menghentikan penggunaan 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. Setelah penghapusan, yang diharapkan di 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

Menghentikan penggunaan RTCRtcpMuxPolicy dari "negotiation"

rtcpMuxPolicy digunakan oleh Chrome untuk menentukan kebijakan pilihannya terkait penggunaan multiplexing RTP/RTCP. Di Chrome 57, kami mengubah rtcpMuxPolicy default menjadi "require" dan menghentikan penggunaan "negotiation" karena alasan berikut:

  • RTCP non-muxed menggunakan resource jaringan tambahan.
  • Menghapus "negotiation" akan membuat platform API lebih sederhana, karena "RtpSender"/"RtpReceiver" hanya akan memiliki satu transport.

Di Chrome 57, "negotiation" tidak digunakan lagi. Kami yakin ini bukan perubahan yang dapat menyebabkan gangguan karena pengguna akan mendapatkan pesan penghentian penggunaan dan RTCPeerConnection masih dapat dibuat. Penghapusan dilakukan di Chrome 63.

Rencana Penghentian Penggunaan | Bug Chromium

Menghentikan dukungan untuk kredensial yang disematkan dalam permintaan subresource

Dari perspektif keamanan, melakukan hardcode kredensial ke permintaan subresource ke dalam permintaan subresource dapat menimbulkan masalah, karena sebelumnya, peretas mengizinkan peretas untuk melakukan brute force pada kredensial. Bahaya ini akan diperburuk jika permintaan subresource berkredensial yang menjangkau rentang IP internal (router Anda, dll.). Mengingat penggunaan yang rendah, menutup celah keamanan (kecil) ini tampaknya cukup wajar.

Developer dapat menyematkan resource yang tidak memerlukan autentikasi dasar/ringkasan, tetapi dengan mengandalkan cookie dan mekanisme pengelolaan sesi lainnya.

Intent untuk Menghapus | Pelacak Chromestatus | Bug Chromium