diff --git a/device/gamepad/gamepad_device_mac.mm b/device/gamepad/gamepad_device_mac.mm
index 611a301ecc160..1651ba3c58b0e 100644
--- a/device/gamepad/gamepad_device_mac.mm
+++ b/device/gamepad/gamepad_device_mac.mm
@@ -35,6 +35,7 @@ const uint16_t kPowerUsageNumber = 0x30;
 const uint16_t kSearchUsageNumber = 0x0221;
 const uint16_t kHomeUsageNumber = 0x0223;
 const uint16_t kBackUsageNumber = 0x0224;
+const uint16_t kRecordUsageNumber = 0xb2;
 
 const int kRumbleMagnitudeMax = 10000;
 
@@ -52,6 +53,7 @@ struct SpecialUsages {
     // Back.
     {kConsumerUsagePage, kHomeUsageNumber},
     {kConsumerUsagePage, kBackUsageNumber},
+    {kConsumerUsagePage, kRecordUsageNumber},
 };
 const size_t kSpecialUsagesLen = base::size(kSpecialUsages);
 
diff --git a/device/gamepad/gamepad_standard_mappings.h b/device/gamepad/gamepad_standard_mappings.h
index 99ecb48f2003a..273be6c4c8d82 100644
--- a/device/gamepad/gamepad_standard_mappings.h
+++ b/device/gamepad/gamepad_standard_mappings.h
@@ -68,6 +68,12 @@ enum CanonicalButtonIndex {
   BUTTON_INDEX_COUNT
 };
 
+// Xbox Series X has an extra share button.
+enum XboxSeriesXButtons {
+  XBOX_SERIES_X_BUTTON_SHARE = CanonicalButtonIndex::BUTTON_INDEX_COUNT,
+  XBOX_SERIES_X_BUTTON_COUNT
+};
+
 // A Java counterpart will be generated for this enum.
 // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.device.gamepad
 // GENERATED_JAVA_PREFIX_TO_STRIP: AXIS_INDEX_
diff --git a/device/gamepad/gamepad_standard_mappings_mac.mm b/device/gamepad/gamepad_standard_mappings_mac.mm
index 6488fe01576ce..dfa00c5ded816 100644
--- a/device/gamepad/gamepad_standard_mappings_mac.mm
+++ b/device/gamepad/gamepad_standard_mappings_mac.mm
@@ -122,14 +122,15 @@ void MapperXboxSeriesX(const Gamepad& input, Gamepad* mapped) {
   mapped->buttons[BUTTON_INDEX_RIGHT_TRIGGER] = AxisToButton(input.axes[4]);
   mapped->buttons[BUTTON_INDEX_BACK_SELECT] = input.buttons[10];
   mapped->buttons[BUTTON_INDEX_START] = input.buttons[11];
-  mapped->buttons[BUTTON_INDEX_LEFT_THUMBSTICK] = input.buttons[8];
-  mapped->buttons[BUTTON_INDEX_RIGHT_THUMBSTICK] = input.buttons[9];
-  mapped->buttons[BUTTON_INDEX_META] = input.buttons[16];
+  mapped->buttons[BUTTON_INDEX_LEFT_THUMBSTICK] = input.buttons[13];
+  mapped->buttons[BUTTON_INDEX_RIGHT_THUMBSTICK] = input.buttons[14];
+  mapped->buttons[BUTTON_INDEX_META] = input.buttons[12];
+  mapped->buttons[XBOX_SERIES_X_BUTTON_SHARE] = input.buttons[15];
   mapped->axes[AXIS_INDEX_RIGHT_STICK_X] = input.axes[2];
   mapped->axes[AXIS_INDEX_RIGHT_STICK_Y] = input.axes[5];
   DpadFromAxis(mapped, input.axes[9]);
 
-  mapped->buttons_length = BUTTON_INDEX_COUNT;
+  mapped->buttons_length = XBOX_SERIES_X_BUTTON_COUNT;
   mapped->axes_length = AXIS_INDEX_COUNT;
 }