[webkit-changes] [WebKit/WebKit] e7e977: [Site Isolation] Connect scrolling trees from main...

Nikos Mouchtaris noreply at github.com
Sat Feb 17 09:04:02 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e7e9773f128b368bf877a9f1481917a7350e9b05
      https://github.com/WebKit/WebKit/commit/e7e9773f128b368bf877a9f1481917a7350e9b05
  Author: Nikolaos Mouchtaris <nmouchtaris at apple.com>
  Date:   2024-02-17 (Sat, 17 Feb 2024)

  Changed paths:
    A LayoutTests/http/tests/site-isolation/scrolling/basic-scrolling-tree-expected.txt
    A LayoutTests/http/tests/site-isolation/scrolling/basic-scrolling-tree.html
    A LayoutTests/http/tests/site-isolation/scrolling/resources/empty-iframe.html
    A LayoutTests/http/tests/site-isolation/scrolling/resources/overflow-scroll-iframe.html
    M LayoutTests/platform/ios/TestExpectations
    M LayoutTests/platform/mac-wk2/TestExpectations
    M Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp
    M Source/WebCore/page/scrolling/ScrollingCoordinator.cpp
    M Source/WebCore/page/scrolling/ScrollingCoordinator.h
    M Source/WebCore/page/scrolling/ScrollingStateTree.cpp
    M Source/WebCore/page/scrolling/ScrollingStateTree.h
    M Source/WebCore/page/scrolling/ScrollingTree.cpp
    M Source/WebCore/page/scrolling/ScrollingTree.h
    M Source/WebCore/page/scrolling/ScrollingTreeFrameHostingNode.cpp
    M Source/WebCore/page/scrolling/ScrollingTreeFrameHostingNode.h
    M Source/WebCore/page/scrolling/ScrollingTreeNode.h
    M Source/WebCore/page/scrolling/ThreadedScrollingCoordinator.cpp
    M Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp
    M Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.h
    M Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.serialization.in
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm

  Log Message:
  -----------
  [Site Isolation] Connect scrolling trees from main process and iframe process
https://bugs.webkit.org/show_bug.cgi?id=268591
rdar://122145583

Reviewed by Simon Fraser.

This is part 2 of splitting up https://github.com/WebKit/WebKit/pull/23242
This connects the scrolling node marked with the hosting id with the root
of a transaction marked with the same id. Since the scrolling state tree
only includes state changes, we need to keep track of all state trees committed
with a host id if we haven't received a commit with the corresponding host id
in the tree.

* LayoutTests/http/tests/site-isolation/scrolling/basic-scrolling-tree-expected.txt: Added.
* LayoutTests/http/tests/site-isolation/scrolling/basic-scrolling-tree.html: Added.
* LayoutTests/http/tests/site-isolation/scrolling/resources/empty-iframe.html: Added.
* LayoutTests/http/tests/site-isolation/scrolling/resources/overflow-scroll-iframe.html: Added.
* LayoutTests/http/tests/site-isolation/scrolling/scrolling-tree-iframe-overflow-expected.txt: Added.
* LayoutTests/http/tests/site-isolation/scrolling/scrolling-tree-iframe-overflow.html: Added.
* Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::createNode):
* Source/WebCore/page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::mainFrameIdentifier const):
* Source/WebCore/page/scrolling/ScrollingCoordinator.h:
* Source/WebCore/page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::ScrollingStateTree):
(WebCore::ScrollingStateTree::insertNode):
* Source/WebCore/page/scrolling/ScrollingStateTree.h:
(WebCore::ScrollingStateTree::frameIdentifier const):
(WebCore::ScrollingStateTree::setFrameIdentifier):
* Source/WebCore/page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::removeNode):
(WebCore::ScrollingTree::commitTreeState):
(WebCore::ScrollingTree::updateTreeFromStateNodeRecursive):
(WebCore::ScrollingTree::removeAllNodes):
(WebCore::ScrollingTree::addScrollingNodeToHostedSubtreeMap):
* Source/WebCore/page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::isScrollingSynchronizedWithMainThread):
(WebCore::ScrollingTree::treeLock):
(WebCore::ScrollingTree::propagateSynchronousScrollingReasons):
(WebCore::ScrollingTree::WTF_REQUIRES_LOCK): Deleted.
(WebCore::ScrollingTree::WTF_RETURNS_LOCK): Deleted.
* Source/WebCore/page/scrolling/ScrollingTreeFrameHostingNode.cpp:
(WebCore::ScrollingTreeFrameHostingNode::setLayerHostingContextIdentifier):
(WebCore::ScrollingTreeFrameHostingNode::removeHostedChildren):
(WebCore::ScrollingTreeFrameHostingNode::willBeDestroyed):
(WebCore::ScrollingTreeFrameHostingNode::dumpProperties const):
* Source/WebCore/page/scrolling/ScrollingTreeFrameHostingNode.h:
(WebCore::ScrollingTreeFrameHostingNode::addHostedChild):
(WebCore::ScrollingTreeFrameHostingNode::setLayerHostingContextIdentifier): Deleted.
* Source/WebCore/page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::dumpProperties const):
* Source/WebCore/page/scrolling/ScrollingTreeNode.h:
(WebCore::ScrollingTreeNode::isRootOfHostedSubtree const):
(WebCore::ScrollingTreeNode::frameIdentifier const):
(WebCore::ScrollingTreeNode::setFrameIdentifier):
* Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::dumpProperties const):
* Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::waitForEventToBeProcessedByMainThread):
(WebCore::ThreadedScrollingTree::waitForRenderingUpdateCompletionOrTimeout):
* Source/WebCore/page/scrolling/ThreadedScrollingTree.h:
(WebCore::ThreadedScrollingTree::treeLock):
(WebCore::ThreadedScrollingTree::WTF_RETURNS_LOCK): Deleted.
(WebCore::ThreadedScrollingTree::WTF_GUARDED_BY_LOCK): Deleted.
* Source/WebCore/page/scrolling/cocoa/ScrollingTreeFixedNodeCocoa.h:
* Source/WebCore/page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.h:
* Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
* Source/WebCore/page/scrolling/mac/ScrollingTreeMac.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
(WebKit::RemoteScrollingCoordinatorTransaction::RemoteScrollingCoordinatorTransaction):
* Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.h:
(WebKit::RemoteScrollingCoordinatorTransaction::RemoteScrollingCoordinatorTransaction):
(WebKit::RemoteScrollingCoordinatorTransaction::frameIdentifier const):
(WebKit::RemoteScrollingCoordinatorTransaction::setFrameIdentifier):
* Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.serialization.in:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTreeTransaction):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::commitScrollingTreeState):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingTree.h:
(WebKit::RemoteScrollingTree::WTF_GUARDED_BY_LOCK): Deleted.
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingTreeMac.h:
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingTreeMac.mm:
(WebKit::RemoteScrollingTreeMac::waitForEventDefaultHandlingCompletion):
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::updateRendering):
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:
(WebKit::RemoteScrollingCoordinator::buildTransaction):

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list