Ekstensi WebUSB untuk Firefox
(github.com/ArcaneNibble)- Ekstensi yang memungkinkan WebUSB API yang sebelumnya hanya didukung di Chrome digunakan di Firefox, dengan berkomunikasi dengan program di luar browser melalui mekanisme Native Messaging
- Agar berfungsi, perlu memasang dua komponen sekaligus: ekstensi browser (.xpi) dan stub native
- Dirancang dengan tujuan kompatibilitas dengan implementasi WebUSB di Chrome, tetapi tidak dapat digunakan di Web Workers, dan API hanya diekspos di halaman utama
- Android tidak didukung karena Native Messaging sendiri tidak tersedia
- Menyediakan biner pra-build untuk 6 platform termasuk macOS(x86_64/ARM64), Linux(x86_64/aarch64), dan Windows(AMD64/ARM64)
- Skrip instalasi (
install.sh/install.bat) secara otomatis menangani penyalinan file dan konfigurasi manifest native - Stub native ditulis sepenuhnya dalam Rust, dengan dukungan bawaan untuk cross-compilation
- Persyaratan sistem: macOS 10.15+, Windows 10+, kernel Linux 4.8+ (memerlukan udev)
- Lisensi: 0BSD
1 komentar
Komentar Hacker News
Dulu saya cukup tidak suka WebUSB/Bluetooth karena alasan ideologis, tapi setelah melihat kasus seperti aplikasi pengendali papan panjat tebing atau netMD untuk mentransfer ke MiniDisc lewat USB, saya berubah pikiran. Untuk kebutuhan seperti ini, memasang aplikasi native terasa berlebihan, dan saya senang sekarang ada opsi juga di Firefox
Saya merasa WebUSB benar-benar luar biasa. Kita bisa mendistribusikan aplikasi lintas platform yang mengakses perangkat keras tanpa harus menangani perbedaan tiap platform satu per satu, dan drivernya pun bisa cukup disandbox. Kalau ingin memperkuat keamanan lagi, saya rasa pendekatan yang masuk akal adalah hanya mengizinkan perangkat dengan WebUSB descriptor secara default, lalu memberi peringatan tambahan untuk yang lain
Baru-baru ini saya membantu memasang GrapheneOS di Pixel milik teman, dan cukup mengejutkan bahwa seluruh proses bisa diselesaikan di browser hanya dengan WebUSB. Satu-satunya kekurangan mungkin hanya harus membuka Chromium
Proyek seperti GrapheneOS, ESPHome, dan Meshtastic sudah memanfaatkan WebUSB dengan baik, dan Google juga memakainya untuk mengubah kontroler Stadia menjadi perangkat input Bluetooth biasa. Hal yang sama juga berlaku untuk alat konfigurasi dari produsen keyboard. Karena pengguna harus memilih perangkat secara eksplisit, saya rasa model keamanannya cukup masuk akal, dan sikap Mozilla yang menolaknya secara native terasa mengecewakan, mirip dengan pola yang mereka tunjukkan selama 10 tahun terakhir
Belakangan ini bahkan aplikasi lokal pun makin sering didistribusikan dalam bentuk html & js khusus Chrome. Terlepas dari suka atau tidaknya browser mengakses USB, saya lebih tidak suka tren yang kembali memaksa penggunaan Chrome seperti pada era lama ketika IE diwajibkan
Pada platform perangkat keras pendidikan seperti BBC Microbit, WebUSB adalah game changer. Saat memperkenalkan perangkat keras kepada siswa, semuanya langsung berjalan dengan baik, dan berkat web IDE seperti MakeCode serta URL referensi kode, berbagi dan debugging juga jadi mudah
Implementasi ini tampak seperti proof of concept yang bagus. Menjalankan executable terpisah di samping browser bukan bentuk akhir WebUSB yang saya inginkan, tapi saya tetap senang hanya karena ada orang yang benar-benar sedang mencoba memecahkan masalah ini
Reaksi pertama saya adalah ini ide yang mengerikan. Saya memang tidak suka situs web mengakses perangkat keras, dan akses webcam saja sudah cukup membuat tidak nyaman
Saya masih belum menyambut baik masuknya ini ke browser selama spesifikasinya masih berstatus draft dan kekhawatiran soal keamanan belum cukup terjawab
Jika WebUSB dan WebBLE didukung di mana-mana, saya rasa produktivitas saya akan naik besar karena aplikasi IoT saya bisa didistribusikan hanya lewat web. Berkurangnya kerepotan terkait app store terasa sangat menarik