Title: [255458] trunk/Source/WebKit
Revision
255458
Author
[email protected]
Date
2020-01-30 14:31:31 -0800 (Thu, 30 Jan 2020)

Log Message

Can still get stuck after swipe backwards with a slow server, even after r254552
https://bugs.webkit.org/show_bug.cgi?id=207017
<rdar://problem/59016256>

Reviewed by Chris Dumez.

* UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::unfreezeLayerTreeDueToSwipeAnimation):
* UIProcess/ProvisionalPageProxy.h:
* UIProcess/WebPageProxy.cpp:
There's a second case where you can get stuck with the "swipe gesture"
layer tree freeze reason in the web process: when doing a cross-origin
navigation where the load takes more than 3 seconds (the swipe
snapshot timeout) to commit, the provisional page will have mirrored
the original page's frozen state upon creation, but will not ever
receive the unfreeze, because it is sent while still provisional.

To fix this, just forward the unfreeze message to the provisional page.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (255457 => 255458)


--- trunk/Source/WebKit/ChangeLog	2020-01-30 22:13:23 UTC (rev 255457)
+++ trunk/Source/WebKit/ChangeLog	2020-01-30 22:31:31 UTC (rev 255458)
@@ -1,3 +1,24 @@
+2020-01-30  Tim Horton  <[email protected]>
+
+        Can still get stuck after swipe backwards with a slow server, even after r254552
+        https://bugs.webkit.org/show_bug.cgi?id=207017
+        <rdar://problem/59016256>
+
+        Reviewed by Chris Dumez.
+
+        * UIProcess/ProvisionalPageProxy.cpp:
+        (WebKit::ProvisionalPageProxy::unfreezeLayerTreeDueToSwipeAnimation):
+        * UIProcess/ProvisionalPageProxy.h:
+        * UIProcess/WebPageProxy.cpp:
+        There's a second case where you can get stuck with the "swipe gesture"
+        layer tree freeze reason in the web process: when doing a cross-origin
+        navigation where the load takes more than 3 seconds (the swipe
+        snapshot timeout) to commit, the provisional page will have mirrored
+        the original page's frozen state upon creation, but will not ever
+        receive the unfreeze, because it is sent while still provisional.
+
+        To fix this, just forward the unfreeze message to the provisional page.
+
 2020-01-30  Per Arne Vollan  <[email protected]>
 
         [iOS] Issue mach sandbox extension to the frontboard and icon service when the attachment element is enabled

Modified: trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp (255457 => 255458)


--- trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp	2020-01-30 22:13:23 UTC (rev 255457)
+++ trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.cpp	2020-01-30 22:31:31 UTC (rev 255458)
@@ -388,6 +388,11 @@
 }
 #endif
 
+void ProvisionalPageProxy::unfreezeLayerTreeDueToSwipeAnimation()
+{
+    send(Messages::WebPage::UnfreezeLayerTreeDueToSwipeAnimation());
+}
+
 void ProvisionalPageProxy::didReceiveMessage(IPC::Connection& connection, IPC::Decoder& decoder)
 {
     ASSERT(decoder.messageReceiverName() == Messages::WebPageProxy::messageReceiverName());

Modified: trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.h (255457 => 255458)


--- trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.h	2020-01-30 22:13:23 UTC (rev 255457)
+++ trunk/Source/WebKit/UIProcess/ProvisionalPageProxy.h	2020-01-30 22:31:31 UTC (rev 255458)
@@ -96,6 +96,8 @@
     void goToBackForwardItem(API::Navigation&, WebBackForwardListItem&, Optional<WebsitePoliciesData>&&);
     void cancel();
 
+    void unfreezeLayerTreeDueToSwipeAnimation();
+
     void processDidTerminate();
 
 private:

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (255457 => 255458)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2020-01-30 22:13:23 UTC (rev 255457)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2020-01-30 22:31:31 UTC (rev 255458)
@@ -8569,6 +8569,9 @@
     if (m_isLayerTreeFrozenDueToSwipeAnimation) {
         m_isLayerTreeFrozenDueToSwipeAnimation = false;
         send(Messages::WebPage::UnfreezeLayerTreeDueToSwipeAnimation());
+
+        if (m_provisionalPage)
+            m_provisionalPage->unfreezeLayerTreeDueToSwipeAnimation();
     }
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to