Chrome does not update the obj returned by navigator.getGamepads(), it is just a snapshot of the state of the gamepad at the moment it was called. So the value of .pressed, .value and .axes never change. Same problem in browsers related to Chrome such as the Android Webview.
This was talked about here in the past :
gamepad javascript failing to updated as expected
It seems that a solution was to use navigator.webkitGetGamepads() instead. But it no longer exists now.
The other solution is to call navigator.getGamepads() again every time we need... But I do not want to call it again for every frame of the game, this will create a lot of garbage.
Anybody knows another solution ?