A downloadable program would be better for if the website were to ever go offline.
post
All of these wed based uber-projects are built on Chrome. This is bad. This gives more control to google and strengthens their strangle hold over web technologies.
It's also bad because why the fuck should a web browser have that much access to the hardware to begin with?!
Also why the fuck is the OS giving the web browser the option of giving it that access to the hardware?
Considering they made Chrome an entire OS... It was sort of necessary for that and probably minimal to bring it to the regular desktop browser.
Otherwise it doesn't really need to, other than simplicity for the end user. Being able to just go to the website regardless of platform and not having to install anything, or keep anything up to date, is a nice end user experience.
Considering they made Chrome an entire OS… It was sort of necessary for that and probably minimal to bring it to the regular desktop browser.
That's both plausible and insightful on your part. Thanks!
That said, just because they could easily do it on the non-ChromeOS version of the browser doesn't mean they should have.
Chrome OS existed long before this API, it has a Linux base to handle this kind of thing.
it doesn't really need to, other than simplicity for the end user
Not being a jerk, trying to be succinct, but this is you missing or disregarding a crucially important point, in a dozen words.
Cause WebUSB still only exists on Chrome, even though Mozilla and Apple had 9 years to catch up: https://developer.mozilla.org/en-US/docs/Web/API/WebUSB_API#browser_compatibility
"to catch up", while they deliberately choose not to implement this. they don't just not do it, they outlined why.
their competitor has an advantage and real leverage, I'd say that's enough reason in economics? I get why it isn't implemented, but all that means is that chromium has the high ground when it comes to this.
This is exactly why economics, or any discipline, should not be permitted to dictate the function or structure of a system in a domain outside of its area of expertise.
Maybe some of the other browsers should implement the tech needed to do this kind of thing then? Cause as far as I know, Chrome is the only browser that can give a websites access to USB.
Because it's complex, a security problem and largely unneccessary.
Jesus fucking christ can't you people ever just let something be good for once
Adding security, compatability, and vendor lock-in issues in exchange for convenience is not a good thing. Remember ActiveX and Silverlight? They forced users into uning IE. I am still finding industrial applications whos only config page is some ancient, IE only, nightmare.
Cant wait for Adobe Flash to make a comeback resulting in us being forced to use it to do something asinine like pay rent
In this case the spec is published, so it wouldn't be a lock-in or compatibility issue if the other vendors didn't lock themselves out.
Security, I get, but when I've used it to flash esp32s before the user agent pops up a box asking me which device I want to give access to before the website sees anything, so it's not transparent and it doesn't give it access to everything on my system.
I use Firefox all the time, but keep a Chromium on my system basically for stuff like this occasionally, and also web calls because Firefox's implementation of the audio API doesn't let me change microphones in the webapp, it just exposes one mic, and I've had issues with that before, so I join all calls in Chromium.
They say they're doing a webbased updater so that their software will work with all operating systems.... not said is that their online updater only works with chromium based browsers.... so...
https://web.8bitdo.com/browser-support

