### Preflight Checklist

- [X] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/master/CONTRIBUTING.md) for this project.
- [X] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/master/CODE_OF_CONDUCT.md) that this project adheres to.
- [X] I have searched the [issue tracker](https://www.github.com/electron/electron/issues) for a feature request that matches the one I want to file, without success.

### Electron Version

12.0.1

### What operating system are you using?

Windows

### Operating System Version

Version: Home 2004 / OS build: 19041.867

### What arch are you using?

x64

### Last Known Working Electron version

11.3.0

### Expected Behavior

`navigator.bluetooth.requestDevice({acceptAllDevices: true});` in a renderer JS file should trigger the `select-bluetooth-device` event registered in an electron/main JS file.

### Actual Behavior

Does not trigger the event.

### Testcase Gist URL

https://gist.github.com/910403defe0696032c1f5ccb1a9b1d7e


shell/browser/lib/bluetooth_chooser.h
public:
  struct DeviceInfo {
    std::string device_id;
    std::u16string device_name;
  };
  explicit BluetoothChooser(api::WebContents* contents,
                            const EventHandler& handler);
  ~BluetoothChooser() override;
  
  void SetAdapterPresence(AdapterPresence presence) override;
  void ShowDiscoveryState(DiscoveryState state) override;
  void AddOrUpdateDevice(const std::string& device_id,
                         bool should_update_name,
                         const std::u16string& device_name,
                         bool is_gatt_connected,
                         bool is_paired,
                         int signal_strength_level) override;
  std::vector<DeviceInfo> GetDeviceList();
 private:
  std::map<std::string, std::u16string> device_map_;
  api::WebContents* api_web_contents_;
  EventHandler event_handler_;
  int num_retries_ = 0;
  bool refreshing_ = false;
  DISALLOW_COPY_AND_ASSIGN(BluetoothChooser);
};
}  
#endif