[webkit-changes] [WebKit/WebKit] d65209: Cherry-pick 259548.75 at safari-7615-branch (22b0e734...

Simon Fraser noreply at github.com
Mon Apr 3 11:00:39 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d65209dce0af0b475ef0ccbba83948d513fdcb75
      https://github.com/WebKit/WebKit/commit/d65209dce0af0b475ef0ccbba83948d513fdcb75
  Author: Simon Fraser <simon.fraser at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    M Source/WebCore/page/scrolling/ScrollingTree.cpp
    M Source/WebCore/page/scrolling/ScrollingTree.h
    M Source/WebCore/page/scrolling/ScrollingTreeFixedNode.cpp
    M Source/WebCore/page/scrolling/ScrollingTreeFixedNode.h
    M Source/WebCore/page/scrolling/ScrollingTreeFrameHostingNode.cpp
    M Source/WebCore/page/scrolling/ScrollingTreeFrameHostingNode.h
    M Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.cpp
    M Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.h
    M Source/WebCore/page/scrolling/ScrollingTreeNode.h
    M Source/WebCore/page/scrolling/ScrollingTreeOverflowScrollProxyNode.cpp
    M Source/WebCore/page/scrolling/ScrollingTreeOverflowScrollProxyNode.h
    M Source/WebCore/page/scrolling/ScrollingTreePositionedNode.cpp
    M Source/WebCore/page/scrolling/ScrollingTreePositionedNode.h
    M Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp
    M Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h
    M Source/WebCore/page/scrolling/ScrollingTreeStickyNode.cpp
    M Source/WebCore/page/scrolling/ScrollingTreeStickyNode.h
    M Source/WebCore/page/scrolling/cocoa/ScrollingTreeFixedNodeCocoa.h
    M Source/WebCore/page/scrolling/cocoa/ScrollingTreeFixedNodeCocoa.mm
    M Source/WebCore/page/scrolling/cocoa/ScrollingTreeOverflowScrollProxyNodeCocoa.h
    M Source/WebCore/page/scrolling/cocoa/ScrollingTreeOverflowScrollProxyNodeCocoa.mm
    M Source/WebCore/page/scrolling/cocoa/ScrollingTreePositionedNodeCocoa.h
    M Source/WebCore/page/scrolling/cocoa/ScrollingTreePositionedNodeCocoa.mm
    M Source/WebCore/page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.h
    M Source/WebCore/page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.mm
    M Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h
    M Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm
    M Source/WebCore/page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h
    M Source/WebCore/page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeFixedNodeNicosia.cpp
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeFixedNodeNicosia.h
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollProxyNodeNicosia.cpp
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollProxyNodeNicosia.h
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreePositionedNodeNicosia.cpp
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreePositionedNodeNicosia.h
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeStickyNodeNicosia.cpp
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeStickyNodeNicosia.h
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp
    M Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.h
    M Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.h
    M Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp
    M Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.h
    M Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.cpp
    M Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.h

  Log Message:
  -----------
  Cherry-pick 259548.75 at safari-7615-branch (22b0e73428bb). rdar://107499524

    [CoreIPC] Type confusion bug in ScrollingTree::updateTreeFromStateNodeRecursive
    https://bugs.webkit.org/show_bug.cgi?id=251969
    rdar://102603165

    Reviewed by Ryosuke Niwa.

    Make sure we type-check before all the downcast<> calls in code under scrolling tree commits.
    If a type-check fails, MESSAGE_CHECK in RemoteScrollingCoordinatorProxy::commitScrollingTree().

    commitStateBeforeChildren() and commitStateAfterChildren() on all the scrolling tree node classes
    now return bool, indicating success or failure.

    * Source/WebCore/page/scrolling/ScrollingTree.cpp:
    (WebCore::ScrollingTree::commitTreeState):
    (WebCore::ScrollingTree::updateTreeFromStateNodeRecursive):
    * Source/WebCore/page/scrolling/ScrollingTree.h:
    * Source/WebCore/page/scrolling/ScrollingTreeFixedNode.cpp:
    (WebCore::ScrollingTreeFixedNode::commitStateBeforeChildren):
    * Source/WebCore/page/scrolling/ScrollingTreeFixedNode.h:
    * Source/WebCore/page/scrolling/ScrollingTreeFrameHostingNode.cpp:
    (WebCore::ScrollingTreeFrameHostingNode::commitStateBeforeChildren):
    * Source/WebCore/page/scrolling/ScrollingTreeFrameHostingNode.h:
    * Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
    (WebCore::ScrollingTreeFrameScrollingNode::commitStateBeforeChildren):
    * Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.h:
    * Source/WebCore/page/scrolling/ScrollingTreeNode.h:
    (WebCore::ScrollingTreeNode::commitStateAfterChildren):
    * Source/WebCore/page/scrolling/ScrollingTreeOverflowScrollProxyNode.cpp:
    (WebCore::ScrollingTreeOverflowScrollProxyNode::commitStateBeforeChildren):
    * Source/WebCore/page/scrolling/ScrollingTreeOverflowScrollProxyNode.h:
    * Source/WebCore/page/scrolling/ScrollingTreePositionedNode.cpp:
    (WebCore::ScrollingTreePositionedNode::commitStateBeforeChildren):
    * Source/WebCore/page/scrolling/ScrollingTreePositionedNode.h:
    * Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp:
    (WebCore::ScrollingTreeScrollingNode::commitStateBeforeChildren):
    (WebCore::ScrollingTreeScrollingNode::commitStateAfterChildren):
    * Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h:
    * Source/WebCore/page/scrolling/ScrollingTreeStickyNode.cpp:
    (WebCore::ScrollingTreeStickyNode::commitStateBeforeChildren):
    * Source/WebCore/page/scrolling/ScrollingTreeStickyNode.h:
    * Source/WebCore/page/scrolling/cocoa/ScrollingTreeFixedNodeCocoa.h:
    * Source/WebCore/page/scrolling/cocoa/ScrollingTreeFixedNodeCocoa.mm:
    (WebCore::ScrollingTreeFixedNodeCocoa::commitStateBeforeChildren):
    * Source/WebCore/page/scrolling/cocoa/ScrollingTreeOverflowScrollProxyNodeCocoa.h:
    * Source/WebCore/page/scrolling/cocoa/ScrollingTreeOverflowScrollProxyNodeCocoa.mm:
    (WebCore::ScrollingTreeOverflowScrollProxyNodeCocoa::commitStateBeforeChildren):
    * Source/WebCore/page/scrolling/cocoa/ScrollingTreePositionedNodeCocoa.h:
    * Source/WebCore/page/scrolling/cocoa/ScrollingTreePositionedNodeCocoa.mm:
    (WebCore::ScrollingTreePositionedNodeCocoa::commitStateBeforeChildren):
    * Source/WebCore/page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.h:
    * Source/WebCore/page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.mm:
    (WebCore::ScrollingTreeStickyNodeCocoa::commitStateBeforeChildren):
    * Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
    * Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
    (WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren):
    (WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateAfterChildren):
    * Source/WebCore/page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
    * Source/WebCore/page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:
    (WebCore::ScrollingTreeOverflowScrollingNodeMac::commitStateBeforeChildren):
    * Source/WebCore/page/scrolling/nicosia/ScrollingTreeFixedNodeNicosia.cpp:
    (WebCore::ScrollingTreeFixedNodeNicosia::commitStateBeforeChildren):
    * Source/WebCore/page/scrolling/nicosia/ScrollingTreeFixedNodeNicosia.h:
    * Source/WebCore/page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:
    (WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateBeforeChildren):
    * Source/WebCore/page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
    * Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollProxyNodeNicosia.cpp:
    (WebCore::ScrollingTreeOverflowScrollProxyNodeNicosia::commitStateBeforeChildren):
    * Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollProxyNodeNicosia.h:
    * Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:
    (WebCore::ScrollingTreeOverflowScrollingNodeNicosia::commitStateBeforeChildren):
    * Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
    * Source/WebCore/page/scrolling/nicosia/ScrollingTreePositionedNodeNicosia.cpp:
    (WebCore::ScrollingTreePositionedNodeNicosia::commitStateBeforeChildren):
    * Source/WebCore/page/scrolling/nicosia/ScrollingTreePositionedNodeNicosia.h:
    * Source/WebCore/page/scrolling/nicosia/ScrollingTreeStickyNodeNicosia.cpp:
    (WebCore::ScrollingTreeStickyNodeNicosia::commitStateBeforeChildren):
    * Source/WebCore/page/scrolling/nicosia/ScrollingTreeStickyNodeNicosia.h:
    * Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
    (WebKit::RemoteScrollingCoordinatorProxy::commitScrollingTreeState):
    * Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.h:
    * Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:
    (WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateBeforeChildren):
    (WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateAfterChildren):
    * Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
    * Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
    (WebKit::ScrollingTreeOverflowScrollingNodeIOS::commitStateBeforeChildren):
    (WebKit::ScrollingTreeOverflowScrollingNodeIOS::commitStateAfterChildren):
    * Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp:
    (WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::commitStateBeforeChildren):
    * Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.h:
    * Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.cpp:
    (WebKit::ScrollingTreeOverflowScrollingNodeRemoteMac::commitStateBeforeChildren):
    * Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.h:

    Canonical link: https://commits.webkit.org/259548.75@safari-7615-branch

Canonical link: https://commits.webkit.org/262517@main




More information about the webkit-changes mailing list