WebUSB-Erweiterung für Firefox
(github.com/ArcaneNibble)- Eine Erweiterung, die die bisher nur in Chrome unterstützte WebUSB API in Firefox nutzbar macht und über den Native Messaging-Mechanismus mit einem externen Programm außerhalb des Browsers kommuniziert
- Für den Betrieb müssen sowohl die Browser-Erweiterung (.xpi) als auch der native Stub installiert werden
- Wurde mit dem Ziel der Kompatibilität zur WebUSB-Implementierung von Chrome entwickelt, kann jedoch nicht in Web Workers verwendet werden; die API wird nur auf der Hauptseite bereitgestellt
- Android wird nicht unterstützt, da dort Native Messaging selbst nicht verfügbar ist
- Vorgefertigte Binärdateien für 6 Plattformen verfügbar, darunter macOS (x86_64/ARM64), Linux (x86_64/aarch64) und Windows (AMD64/ARM64)
- Das Installationsskript (
install.sh/install.bat) übernimmt automatisch das Kopieren der Dateien und die Konfiguration des Native-Manifests - Der native Stub ist vollständig in Rust geschrieben und unterstützt standardmäßig Cross-Compilation
- Systemanforderungen: macOS 10.15+, Windows 10+, Linux-Kernel 4.8+ (udev erforderlich)
- Lizenz: 0BSD
1 Kommentare
Hacker-News-Kommentare
Früher mochte ich WebUSB/Bluetooth aus ideologischen Gründen überhaupt nicht, aber nachdem ich Anwendungsfälle wie Apps zur Steuerung von Kletterboards oder netMD zum Übertragen auf MiniDisc per USB gesehen habe, habe ich meine Meinung geändert. Für solche Zwecke erschien mir die Installation einer nativen App übertrieben, und ich freue mich, dass es jetzt auch in Firefox eine Option gibt
Ich finde WebUSB wirklich großartig. Man kann plattformübergreifende Apps verteilen, die auf Hardware zugreifen, ohne jede Plattform separat behandeln zu müssen, und Treiber lassen sich dabei einigermaßen in einer Sandbox halten. Für mehr Sicherheit wäre es aus meiner Sicht auch okay, standardmäßig nur Geräte mit WebUSB-Descriptor zu erlauben und bei allen anderen zusätzliche Warnungen anzuzeigen
Ich habe kürzlich GrapheneOS auf dem Pixel eines Freundes installiert, und es war ziemlich überraschend, dass der gesamte Vorgang im Browser allein mit WebUSB abgeschlossen werden konnte. Der einzige Nachteil war eigentlich, dass ich dafür Chromium starten musste
Projekte wie GrapheneOS, ESPHome und Meshtastic nutzen WebUSB bereits gut, und Google hat es ebenfalls verwendet, um den Stadia-Controller in ein normales Bluetooth-Eingabegerät umzuwandeln. Dasselbe gilt für Konfigurationstools von Tastaturherstellern. Da der Nutzer das Gerät ausdrücklich auswählen muss, halte ich auch das Sicherheitsmodell für vernünftig, und ich finde es schade, dass Mozilla es nativ ablehnt – ganz ähnlich wie bei anderen Entscheidungen der letzten zehn Jahre
Inzwischen werden sogar lokale Apps immer häufiger als Chrome-spezifisches HTML & JS ausgeliefert. Unabhängig davon, ob einem Browserzugriff auf USB gefällt oder nicht, gefällt mir dieser Trend, wieder zur Chrome-Nutzung gezwungen zu werden, noch weniger – das erinnert an die alte IE-Zwangszeit
Bei Bildungs-Hardwareplattformen wie dem BBC Microbit war WebUSB ein echter Game Changer. Wenn man Schüler an Hardware heranführt, funktioniert es einfach, und dank Web-IDEs wie MakeCode sowie URLs mit Code-Referenzen werden Teilen und Debugging viel einfacher
Diese Implementierung wirkt wie ein hervorragender proof of concept. Ein separater ausführbarer Prozess neben dem Browser ist zwar nicht meine gewünschte Endform von WebUSB, aber ich freue mich schon darüber, dass überhaupt jemand aktiv an einer Lösung für dieses Problem arbeitet
Meine erste Reaktion war, dass das eine schreckliche Idee ist. Ich mag es grundsätzlich nicht, wenn Websites auf Hardware zugreifen, und schon der Webcam-Zugriff ist unangenehm genug
Solange die Spezifikation noch draft ist und Sicherheitsbedenken nicht ausreichend geklärt sind, begrüße ich nicht, dass sie in den Browser kommt
Wenn WebUSB und WebBLE überall unterstützt würden, könnte ich meine IoT-App komplett als Web-Anwendung ausliefern, was meine Produktivität deutlich steigern würde. Besonders attraktiv finde ich auch, dass damit der Aufwand rund um App Stores sinkt