Changeset 243120 in webkit


Ignore:
Timestamp:
Mar 18, 2019 5:33:16 PM (5 years ago)
Author:
Simon Fraser
Message:

Crash when reloading test with async overflow scrolling
https://bugs.webkit.org/show_bug.cgi?id=195629
<rdar://problem/48814045>

Reviewed by Antoine Quint.

RenderLayerCompositor::removeFromScrollCoordinatedLayers needs to pass the Positioning
bit to make sure we remove RenderLayers added m_scrollingNodeToLayerMap for Positioning
scrolling nodes.

Fixes crashes seen in compositing/clipping/border-radius-async-overflow-non-stacking.html
and scrollingcoordinator/scrolling-tree/remove-coordinated-frame.html.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::~RenderLayerBacking):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::removeFromScrollCoordinatedLayers):

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r243119 r243120  
     12019-03-18  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Crash when reloading test with async overflow scrolling
     4        https://bugs.webkit.org/show_bug.cgi?id=195629
     5        <rdar://problem/48814045>
     6
     7        Reviewed by Antoine Quint.
     8
     9        RenderLayerCompositor::removeFromScrollCoordinatedLayers needs to pass the Positioning
     10        bit to make sure we remove RenderLayers added m_scrollingNodeToLayerMap for Positioning
     11        scrolling nodes.
     12
     13        Fixes crashes seen in compositing/clipping/border-radius-async-overflow-non-stacking.html
     14        and scrollingcoordinator/scrolling-tree/remove-coordinated-frame.html.
     15
     16        * rendering/RenderLayerBacking.cpp:
     17        (WebCore::RenderLayerBacking::~RenderLayerBacking):
     18        * rendering/RenderLayerCompositor.cpp:
     19        (WebCore::RenderLayerCompositor::removeFromScrollCoordinatedLayers):
     20
    1212019-03-18  Devin Rousso  <drousso@apple.com>
    222
  • trunk/Source/WebCore/rendering/RenderLayerBacking.cpp

    r243096 r243120  
    251251    ASSERT(!m_scrollingNodeID);
    252252    ASSERT(!m_frameHostingNodeID);
     253    ASSERT(!m_positioningNodeID);
    253254
    254255    destroyGraphicsLayers();
  • trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp

    r242997 r243120  
    38063806#endif
    38073807
    3808     detachScrollCoordinatedLayer(layer, { ScrollCoordinationRole::Scrolling, ScrollCoordinationRole::ViewportConstrained, ScrollCoordinationRole::FrameHosting });
     3808    detachScrollCoordinatedLayer(layer, { ScrollCoordinationRole::Scrolling, ScrollCoordinationRole::ViewportConstrained, ScrollCoordinationRole::FrameHosting, ScrollCoordinationRole::Positioning });
    38093809}
    38103810
Note: See TracChangeset for help on using the changeset viewer.