[webkit-changes] [WebKit/WebKit] 7203ee: Add plumbing for Gamepad.vibrationActuator support

Chris Dumez noreply at github.com
Fri Jan 6 13:57:12 PST 2023


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

  Changed paths:
    M Source/WebCore/CMakeLists.txt
    M Source/WebCore/DerivedSources-input.xcfilelist
    M Source/WebCore/DerivedSources-output.xcfilelist
    M Source/WebCore/DerivedSources.make
    M Source/WebCore/Headers.cmake
    M Source/WebCore/Modules/gamepad/Gamepad.cpp
    M Source/WebCore/Modules/gamepad/Gamepad.h
    M Source/WebCore/Modules/gamepad/GamepadHapticActuator.cpp
    M Source/WebCore/Modules/gamepad/GamepadHapticActuator.h
    M Source/WebCore/Modules/gamepad/GamepadHapticActuator.idl
    A Source/WebCore/Modules/gamepad/GamepadHapticEffectType.h
    A Source/WebCore/Modules/gamepad/GamepadHapticEffectType.idl
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/dom/TaskSource.h
    M Source/WebCore/platform/gamepad/EmptyGamepadProvider.cpp
    M Source/WebCore/platform/gamepad/EmptyGamepadProvider.h
    M Source/WebCore/platform/gamepad/GamepadProvider.h
    M Source/WebCore/platform/gamepad/PlatformGamepad.h
    M Source/WebCore/platform/gamepad/cocoa/GameControllerGamepad.h
    M Source/WebCore/platform/gamepad/cocoa/GameControllerGamepad.mm
    M Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.h
    M Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.mm
    M Source/WebCore/platform/gamepad/cocoa/GameControllerSoftLink.h
    M Source/WebCore/platform/gamepad/cocoa/GameControllerSoftLink.mm
    M Source/WebCore/platform/gamepad/libwpe/GamepadProviderLibWPE.cpp
    M Source/WebCore/platform/gamepad/libwpe/GamepadProviderLibWPE.h
    M Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.h
    M Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.mm
    M Source/WebCore/platform/gamepad/mac/MultiGamepadProvider.h
    M Source/WebCore/platform/gamepad/mac/MultiGamepadProvider.mm
    M Source/WebCore/platform/gamepad/manette/ManetteGamepadProvider.cpp
    M Source/WebCore/platform/gamepad/manette/ManetteGamepadProvider.h
    M Source/WebCore/testing/MockGamepadProvider.cpp
    M Source/WebCore/testing/MockGamepadProvider.h
    M Source/WebKit/Shared/Gamepad/GamepadData.cpp
    M Source/WebKit/Shared/Gamepad/GamepadData.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/UIProcess/Gamepad/UIGamepad.cpp
    M Source/WebKit/UIProcess/Gamepad/UIGamepad.h
    M Source/WebKit/UIProcess/WebProcessPool.cpp
    M Source/WebKit/UIProcess/WebProcessPool.h
    M Source/WebKit/UIProcess/WebProcessPool.messages.in
    M Source/WebKit/WebProcess/Gamepad/WebGamepad.cpp
    M Source/WebKit/WebProcess/Gamepad/WebGamepadProvider.cpp
    M Source/WebKit/WebProcess/Gamepad/WebGamepadProvider.h

  Log Message:
  -----------
  Add plumbing for Gamepad.vibrationActuator support
https://bugs.webkit.org/show_bug.cgi?id=250149

Reviewed by Brent Fulgham.

Add plumbing for Gamepad.vibrationActuator support:
- https://w3c.github.io/gamepad/extensions.html#dom-gamepadhapticactuator

The Gamepad.vibrationActuator's playEffect() / reset() calls are now properly
forwarded to the corresponding PlatformGamepad object in the UIProcess.

The next step will be to implement them inside GameControllerGamepad to
make the API actually functional on macOS 13+.

