Title: [231370] trunk/Source/WebKit
Revision
231370
Author
[email protected]
Date
2018-05-04 12:16:40 -0700 (Fri, 04 May 2018)

Log Message

Allow Web Touch events to timeout
https://bugs.webkit.org/show_bug.cgi?id=185282
<rdar://problem/38728319>

Reviewed by Tim Horton.

Web Touch events currently never time out, which blocks the user from interacting with the UI Process at all.
We should allow these events to time out so that the user can interact with the rest of the UI.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleTouchEventSynchronously):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (231369 => 231370)


--- trunk/Source/WebKit/ChangeLog	2018-05-04 18:52:47 UTC (rev 231369)
+++ trunk/Source/WebKit/ChangeLog	2018-05-04 19:16:40 UTC (rev 231370)
@@ -1,3 +1,17 @@
+2018-05-04  Megan Gardner  <[email protected]>
+
+        Allow Web Touch events to timeout
+        https://bugs.webkit.org/show_bug.cgi?id=185282
+        <rdar://problem/38728319>
+
+        Reviewed by Tim Horton.
+        
+        Web Touch events currently never time out, which blocks the user from interacting with the UI Process at all.
+        We should allow these events to time out so that the user can interact with the rest of the UI.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::handleTouchEventSynchronously):
+
 2018-05-04  Wenson Hsieh  <[email protected]>
 
         REGRESSION: [ios-simulator] 3 WKWebViewAutofillTests API test failures seen with 11.3 SDK

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (231369 => 231370)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2018-05-04 18:52:47 UTC (rev 231369)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2018-05-04 19:16:40 UTC (rev 231370)
@@ -2297,7 +2297,10 @@
 
     m_process->responsivenessTimer().start();
     bool handled = false;
-    m_process->sendSync(Messages::WebPage::TouchEventSync(event), Messages::WebPage::TouchEventSync::Reply(handled), m_pageID);
+    bool replyReceived = m_process->sendSync(Messages::WebPage::TouchEventSync(event), Messages::WebPage::TouchEventSync::Reply(handled), m_pageID, 1_s);
+    // If the sync request has timed out, we should consider the event handled. The Web Process is too busy to answer any questions, so the default action is also likely to have issues.
+    if (replyReceived)
+        handled = true;
     didReceiveEvent(event.type(), handled);
     m_pageClient.doneWithTouchEvent(event, handled);
     m_process->responsivenessTimer().stop();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to