Contact emails

[email protected]

[email protected]

Explainer

https://github.com/WebBluetoothCG/web-bluetooth/issues/599#issue-1638254435

Specification

https://webbluetoothcg.github.io/web-bluetooth/#ref-for-dom-requestdeviceoptions-exclusionfilters

https://github.com/WebBluetoothCG/web-bluetooth/pull/600

Summary

The "exclusionFilters" option in navigator.bluetooth.requestDevice() allows
web developers to exclude some devices from the browser picker. It can be
used to exclude devices that match a broader filter but are unsupported.

Blink component

Blink>Bluetooth
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EBluetooth>

Motivation

Allowing web developers, through the "exclusionFilters" option, to exclude
from the browser picker some devices that are not supported by the site
will improve user experience. Without it, web developers let users pick a
device, then have to check using a custom JavaScript helper function and
alert the user after they’ve already selected a device, resulting in a poor
user experience.

// Request access to a bluetooth device whose name starts with "Created by".

// The device named "Created by Francois" has been reported as unsupported.

const device = await navigator.bluetooth.requestDevice({

  filters: [{ namePrefix: "Created by" }],

  exclusionFilters: [{ name: "Created by Francois" }],

});

TAG review

This small addition to the Web Bluetooth API doesn’t seem to qualify for a
TAG review. I’m happy to file one if desired though.

TAG review status

Not Applicable

Risks
Interoperability and Compatibility

Older browsers will ignore exclusionFilters and all devices matching the
provided filter will be displayed (the current behavior).

Signals from other implementations (Gecko, WebKit):

Gecko: No Signal [1]

WebKit: No Signal [1]

Web / Framework developers: Positive
https://stackoverflow.com/questions/75815353/web-bluetooth-want-to-exclude-certain-devices-when-using-navigator-bluetooth-re

[1] Both Gecko and WebKit are unlikely to object to this feature
specifically, but object to the overall Web Bluetooth API as a whole, hence
it doesn't make sense to bug them with specific questions on this.

Activation:

This feature can't be polyfilled. It should be fairly trivial for
developers to adopt this new feature.

Debuggability

No specific DevTools changes are required. This feature is treated like any
other JS method.

Note that exposing DevTools debugging support for device-access APIs (Web
Bluetooth included) is discussed at
https://bugs.chromium.org/p/chromium/issues/detail?id=1142566#c20.

Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md>
?

No, because browser picker implementation is implemented outside of Blink
and so isn’t testable fully by web-platform-tests.

Requires code in //chrome?

No.

Tracking bug

https://bugs.chromium.org/p/chromium/issues/detail?id=1427977

Estimated milestones

114

Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/6208474255458304

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPpwU5JJNEpoYtiAcWCc%3DLLUDqMbFo_vT5BcKzJucogn30XKSg%40mail.gmail.com.

Reply via email to