The stadia controller bluetooth firmware unlocker was the first time I experienced WebUSB
https://stadia.google.com/controller/index_en_US.html
Today I discovered the VIA project can configure my QMK keyboards
Both of these implementations worked perfectly on my framework Chromebook. What are some other cool examples folks have seen?
But with WebUSB a page _can_ communicate directly to a yubikey and pretend it's being asked to authenticate on a different origin. It's been fixed now but it was an interesting bypass:
- https://www.yubico.com/support/issue-rating-system/security-...
- https://www.wired.com/story/chrome-yubikey-phishing-webusb/
What is the advantage of yubikey over TOTP in that scenario though?
It's amazing for students to be able to quickly get a program they've written in their browser onto a device in their hands that can respond to and interact with the real world.
Also great because with MicroPython and the Python Editor you get a standalone Python environment including REPL that's completely isolated from the PC - schools love it because no matter what the students do they're not going to break the host PCs.
(The firmware that implements web USB on the micro:bit's USB interface chip is open source, DAPLink https://github.com/ARMmbed/DAPLink)
1: https://github.com/yume-chan/ya-webadb
https://grapheneos.org/install/web
as well. I don't use Android anymore, but it's seriously cool that you can reflash the OS from a webpage.
https://usefulangle.com/web-updates/post/80/firefox-decines-...
I assume this is because of security concerns.
I reject this way of thinking. Letting bad guys dictate how you live your life and how you use your computer just doesn't scale that well.
To be fair I'm still exploring it, once you choose a USB device when prompted, is that access for the session or longer?
Sometimes they implement a seemingly innocuous API like WebMIDI, and boom, fingerprinting: https://twitter.com/denschub/status/1582730985778556931?s=20...
https://github.com/asivery/webminidisc
I just wish that VIA was a bit more robust, particularly around macros... I want to do something that does separate key down and key up events with pauses between. Unfortunately, VIA doesn't do that. And worse, my keyboard (Keychron K3 Pro) doesn't yet have a public firmware build for QMK, so I can't do it directly in there either...
(I'm trying to write a macro for blanking the screen in macOS. Normally this is ctrl-shift-eject with eject held for a brief moment, but a macro of that rarely works from VIA. It needs a little delay at the end. If I add a no-op key to the end it then works, but also leaves ctrl and shift stuck down until I manually press each of them, which is no good.)
</digress>
My only gripe is that they moved to web-only from “native” apps instead of offering both, but if that’s what needed to happen to bump up the development velocity, so be it.
Re: the delays, I think I recently saw something about delays being possible in macros now, or perhaps soon — it might have been in QMK nightly, I can’t remember.
But I otherwise agree, it really does make things easy. I just wish it did a little bit more...
Deleted Comment
https://sle118.github.io/squeezelite-esp32-installer/
https://www.esphome.io/guides/getting_started_hassio.html
[1] https://github.com/Aircoookie/WLED