Title: [277351] trunk/Source/WebKit
Revision
277351
Author
[email protected]
Date
2021-05-11 20:40:45 -0700 (Tue, 11 May 2021)

Log Message

Crash in DisplayLink::incrementFullSpeedRequestClientCount()
https://bugs.webkit.org/show_bug.cgi?id=225683
<rdar://77716330>

Reviewed by Tim Horton.

Crash data suggest that in WebPageProxy::updateWheelEventActivityAfterProcessSwap()
the connection might be null. Protect against that an an unset DisplayID, as we do
in wheelEventHysteresisUpdated().

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateWheelEventActivityAfterProcessSwap):
* UIProcess/mac/DisplayLink.cpp:
(WebKit::DisplayLink::incrementFullSpeedRequestClientCount): Remove an extra semicolon.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (277350 => 277351)


--- trunk/Source/WebKit/ChangeLog	2021-05-12 02:45:51 UTC (rev 277350)
+++ trunk/Source/WebKit/ChangeLog	2021-05-12 03:40:45 UTC (rev 277351)
@@ -1,3 +1,20 @@
+2021-05-11  Simon Fraser  <[email protected]>
+
+        Crash in DisplayLink::incrementFullSpeedRequestClientCount()
+        https://bugs.webkit.org/show_bug.cgi?id=225683
+        <rdar://77716330>
+
+        Reviewed by Tim Horton.
+
+        Crash data suggest that in WebPageProxy::updateWheelEventActivityAfterProcessSwap()
+        the connection might be null. Protect against that an an unset DisplayID, as we do
+        in wheelEventHysteresisUpdated().
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::updateWheelEventActivityAfterProcessSwap):
+        * UIProcess/mac/DisplayLink.cpp:
+        (WebKit::DisplayLink::incrementFullSpeedRequestClientCount): Remove an extra semicolon.
+
 2021-05-11  Tim Horton  <[email protected]>
 
         Fix the CGDisplayListImageBufferBackend build

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (277350 => 277351)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2021-05-12 02:45:51 UTC (rev 277350)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2021-05-12 03:40:45 UTC (rev 277351)
@@ -2782,6 +2782,9 @@
 {
 #if HAVE(CVDISPLAYLINK)
     if (m_wheelEventActivityHysteresis.state() == PAL::HysteresisState::Started) {
+        if (!m_process->hasConnection() || !m_displayID)
+            return;
+
         bool wantsFullSpeedUpdates = true;
         process().processPool().setDisplayLinkForDisplayWantsFullSpeedUpdates(*m_process->connection(), *m_displayID, wantsFullSpeedUpdates);
     }

Modified: trunk/Source/WebKit/UIProcess/mac/DisplayLink.cpp (277350 => 277351)


--- trunk/Source/WebKit/UIProcess/mac/DisplayLink.cpp	2021-05-12 02:45:51 UTC (rev 277350)
+++ trunk/Source/WebKit/UIProcess/mac/DisplayLink.cpp	2021-05-12 03:40:45 UTC (rev 277351)
@@ -160,7 +160,7 @@
 
     auto& connectionInfo = m_observers.ensure(&connection, [] {
         return ConnectionClientInfo { };
-    }).iterator->value;;
+    }).iterator->value;
 
     ++connectionInfo.fullSpeedUpdatesClientCount;
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to