- From: Jeffrey Yasskin via GitHub <sysbot+gh@w3.org>
- Date: Mon, 23 Mar 2015 15:51:36 +0000
- To: public-web-bluetooth-log@w3.org
The idea for `optionalServices` is that it lets the UA know the complete set of services a website wants to use. This will let us give the site an early error if it intends to access a disallowed service, and could eventually let us include a description of exactly what the site wants to do with the selected device in the `requestDevice` dialog. Only the `filters` affect the set of devices shown in the dialog. Both the `filters` and `optionalServices` determine the [allowed services list](https://webbluetoothcg.github.io/web-bluetooth/#dfn-allowed-services-list). `filters` is a sequence of sequences because a site might be able to use several different kinds of devices, so we need some way of saying "I need a device that supports {X and Y} or that supports {Z and W}". We could add `optionalServices` to the filter: it would let a site say "for devices that have these services, I can also take advantage of these other ones" instead of just listing all the extra services the site can take advantage of. This would complicate the assignment to the _allowed services list_, since we'd need to say what to do for devices that support all of X, Y, Z, and W when their optional services are different. Do we grant access to the union? How would that look in a UI? It seemed simpler just to put the whole set of services in a single bag. I have been thinking of combining the two arguments into a single dictionary. `requestDevice([{services: [x, y]}], {optionalServices: [a, b]})` makes it easy to put things in the wrong set of brackets. `requestDevice({filters: [{services: [x, y]}], optionalServices: [a, b]})` might be easier to read and write. -- GitHub Notif of comment by jyasskin See https://github.com/WebBluetoothCG/web-bluetooth/issues/82#issuecomment-85059258
Received on Monday, 23 March 2015 15:51:44 UTC