Penghentian dan Penghapusan API di Chrome 57

Joe Medley
Joe Medley

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

Menghapus atribut BluetoothDevice.uuids

Atribut BluetoothDevice.uuids sedang dihapus untuk menyesuaikan Web Bluetooth API 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 mengontrol <keygen> di balik gestur pengguna, tetapi secara publik mendukung penghapusannya. Safari mengirimkan <keygen> dan belum menyatakan pandangan publik terkait dukungan berkelanjutannya. Dengan Chrome 57, elemen ini akan dihapus.

Intent to Remove | Chromestatus Tracker | Chromium Bug

Menghapus API pengelolaan buffering pengaturan waktu resource berawalan

Dua metode dan pengendali peristiwa, webkitClearResourceTimings(), webkitSetResourceTimingBufferSize(), dan onwebkitresourcetimingbufferfull sudah tidak digunakan lagi dan khusus vendor. Versi standar API ini telah didukung sejak Chrome 46, dan fungsi berawalan juga tidak digunakan lagi dalam versi tersebut. Fitur ini awalnya diimplementasikan 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 to Remove | Chromestatus Tracker | Chromium Bug

Menghapus ServiceWorkerMessageEvent dan menggunakan 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 to Remove | Chromestatus Tracker | Chromium Bug

Menghapus alias global IndexedDB berawalan webkit

Titik entri IndexedDB dan konstruktor global diekspos dengan awalan webkit di sekitar Chrome 11. Versi tanpa awalan ditambahkan di Chrome 24 dan versi dengan awalan tidak digunakan lagi di Chrome 38. Antarmuka berikut 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 to Remove | Chromestatus Tracker | Chromium Bug

WebAudio: Menghapus AudioContext dan OfflineAudioContext berawalan

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

Intent to Remove | Chromestatus Tracker | Chromium Bug

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 dihapus.

Intent to Remove | Chromestatus Tracker | Chromium Bug

Menghentikan penggunaan pencocokan yang tidak peka huruf besar/kecil untuk atribut usemap

Atribut usemap sebelumnya ditentukan sebagai tidak peka huruf besar/kecil. Sayangnya, implementasi ini cukup rumit sehingga tidak ada browser yang menerapkannya dengan benar. Riset menunjukkan bahwa algoritma yang rumit tersebut tidak diperlukan, dan bahkan pencocokan ASCII yang tidak peka huruf besar/kecil tidak diperlukan.

Oleh karena itu, spesifikasi diperbarui sehingga pencocokan peka huruf besar kecil diterapkan. Perilaku lama tidak digunakan lagi di Chrome 57, dan diperkirakan akan dihapus di Chrome 58.

Intent to Remove | Chromestatus Tracker | Chromium Bug

Menghentikan penggunaan FileReaderSync di pekerja layanan

Spesifikasi Pekerja Layanan selalu memiliki catatan (non-normatif) bahwa "setiap 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. Ada kesepakatan dari Firefox dalam diskusi spesifikasi bahwa hal ini harus diperbaiki. Penghapusan diperkirakan akan dilakukan di Chrome 59.

Intent to Remove | Chromestatus Tracker | Chromium Bug

Menghentikan penggunaan pemanggil lama untuk HTMLEmbedElement dan HTMLObjectElement

Antarmuka yang memiliki pemanggil lama berarti instance dapat dipanggil sebagai fungsi. Saat ini, HTMLEmbedElement dan HTMLObjectElement mendukung fungsi ini. Di Chrome 57, kemampuan ini tidak digunakan lagi. Setelah penghapusan, yang diperkirakan akan dilakukan di Chrome 58, panggilan akan menampilkan pengecualian.

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

Intent to Remove | Chromestatus Tracker | Chromium Bug

Menghentikan penggunaan RTCRtcpMuxPolicy dari "negotiate"

rtcpMuxPolicy digunakan oleh Chrome untuk menentukan kebijakan pilihannya terkait penggunaan multipleks RTP/RTCP. Di Chrome 57, kami mengubah rtcpMuxPolicy default menjadi "require" dan tidak lagi menggunakan "negotiate" karena alasan berikut:

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

Di Chrome 57, "negotiate" tidak digunakan lagi. Kami yakin ini adalah perubahan yang tidak mengganggu karena pengguna akan mendapatkan pesan penghentian dan RTCPeerConnection masih dapat dibuat. Penghapusan dilakukan di Chrome 63.

Intent to Deprecate | Bug Chromium

Menghentikan penggunaan dukungan untuk kredensial tersemat dalam permintaan subresource

Hard code kredensial ke dalam permintaan subresource bermasalah dari perspektif keamanan, karena memungkinkan peretas melakukan brute force pada kredensial di masa lalu. Bahaya ini diperburuk untuk permintaan subresource dengan kredensial 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, dan sebagai gantinya mengandalkan cookie dan mekanisme pengelolaan sesi lainnya.

Intent to Remove | Chromestatus Tracker | Chromium Bug