Guard against Chrome moving Gamepad to HTTPS secure origin #20890
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Chrome has (apparently?) moved to requiring a secure HTTPS origin in order to access gamepad data. Therefore constrain HTML5 Gamepad API functions to return EMSCRIPTEN_RESULT_NOT_SUPPORTED when getGamepads() does not work but throws an exception.
W3C Github entry that I found related w3c/gamepad#145 .
Caniuse info is partial and does not mention the requirement of a secure origin: https://caniuse.com/gamepad
Oddly MDN does not say that Chrome would require secure origin, but it instead documents that Firefox requires a secure origin. https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getGamepads
This change has a potential to break a lot of Emscripten compiled web pages, since these functions were never developed with the anticipation that navigator.getGamepads() could throw. (the spec stated no such wording in circa 2014 or so)