Title: [256452] trunk/Source/WebKit
Revision
256452
Author
[email protected]
Date
2020-02-12 10:46:31 -0800 (Wed, 12 Feb 2020)

Log Message

Pages that trigger a redirect will sometimes be left blank
https://bugs.webkit.org/show_bug.cgi?id=207614
rdar://problem/59077740

Reviewed by Tim Horton.

TiledCoreAnimationDrawingArea::setRootCompositingGraphicsLayer() can be called when the layer tree
is frozen, in which case we stash away the layer in m_pendingRootLayer to be parented later at flush
time. However, this sequence of calls had a bug:

setRootCompositingGraphicsLayer() when frozen
    -> stash in m_pendingRootLayer
setRootCompositingGraphicsLayer() when not frozen
    -> set the root layer
flushLayers()
    -> set the root layer to the (old) m_pendingRootLayer

So we need to clear m_pendingRootLayer at step 2.

Very timing dependent, hard to test.

* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (256451 => 256452)


--- trunk/Source/WebKit/ChangeLog	2020-02-12 18:40:24 UTC (rev 256451)
+++ trunk/Source/WebKit/ChangeLog	2020-02-12 18:46:31 UTC (rev 256452)
@@ -1,3 +1,29 @@
+2020-02-12  Simon Fraser  <[email protected]>
+
+        Pages that trigger a redirect will sometimes be left blank
+        https://bugs.webkit.org/show_bug.cgi?id=207614
+        rdar://problem/59077740
+
+        Reviewed by Tim Horton.
+
+        TiledCoreAnimationDrawingArea::setRootCompositingGraphicsLayer() can be called when the layer tree
+        is frozen, in which case we stash away the layer in m_pendingRootLayer to be parented later at flush
+        time. However, this sequence of calls had a bug:
+
+        setRootCompositingGraphicsLayer() when frozen
+            -> stash in m_pendingRootLayer
+        setRootCompositingGraphicsLayer() when not frozen
+            -> set the root layer
+        flushLayers()
+            -> set the root layer to the (old) m_pendingRootLayer
+
+        So we need to clear m_pendingRootLayer at step 2.
+
+        Very timing dependent, hard to test.
+
+        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+        (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
+
 2020-02-12  Per Arne Vollan  <[email protected]>
 
         [iOS] Deny mach lookup access to view service in the WebContent process

Modified: trunk/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm (256451 => 256452)


--- trunk/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm	2020-02-12 18:40:24 UTC (rev 256451)
+++ trunk/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm	2020-02-12 18:46:31 UTC (rev 256452)
@@ -137,6 +137,7 @@
         return;
     }
 
+    m_pendingRootLayer = nullptr;
     setRootCompositingLayer(rootLayer);
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to