nwjs / nw.js

Call all Node.js modules directly from DOM/WebWorker and enable a new way of writing applications with all Web technologies.
https://nwjs.io
MIT License
40.34k stars 3.88k forks source link

Starting from v0.18.5, Exclusive Rights access on Windows is taken #5547

Open zapoqx opened 7 years ago

zapoqx commented 7 years ago

Issues meet the checklist above will be processed before those don't.

Versions checked (all x64): 0.12.1, 0.17.0, 0.17.6, 0.18.0-0.19.2 Affected versions (all x64): 0.18.5-0.19.2 OS: Windows 10 Pro x64

Affected Program (and related): InputMapper, Streamlink Twitch GUI

InputMapper: A Program used as a bridge connection for PS4 controllers to PCs and make the driver be considered an xbox 360 controller.

Streamlink Twitch GUI: A program that uses NW.js

As stated in the title, from v0.18.5 onward, the exclusive rights access that the program InputMapper uses in Windows, is lost to nw.js. The way to fix is by closing nw.js and try to use the tool again while nw.js is closed. Any program that seems to use nw.js as its backend work from v0.18.5 will have this issue.

Steps to reproduce

  1. Run InputMapper. (Do not plug in controller yet).
  2. Run NW.js (Anywhere from v0.18.5 - 0.19.2)
  3. Activate a PS4 controller (Wireless or USB). InputMapper will return with error and run exclusive mode work around to try and fix the no exclusive rights access.
  4. Activate the PS4 controller again. Program will return with controller in Shared Mode.
  5. Disconnect PS4 Controller.
  6. Close NW.js
  7. Activate the PS4 Controller again. Program should return with Exclusive Mode.

Comments

This is an odd issue for me to report as this was unintentionally found via a program that uses nw.js and the dev stated that it is more than likely a bug to report to you which seems to be the case.

I do not know if its fixable as the dev seemed to state that something added in Chromium may be what is affecting it, but is not entirely sure which falls to this: https://stackoverflow.com/questions/40334348/setting-enable-gamepad-extensions-from-chrome-command-line

If its a Chromium specific thing, I can see this might not work, however, I also use Vivaldi that currently uses Chromium v 55, but does not seem to affect the Exclusive Rights access. I am sure there are other programs that use Exclusive Rights besides InputMapper and it is possible this can affect those programs too so if there is a way to bypass whatever is causing this exclusive mode to be taken away, then that would probably help many other programs too.

ghostoy commented 7 years ago

There was a bug regarding to GamePad API #5377 and it was fixed in 0.18.5. Do you think it is related? @rogerwang