[webkit-changes] [WebKit/WebKit] 2dca51: Gamepad.vibrationActuator: Add support for "trigge...

Chris Dumez noreply at github.com
Fri Jan 27 13:24:14 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2dca512b491e5f7024d1013d651f77124f154d99
      https://github.com/WebKit/WebKit/commit/2dca512b491e5f7024d1013d651f77124f154d99
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-01-27 (Fri, 27 Jan 2023)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebCore/Modules/gamepad/GamepadEffectParameters.h
    M Source/WebCore/Modules/gamepad/GamepadEffectParameters.idl
    M Source/WebCore/Modules/gamepad/GamepadHapticActuator.cpp
    M Source/WebCore/Modules/gamepad/GamepadHapticActuator.h
    M Source/WebCore/Modules/gamepad/GamepadHapticEffectType.idl
    M Source/WebCore/platform/gamepad/cocoa/GameControllerGamepad.mm
    M Source/WebCore/platform/gamepad/cocoa/GameControllerHapticEffect.h
    M Source/WebCore/platform/gamepad/cocoa/GameControllerHapticEffect.mm
    M Source/WebCore/platform/gamepad/cocoa/GameControllerHapticEngines.h
    M Source/WebCore/platform/gamepad/cocoa/GameControllerHapticEngines.mm
    M Source/WebCore/platform/gamepad/cocoa/GameControllerSoftLink.h
    M Source/WebCore/platform/gamepad/cocoa/GameControllerSoftLink.mm
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in

  Log Message:
  -----------
  Gamepad.vibrationActuator: Add support for "trigger-rumble" effect type
https://bugs.webkit.org/show_bug.cgi?id=250352
rdar://104315486

Reviewed by Brent Fulgham and Geoffrey Garen.

Gamepad.vibrationActuator: Add support for "trigger-rumble" effect type:
-  https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/GamepadHapticsActuatorTriggerRumble/explainer.md

It allows vibrating the triggers (which the XBox controller supports), while the
existing "dual-rumble" only makes the handles vibrate.

This isn't yet part of the specification at:
- https://w3c.github.io/gamepad/extensions.html#dom-gamepadhapticeffecttype

However, it is supported by Blink and used by XBox cloud games.

I am adding support behind an experimental feature flag, off by default.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/Modules/gamepad/GamepadEffectParameters.h:
* Source/WebCore/Modules/gamepad/GamepadEffectParameters.idl:
* Source/WebCore/Modules/gamepad/GamepadHapticActuator.cpp:
(WebCore::GamepadHapticActuator::canPlayEffectType const):
(WebCore::GamepadHapticActuator::playEffect):
(WebCore::GamepadHapticActuator::stopEffects):
(WebCore::GamepadHapticActuator::document const):
(WebCore::GamepadHapticActuator::promiseForEffectType):
* Source/WebCore/Modules/gamepad/GamepadHapticActuator.h:
* Source/WebCore/Modules/gamepad/GamepadHapticEffectType.idl:
* Source/WebCore/platform/gamepad/cocoa/GameControllerGamepad.mm:
(WebCore::GameControllerGamepad::setupElements):
* Source/WebCore/platform/gamepad/cocoa/GameControllerHapticEffect.h:
* Source/WebCore/platform/gamepad/cocoa/GameControllerHapticEffect.mm:
(WebCore::GameControllerHapticEffect::create):
(WebCore::GameControllerHapticEffect::GameControllerHapticEffect):
(WebCore::GameControllerHapticEffect::start):
(WebCore::GameControllerHapticEffect::stop):
(WebCore::GameControllerHapticEffect::leftEffectFinishedPlaying):
(WebCore::GameControllerHapticEffect::rightEffectFinishedPlaying):
(WebCore::GameControllerHapticEffect::strongEffectFinishedPlaying): Deleted.
(WebCore::GameControllerHapticEffect::weakEffectFinishedPlaying): Deleted.
* Source/WebCore/platform/gamepad/cocoa/GameControllerHapticEngines.h:
(WebCore::GameControllerHapticEngines::leftHandleEngine):
(WebCore::GameControllerHapticEngines::rightHandleEngine):
(WebCore::GameControllerHapticEngines::leftTriggerEngine):
(WebCore::GameControllerHapticEngines::rightTriggerEngine):
(WebCore::GameControllerHapticEngines::strongEngine): Deleted.
(WebCore::GameControllerHapticEngines::weakEngine): Deleted.
* Source/WebCore/platform/gamepad/cocoa/GameControllerHapticEngines.mm:
(WebCore::GameControllerHapticEngines::GameControllerHapticEngines):
(WebCore::GameControllerHapticEngines::currentEffectForType):
(WebCore::GameControllerHapticEngines::playEffect):
(WebCore::GameControllerHapticEngines::stopEffects):
(WebCore::GameControllerHapticEngines::ensureStarted):
(WebCore::GameControllerHapticEngines::stop):
* Source/WebCore/platform/gamepad/cocoa/GameControllerSoftLink.h:
* Source/WebCore/platform/gamepad/cocoa/GameControllerSoftLink.mm:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:

Canonical link: https://commits.webkit.org/259507@main




More information about the webkit-changes mailing list