Changeset 240609 in webkit


Ignore:
Timestamp:
Jan 28, 2019 4:14:58 PM (5 years ago)
Author:
Simon Fraser
Message:

css3/filters/blur-filter-page-scroll-self.html crashes under WebCore::ScrollingStateNode::ScrollingStateNode
https://bugs.webkit.org/show_bug.cgi?id=193925

Reviewed by Tim Horton.

Some css3/filters/ tests disable accelerated compositing (which is crazy). Make these
tests not crash by ensuring that unparentNode() and unparentChildrenAndDestroyNode() clears the root
node if it's the node being unparented or destroyed.

Tested by existing tests.

  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::ScrollingStateTree::unparentNode):
(WebCore::ScrollingStateTree::unparentChildrenAndDestroyNode):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r240604 r240609  
     12019-01-28  Simon Fraser  <simon.fraser@apple.com>
     2
     3        css3/filters/blur-filter-page-scroll-self.html crashes under WebCore::ScrollingStateNode::ScrollingStateNode
     4        https://bugs.webkit.org/show_bug.cgi?id=193925
     5
     6        Reviewed by Tim Horton.
     7
     8        Some css3/filters/ tests disable accelerated compositing (which is crazy). Make these
     9        tests not crash by ensuring that unparentNode() and unparentChildrenAndDestroyNode() clears the root
     10        node if it's the node being unparented or destroyed.
     11
     12        Tested by existing tests.
     13
     14        * page/scrolling/ScrollingStateTree.cpp:
     15        (WebCore::ScrollingStateTree::unparentNode):
     16        (WebCore::ScrollingStateTree::unparentChildrenAndDestroyNode):
     17
    1182019-01-28  Daniel Bates  <dabates@apple.com>
    219
  • trunk/Source/WebCore/page/scrolling/ScrollingStateTree.cpp

    r240553 r240609  
    205205        return;
    206206
     207    if (protectedNode == m_rootStateNode)
     208        m_rootStateNode = nullptr;
     209
    207210    protectedNode->removeFromParent();
    208211    m_unparentedNodes.add(nodeID, WTFMove(protectedNode));
     
    220223    if (!protectedNode)
    221224        return;
     225
     226    if (protectedNode == m_rootStateNode)
     227        m_rootStateNode = nullptr;
    222228
    223229    if (auto* children = protectedNode->children()) {
Note: See TracChangeset for help on using the changeset viewer.