Changeset 256452 in webkit


Ignore:
Timestamp:
Feb 12, 2020 10:46:31 AM (4 years ago)
Author:
Simon Fraser
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):

Location:
trunk/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r256450 r256452  
     12020-02-12  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Pages that trigger a redirect will sometimes be left blank
     4        https://bugs.webkit.org/show_bug.cgi?id=207614
     5        rdar://problem/59077740
     6
     7        Reviewed by Tim Horton.
     8
     9        TiledCoreAnimationDrawingArea::setRootCompositingGraphicsLayer() can be called when the layer tree
     10        is frozen, in which case we stash away the layer in m_pendingRootLayer to be parented later at flush
     11        time. However, this sequence of calls had a bug:
     12
     13        setRootCompositingGraphicsLayer() when frozen
     14            -> stash in m_pendingRootLayer
     15        setRootCompositingGraphicsLayer() when not frozen
     16            -> set the root layer
     17        flushLayers()
     18            -> set the root layer to the (old) m_pendingRootLayer
     19
     20        So we need to clear m_pendingRootLayer at step 2.
     21
     22        Very timing dependent, hard to test.
     23
     24        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
     25        (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
     26
    1272020-02-12  Per Arne Vollan  <pvollan@apple.com>
    228
  • trunk/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm

    r254042 r256452  
    138138    }
    139139
     140    m_pendingRootLayer = nullptr;
    140141    setRootCompositingLayer(rootLayer);
    141142}
Note: See TracChangeset for help on using the changeset viewer.