Extension WebUSB pour Firefox
(github.com/ArcaneNibble)- Une extension qui permet d’utiliser l’API WebUSB, auparavant prise en charge uniquement par Chrome, dans Firefox, en communiquant avec un programme externe au navigateur via le mécanisme de Native Messaging
- Nécessite l’installation conjointe de l’extension de navigateur (.xpi) et d’un stub natif pour fonctionner
- Conçue avec pour objectif la compatibilité avec l’implémentation WebUSB de Chrome, mais inutilisable dans les Web Workers ; l’API n’est exposée que sur la page principale
- Android n’est pas pris en charge, car Native Messaging n’y existe pas
- Fournit des binaires précompilés pour 6 plateformes, dont macOS (x86_64/ARM64), Linux (x86_64/aarch64) et Windows (AMD64/ARM64)
- Les scripts d’installation (
install.sh/install.bat) automatisent la copie des fichiers et la configuration du manifeste natif - Le stub natif est entièrement écrit en Rust, avec prise en charge native de la compilation croisée
- Configuration système requise : macOS 10.15+, Windows 10+, noyau Linux 4.8+ (udev requis)
- Licence : 0BSD
1 commentaires
Commentaires sur Hacker News
Avant, je détestais assez fortement WebUSB/Bluetooth pour des raisons idéologiques, mais j’ai changé d’avis en voyant des cas comme les applis de contrôle de panneaux d’escalade ou netMD pour transférer vers un MiniDisc en USB. Installer une appli native me semblait excessif pour ce genre d’usage, donc je suis content de voir qu’il existe maintenant une option aussi dans Firefox
Je trouve WebUSB vraiment excellent. On peut distribuer des applis cross-platform qui accèdent au matériel sans gérer tous les écarts entre plateformes, et les pilotes peuvent être sandboxés de manière raisonnable. Pour renforcer encore la sécurité, il serait aussi envisageable de n’autoriser par défaut que les appareils avec des descripteurs WebUSB, avec un avertissement supplémentaire pour les autres
J’ai récemment installé GrapheneOS sur le Pixel d’un ami, et j’ai été assez surpris qu’on puisse faire tout le processus depuis le navigateur avec WebUSB seulement. Le seul inconvénient, c’était qu’il fallait lancer Chromium
Des projets comme GrapheneOS, ESPHome et Meshtastic exploitent déjà très bien WebUSB, et Google l’a aussi utilisé pour transformer les manettes Stadia en périphériques Bluetooth standard. Même chose pour les outils de configuration des fabricants de claviers. Comme l’utilisateur doit sélectionner explicitement l’appareil, le modèle de sécurité me paraît raisonnable, et je trouve regrettable que Mozilla refuse cela nativement, dans une attitude qui rappelle assez ce qu’on a vu chez eux ces 10 dernières années
Aujourd’hui, même des applis locales sont de plus en plus distribuées sous forme de html & js réservés à Chrome. Indépendamment de ce qu’on pense de l’accès USB depuis le navigateur, je déteste encore plus l’idée de se voir à nouveau imposer Chrome, comme à l’époque où IE était incontournable
Sur des plateformes matérielles éducatives comme le BBC Microbit, WebUSB a changé la donne. Pour faire découvrir le matériel aux élèves, ça fonctionne simplement, et grâce à des IDE web comme MakeCode ainsi qu’aux URL de référence du code, le partage et le débogage deviennent aussi beaucoup plus simples
Cette implémentation ressemble à une excellente proof of concept. Faire tourner un exécutable séparé à côté du navigateur n’est pas la forme finale de WebUSB que j’aimerais, mais je suis déjà content de voir que quelqu’un travaille réellement à résoudre ce problème
Ma première réaction a été de penser que c’était une idée affreuse. Je n’aime pas que des sites web accèdent au matériel, et l’accès à la webcam est déjà largement assez pénible comme ça
Pour l’instant, la spécification est encore à l’état de draft, et tant que les inquiétudes de sécurité ne seront pas suffisamment levées, je ne me réjouis pas de la voir arriver dans les navigateurs
Si WebUSB et WebBLE étaient pris en charge partout, je pourrais distribuer mon appli IoT uniquement via le web, ce qui ferait énormément monter ma productivité. La réduction des tracas liés aux app stores est particulièrement attirante