Add product IDs for Xbox One gamepads on Mac

Desktop / Chromium - Matt Reynolds [google.com] - 12 October 2017 18:11 EDT

In Chrome for Mac, when Xbox gamepads are connected over USB but no driver is installed, Chrome uses an internal driver to read button and axis data from the gamepads. The internal driver recognizes product and vendor IDs for the Xbox 360 USB gamepad and Xbox One gamepad (2013 version), but fails to recognize the newer Xbox One 2015 version or One S gamepads because they advertise different product IDs.

This CL adds these product IDs so the gamepads can be used in Chrome even when a driver is not installed. It also modifies the Xbox One initialization packet so it functions correctly with newer Xbox One gamepads (older gamepads are unaffected).

And one more unrelated fix: the Product and Vendor ID fields were reversed when creating the gamepad ID string for Xbox controllers.

BUG=773048

Change-Id: I589ab71f54b43d8f873efb3abc349ed7dc0ba6dc Reviewed-on: https://chromium-review.googlesource.com/707821 Commit-Queue: Matt Reynolds

99f2c57 Add product IDs for Xbox One gamepads on Mac
device/gamepad/xbox_data_fetcher_mac.h | 12 +++--
device/gamepad/xbox_data_fetcher_mac.mm | 90 ++++++++++++++++++++++++++-------
2 files changed, 82 insertions(+), 20 deletions(-)

Upstream: git.chromium.org


  • Share