* Source/WebCore/CMakeLists.txt:
* Source/WebCore/DerivedSources-input.xcfilelist:
* Source/WebCore/DerivedSources-output.xcfilelist:
* Source/WebCore/DerivedSources.make:
* Source/WebCore/Modules/gamepad/Gamepad.cpp:
(WebCore::Gamepad::Gamepad):
(WebCore::Gamepad::vibrationActuator):
* Source/WebCore/Modules/gamepad/Gamepad.h:
* Source/WebCore/Modules/gamepad/GamepadHapticActuator.cpp:
(WebCore::GamepadHapticActuator::create):
(WebCore::GamepadHapticActuator::GamepadHapticActuator):
(WebCore::m_gamepad):
(WebCore::GamepadHapticActuator::canPlayEffectType const):
(WebCore::GamepadHapticActuator::playEffect):
(WebCore::GamepadHapticActuator::reset):
* Source/WebCore/Modules/gamepad/GamepadHapticActuator.h:
* Source/WebCore/Modules/gamepad/GamepadHapticActuator.idl:
* Source/WebCore/Modules/gamepad/GamepadHapticEffectType.h: Copied from Source/WebCore/platform/gamepad/EmptyGamepadProvider.h.
* Source/WebCore/Modules/gamepad/GamepadHapticEffectType.idl: Copied from Source/WebCore/platform/gamepad/EmptyGamepadProvider.h.
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/dom/TaskSource.h:
* Source/WebCore/platform/gamepad/EmptyGamepadProvider.cpp:
(WebCore::EmptyGamepadProvider::playEffect):
(WebCore::EmptyGamepadProvider::stopEffects):
* Source/WebCore/platform/gamepad/EmptyGamepadProvider.h:
* Source/WebCore/platform/gamepad/GamepadProvider.h:
* Source/WebCore/platform/gamepad/PlatformGamepad.h:
(WebCore::PlatformGamepad::supportedEffectTypes const):
(WebCore::PlatformGamepad::playEffect):
(WebCore::PlatformGamepad::stopEffects):
* Source/WebCore/platform/gamepad/cocoa/GameControllerGamepad.h:
* Source/WebCore/platform/gamepad/cocoa/GameControllerGamepad.mm:
(WebCore::GameControllerGamepad::setupElements):
(WebCore::GameControllerGamepad::playEffect):
(WebCore::GameControllerGamepad::stopEffects):
* Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.h:
* Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
(WebCore::GameControllerGamepadProvider::playEffect):
(WebCore::GameControllerGamepadProvider::stopEffects):
* Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.h:
* Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.mm:
(WebCore::HIDGamepadProvider::playEffect):
(WebCore::HIDGamepadProvider::stopEffects):
* Source/WebCore/platform/gamepad/mac/MultiGamepadProvider.h:
* Source/WebCore/platform/gamepad/mac/MultiGamepadProvider.mm:
(WebCore::MultiGamepadProvider::playEffect):
(WebCore::MultiGamepadProvider::stopEffects):
* Source/WebCore/platform/gamepad/manette/ManetteGamepadProvider.cpp:
(WebCore::ManetteGamepadProvider::playEffect):
(WebCore::ManetteGamepadProvider::stopEffects):
* Source/WebCore/platform/gamepad/manette/ManetteGamepadProvider.h:
* Source/WebCore/testing/MockGamepadProvider.cpp:
(WebCore::MockGamepadProvider::playEffect):
(WebCore::MockGamepadProvider::stopEffects):
* Source/WebCore/testing/MockGamepadProvider.h:
* Source/WebKit/Shared/Gamepad/GamepadData.cpp:
(WebKit::GamepadData::GamepadData):
(WebKit::m_supportedEffectTypes):
(WebKit::GamepadData::encode const):
(WebKit::GamepadData::decode):
(WebKit::m_lastUpdateTime): Deleted.
* Source/WebKit/Shared/Gamepad/GamepadData.h:
(WebKit::GamepadData::supportedEffectTypes const):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/UIProcess/Gamepad/UIGamepad.cpp:
(WebKit::UIGamepad::UIGamepad):
(WebKit::UIGamepad::gamepadData const):
* Source/WebKit/UIProcess/Gamepad/UIGamepad.h:
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::playGamepadEffect):
(WebKit::WebProcessPool::stopGamepadEffects):
* Source/WebKit/UIProcess/WebProcessPool.h:
* Source/WebKit/UIProcess/WebProcessPool.messages.in:
* Source/WebKit/WebProcess/Gamepad/WebGamepad.cpp:
(WebKit::WebGamepad::WebGamepad):
* Source/WebKit/WebProcess/Gamepad/WebGamepadProvider.cpp:
(WebKit::WebGamepadProvider::playEffect):
(WebKit::WebGamepadProvider::stopEffects):
* Source/WebKit/WebProcess/Gamepad/WebGamepadProvider.h:

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




More information about the webkit-changes mailing list