[snap] web bluetooth does not work

Bug #1887201 reported by David Lechner
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
chromium-browser (Ubuntu)
Fix Released
Medium
Olivier Tilloy

Bug Description

Using the site https://code.pybricks.com, clicking the bluetooth icon should start scanning for devices (a dialog box should pop up showing discovered devices). It worked in the debian package of chromium on Ubuntu 20.04 but today apt installed the snap version instead and Bluetooth is no longer working. Clicking the bluetooth button on this site does nothing - no errors are reported in the developer console in chromium.

Tags: snap
Revision history for this message
Olivier Tilloy (osomon) wrote :

Note that the feature is behind an experimental flag which isn't enabled by default: chrome://flags/#enable-experimental-web-platform-features

Revision history for this message
Olivier Tilloy (osomon) wrote :

I suspect adding the bluez plug would help, I'm going to push a revision in the candidate channel with this so you can test and let me know if it helps.

Revision history for this message
Olivier Tilloy (osomon) wrote :
Changed in chromium-browser (Ubuntu):
assignee: nobody → Olivier Tilloy (osomon)
importance: Undecided → Medium
status: New → In Progress
tags: added: snap
Revision history for this message
Olivier Tilloy (osomon) wrote :

Currently building in the candidate channel, should be available for testing in ~24hrs.

Changed in chromium-browser (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Olivier Tilloy (osomon) wrote :

Now available as revision 1228 in the candidate channel. Please test and let me know whether this works:

    snap refresh chromium --candidate

Revision history for this message
Olivier Tilloy (osomon) wrote :

I installed the snap from the candidate channel, and after enabling the experimental feature flag, I get a popover dialog that appears to be searching for compatible bluetooth devices, so it seems to work as expected. I cannot fully confirm as I don't own a compatible device though.

David, please test and confirm. Thanks!

Revision history for this message
Olivier Tilloy (osomon) wrote :

Note that you will need to manually connect the bluez interface:

    snap connect chromium:bluez

Revision history for this message
David Lechner (dlech) wrote :

I can confirm it is working now. Thank you very much for the fix.

Will everyone that wants to use Web Bluetooth have to manually connect chromium:bluez or will it be connected by default eventually?

Revision history for this message
Olivier Tilloy (osomon) wrote :

Thanks for the feedback David.

By default the bluez interface is not connected automatically (see https://snapcraft.io/docs/bluez-interface). Having it auto-connected would require a store assertion that needs to be requested and approved by a team of reviewers.

Revision history for this message
David Lechner (dlech) wrote :

I attempted to post the following request on the snapcraft store to start the request process, but was not able to because I am a "new" user (limited to 2 links and one image):

The [chromium](https://snapcraft.io/chromium) web browser has support for [Web Bluetooth](https://webbluetoothcg.github.io/web-bluetooth/).

This is still considered experimental on Linux and must be enabled in the Browser setting via [chrome://flags/#enable-experimental-web-platform-features](chrome://flags/#enable-experimental-web-platform-features).

Although technically it is experimental, we have found that it works perfectly well for our web app. [https://code.pybricks.com/](https://code.pybricks.com/)

The app can detect if a browser supports Web Bluetooth or not. For example if using Firefox (which doesn't have Web Bluetooth support) or using Chromium with experimental web features disabled, uses will see this error message when clicking the Bluetooth button.

![image|690x150](upload://1kJRGfmFGeh950fRaNBJyit6HuY.png)

If Web Bluetooth is enabled, users will see this dialog box instead.

![image|473x451](upload://92EaYl536hIj5Sdwp3u8Eieo4wV.png)

However, we recently discovered that [Chromium installed via snap does neither](https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/1887201). Clicking the Bluetooth button simply does nothing. This can be fixed by manually connecting the Chromium snap to the [BlueZ](https://snapcraft.io/bluez) interface.

It does not seem reasonable to expect all web developers using Web Bluetooth to add a special case to their web app to detect Chromium running in a snap without bluez connected (and this is very probably not even technically possible at this point in time) and to communicate to their users that there are extra steps needed to manually configure their web browser via a terminal window.

Therefore we are requesting that the chromium snap be allowed to automatically connect to the bluez interface.

Revision history for this message
David Lechner (dlech) wrote :

This is as far as I got before my account was locked. https://forum.snapcraft.io/t/request-to-autoconnect-chromium-to-bluez/18856

Revision history for this message
Olivier Tilloy (osomon) wrote :

Thanks David, your contribution is much appreciated. I talked to the forum admins, and I've been told you should now be able to post your original auto-connection request without limitations. Can you please try again?

Revision history for this message
David Lechner (dlech) wrote :

Yes, thank you. I was able to update the post now.

Revision history for this message
Olivier Tilloy (osomon) wrote :

Thanks David. The updated snap with the bluez plug is now in the stable channel (for amd64, other architectures will follow shortly), so I'm marking this bug fixed. Let's follow up on the auto-connection topic on the snapcraft forum.

Changed in chromium-browser (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
David Lechner (dlech) wrote :

What about the other channels? In particular we need Chromium 85 (for other reasons) which is the edge channel.

Revision history for this message
Olivier Tilloy (osomon) wrote :

The plug has been added to all channels, the next builds will have it (I'm about to push new builds to the edge channel for chromium 85.0.4183.26).

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.