[Gamepad] Prototype GamepadButton.type for extended buttons (flagged) [chromium/src : main]

0 views
Skip to first unread message

Hongchan Choi (Gerrit)

unread,
Apr 14, 2026, 12:17:25 PMApr 14
to Sun Shin US, Rob Pitkin, Matt Reynolds, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, mattreyno...@chromium.org
Attention needed from Matt Reynolds, Rob Pitkin and Sun Shin US

Hongchan Choi added 1 comment

Patchset-level comments
File-level comment, Patchset 1 (Latest):
Hongchan Choi . resolved

Also adding robpitkin@ as a second reviewer on the gamepad API.

Open in Gerrit

Related details

Attention is currently required from:
  • Matt Reynolds
  • Rob Pitkin
  • Sun Shin US
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I2947054e2b84781de4dda7029a8f8731f866b4df
Gerrit-Change-Number: 7760763
Gerrit-PatchSet: 1
Gerrit-Owner: Sun Shin US <sus...@nvidia.com>
Gerrit-Reviewer: Matt Reynolds <mattre...@chromium.org>
Gerrit-Reviewer: Rob Pitkin <robp...@chromium.org>
Gerrit-CC: Hongchan Choi <hong...@chromium.org>
Gerrit-CC: Kentaro Hara <har...@chromium.org>
Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
Gerrit-Attention: Rob Pitkin <robp...@chromium.org>
Gerrit-Attention: Sun Shin US <sus...@nvidia.com>
Gerrit-Attention: Matt Reynolds <mattre...@chromium.org>
Gerrit-Comment-Date: Tue, 14 Apr 2026 16:17:14 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Rob Pitkin (Gerrit)

unread,
Apr 14, 2026, 4:34:32 PMApr 14
to Sun Shin US, Hongchan Choi, Matt Reynolds, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, mattreyno...@chromium.org
Attention needed from Matt Reynolds and Sun Shin US

Rob Pitkin added 4 comments

Patchset-level comments
Rob Pitkin . resolved

Overall looks good! Just some nits. Will also wait for @mattre...@chromium.org to review since he has the context from the original spec issue.

File device/gamepad/public/cpp/gamepad_features.h
Line 38, Patchset 1 (Latest):GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kEnableGamepadButtonTypes);
Rob Pitkin . unresolved

This flag isn't used anywhere in the device service, is this intentional/needed?

