- Electron version:
  We are using node 5.10.0, Chrome 49.0.2623.75, and Electron 1.0.1. 
- Operating system:
  Mac OS X 10.11.3 (15D21)

Trying to use the [Web Bluetooth APIs](https://developers.google.com/web/updates/2015/07/interact-with-ble-devices-on-the-web?hl=en#scan-for-bluetooth-devices) but when I run the Web Bluetooth demo code, the callbacks fail with the error:

`Argh! NotFoundError: User cancelled the requestDevice() chooser.`

main.js code:

```
// Module to control application life.
const {app} = electron;

// @link https://github.com/electron/electron/blob/master/docs/api/chrome-command-line-switches.md
app.commandLine.appendSwitch('enable-web-bluetooth', true);
```

Index.html code:

```
<a href="#" onclick="run();" class="scanDevices">Scan</a>
    <script>
    function run() {
        var filters = [{
    services: [0x1800, 0x1801, 0x1812]
  }];
          console.log('Requesting Bluetooth Device...');
  navigator.bluetooth.requestDevice({filters: filters})
  .then(device => {
    console.log('> Name:             ' + device.name);
    console.log('> Id:               ' + device.id);
    console.log('> UUIDs:            ' + device.uuids.join('\n' + ' '.repeat(20)));
    console.log('> Connected:        ' + device.gatt.connected);
  })
  .catch(error => {
    console.log('Argh! ' + error);
  });
  }
    </script>
```

Reference:
https://github.com/electron/electron/blob/master/atom/browser/atom_permission_manager.cc#L93

atom/browser/api/atom_api_web_contents.cc
bool is_guest = false;
  options.Get("isGuest", &is_guest);
  type_ = is_guest ? WEB_VIEW : BROWSER_WINDOW;
  
  std::string partition;
  mate::Handle<api::Session> session;
  if (options.Get("session", &session)) {
  } else if (options.Get("partition", &partition) && !partition.empty()) {
    bool in_memory = true;
    if (base::StartsWith(partition, "persist:", base::CompareCase::SENSITIVE)) {
      in_memory = false;
      partition = partition.substr(8);
    }
    session = Session::FromPartition(isolate, partition, in_memory);
  } else {
    
    session = Session::FromPartition(isolate, "", false);
  }
  session_.Reset(isolate, session.ToV8());
  content::WebContents* web_contents;
  if (is_guest) {
    scoped_refptr<content::SiteInstance> site_instance =
        content::SiteInstance::CreateForURL(
            session->browser_context(), GURL("chrome-guest://fake-host"));
    content::WebContents::CreateParams params(
        session->browser_context(), site_instance);
    guest_delegate_.reset(new WebViewGuestDelegate);
    params.guest_delegate = guest_delegate_.get();
    web_contents = content::WebContents::Create(params);
  } else {