Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7203ee047b6ca60c82927f67daecc042e9a1cc58
      
https://github.com/WebKit/WebKit/commit/7203ee047b6ca60c82927f67daecc042e9a1cc58
  Author: Chris Dumez <[email protected]>
  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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to