Excessive hang time in iOS Safari under waitForDidUpdateActivityState
authortimothy_horton@apple.com <timothy_horton@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 22 May 2020 20:33:30 +0000 (20:33 +0000)
committertimothy_horton@apple.com <timothy_horton@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 22 May 2020 20:33:30 +0000 (20:33 +0000)
https://bugs.webkit.org/show_bug.cgi?id=212272
<rdar://problem/62787789>

Reviewed by Andy Estes.

* UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateActivityState):
Make the view state change timeout equivalent on iOS and macOS.

We believe that it is preferable to paint white than block the UI
process main thread for half a second. Reduce the timeout on iOS
to be the same as it has been for years on macOS.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262071 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/ChangeLog
Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm

index ec82afc..650e259 100644 (file)
@@ -1,3 +1,19 @@
+2020-05-22  Tim Horton  <timothy_horton@apple.com>
+
+        Excessive hang time in iOS Safari under waitForDidUpdateActivityState
+        https://bugs.webkit.org/show_bug.cgi?id=212272
+        <rdar://problem/62787789>
+
+        Reviewed by Andy Estes.
+
+        * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
+        (WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateActivityState):
+        Make the view state change timeout equivalent on iOS and macOS.
+
+        We believe that it is preferable to paint white than block the UI
+        process main thread for half a second. Reduce the timeout on iOS
+        to be the same as it has been for years on macOS.
+
 2020-05-22  Alex Christensen  <achristensen@webkit.org>
 
         Add SPI to unblock third party cookies from WKWebViews with ResourceLoadStatistics turned on
index 66ec384..649a084 100644 (file)
@@ -462,12 +462,7 @@ void RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateActivityState(ActivityStat
     static Seconds activityStateUpdateTimeout = [] {
         if (id value = [[NSUserDefaults standardUserDefaults] objectForKey:@"WebKitOverrideActivityStateUpdateTimeout"])
             return Seconds([value doubleValue]);
-
-#if PLATFORM(IOS_FAMILY)
-        return Seconds::fromMilliseconds(500);
-#else
         return Seconds::fromMilliseconds(250);
-#endif
     }();
 
     auto startTime = MonotonicTime::now();