Diff
Modified: trunk/Source/WebCore/ChangeLog (204508 => 204509)
--- trunk/Source/WebCore/ChangeLog 2016-08-16 16:56:07 UTC (rev 204508)
+++ trunk/Source/WebCore/ChangeLog 2016-08-16 16:57:17 UTC (rev 204509)
@@ -1,3 +1,15 @@
+2016-08-16 Chris Dumez <[email protected]>
+
+ Unreviewed, rolling out r204506.
+
+ Broke the build
+
+ Reverted changeset:
+
+ "Cleanup WK2 platform gamepad handling."
+ https://bugs.webkit.org/show_bug.cgi?id=160871
+ http://trac.webkit.org/changeset/204506
+
2016-08-16 Darin Adler <[email protected]>
[Cocoa] Remove dependency on Objective-C bindings in WebKit2 editing code
Modified: trunk/Source/WebCore/platform/gamepad/GamepadProviderClient.h (204508 => 204509)
--- trunk/Source/WebCore/platform/gamepad/GamepadProviderClient.h 2016-08-16 16:56:07 UTC (rev 204508)
+++ trunk/Source/WebCore/platform/gamepad/GamepadProviderClient.h 2016-08-16 16:57:17 UTC (rev 204509)
@@ -27,8 +27,6 @@
#if ENABLE(GAMEPAD)
-#include <wtf/Vector.h>
-
namespace WebCore {
class PlatformGamepad;
@@ -37,7 +35,6 @@
public:
virtual ~GamepadProviderClient() { }
- virtual void setInitialConnectedGamepads(const Vector<PlatformGamepad*>&) { }
virtual void platformGamepadConnected(PlatformGamepad&) = 0;
virtual void platformGamepadDisconnected(PlatformGamepad&) = 0;
virtual void platformGamepadInputActivity() = 0;
Modified: trunk/Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.cpp (204508 => 204509)
--- trunk/Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.cpp 2016-08-16 16:56:07 UTC (rev 204508)
+++ trunk/Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.cpp 2016-08-16 16:57:17 UTC (rev 204509)
@@ -96,17 +96,6 @@
IOHIDManagerSetDeviceMatchingMultiple(m_manager.get(), matchingArray.get());
IOHIDManagerRegisterDeviceMatchingCallback(m_manager.get(), deviceAddedCallback, this);
IOHIDManagerRegisterDeviceRemovalCallback(m_manager.get(), deviceRemovedCallback, this);
-
- startMonitoringInput();
-}
-
-void HIDGamepadProvider::stopMonitoringInput()
-{
- IOHIDManagerRegisterInputValueCallback(m_manager.get(), nullptr, nullptr);
-}
-
-void HIDGamepadProvider::startMonitoringInput()
-{
IOHIDManagerRegisterInputValueCallback(m_manager.get(), deviceValuesChangedCallback, this);
}
@@ -122,9 +111,6 @@
void HIDGamepadProvider::connectionDelayTimerFired()
{
m_shouldDispatchCallbacks = true;
-
- for (auto* client : m_clients)
- client->setInitialConnectedGamepads(m_gamepadVector);
}
void HIDGamepadProvider::openAndScheduleManager()
Modified: trunk/Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.h (204508 => 204509)
--- trunk/Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.h 2016-08-16 16:56:07 UTC (rev 204508)
+++ trunk/Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.h 2016-08-16 16:57:17 UTC (rev 204509)
@@ -51,9 +51,6 @@
WEBCORE_EXPORT void stopMonitoringGamepads(GamepadProviderClient&) final;
const Vector<PlatformGamepad*>& platformGamepads() final { return m_gamepadVector; }
- WEBCORE_EXPORT void stopMonitoringInput();
- WEBCORE_EXPORT void startMonitoringInput();
-
void deviceAdded(IOHIDDeviceRef);
void deviceRemoved(IOHIDDeviceRef);
void valuesChanged(IOHIDValueRef);
Modified: trunk/Source/WebKit2/ChangeLog (204508 => 204509)
--- trunk/Source/WebKit2/ChangeLog 2016-08-16 16:56:07 UTC (rev 204508)
+++ trunk/Source/WebKit2/ChangeLog 2016-08-16 16:57:17 UTC (rev 204509)
@@ -1,3 +1,15 @@
+2016-08-16 Chris Dumez <[email protected]>
+
+ Unreviewed, rolling out r204506.
+
+ Broke the build
+
+ Reverted changeset:
+
+ "Cleanup WK2 platform gamepad handling."
+ https://bugs.webkit.org/show_bug.cgi?id=160871
+ http://trac.webkit.org/changeset/204506
+
2016-08-16 Darin Adler <[email protected]>
[Cocoa] Remove dependency on Objective-C bindings in WebKit2 editing code
Modified: trunk/Source/WebKit2/Platform/Logging.h (204508 => 204509)
--- trunk/Source/WebKit2/Platform/Logging.h 2016-08-16 16:56:07 UTC (rev 204508)
+++ trunk/Source/WebKit2/Platform/Logging.h 2016-08-16 16:57:17 UTC (rev 204509)
@@ -43,7 +43,6 @@
#define WEBKIT2_LOG_CHANNELS(M) \
M(ContextMenu) \
- M(Gamepad) \
M(IDB) \
M(IconDatabase) \
M(IndexedDB) \
Modified: trunk/Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.cpp (204508 => 204509)
--- trunk/Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.cpp 2016-08-16 16:56:07 UTC (rev 204508)
+++ trunk/Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.cpp 2016-08-16 16:57:17 UTC (rev 204509)
@@ -48,6 +48,7 @@
UIGamepadProvider::UIGamepadProvider()
: m_gamepadSyncTimer(RunLoop::main(), this, &UIGamepadProvider::gamepadSyncTimerFired)
+ , m_disableMonitoringTimer(RunLoop::main(), this, &UIGamepadProvider::disableMonitoringTimerFired)
{
}
@@ -63,7 +64,17 @@
if (!webPageProxy || !m_processPoolsUsingGamepads.contains(&webPageProxy->process().processPool()))
return;
- webPageProxy->gamepadActivity(snapshotGamepads());
+ Vector<GamepadData> gamepadDatas;
+ gamepadDatas.reserveInitialCapacity(m_gamepads.size());
+
+ for (auto& gamepad : m_gamepads) {
+ if (gamepad)
+ gamepadDatas.uncheckedAppend(gamepad->gamepadData());
+ else
+ gamepadDatas.uncheckedAppend({ });
+ }
+
+ webPageProxy->gamepadActivity(gamepadDatas);
}
void UIGamepadProvider::scheduleGamepadStateSync()
@@ -79,24 +90,6 @@
m_gamepadSyncTimer.startOneShot(maximumGamepadUpdateInterval);
}
-void UIGamepadProvider::setInitialConnectedGamepads(const Vector<PlatformGamepad*>& initialGamepads)
-{
- ASSERT(!m_hasInitialGamepads);
-
- m_gamepads.resize(initialGamepads.size());
-
- for (auto* gamepad : initialGamepads) {
- if (!gamepad)
- continue;
- m_gamepads[gamepad->index()] = std::make_unique<UIGamepad>(*gamepad);
- }
-
- for (auto& pool : m_processPoolsUsingGamepads)
- pool->setInitialConnectedGamepads(m_gamepads);
-
- m_hasInitialGamepads = true;
-}
-
void UIGamepadProvider::platformGamepadConnected(PlatformGamepad& gamepad)
{
if (m_gamepads.size() <= gamepad.index())
@@ -159,7 +152,7 @@
m_processPoolsUsingGamepads.remove(&pool);
if (m_isMonitoringGamepads && !platformWebPageProxyForGamepadInput())
- platformStopMonitoringInput();
+ scheduleDisableGamepadMonitoring();
scheduleGamepadStateSync();
}
@@ -169,11 +162,8 @@
if (!m_processPoolsUsingGamepads.contains(&page.process().processPool()))
return;
- if (!m_isMonitoringGamepads)
- startMonitoringGamepads();
-
- if (platformWebPageProxyForGamepadInput())
- platformStartMonitoringInput();
+ m_disableMonitoringTimer.stop();
+ startMonitoringGamepads();
}
void UIGamepadProvider::viewBecameInactive(WebPageProxy& page)
@@ -180,9 +170,20 @@
{
auto pageForGamepadInput = platformWebPageProxyForGamepadInput();
if (pageForGamepadInput == &page)
- platformStopMonitoringInput();
+ scheduleDisableGamepadMonitoring();
}
+void UIGamepadProvider::scheduleDisableGamepadMonitoring()
+{
+ if (!m_disableMonitoringTimer.isActive())
+ m_disableMonitoringTimer.startOneShot(0);
+}
+
+void UIGamepadProvider::disableMonitoringTimerFired()
+{
+ stopMonitoringGamepads();
+}
+
void UIGamepadProvider::startMonitoringGamepads()
{
if (m_isMonitoringGamepads)
@@ -199,24 +200,8 @@
m_isMonitoringGamepads = false;
platformStopMonitoringGamepads();
- m_gamepads.clear();
}
-Vector<GamepadData> UIGamepadProvider::snapshotGamepads()
-{
- Vector<GamepadData> gamepadDatas;
- gamepadDatas.reserveInitialCapacity(m_gamepads.size());
-
- for (auto& gamepad : m_gamepads) {
- if (gamepad)
- gamepadDatas.uncheckedAppend(gamepad->gamepadData());
- else
- gamepadDatas.uncheckedAppend({ });
- }
-
- return gamepadDatas;
-}
-
#if !PLATFORM(MAC)
void UIGamepadProvider::platformStartMonitoringGamepads()
@@ -242,14 +227,6 @@
// FIXME: Implement for other platforms
}
-void UIGamepadProvider::platformStopMonitoringInput()
-{
-}
-
-void UIGamepadProvider::platformStartMonitoringInput()
-{
-}
-
#endif // !PLATFORM(MAC)
}
Modified: trunk/Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.h (204508 => 204509)
--- trunk/Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.h 2016-08-16 16:56:07 UTC (rev 204508)
+++ trunk/Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.h 2016-08-16 16:57:17 UTC (rev 204509)
@@ -64,10 +64,7 @@
void platformStopMonitoringGamepads();
const Vector<WebCore::PlatformGamepad*>& platformGamepads();
WebPageProxy* platformWebPageProxyForGamepadInput();
- void platformStopMonitoringInput();
- void platformStartMonitoringInput();
- void setInitialConnectedGamepads(const Vector<WebCore::PlatformGamepad*>&) final;
void platformGamepadConnected(WebCore::PlatformGamepad&) final;
void platformGamepadDisconnected(WebCore::PlatformGamepad&) final;
void platformGamepadInputActivity() final;
@@ -75,7 +72,8 @@
void scheduleGamepadStateSync();
void gamepadSyncTimerFired();
- Vector<GamepadData> snapshotGamepads();
+ void scheduleDisableGamepadMonitoring();
+ void disableMonitoringTimerFired();
HashSet<WebProcessPool*> m_processPoolsUsingGamepads;
@@ -82,9 +80,9 @@
Vector<std::unique_ptr<UIGamepad>> m_gamepads;
RunLoop::Timer<UIGamepadProvider> m_gamepadSyncTimer;
+ RunLoop::Timer<UIGamepadProvider> m_disableMonitoringTimer;
bool m_isMonitoringGamepads { false };
- bool m_hasInitialGamepads { false };
};
}
Modified: trunk/Source/WebKit2/UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp (204508 => 204509)
--- trunk/Source/WebKit2/UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp 2016-08-16 16:56:07 UTC (rev 204508)
+++ trunk/Source/WebKit2/UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp 2016-08-16 16:57:17 UTC (rev 204509)
@@ -51,16 +51,6 @@
return HIDGamepadProvider::singleton().platformGamepads();
}
-void UIGamepadProvider::platformStopMonitoringInput()
-{
- return HIDGamepadProvider::singleton().stopMonitoringInput();
}
-void UIGamepadProvider::platformStartMonitoringInput()
-{
- return HIDGamepadProvider::singleton().startMonitoringInput();
-}
-
-}
-
#endif // ENABLE(GAMEPAD)
Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (204508 => 204509)
--- trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp 2016-08-16 16:56:07 UTC (rev 204508)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp 2016-08-16 16:57:17 UTC (rev 204509)
@@ -1286,20 +1286,6 @@
process->send(Messages::WebProcess::GamepadDisconnected(gamepad.index()), 0);
}
-void WebProcessPool::setInitialConnectedGamepads(const Vector<std::unique_ptr<UIGamepad>>& gamepads)
-{
- Vector<GamepadData> gamepadDatas;
- gamepadDatas.resize(gamepads.size());
- for (size_t i = 0; i < gamepads.size(); ++i) {
- if (!gamepads[i])
- continue;
- gamepadDatas[i] = gamepads[i]->gamepadData();
- }
-
- for (auto& process : m_processesUsingGamepads)
- process->send(Messages::WebProcess::SetInitialGamepads(gamepadDatas), 0);
-}
-
#endif // ENABLE(GAMEPAD)
void WebProcessPool::garbageCollectJavaScriptObjects()
Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.h (204508 => 204509)
--- trunk/Source/WebKit2/UIProcess/WebProcessPool.h 2016-08-16 16:56:07 UTC (rev 204508)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.h 2016-08-16 16:57:17 UTC (rev 204509)
@@ -370,8 +370,6 @@
#if ENABLE(GAMEPAD)
void gamepadConnected(const UIGamepad&);
void gamepadDisconnected(const UIGamepad&);
-
- void setInitialConnectedGamepads(const Vector<std::unique_ptr<UIGamepad>>&);
#endif
private:
Modified: trunk/Source/WebKit2/WebProcess/Gamepad/WebGamepadProvider.cpp (204508 => 204509)
--- trunk/Source/WebKit2/WebProcess/Gamepad/WebGamepadProvider.cpp 2016-08-16 16:56:07 UTC (rev 204508)
+++ trunk/Source/WebKit2/WebProcess/Gamepad/WebGamepadProvider.cpp 2016-08-16 16:57:17 UTC (rev 204509)
@@ -53,21 +53,6 @@
{
}
-void WebGamepadProvider::setInitialGamepads(const Vector<GamepadData>& gamepadDatas)
-{
- ASSERT(m_gamepads.isEmpty());
-
- m_gamepads.resize(gamepadDatas.size());
- m_rawGamepads.resize(gamepadDatas.size());
- for (size_t i = 0; i < gamepadDatas.size(); ++i) {
- if (gamepadDatas[i].isNull())
- continue;
-
- m_gamepads[i] = std::make_unique<WebGamepad>(gamepadDatas[i]);
- m_rawGamepads[i] = m_gamepads[i].get();
- }
-}
-
void WebGamepadProvider::gamepadConnected(const GamepadData& gamepadData)
{
if (m_gamepads.size() <= gamepadData.index) {
Modified: trunk/Source/WebKit2/WebProcess/Gamepad/WebGamepadProvider.h (204508 => 204509)
--- trunk/Source/WebKit2/WebProcess/Gamepad/WebGamepadProvider.h 2016-08-16 16:56:07 UTC (rev 204508)
+++ trunk/Source/WebKit2/WebProcess/Gamepad/WebGamepadProvider.h 2016-08-16 16:57:17 UTC (rev 204509)
@@ -46,8 +46,6 @@
void gamepadDisconnected(unsigned index);
void gamepadActivity(const Vector<GamepadData>&);
- void setInitialGamepads(const Vector<GamepadData>&);
-
private:
friend NeverDestroyed<WebGamepadProvider>;
WebGamepadProvider();
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (204508 => 204509)
--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2016-08-16 16:56:07 UTC (rev 204508)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2016-08-16 16:57:17 UTC (rev 204509)
@@ -1030,11 +1030,6 @@
#if ENABLE(GAMEPAD)
-void WebProcess::setInitialGamepads(const Vector<WebKit::GamepadData>& gamepadDatas)
-{
- WebGamepadProvider::singleton().setInitialGamepads(gamepadDatas);
-}
-
void WebProcess::gamepadConnected(const GamepadData& gamepadData)
{
WebGamepadProvider::singleton().gamepadConnected(gamepadData);
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.h (204508 => 204509)
--- trunk/Source/WebKit2/WebProcess/WebProcess.h 2016-08-16 16:56:07 UTC (rev 204508)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.h 2016-08-16 16:57:17 UTC (rev 204509)
@@ -276,7 +276,6 @@
void mainThreadPing();
#if ENABLE(GAMEPAD)
- void setInitialGamepads(const Vector<GamepadData>&);
void gamepadConnected(const GamepadData&);
void gamepadDisconnected(unsigned index);
#endif
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.messages.in (204508 => 204509)
--- trunk/Source/WebKit2/WebProcess/WebProcess.messages.in 2016-08-16 16:56:07 UTC (rev 204508)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.messages.in 2016-08-16 16:57:17 UTC (rev 204509)
@@ -103,7 +103,6 @@
MainThreadPing()
#if ENABLE(GAMEPAD)
- SetInitialGamepads(Vector<WebKit::GamepadData> gamepadDatas)
GamepadConnected(struct WebKit::GamepadData gamepadData)
GamepadDisconnected(unsigned index)
#endif