File third_party/blink/renderer/modules/gamepad/gamepad_button_type_mapper.cc
Line 25, Patchset 1 (Latest): switch (*product) {
Rob Pitkin . unresolved
Can we pull these out to constexpr variables the way we do with `kSonyVendorId`?
```suggestion
switch (*product) {
case kDualShock4Pid:
case kDualShock4V2Pid:
return true;
default:
return false;
}
```
Line 27, Patchset 1 (Latest): case 0x09cc: // DS4 v2 / DS4 variants
Rob Pitkin . unresolved

Should we also be checking for DualSense or DualSense Edge gamepads?

Open in Gerrit

Related details

Attention is currently required from:
  • Matt Reynolds
  • Sun Shin US
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I2947054e2b84781de4dda7029a8f8731f866b4df
    Gerrit-Change-Number: 7760763
    Gerrit-PatchSet: 1
    Gerrit-Owner: Sun Shin US <sus...@nvidia.com>
    Gerrit-Reviewer: Matt Reynolds <mattre...@chromium.org>
    Gerrit-Reviewer: Rob Pitkin <robp...@chromium.org>
    Gerrit-CC: Hongchan Choi <hong...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
    Gerrit-Attention: Sun Shin US <sus...@nvidia.com>
    Gerrit-Attention: Matt Reynolds <mattre...@chromium.org>
    Gerrit-Comment-Date: Tue, 14 Apr 2026 20:34:24 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Nate Chapin (Gerrit)

    unread,
    Apr 14, 2026, 5:33:03 PMApr 14
    to Sun Shin US, Rob Pitkin, Hongchan Choi, Matt Reynolds, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, mattreyno...@chromium.org
    Attention needed from Matt Reynolds and Sun Shin US

    Nate Chapin added 3 comments

    Patchset-level comments
    Nate Chapin . resolved

    Drive-by nitpicks on IDL and v8 bindings

    File third_party/blink/renderer/modules/gamepad/gamepad_button.h
    Line 46, Patchset 1 (Latest): V8GamepadButtonType type_ =
    Nate Chapin . unresolved

    It's a little more efficient to store this as a `V8GamepadButtonType::Enum` and only wrap it in the `V8GamepadButtonType` object when returning in `type()` (the object is a helper for the converstion from C++ enum to v8::String).

    Operating on `V8GamepadButtonType::Enum` all the way through will probably remove a bunch of boilerplate as well 😊

    File third_party/blink/renderer/modules/gamepad/gamepad_button.idl
    Line 19, Patchset 1 (Latest): readonly attribute GamepadButtonType type;
    Nate Chapin . unresolved

    You need an entry in runtime_enabled_features.json5 and `[RuntimeEnabled=GamepadButtonTypes]` here to ensure this API surface isn't shipped by default.

    (you can have that generate a feature flag for you that is automatically tied to the RuntimeEnabledFeature).

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Matt Reynolds
    • Sun Shin US
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I2947054e2b84781de4dda7029a8f8731f866b4df
    Gerrit-Change-Number: 7760763
    Gerrit-PatchSet: 1
    Gerrit-Owner: Sun Shin US <sus...@nvidia.com>
    Gerrit-Reviewer: Matt Reynolds <mattre...@chromium.org>
    Gerrit-Reviewer: Rob Pitkin <robp...@chromium.org>
    Gerrit-CC: Hongchan Choi <hong...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Nate Chapin <jap...@chromium.org>
    Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
    Gerrit-Attention: Sun Shin US <sus...@nvidia.com>
    Gerrit-Attention: Matt Reynolds <mattre...@chromium.org>
    Gerrit-Comment-Date: Tue, 14 Apr 2026 21:32:52 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Matt Reynolds (Gerrit)

    unread,
    Apr 15, 2026, 2:21:30 PMApr 15
    to Sun Shin US, Nate Chapin, Rob Pitkin, Hongchan Choi, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, mattreyno...@chromium.org
    Attention needed from Sun Shin US

    Matt Reynolds added 3 comments

    Commit Message
    Line 13, Patchset 1 (Latest):Spec: w3c/gamepad#196
    Matt Reynolds . unresolved

    nit: Let's use the actual URL here so it's easier to get to the PR

    ```suggestion
    Spec: https://github.com/w3c/gamepad/pull/196
    ```

    File third_party/blink/renderer/modules/gamepad/gamepad.cc
    Line 254, Patchset 1 (Latest): GamepadIdentityHint hint = InferIdentityHintFromIdString(id_);
    Matt Reynolds . unresolved

    I think we shouldn't try to parse the vendor and product IDs from the ID string.

    Instead, let's do this detection in the backend where we already have the vendor and product ID values, and set the button's type as a new field in `GamepadButton`.

    File third_party/blink/renderer/modules/gamepad/gamepad_button.idl
    Line 5, Patchset 1 (Latest):enum GamepadButtonType {
    Matt Reynolds . unresolved

    Please add some comments documenting the enum and each value.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Sun Shin US
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I2947054e2b84781de4dda7029a8f8731f866b4df
    Gerrit-Change-Number: 7760763
    Gerrit-PatchSet: 1
    Gerrit-Owner: Sun Shin US <sus...@nvidia.com>
    Gerrit-Reviewer: Matt Reynolds <mattre...@chromium.org>
    Gerrit-Reviewer: Rob Pitkin <robp...@chromium.org>
    Gerrit-CC: Hongchan Choi <hong...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Nate Chapin <jap...@chromium.org>
    Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
    Gerrit-Attention: Sun Shin US <sus...@nvidia.com>
    Gerrit-Comment-Date: Wed, 15 Apr 2026 18:21:20 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Sun Shin US (Gerrit)

    unread,
    Jun 22, 2026, 7:34:02 PM (5 days ago) Jun 22
    to android-bu...@system.gserviceaccount.com, Nate Chapin, Rob Pitkin, Hongchan Choi, Matt Reynolds, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, mac-r...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, mattreyno...@chromium.org
    Attention needed from Matt Reynolds, Nate Chapin and Rob Pitkin

    Sun Shin US added 5 comments

    Commit Message
    Line 13, Patchset 1:Spec: w3c/gamepad#196
    Matt Reynolds . resolved

    nit: Let's use the actual URL here so it's easier to get to the PR

    ```suggestion
    Spec: https://github.com/w3c/gamepad/pull/196
    ```

    Sun Shin US

    @Matt, thank for the review.

    File device/gamepad/public/cpp/gamepad_features.h
    Line 38, Patchset 1:GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kEnableGamepadButtonTypes);
    Rob Pitkin . resolved

    This flag isn't used anywhere in the device service, is this intentional/needed?

    Sun Shin US

    @Rob,thanks for the review. removed redundant codes.

    File third_party/blink/renderer/modules/gamepad/gamepad.cc
    Line 254, Patchset 1: GamepadIdentityHint hint = InferIdentityHintFromIdString(id_);
    Matt Reynolds . resolved

    I think we shouldn't try to parse the vendor and product IDs from the ID string.

    Instead, let's do this detection in the backend where we already have the vendor and product ID values, and set the button's type as a new field in `GamepadButton`.

    Sun Shin US

    Marked as resolved.

    File third_party/blink/renderer/modules/gamepad/gamepad_button.idl
    Line 5, Patchset 1:enum GamepadButtonType {
    Matt Reynolds . resolved

    Please add some comments documenting the enum and each value.

    Sun Shin US

    @Matt, thanks for the review. Updated.

    Line 19, Patchset 1: readonly attribute GamepadButtonType type;
    Nate Chapin . resolved

    You need an entry in runtime_enabled_features.json5 and `[RuntimeEnabled=GamepadButtonTypes]` here to ensure this API surface isn't shipped by default.

    (you can have that generate a feature flag for you that is automatically tied to the RuntimeEnabledFeature).

    Sun Shin US

    @Nate, thanks for the review. And updated the codes by your recommendation.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Matt Reynolds
    • Nate Chapin
    • Rob Pitkin
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I2947054e2b84781de4dda7029a8f8731f866b4df
    Gerrit-Change-Number: 7760763
    Gerrit-PatchSet: 4
    Gerrit-Owner: Sun Shin US <sus...@nvidia.com>
    Gerrit-Reviewer: Matt Reynolds <mattre...@chromium.org>
    Gerrit-Reviewer: Rob Pitkin <robp...@chromium.org>
    Gerrit-CC: Hongchan Choi <hong...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Nate Chapin <jap...@chromium.org>
    Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
    Gerrit-Attention: Rob Pitkin <robp...@chromium.org>
    Gerrit-Attention: Matt Reynolds <mattre...@chromium.org>
    Gerrit-Attention: Nate Chapin <jap...@chromium.org>
    Gerrit-Comment-Date: Mon, 22 Jun 2026 23:33:40 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Rob Pitkin <robp...@chromium.org>
    Comment-In-Reply-To: Matt Reynolds <mattre...@chromium.org>
    Comment-In-Reply-To: Nate Chapin <jap...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Rob Pitkin (Gerrit)

    unread,
    Jun 23, 2026, 12:27:53 PM (4 days ago) Jun 23
    to Sun Shin US, android-bu...@system.gserviceaccount.com, Nate Chapin, Hongchan Choi, Matt Reynolds, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, mac-r...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, mattreyno...@chromium.org
    Attention needed from Matt Reynolds, Nate Chapin and Sun Shin US

    Rob Pitkin voted and added 1 comment

    Votes added by Rob Pitkin

    Code-Review+1

    1 comment

    Patchset-level comments
    File-level comment, Patchset 4 (Latest):
    Rob Pitkin . resolved

    lgtm, thanks!

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Matt Reynolds
    • Nate Chapin
    • Sun Shin US
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I2947054e2b84781de4dda7029a8f8731f866b4df
    Gerrit-Change-Number: 7760763
    Gerrit-PatchSet: 4
    Gerrit-Owner: Sun Shin US <sus...@nvidia.com>
    Gerrit-Reviewer: Matt Reynolds <mattre...@chromium.org>
    Gerrit-Reviewer: Rob Pitkin <robp...@chromium.org>
    Gerrit-CC: Hongchan Choi <hong...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Nate Chapin <jap...@chromium.org>
    Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
    Gerrit-Attention: Sun Shin US <sus...@nvidia.com>
    Gerrit-Attention: Matt Reynolds <mattre...@chromium.org>
    Gerrit-Attention: Nate Chapin <jap...@chromium.org>
    Gerrit-Comment-Date: Tue, 23 Jun 2026 16:27:28 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Nate Chapin (Gerrit)

    unread,
    Jun 23, 2026, 12:31:05 PM (4 days ago) Jun 23
    to Sun Shin US, Rob Pitkin, android-bu...@system.gserviceaccount.com, Hongchan Choi, Matt Reynolds, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, mac-r...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, mattreyno...@chromium.org
    Attention needed from Matt Reynolds and Sun Shin US

    Nate Chapin added 1 comment

    File third_party/blink/renderer/modules/gamepad/gamepad_button.idl
    Line 19, Patchset 1: readonly attribute GamepadButtonType type;
    Nate Chapin . unresolved

    You need an entry in runtime_enabled_features.json5 and `[RuntimeEnabled=GamepadButtonTypes]` here to ensure this API surface isn't shipped by default.

    (you can have that generate a feature flag for you that is automatically tied to the RuntimeEnabledFeature).

    Sun Shin US

    @Nate, thanks for the review. And updated the codes by your recommendation.

    Nate Chapin

    Thanks! As expected, you now have test failures for
    `webexposed/global-interface-listing.html` but NOT
    `virtual/stable/webexposed/global-interface-listing.html`. This shows that you have added a feature that is available in experimental builds but not in stable. You can update the test expectations for `webexposed/global-interface-listing.html` to match the new output.

    In terms of process, you should create a [chromestatus](https://chromestatus.com/) entry if you haven't done so already, and send an `Intent to Prototype` before committing this CL.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Matt Reynolds
    • Sun Shin US
    Gerrit-Comment-Date: Tue, 23 Jun 2026 16:30:41 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Sun Shin US <sus...@nvidia.com>
    Comment-In-Reply-To: Nate Chapin <jap...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Matt Reynolds (Gerrit)

    unread,
    Jun 23, 2026, 4:54:30 PM (4 days ago) Jun 23
    to Sun Shin US, Rob Pitkin, android-bu...@system.gserviceaccount.com, Nate Chapin, Hongchan Choi, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, mac-r...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, mattreyno...@chromium.org
    Attention needed from Sun Shin US

    Matt Reynolds added 1 comment

    File device/gamepad/gamepad_standard_mappings.cc
    Line 83, Patchset 4 (Latest): const size_t length =
    std::min<size_t>(gamepad->buttons_length, BUTTON_INDEX_COUNT);
    for (size_t i = 0; i < length; ++i) {
    gamepad->buttons[i].type = GamepadButtonType::kStandard;
    }
    Matt Reynolds . unresolved

    This will set the button type to `"standard"` for any button, even buttons that are known to not exist on the gamepad. For instance, MapperDjiFpv sets the primary, secondary, tertiary, quaternary buttons to `NullButton()` because there are no corresponding buttons on the device:

    https://source.chromium.org/chromium/chromium/src/+/main:device/gamepad/gamepad_standard_mappings_mac.mm;l=696;drc=49a784900811b5776aeeae474e75e08baea878c7

    I don't remember whether we intended this feature to expose whether a button is present on the gamepad. The spec PR says the `type` should only be set to `"standard"` if the button "represents a Standard gamepad button" which requires that the button input exists, so I think it is intended. If we follow the spec then we should make sure `type` is set to `"non-standard"` when the button is set to `NullButton()`.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Sun Shin US
    Gerrit-Comment-Date: Tue, 23 Jun 2026 20:54:03 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Sun Shin US (Gerrit)

    unread,
    Jun 26, 2026, 2:05:26 PM (yesterday) Jun 26
    to Rob Pitkin, android-bu...@system.gserviceaccount.com, Nate Chapin, Hongchan Choi, Matt Reynolds, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, mac-r...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, mattreyno...@chromium.org
    Attention needed from Matt Reynolds, Nate Chapin and Rob Pitkin

    Sun Shin US added 2 comments

    File device/gamepad/gamepad_standard_mappings.cc
    Line 83, Patchset 4: const size_t length =

    std::min<size_t>(gamepad->buttons_length, BUTTON_INDEX_COUNT);
    for (size_t i = 0; i < length; ++i) {
    gamepad->buttons[i].type = GamepadButtonType::kStandard;
    }
    Matt Reynolds . resolved

    This will set the button type to `"standard"` for any button, even buttons that are known to not exist on the gamepad. For instance, MapperDjiFpv sets the primary, secondary, tertiary, quaternary buttons to `NullButton()` because there are no corresponding buttons on the device:

    https://source.chromium.org/chromium/chromium/src/+/main:device/gamepad/gamepad_standard_mappings_mac.mm;l=696;drc=49a784900811b5776aeeae474e75e08baea878c7

    I don't remember whether we intended this feature to expose whether a button is present on the gamepad. The spec PR says the `type` should only be set to `"standard"` if the button "represents a Standard gamepad button" which requires that the button input exists, so I think it is intended. If we follow the spec then we should make sure `type` is set to `"non-standard"` when the button is set to `NullButton()`.

    Sun Shin US

    @Matt thanks for the review and feedback. Updated the code by the review.

    File third_party/blink/renderer/modules/gamepad/gamepad_button.idl
    Line 19, Patchset 1: readonly attribute GamepadButtonType type;
    Nate Chapin . unresolved

    You need an entry in runtime_enabled_features.json5 and `[RuntimeEnabled=GamepadButtonTypes]` here to ensure this API surface isn't shipped by default.

    (you can have that generate a feature flag for you that is automatically tied to the RuntimeEnabledFeature).

    Sun Shin US

    @Nate, thanks for the review. And updated the codes by your recommendation.

    Nate Chapin

    Thanks! As expected, you now have test failures for
    `webexposed/global-interface-listing.html` but NOT
    `virtual/stable/webexposed/global-interface-listing.html`. This shows that you have added a feature that is available in experimental builds but not in stable. You can update the test expectations for `webexposed/global-interface-listing.html` to match the new output.

    In terms of process, you should create a [chromestatus](https://chromestatus.com/) entry if you haven't done so already, and send an `Intent to Prototype` before committing this CL.

    Sun Shin US

    @Nate, thanks again for the insightful guide. Will work this on as your suggestion.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Matt Reynolds
    • Nate Chapin
    • Rob Pitkin
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I2947054e2b84781de4dda7029a8f8731f866b4df
    Gerrit-Change-Number: 7760763
    Gerrit-PatchSet: 5
    Gerrit-Owner: Sun Shin US <sus...@nvidia.com>
    Gerrit-Reviewer: Matt Reynolds <mattre...@chromium.org>
    Gerrit-Reviewer: Rob Pitkin <robp...@chromium.org>
    Gerrit-CC: Hongchan Choi <hong...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Nate Chapin <jap...@chromium.org>
    Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
    Gerrit-Attention: Rob Pitkin <robp...@chromium.org>
    Gerrit-Attention: Matt Reynolds <mattre...@chromium.org>
    Gerrit-Attention: Nate Chapin <jap...@chromium.org>
    Gerrit-Comment-Date: Fri, 26 Jun 2026 18:05:09 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Sun Shin US <sus...@nvidia.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Sun Shin US (Gerrit)

    unread,
    Jun 26, 2026, 6:58:07 PM (20 hours ago) Jun 26
    to Rob Pitkin, android-bu...@system.gserviceaccount.com, Nate Chapin, Hongchan Choi, Matt Reynolds, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, mac-r...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, mattreyno...@chromium.org
    Attention needed from Matt Reynolds, Nate Chapin and Rob Pitkin

    Sun Shin US added 1 comment

    File third_party/blink/renderer/modules/gamepad/gamepad_button.idl
    Line 19, Patchset 1: readonly attribute GamepadButtonType type;
    Nate Chapin . resolved

    You need an entry in runtime_enabled_features.json5 and `[RuntimeEnabled=GamepadButtonTypes]` here to ensure this API surface isn't shipped by default.

    (you can have that generate a feature flag for you that is automatically tied to the RuntimeEnabledFeature).

    Sun Shin US

    @Nate, thanks for the review. And updated the codes by your recommendation.

    Nate Chapin

    Thanks! As expected, you now have test failures for
    `webexposed/global-interface-listing.html` but NOT
    `virtual/stable/webexposed/global-interface-listing.html`. This shows that you have added a feature that is available in experimental builds but not in stable. You can update the test expectations for `webexposed/global-interface-listing.html` to match the new output.

    In terms of process, you should create a [chromestatus](https://chromestatus.com/) entry if you haven't done so already, and send an `Intent to Prototype` before committing this CL.

    Sun Shin US

    @Nate, thanks again for the insightful guide. Will work this on as your suggestion.

    Sun Shin US

    @Nate, please refer to the following ChromeStatus link: https://chromestatus.com/feature/5075054393163776

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Matt Reynolds
    • Nate Chapin
    • Rob Pitkin
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I2947054e2b84781de4dda7029a8f8731f866b4df
    Gerrit-Change-Number: 7760763
    Gerrit-PatchSet: 6
    Gerrit-Owner: Sun Shin US <sus...@nvidia.com>
    Gerrit-Reviewer: Matt Reynolds <mattre...@chromium.org>
    Gerrit-Reviewer: Rob Pitkin <robp...@chromium.org>
    Gerrit-CC: Hongchan Choi <hong...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Nate Chapin <jap...@chromium.org>
    Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
    Gerrit-Attention: Rob Pitkin <robp...@chromium.org>
    Gerrit-Attention: Matt Reynolds <mattre...@chromium.org>
    Gerrit-Attention: Nate Chapin <jap...@chromium.org>
    Gerrit-Comment-Date: Fri, 26 Jun 2026 22:57:53 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Sun Shin US <sus...@nvidia.com>
    Comment-In-Reply-To: Nate Chapin <jap...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Nate Chapin (Gerrit)

    unread,
    Jun 26, 2026, 7:10:59 PM (20 hours ago) Jun 26
    to Sun Shin US, Chromium LUCI CQ, Rob Pitkin, android-bu...@system.gserviceaccount.com, Hongchan Choi, Matt Reynolds, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, mac-r...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, mattreyno...@chromium.org
    Attention needed from Matt Reynolds, Rob Pitkin and Sun Shin US

    Nate Chapin added 1 comment

    File third_party/blink/renderer/modules/gamepad/gamepad_button.idl
    Line 19, Patchset 1: readonly attribute GamepadButtonType type;
    Nate Chapin . resolved

    You need an entry in runtime_enabled_features.json5 and `[RuntimeEnabled=GamepadButtonTypes]` here to ensure this API surface isn't shipped by default.

    (you can have that generate a feature flag for you that is automatically tied to the RuntimeEnabledFeature).

    Sun Shin US

    @Nate, thanks for the review. And updated the codes by your recommendation.

    Nate Chapin

    Thanks! As expected, you now have test failures for
    `webexposed/global-interface-listing.html` but NOT
    `virtual/stable/webexposed/global-interface-listing.html`. This shows that you have added a feature that is available in experimental builds but not in stable. You can update the test expectations for `webexposed/global-interface-listing.html` to match the new output.

    In terms of process, you should create a [chromestatus](https://chromestatus.com/) entry if you haven't done so already, and send an `Intent to Prototype` before committing this CL.

    Sun Shin US

    @Nate, thanks again for the insightful guide. Will work this on as your suggestion.

    Sun Shin US

    @Nate, please refer to the following ChromeStatus link: https://chromestatus.com/feature/5075054393163776

    Nate Chapin

    Wonderful, thanks!

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Matt Reynolds
    • Rob Pitkin
    • Sun Shin US
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I2947054e2b84781de4dda7029a8f8731f866b4df
    Gerrit-Change-Number: 7760763
    Gerrit-PatchSet: 6
    Gerrit-Owner: Sun Shin US <sus...@nvidia.com>
    Gerrit-Reviewer: Matt Reynolds <mattre...@chromium.org>
    Gerrit-Reviewer: Rob Pitkin <robp...@chromium.org>
    Gerrit-Reviewer: Sun Shin US <sus...@nvidia.com>
    Gerrit-CC: Hongchan Choi <hong...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Nate Chapin <jap...@chromium.org>
    Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
    Gerrit-Attention: Sun Shin US <sus...@nvidia.com>
    Gerrit-Attention: Rob Pitkin <robp...@chromium.org>
    Gerrit-Attention: Matt Reynolds <mattre...@chromium.org>
    Gerrit-Comment-Date: Fri, 26 Jun 2026 23:10:47 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy
    Reply all
    Reply to author
    Forward
    0 new messages