Title: [210871] branches/safari-603-branch/Source/WebKit2

Diff

Modified: branches/safari-603-branch/Source/WebKit2/ChangeLog (210870 => 210871)


--- branches/safari-603-branch/Source/WebKit2/ChangeLog	2017-01-18 20:43:09 UTC (rev 210870)
+++ branches/safari-603-branch/Source/WebKit2/ChangeLog	2017-01-18 20:43:11 UTC (rev 210871)
@@ -1,5 +1,24 @@
 2017-01-18  Matthew Hanson  <[email protected]>
 
+        Merge r210761. rdar://problem/29544024
+
+    2017-01-13  Brady Eidson  <[email protected]>
+
+            Crash when visiting a webpage that uses Gamepads in a new WebProcess after a previous page has used gamepads..
+            https://bugs.webkit.org/show_bug.cgi?id=167033
+
+            Reviewed by Alex Christensen.
+
+            * UIProcess/Gamepad/UIGamepadProvider.cpp:
+            (WebKit::UIGamepadProvider::processPoolStartedUsingGamepads): Don't schedule a state update here.
+            (WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads): Ditto.
+            * UIProcess/Gamepad/UIGamepadProvider.h:
+
+            * UIProcess/WebProcessPool.cpp:
+            (WebKit::WebProcessPool::startedUsingGamepads): Populate the WebProcess with initial gamepads.
+
+2017-01-18  Matthew Hanson  <[email protected]>
+
         Merge r210829. rdar://problem/30044439
 
     2017-01-17  Filip Pizlo  <[email protected]>

Modified: branches/safari-603-branch/Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.cpp (210870 => 210871)


--- branches/safari-603-branch/Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.cpp	2017-01-18 20:43:09 UTC (rev 210870)
+++ branches/safari-603-branch/Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.cpp	2017-01-18 20:43:11 UTC (rev 210871)
@@ -151,8 +151,6 @@
 
     if (!m_isMonitoringGamepads && platformWebPageProxyForGamepadInput())
         startMonitoringGamepads();
-
-    scheduleGamepadStateSync();
 }
 
 void UIGamepadProvider::processPoolStoppedUsingGamepads(WebProcessPool& pool)
@@ -162,8 +160,6 @@
 
     if (m_isMonitoringGamepads && !platformWebPageProxyForGamepadInput())
         platformStopMonitoringInput();
-
-    scheduleGamepadStateSync();
 }
 
 void UIGamepadProvider::viewBecameActive(WebPageProxy& page)

Modified: branches/safari-603-branch/Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.h (210870 => 210871)


--- branches/safari-603-branch/Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.h	2017-01-18 20:43:09 UTC (rev 210870)
+++ branches/safari-603-branch/Source/WebKit2/UIProcess/Gamepad/UIGamepadProvider.h	2017-01-18 20:43:11 UTC (rev 210871)
@@ -56,6 +56,8 @@
     static void setUsesGameControllerFramework();
 #endif
 
+    Vector<GamepadData> snapshotGamepads();
+
 private:
     friend NeverDestroyed<UIGamepadProvider>;
     UIGamepadProvider();
@@ -77,8 +79,6 @@
     void scheduleGamepadStateSync();
     void gamepadSyncTimerFired();
 
-    Vector<GamepadData> snapshotGamepads();
-
     HashSet<WebProcessPool*> m_processPoolsUsingGamepads;
 
     Vector<std::unique_ptr<UIGamepad>> m_gamepads;

Modified: branches/safari-603-branch/Source/WebKit2/UIProcess/WebProcessPool.cpp (210870 => 210871)


--- branches/safari-603-branch/Source/WebKit2/UIProcess/WebProcessPool.cpp	2017-01-18 20:43:09 UTC (rev 210870)
+++ branches/safari-603-branch/Source/WebKit2/UIProcess/WebProcessPool.cpp	2017-01-18 20:43:11 UTC (rev 210871)
@@ -1269,6 +1269,8 @@
 
     if (!wereAnyProcessesUsingGamepads)
         UIGamepadProvider::singleton().processPoolStartedUsingGamepads(*this);
+
+    proxy->send(Messages::WebProcess::SetInitialGamepads(UIGamepadProvider::singleton().snapshotGamepads()), 0);
 }
 
 void WebProcessPool::stoppedUsingGamepads(IPC::Connection& connection)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to