#WebUSB

Kevin Karhan :verified:kkarhan@infosec.space
2025-12-04

@wolf480pl yeah, because the idea is that #drivers should hook in the #USB stack and unless it's a Universal Class Driver should just passthrough to the driver / userspace application for ease of support.

plaesplaes
2025-12-03

@codinghorror @leon

Yeah, it's using either webusb or webserial which are only supported on Chromium-based browsers :(

Firefox decided to not implement these to APIs citing security concerns :(

2025-11-22

A lot of the development efforts (both creative and destructive) in web browsers in the last decade+ has been going into fostering the “web app” vision of the web, to the detriment of the “web of documents” vision. From the removal of native support for #RSS and #Atom to the introduction of JavaScript APIs like #WebUSB or the “Web Environment Integrity” attempt, nearly all work done on browsers has been in this direction.

8/

Simon Zerafa (Status: 🙂🖥️🚗)simonzerafa@infosec.exchange
2025-10-13

I really do wish that @mozilla would allow Firefox to support WebUSB, if not as a core feature, then as an optional extension 😕

#Firefox #WebUSB

in ♥️ with PDA (and 🐧)inlovewithpda@chaos.social
2025-09-21

Help! My #chromium does not access my #keychron keyboard in #debian oder #webusb

NotAllowedError: Failed to open the device.

:hacker_p: :hacker_f: :hacker_t:pft@infosec.exchange
2025-09-12

#Mozilla (#Firefox) argument against Web #WebUSB/#WebBluetooth is basically "well, you're too dumb to understand the risks and we're to dumb to explain it to you. So let's just leave it."

mozilla.github.io/standards-po

Ich finde diese Umfrage zu #HTML & Co. inhaltlich interessant, um auf ein paar wenig bekannte oder selten verwendete Techniken zu stoßen.

Für mich erstaunlich, dass #WebUSB erwähnt wird, aber die in den letzten Wochen im Kontext des #Calliopemini eingesetzte #WebSerialAPI nicht.

survey.devographics.com/survey

Von daher Finger weg von Zadig und #WebUSB ist wohl aktuell kein Thema für Datenkopplungen zwischen #Calliopemini und Browsern. Selbst wenn das mal klappen sollte, wären die Möglichkeiten auch nicht umfänglicher als die von mir mit der #WebSerialAPI probierten Ansätze zum Empfangen und Senden von Daten (wäre dann auch nur für V3 einsetzbar, meine Beispiele laufen mit V1/V2/V3).

Als letzte Option noch die Verbindung eines #Calliopemini 3 über #WebUSB probiert. Formale Kopplung ok:

const device = await navigator.usb.requestDevice({ filters: [{ vendorId: 0x0D28, productId: 0x0204 }] });

Beim folgenden await device.open(); kommt jedoch direkt access denied. Alle nachlesbaren Ideen halfen nicht, u. a. mit einem Tool namens »Zadig« WinUSB-Treiber nachzuladen. Fehler bleiben gleich, aber man zerschießt sich damit auch die bisherigen funktionierenden seriellen Zugriffe.

Tool Zadig für Aktionen mit USB-Geräten wie Treiberaktualisierung
Kurt Kremitzkikkremitzki
2025-08-25

I kinda think should just do at this point

2025-06-17

because @mozilla thinks someone might be able to do harmful things with #WebUSB they do not want to add WebUSB to #firefox.

I wonder if #mozilla has ever heard about the possibilities of JavaScript. 🙄

reference: mozilla.github.io/standards-po

2025-04-11

Это под силу даже веб-разработчику! Размышляю, как создать драйверы на JavaScript с API WebUSB

Привет! Я Игорь Кечайкин, руководитель группы разработки во Frontend-команде Flocktory. Недавно, решая задачу, связанную с API WebUSB для Fingerprint-атрибуции пользователя, задался совершенно не связанным теоретическим вопросом: а как создать с этим API драйверы на JavaScript? Чтобы разобраться, изучил спецификацию API WebUSB, а теперь принёс на Хабр выжимку самых важных элементов. В статье я расскажу о принципах работы решения и том, что с ним делать веб-разработчику, который хочет напрямую реализовать на сайт функцию, например, 3D-принтинга с пользовательских девайсов. А также вы узнаете, насколько это безопасно — для сайта, внедряющего API, и для девайсов юзера. Если интересно, как расширить возможности своих сайтов и избавиться от головной боли с адаптацией под всевозможные устройства, заходите в статью.

habr.com/ru/companies/flocktor

#webusb #браузеры #hardware #javascript #embedded #w3c #drivers #usbif #chromium #мнение

N-gated Hacker Newsngate
2025-03-14

Another day, another 🥪 of wrapped in a desperate attempt to make relevant again. Instead of waiting for , let's just build an entire Rube Goldberg machine to reinvent the wheel! As if GitHub isn't already bursting with enough "ingenious" hacks nobody asked for. 🙄
github.com/ArcaneNibble/i-cant

Hacker Newsh4ckernews
2025-03-14

I-cant-believe-its-not-webusb: Hacking around lack of WebUSB support in Firefox

github.com/ArcaneNibble/i-cant

-cant-believe-its-not-webusb

2024-11-25

I've used #webusb again. It's been a super convenient way of installing #grapheneos : grapheneos.org/install/web
Unfortunately, it works in Chrome only. Ubuntu's snapped Chromium doesn't work. But I could isolate Google through #flatpak .

2024-11-16

I've written a small utility to use my #heatit USB-C gadget rather than using the official app: github.com/muelli/heatit
I also produced a small #WebUSB site! capable-otter-a0e467.netlify.a
Now you can get your treatments without being tracked by their app.

Chordian 🇩🇰🎵chordian
2024-11-08

A new SID handler with WebUSB support for USBSID-Pico has been added to Hermit's emulator by LouD. Note that WebUSB can be quite demanding resource wise. github.com/LouDnl/USBSID-Pico

2024-09-09

After remapping some keys with a locally installed version of #chrysalis (the configuration software) I've realized there is an online version at chrysalis.keyboard.io

#webUSB for the win!

Mäh W. 🔜 39C3maehw@chaos.social
2024-07-22

Dear folks of #JavaScript #async #programming. This #Promise stuff is still voodoo to me. Any simple solution to set a timeout on this byte-receiving loop? I have to collect data from an USB IN endpoint... and let's assume(!) I don't know when I am done (how much data to receive) so that I always have to cancel the last started `transferIn` (#WebUSB) after a timeout (let's say 500 milliseconds). How would you do it? I've trued hacky Promise/timeout stuff, but don't feel comfortable with it.

My JavaScript source code snippet inside an async function:

```
        let rxBuffer = new Uint8Array([]);
        let startTs = Date.now();

        while(success && ((Date.now() - startTs) < 1000)) {
            console.log("Diff: ", (Date.now() - startTs))
            result = await usbDevice.transferIn(usbRxEndpoint, 8);
            success = (result.status == 'ok');

            if(!success) {
                console.log("Failed to transfer in.");
            }
            else {
                console.log("In transfer successful.");
                rxBuffer = concatBuffers(rxBuffer, result.data.buffer);
                console.log("[RXM]", array2hex(result.data.buffer));
                console.log("[RXM_ALL]", array2hex(rxBuffer));
            }
        }
```The browser's console log. You can see that I receive data byte-wise... and after successfully receiving a byte, I poll for another byte. I must abort after a timeout.. as I don't seem to get more data there.

Code hangs after "Diff: 545" and does not return (blocking wait which I want to abort with a timeout).

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst