[web-bluetooth] Allow requestDevice for all devices

scheib has just created a new issue for 
https://github.com/WebBluetoothCG/web-bluetooth:

== Allow requestDevice for all devices ==
Initially the Web Bluetooth specification has required requestDevice 
options to filter the set of devices that will be displayed for the 
user to select from. One argument against allowing developers to 
request all devices be shown is that out of laziness they may often do
 so to the detriment of the user's experience.

When devices do not advertise their services and do not have a 
reliable name that can be used as a filter then there is no way to 
select devices.

One concrete example is this [Bluetooth Rename 
Tool](https://rawgit.com/scheib/webbluetoothcg-demos/bluetooth-rename/bluetooth-rename/index.html)
 I made recently (link will break eventually, maybe it will appear on 
[demos](https://github.com/WebBluetoothCG/demos) page eventually). 
This tool uses `generic_access`'s `gap.device_name`, however 
`generic_access` is prohibited from being advertized. It is unknown 
what device names may be already that the user wishes to edit.

I believe other developers will eventually encounter this for devices 
that don't advertise services and have a multitude of names. Though 
this should be a small fraction of use.

This demo currently works in Chrome due to a bug allowing a filter of 
`name: ""` to return all devices. That isn't the right way to solve 
this. I'm not clear on how it should be solved, but would like to 
communicate to developers that they should only ask for all devices 
when they really need to. Only half jokingly:

```
navigator.bluetooth.requestDevice({
  filters: [{
    'listAllDevicesEvenThoughItIsAPoorUserExperience': true
  }],
  optionalServices: ['generic_access']
}))
```

Please view or discuss this issue at 
https://github.com/WebBluetoothCG/web-bluetooth/issues/234 using your 
GitHub account

Received on Monday, 2 May 2016 17:19:27 UTC