I submitted a bug report at
crbug.com a couple of weeks ago. It can be found here:
https://bugs.chromium.org/p/chromium/issues/detail?id=699199
Basically, if you call navigator.getGamepads() in a Chrome App it reports no devices being connected. If you call the same function through a hosted page in the browser itself it works fine (once a button on the gamepad has been pressed). I attached an example setup in the bug report. It can be loaded as a chrome app, and then you can load index.html using a local server to test as a web app to see the difference (green = detected, red = not detected). I've also tracked down what I feel fairly certain to be the exact change in the code that broke the API. See the bug report for more details.
I understand fixes can take weeks or months to happen, but I'm posting here because it has been over a week and I've not got any response from the bug report, and wanted to get some closure on when/if this bug will be fixed, or if I should start looking for a different solution.