[snap] Chromium cannot use WebUSB
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
chromium-browser (Ubuntu) |
Fix Released
|
Medium
|
Olivier Tilloy |
Bug Description
We're running into a weird bug on Ubuntu : WebUSB works on Chrome but doesn't on Chromium!
Here's our udev rule:
https:/
It uses the uaccess tag which adds an ACL to the created file in /dev/ so that the current logged-in user has RW access to the corresponding /dev/bus/usb/** device. Apparently that's the way to go, since relying on groups is fragile (not all distros use the "plugdev" group for example).
That udev rules works just fine. When using a command-line utility such as "dfu-tool", the USB device is seen and can be read from and written to. It also works just fine on Chrome. But Chromium gives us an "access denied" error. It lists the device, we do get the pop-up, but we cannot communicate. On Chromium, chrome://device-log says :
Failed to open /dev/bus/
Here are the infos on said file:
user@virtualbox:~$ ls -l /dev/bus/
crw-rw-r--+ 1 root root 189, 10 Jul 3 11:35 /dev/bus/
As you can see, the file is owned root/root, but has an ACL (as shown by the "+" symbol)
user@virtualbox:~$ getfacl /dev/bus/
getfacl: Removing leading '/' from absolute path names
# file: dev/bus/usb/001/011
# owner: root
# group: root
user::rw-
user:user:rw-
group::rw-
mask::rw-
other::r--
Here the ACL supposedely gives RW access to "user" who is indeed the current logged-in user, and the user running Chromium and Chrome.
For reference :
- Latest stable Ubuntu (18.04)
- Using the Chromium that ships with Ubuntu (from the Ubuntu Software app. attached chrome://version page)
- And using latest stable Chrome from google.com (attached chrome://version page)
affects: | chromium (Ubuntu) → chromium-browser (Ubuntu) |
summary: |
- Chromium cannot use WebUSB + Chromium cannot use WebUSB (works fine in Chrome) |
Changed in chromium-browser (Ubuntu): | |
status: | Fix Committed → Fix Released |
You're using the snap version of chromium, which is strictly confined, and thus won't let you access /dev/bus/ usb/001/ 011 by design.
Using chromium-browser from the ubuntu archive should allow you to see your device:
sudo apt install chromium-browser browser
chromium-
Now, I'm also interested in your feedback on testing a version of the snap that allows access to USB devices:
sudo snap refresh chromium --channel= candidate/ raw-usb- test
sudo snap connect chromium:raw-usb
snap run chromium
Please let me know if that version lets you see your device.
Note that both the snap package and the deb package can coexist on your system without a problem. You can tell which package you're running by checking the command line in chrome://version.
Thanks in advance for your feedback!