Changeset 256676 in webkit


Ignore:
Timestamp:
Feb 14, 2020 7:01:49 PM (4 years ago)
Author:
Russell Epstein
Message:

Cherry-pick r256452. rdar://problem/59446979

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):

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

Location:
branches/safari-609-branch/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-609-branch/Source/WebKit/ChangeLog

    r256673 r256676  
     12020-02-14  Russell Epstein  <repstein@apple.com>
     2
     3        Cherry-pick r256452. rdar://problem/59446979
     4
     5    Pages that trigger a redirect will sometimes be left blank
     6    https://bugs.webkit.org/show_bug.cgi?id=207614
     7    rdar://problem/59077740
     8   
     9    Reviewed by Tim Horton.
     10   
     11    TiledCoreAnimationDrawingArea::setRootCompositingGraphicsLayer() can be called when the layer tree
     12    is frozen, in which case we stash away the layer in m_pendingRootLayer to be parented later at flush
     13    time. However, this sequence of calls had a bug:
     14   
     15    setRootCompositingGraphicsLayer() when frozen
     16        -> stash in m_pendingRootLayer
     17    setRootCompositingGraphicsLayer() when not frozen
     18        -> set the root layer
     19    flushLayers()
     20        -> set the root layer to the (old) m_pendingRootLayer
     21   
     22    So we need to clear m_pendingRootLayer at step 2.
     23   
     24    Very timing dependent, hard to test.
     25   
     26    * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
     27    (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
     28   
     29   
     30    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256452 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     31
     32    2020-02-12  Simon Fraser  <simon.fraser@apple.com>
     33
     34            Pages that trigger a redirect will sometimes be left blank
     35            https://bugs.webkit.org/show_bug.cgi?id=207614
     36            rdar://problem/59077740
     37
     38            Reviewed by Tim Horton.
     39
     40            TiledCoreAnimationDrawingArea::setRootCompositingGraphicsLayer() can be called when the layer tree
     41            is frozen, in which case we stash away the layer in m_pendingRootLayer to be parented later at flush
     42            time. However, this sequence of calls had a bug:
     43
     44            setRootCompositingGraphicsLayer() when frozen
     45                -> stash in m_pendingRootLayer
     46            setRootCompositingGraphicsLayer() when not frozen
     47                -> set the root layer
     48            flushLayers()
     49                -> set the root layer to the (old) m_pendingRootLayer
     50
     51            So we need to clear m_pendingRootLayer at step 2.
     52
     53            Very timing dependent, hard to test.
     54
     55            * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
     56            (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
     57
    1582020-02-14  Russell Epstein  <repstein@apple.com>
    259
  • branches/safari-609-branch/Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm

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