That's actually a limitation on the Firefox side, they just flat out refuse to implement webusb. Any webapp that works with usb devices does the same thing. I've raged at Mozilla about this the last time they asked for my feedback and had no response.
WebUSB is absurd and shouldn't exist. Web apps should not ever be able to work with USB devices! The core concept is wrong!
A website shouldn't even be allowed to know if I have a USB port at all, let alone anything else about my hardware. I'm not even convinced it should be allowed to know the viewport size of the browser window! All these APIs just make the attack surface fucking gargantuan and open up infinite opportunities for browser fingerprinting. They should be Considered Harmful and abolished.
It is super helpful for flashing a pixel to GrapheneOS, especially for non technical folk
If they managed to install chrome and finding their way to grapheneos they can manage installing another program for flashing.
The convenience of webusb is pretty overrated, id rather have my browser not tell any site everything asked and more.
You don't have to use it.
until google, microsoft, and all the big companies decide everything should be hosted and owned by them. having a browser do everything you can do locally is the first step to locking down the OS so everything can be subscription based. these giants love being able to use standards as a way to kill competition.
I agree. It should be an opt-in permission, per-site, with the possibility to silently auto-reject always by default. Same with all the other advanced APIs like Wifi-Geolocation and WebGL etc, as they already mostly in my browser (Librewolf). These APIs are a trojan horse for fingerprinting, and it shows. If they weren't, they wouldn't mind disabling them by default.
Ah my bad. Commenter you're replying to is saying we never should have built this capability, and it's a terrible idea (my own words now) to weaken boundaries to this degree, it can never be done "safely".
But it does exist, and your own request to opt in is reasonable and would mark an improvement.
spoiler
My initial hasty comment:
What? No, it shouldn't exist. Either I'm trippin or you missed the point of the comment you're responding to.
"Opt-in" (your preference) can only exist if the capability exists. Comment says it shouldn't. Commenter is correct.
What is it you are saying...?
Honestly, this is such a shortsighted take. Awesome, instead of a simple "Allow?" dialogue to give the sandboxed website access to one specific USB device through an (over time) more and more well-tested implementation, we have to download untrusted binaries that by default get full access to large amounts of user data.
What are you so afraid of? It's already been live in Chromium browsers for a while, and the sky hasn't fallen. And I'm convinced it has largely improved security for users who flash Arduino-like devices, smart home stuff, some phones and a bunch of keyboard/mouse stuff.
give the sandboxed website access to one specific USB device
That is exactly how it works. You get a prompt like this you have to chose a device, and only then does a website get access to it via WebUSB.
,
(From the documentation: https://developer.chrome.com/docs/capabilities/usb)
You can also disable WebUSB permission requests globally in Chromium: 
Yeah, Chromium's implementation is IMO very elegant and genuinely improves security for most people. That's why I'm a little miffed by comments that paint it as an obviously terrible feature, just like happens with the "read/write to a specific local folder" API.
These days, new browser features often aren't in the users best interest, I understand and share the commonly discussed concerns on those. But compared to the alternatives, these specific APIs genuinely improve safety for most users AND make things more accessible for newbies and pros alike. Blocking them on principle (& without specific technical concerns) will not protect users when their remaining option gives malicious actors far more access without any exploits!
I don't use Chromium browsers. I'm afraid of the sky falling (it is). I have been "afraid" of it for a good long while, and it is occurring.
That's general - in this specific case, by my reckoning, it can never be safe for a website to understand, in any depth, the hardware of the machine requesting it.
I'm afraid of the sky falling (it is).
Somehow, I must've missed all these cases where bad actors abused the WebUSB API. So what did they do? What's the worst damage the victims have suffered?
That's general - in this specific case, by my reckoning, it can never be safe for a website to understand, in any depth, the hardware of the machine requesting it.
You still haven't explained: why? When the options are "website" or "untrusted binary", the website is objectively much safer. Sure, you can sandbox untrusted binaries - but then you can just sandbox the browser.
Yes, there are security concerns, but these fears haven't been confirmed in real life, and they don't disappear if we ban WebUSB! Instead, people have to run untrusted code with access to far more hardware than WebUSB allows.
Sorry, when I said "sky is falling" I meant a general erosion of user security and privacy, when using our "own" devices. Things like even systemd working to accommodate OS-level age verification these days. To me, the capability of WebUSB is a bad idea, because I simply never want that path for potential data flow even available, for the things my machine is used to do.
I do see what you mean about use cases like you're describing, though, for flashing devices, and I concede the point that flashing random binaries isn't meaningfully better and probably is a bit worse.
I still don't want that capability anywhere near my own machine, for all of the not-that-use-case reasons. I do see your use case, do you see my concern?
I do understand your concerns regarding safety, but not having WebUSB does not guarantee that malicious websites can't access your USB devices. Both Firefox and Chromium already interact with your USB devices to provide features like debugging over USB, so malicious websites that exploit browser bugs are able to talk to your devices either way. And if we don't count browser bugs, you can simply set your browser to block WebUSB by default to arrive at the same outcome.
Of course there is a chance that specific exploits could work in one case and not the other, but that's something the real-life statistics haven't shown to be an issue so far. Browsers are generally pretty safe these days due to multiple layers of sandboxing, so I'd be surprised to see major WebUSB-specific security exploits appearing in the future.
Edited to add:
Sorry, when I said "sky is falling" I meant a general erosion of user security and privacy, when using our "own" devices.
Same here, I hate the direction things are already clearly heading towards on mobile, and I expect desktops to get enshittified as well soon enough. But I see WebUSB as a major positive in that context (since it allows users to take control of their devices in a much easier and safer manner, & mostly guarantees backwards compatibility of such tools for many years to come). And although I've read comments similar to yours many times - this topic gets brought up fairly often - nobody has explained concrete technical issues that are likely to bite us.
I don't have much else to add. You've clearly thought about this topic (WebUSB) more than I have, and I've given people grief in the past for similarly thin arguments slandering Signal over "what if" type scenarios.
In the end I am saying I wish we didn't have things that we already have, which is ultimately pointless anyway. I wish the nature of interacting with a website was much more strictly one directional. I wish it was never considered appropriate for a remote server to learn about or interact with my own requesting hardware. There are a hundred other things I don't want that we have, many much more impactful than this. You seem much more open-minded, and regardless clearly a lot of the rest of the world agrees with you.
Think we just disagree, but I also don't mean to blow WebUSB out of proportion. Plenty worse things for me to get worked up about that also aren't going anywhere.
On the one hand I agree with the sentiment, but how else is a web based update app for a usb device supposed to work?! We can make an argument for fwupd or a custom built app but the webapp is a smaller barrier for a lot of hardware companies.
how else is a web based update app for a usb device supposed to work?!
It's not! It's a thing nobody in their right mind should want to do in the first place!
That question is like asking "how else is a shotgun-based dental pick supposed to work?" The things just don't go together and you shouldn't try to force them to!
Also, we already had an appropriate technology for this sort of thing (having a cheaply-made app that runs everywhere and doesn't have to be pretty): it's called "plain old fuckin' Java."
Yea it's the same requirement that GrapheneOS has for their web installer. Definitely a Firefox issue.
not said is that their online updater only works with chromium based browsers
Currently, it only supports Chromium-based browsers.
Second paragraph, yo.
I refused to install a Chromium based browser until recently, which was needed as a dependency for some software. At least it supports the base Chromium, which is free from all those bullshit of the other browsers its based on. I just recently updated the driver in a virtual machine with Windows 10 and their software installed. So using Chromium would be an improvement here. Still sad I have to use a different browser than Firefox, but Chromium will be just my "firmware-updater" and not my browser at all.
Good stuff 8BitDo. I'm currently a GameSir enjoyer, but this kinda stuff is why 8BitDo is still considered the gold standard for controllers.
So for the very kind of people who tend to not use Chrome because they're privacy aware and actually tend to use Ad-Blockers, and who are very likely to be fine with standalone apps, they don't make a standalone firmware updater app and instead make a Chrome only firmware updater.
I mean, I get it that in Linux accessing a USB-serial device from userspace can require an extra step (add user to "dialout" group), but it's hardly something that takes more than 1 paragraph to fully explain and you can do the check for access denied in the app and only prompt the user to do it if that error occurs.
Believe it or not, people use Linux for more than just privacy reasons.
I thought it was because Firefox refuses to add webusb? I've never seen a web flasher that worked in firefox, always had to use chrome for meshtastic fashing, android web flashers, slimevr firmware updaters, etc.
I heard they recently changed their stance, but as far as I know you're right on the money.
Installed the 8bitdo windows software using Lutris on Bazzite and it worked just fine for me.
You don't need exactly Google's Chrome though. ungoogled-chromium works as well and it doesn't send a bit to any of Big Tech's servers.
I have it installed and I have already bookmarked 10+ different flashers and updaters I've needed so far. And I genuinely think it's better than 10+ poorly made Electron apps I'd have to install instead.
Though I wouldn't daily drive a browser that allows websites to screw my USB devices.
You could already run the firmware updater with Proton/Wine though? At least I didn't have an issue with that, but its obviously not helpful to everyone considering the many flavours of linux. Nice that they recognize and are at least trying to address the issue though
I got it working on Wine eventually but I do recall having to hunt down instructions for the terminal so it would properly read my USB port. It was definitely confusing, and I'm glad I won't have to remember all the steps again.
Their firmware updater is so trash that it doesn't work on Windows. I never got it to recognize my controller. Hopefully this one is better.
Where's the difference? A program still has to fetch drivers and software from somewhere.
So we can now download software from our browsers, and we no longer need to use specialized downloader app? I must be really out of touch.
Yes but only in Chromium-based browsers as only those support the direct USB connection to the device.
They probably have the hardware run in USB-Serial mode (rather than the usual USB-HID mode of controller, keyboards and mice which has no capability to upload any significant data - beyond LED status - to the device) and then just push the firmware into the Serial Device their hardware appears at in that mode.
Chrome supports letting websites remotely access Serial devices on the host PC.
Asus did this. Hate it, and glad I didn't buy one. It locks you into their online service. What happens when they decide to stop supporting a controller?
top 75 comments