LGTM3, seems like a useful addition.
On 3/30/23 8:34 AM, Yoav Weiss wrote:
LGTM2
On Thu, Mar 30, 2023 at 12:27 PM 'François Beaufort' via blink-dev
<[email protected]> wrote:
I've filed https://github.com/w3ctag/design-reviews/issues/830
On Wed, Mar 29, 2023 at 5:36 PM Alex Russell
<[email protected]> wrote:
LGTM1, but please let the TAG know about this change w/ an FYI.
On Tuesday, March 28, 2023 at 11:00:24 PM UTC-7
[email protected] wrote:
Contact emails
[email protected] <mailto:[email protected]>
[email protected] <mailto:[email protected]>
Explainer
https://github.com/WebBluetoothCG/web-bluetooth/issues/599#issue-1638254435
<https://github.com/WebBluetoothCG/web-bluetooth/issues/599#issue-1638254435>
Specification
https://webbluetoothcg.github.io/web-bluetooth/#ref-for-dom-requestdeviceoptions-exclusionfilters
<https://webbluetoothcg.github.io/web-bluetooth/#ref-for-dom-requestdeviceoptions-exclusionfilters>
https://github.com/WebBluetoothCG/web-bluetooth/pull/600
<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.
constdevice = awaitnavigator.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
<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
<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
<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
<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/CAPpwU5Jy-kHVWT2qV_S3O4ZWxhbDwi%2B1r3YoFByZvDV0R7jOBA%40mail.gmail.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPpwU5Jy-kHVWT2qV_S3O4ZWxhbDwi%2B1r3YoFByZvDV0R7jOBA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
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/CAL5BFfVSjojFCfoD1Kdn7dWRPkgOD0AZCxXTpCzV5NHYuGwEBA%40mail.gmail.com
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfVSjojFCfoD1Kdn7dWRPkgOD0AZCxXTpCzV5NHYuGwEBA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
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/c6edb6fb-be2c-6dec-d536-7244d87dbe9e%40chromium.org.