Index: Source/modules/gamepad/GamepadDispatcher.cpp |
diff --git a/Source/modules/gamepad/GamepadDispatcher.cpp b/Source/modules/gamepad/GamepadDispatcher.cpp |
index 0749ad1a1bf2b053cf061c28c307b502c92b3f29..adef38d117f32c9d2a34323579583067be5e0901 100644 |
--- a/Source/modules/gamepad/GamepadDispatcher.cpp |
+++ b/Source/modules/gamepad/GamepadDispatcher.cpp |
@@ -17,19 +17,8 @@ GamepadDispatcher& GamepadDispatcher::instance() |
return gamepadDispatcher; |
} |
-void GamepadDispatcher::addClient(NavigatorGamepad* client) |
-{ |
- addController(client); |
-} |
- |
-void GamepadDispatcher::removeClient(NavigatorGamepad* client) |
-{ |
- removeController(client); |
-} |
- |
void GamepadDispatcher::sampleGamepads(blink::WebGamepads& gamepads) |
{ |
- ASSERT(!m_controllers.isEmpty()); |
blink::Platform::current()->sampleGamepads(gamepads); |
} |
@@ -53,18 +42,12 @@ void GamepadDispatcher::didDisconnectGamepad(unsigned index, const blink::WebGam |
void GamepadDispatcher::dispatchDidConnectOrDisconnectGamepad(unsigned index, const blink::WebGamepad& gamepad, bool connected) |
{ |
- { |
- TemporaryChange<bool> changeIsDispatching(m_isDispatching, true); |
- // Don't fire controllers removed or added during event dispatch. |
- size_t size = m_controllers.size(); |
- for (size_t i = 0; i < size; ++i) { |
- if (m_controllers[i]) |
- static_cast<NavigatorGamepad*>(m_controllers[i])->didConnectOrDisconnectGamepad(index, gamepad, connected); |
- } |
- } |
+ ASSERT(index < blink::WebGamepads::itemsLengthCap); |
+ ASSERT(connected == gamepad.connected); |
- if (m_needsPurge) |
- purgeControllers(); |
+ m_latestChange.pad = gamepad; |
+ m_latestChange.index = index; |
+ notifyControllers(); |
} |
void GamepadDispatcher::startListening() |