WebKit Bugzilla
Attachment 356911 Details for
Bug 192537
: REGRESSION(r239010): Breaks fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state.html again (Requested by ap on #webkit).
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
ROLLOUT of r239010
bug-192537-20181208235832.patch (text/plain), 15.22 KB, created by
WebKit Commit Bot
on 2018-12-08 23:58:33 PST
(
hide
)
Description:
ROLLOUT of r239010
Filename:
MIME Type:
Creator:
WebKit Commit Bot
Created:
2018-12-08 23:58:33 PST
Size:
15.22 KB
patch
obsolete
>Subversion Revision: 239017 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 47d8c7b46bba13e2eb1216fa63d42d9d2f439840..df6a5395405f1089743b44d8b1363060e3b5bc96 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,19 @@ >+2018-12-08 Commit Queue <commit-queue@webkit.org> >+ >+ Unreviewed, rolling out r239010. >+ https://bugs.webkit.org/show_bug.cgi?id=192537 >+ >+ Breaks fast/visual-viewport/tiled-drawing/zoomed-fixed- >+ scrolling-layers-state.html again (Requested by ap on >+ #webkit). >+ >+ Reverted changeset: >+ >+ "Allow control over child order when adding nodes to the >+ scrolling tree" >+ https://bugs.webkit.org/show_bug.cgi?id=176914 >+ https://trac.webkit.org/changeset/239010 >+ > 2018-12-08 Eric Carlson <eric.carlson@apple.com> > > [MediaStream] Scaled video frames should be resized in letterbox mode >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 7b3552d9fddc1c380363ae528f478c3cee448d0c..9885513f3d3ae2c43935e4a49a719575f8d1d485 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,19 @@ >+2018-12-08 Commit Queue <commit-queue@webkit.org> >+ >+ Unreviewed, rolling out r239010. >+ https://bugs.webkit.org/show_bug.cgi?id=192537 >+ >+ Breaks fast/visual-viewport/tiled-drawing/zoomed-fixed- >+ scrolling-layers-state.html again (Requested by ap on >+ #webkit). >+ >+ Reverted changeset: >+ >+ "Allow control over child order when adding nodes to the >+ scrolling tree" >+ https://bugs.webkit.org/show_bug.cgi?id=176914 >+ https://trac.webkit.org/changeset/239010 >+ > 2018-12-08 Alex Christensen <achristensen@webkit.org> > > Don't programmatically capitalize safe browsing warning buttons >diff --git a/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp b/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp >index 76e4268a076bbd16784f5c499dff01137300d084..2638826b5076a1d0f1589733cfd983eeab9d9bbc 100644 >--- a/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp >+++ b/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp >@@ -474,10 +474,9 @@ void AsyncScrollingCoordinator::scrollableAreaScrollbarLayerDidChange(Scrollable > scrollableArea.horizontalScrollbarLayerDidChange(); > } > >-ScrollingNodeID AsyncScrollingCoordinator::attachToStateTree(ScrollingNodeType nodeType, ScrollingNodeID newNodeID, ScrollingNodeID parentID, size_t childIndex) >+ScrollingNodeID AsyncScrollingCoordinator::attachToStateTree(ScrollingNodeType nodeType, ScrollingNodeID newNodeID, ScrollingNodeID parentID) > { >- LOG_WITH_STREAM(Scrolling, stream << "AsyncScrollingCoordinator::attachToStateTree " << nodeType << " node " << newNodeID << " parent " << parentID << " index " << childIndex); >- return m_scrollingStateTree->attachNode(nodeType, newNodeID, parentID, childIndex); >+ return m_scrollingStateTree->attachNode(nodeType, newNodeID, parentID); > } > > void AsyncScrollingCoordinator::detachFromStateTree(ScrollingNodeID nodeID) >@@ -510,7 +509,7 @@ void AsyncScrollingCoordinator::ensureRootStateNodeForFrameView(FrameView& frame > // For non-main frames, it is only possible to arrive in this function from > // RenderLayerCompositor::updateBacking where the node has already been created. > ASSERT(frameView.frame().isMainFrame()); >- attachToStateTree(MainFrameScrollingNode, frameView.scrollLayerID(), 0, 0); >+ attachToStateTree(MainFrameScrollingNode, frameView.scrollLayerID(), 0); > } > > void AsyncScrollingCoordinator::updateFrameScrollingNode(ScrollingNodeID nodeID, GraphicsLayer* layer, GraphicsLayer* scrolledContentsLayer, GraphicsLayer* counterScrollingLayer, GraphicsLayer* insetClipLayer, const ScrollingGeometry& scrollingGeometry) >diff --git a/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h b/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h >index 03ae58aa66e06e82046c4e2e813385030f4c2b0b..5d678e400e59928548f38437c74f069cbcdc2fd3 100644 >--- a/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h >+++ b/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h >@@ -97,7 +97,7 @@ private: > > WEBCORE_EXPORT bool requestScrollPositionUpdate(FrameView&, const IntPoint&) override; > >- WEBCORE_EXPORT ScrollingNodeID attachToStateTree(ScrollingNodeType, ScrollingNodeID newNodeID, ScrollingNodeID parentID, size_t childIndex) override; >+ WEBCORE_EXPORT ScrollingNodeID attachToStateTree(ScrollingNodeType, ScrollingNodeID newNodeID, ScrollingNodeID parentID) override; > WEBCORE_EXPORT void detachFromStateTree(ScrollingNodeID) override; > WEBCORE_EXPORT void clearStateTree() override; > >diff --git a/Source/WebCore/page/scrolling/ScrollingCoordinator.h b/Source/WebCore/page/scrolling/ScrollingCoordinator.h >index aa64e95bbc8b47d58c59fffd3dac6a430b5ef04d..53a6918ec2eee69896e8127a475693e0b9e0681f 100644 >--- a/Source/WebCore/page/scrolling/ScrollingCoordinator.h >+++ b/Source/WebCore/page/scrolling/ScrollingCoordinator.h >@@ -164,8 +164,7 @@ public: > virtual void commitTreeStateIfNeeded() { } > virtual bool requestScrollPositionUpdate(FrameView&, const IntPoint&) { return false; } > virtual bool handleWheelEvent(FrameView&, const PlatformWheelEvent&) { return true; } >- virtual ScrollingNodeID attachToStateTree(ScrollingNodeType, ScrollingNodeID newNodeID, ScrollingNodeID /*parentID*/, size_t /*childIndex*/ = notFound) { return newNodeID; } >- >+ virtual ScrollingNodeID attachToStateTree(ScrollingNodeType, ScrollingNodeID newNodeID, ScrollingNodeID /*parentID*/) { return newNodeID; } > virtual void detachFromStateTree(ScrollingNodeID) { } > virtual void clearStateTree() { } > >diff --git a/Source/WebCore/page/scrolling/ScrollingStateNode.cpp b/Source/WebCore/page/scrolling/ScrollingStateNode.cpp >index 03b7ab61c5f7407cf0959cd2c12db20137159691..d9bf7c5e68040c3b47865e4d767cb1513efeca7d 100644 >--- a/Source/WebCore/page/scrolling/ScrollingStateNode.cpp >+++ b/Source/WebCore/page/scrolling/ScrollingStateNode.cpp >@@ -97,26 +97,6 @@ void ScrollingStateNode::appendChild(Ref<ScrollingStateNode>&& childNode) > m_children->append(WTFMove(childNode)); > } > >-void ScrollingStateNode::insertChild(Ref<ScrollingStateNode>&& childNode, size_t index) >-{ >- childNode->setParent(this); >- >- if (!m_children) { >- ASSERT(!index); >- m_children = std::make_unique<Vector<RefPtr<ScrollingStateNode>>>(); >- } >- >- m_children->insert(index, WTFMove(childNode)); >-} >- >-size_t ScrollingStateNode::indexOfChild(ScrollingStateNode& childNode) const >-{ >- if (!m_children) >- return notFound; >- >- return m_children->find(&childNode); >-} >- > void ScrollingStateNode::reconcileLayerPositionForViewportRect(const LayoutRect& viewportRect, ScrollingLayerPositionAction action) > { > if (!m_children) >diff --git a/Source/WebCore/page/scrolling/ScrollingStateNode.h b/Source/WebCore/page/scrolling/ScrollingStateNode.h >index 33908850c110fcfec03a6b97287d7ae606d49f8f..f310487454f4cc41568386e07984b01378790ba9 100644 >--- a/Source/WebCore/page/scrolling/ScrollingStateNode.h >+++ b/Source/WebCore/page/scrolling/ScrollingStateNode.h >@@ -236,9 +236,6 @@ public: > Vector<RefPtr<ScrollingStateNode>>* children() const { return m_children.get(); } > > void appendChild(Ref<ScrollingStateNode>&&); >- void insertChild(Ref<ScrollingStateNode>&&, size_t index); >- >- size_t indexOfChild(ScrollingStateNode&) const; > > String scrollingStateTreeAsText(ScrollingStateTreeAsTextBehavior = ScrollingStateTreeAsTextBehaviorNormal) const; > >diff --git a/Source/WebCore/page/scrolling/ScrollingStateTree.cpp b/Source/WebCore/page/scrolling/ScrollingStateTree.cpp >index 01cbe3e2857ad57c5d580ee7d45932c55a4e85fa..70a95f47e68abf48841dad59f38df5058f5c93cf 100644 >--- a/Source/WebCore/page/scrolling/ScrollingStateTree.cpp >+++ b/Source/WebCore/page/scrolling/ScrollingStateTree.cpp >@@ -82,39 +82,25 @@ Ref<ScrollingStateNode> ScrollingStateTree::createNode(ScrollingNodeType nodeTyp > return ScrollingStateFixedNode::create(*this, nodeID); > } > >-bool ScrollingStateTree::nodeTypeAndParentMatch(ScrollingStateNode& node, ScrollingNodeType nodeType, ScrollingStateNode* parentNode) const >+bool ScrollingStateTree::nodeTypeAndParentMatch(ScrollingStateNode& node, ScrollingNodeType nodeType, ScrollingNodeID parentID) const > { > if (node.nodeType() != nodeType) > return false; > >- return node.parent() == parentNode; >+ auto* parent = stateNodeForID(parentID); >+ if (!parent) >+ return true; >+ >+ return node.parent() == parent; > } > >-ScrollingNodeID ScrollingStateTree::attachNode(ScrollingNodeType nodeType, ScrollingNodeID newNodeID, ScrollingNodeID parentID, size_t childIndex) >+ScrollingNodeID ScrollingStateTree::attachNode(ScrollingNodeType nodeType, ScrollingNodeID newNodeID, ScrollingNodeID parentID) > { > ASSERT(newNodeID); > > if (auto* node = stateNodeForID(newNodeID)) { >- auto* parent = stateNodeForID(parentID); >- if (nodeTypeAndParentMatch(*node, nodeType, parent)) { >- if (!parentID) >- return newNodeID; >- >- size_t currentIndex = parent->indexOfChild(*node); >- if (currentIndex == childIndex) >- return newNodeID; >- >- ASSERT(currentIndex != notFound); >- Ref<ScrollingStateNode> protectedNode(*node); >- parent->children()->remove(currentIndex); >- >- if (childIndex == notFound) >- parent->appendChild(WTFMove(protectedNode)); >- else >- parent->insertChild(WTFMove(protectedNode), childIndex); >- >+ if (nodeTypeAndParentMatch(*node, nodeType, parentID)) > return newNodeID; >- } > > #if ENABLE(ASYNC_SCROLLING) > // If the type has changed, we need to destroy and recreate the node with a new ID. >@@ -128,7 +114,6 @@ ScrollingNodeID ScrollingStateTree::attachNode(ScrollingNodeType nodeType, Scrol > > ScrollingStateNode* newNode = nullptr; > if (!parentID) { >- ASSERT(!childIndex || childIndex == notFound); > // If we're resetting the root node, we should clear the HashMap and destroy the current children. > clear(); > >@@ -137,32 +122,24 @@ ScrollingNodeID ScrollingStateTree::attachNode(ScrollingNodeType nodeType, Scrol > m_hasNewRootStateNode = true; > } else { > auto* parent = stateNodeForID(parentID); >- if (!parent) { >- ASSERT_NOT_REACHED(); >+ if (!parent) > return 0; >- } > > if (nodeType == SubframeScrollingNode && parentID) { > if (auto orphanedNode = m_orphanedSubframeNodes.take(newNodeID)) { > newNode = orphanedNode.get(); >- if (childIndex == notFound) >- parent->appendChild(orphanedNode.releaseNonNull()); >- else >- parent->insertChild(orphanedNode.releaseNonNull(), childIndex); >+ parent->appendChild(orphanedNode.releaseNonNull()); > } > } > > if (!newNode) { > auto stateNode = createNode(nodeType, newNodeID); > newNode = stateNode.ptr(); >- if (childIndex == notFound) >- parent->appendChild(WTFMove(stateNode)); >- else >- parent->insertChild(WTFMove(stateNode), childIndex); >+ parent->appendChild(WTFMove(stateNode)); > } > } > >- addNode(*newNode); >+ m_stateNodeMap.set(newNodeID, newNode); > m_nodesRemovedSinceLastCommit.remove(newNodeID); > return newNodeID; > } >diff --git a/Source/WebCore/page/scrolling/ScrollingStateTree.h b/Source/WebCore/page/scrolling/ScrollingStateTree.h >index 5875586edcef90ac016ba00e2306bec6c14d5b2f..cc9e571abd83b9b07f86703e0a5bb48d689a2235 100644 >--- a/Source/WebCore/page/scrolling/ScrollingStateTree.h >+++ b/Source/WebCore/page/scrolling/ScrollingStateTree.h >@@ -51,7 +51,7 @@ public: > ScrollingStateFrameScrollingNode* rootStateNode() const { return m_rootStateNode.get(); } > WEBCORE_EXPORT ScrollingStateNode* stateNodeForID(ScrollingNodeID) const; > >- WEBCORE_EXPORT ScrollingNodeID attachNode(ScrollingNodeType, ScrollingNodeID, ScrollingNodeID parentID, size_t childIndex); >+ WEBCORE_EXPORT ScrollingNodeID attachNode(ScrollingNodeType, ScrollingNodeID, ScrollingNodeID parentID); > void detachNode(ScrollingNodeID); > void clear(); > >@@ -81,7 +81,7 @@ private: > > Ref<ScrollingStateNode> createNode(ScrollingNodeType, ScrollingNodeID); > >- bool nodeTypeAndParentMatch(ScrollingStateNode&, ScrollingNodeType, ScrollingStateNode* parentNode) const; >+ bool nodeTypeAndParentMatch(ScrollingStateNode&, ScrollingNodeType, ScrollingNodeID parentID) const; > > enum class SubframeNodeRemoval { Delete, Orphan }; > void removeNodeAndAllDescendants(ScrollingStateNode*, SubframeNodeRemoval = SubframeNodeRemoval::Delete); >diff --git a/Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp b/Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp >index 9af089d6f5df9468a82a29523956cbff7f1b2608..8d2d18c096e8bdd4de5759c2215720bae1cea80c 100644 >--- a/Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp >+++ b/Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp >@@ -413,7 +413,7 @@ bool RemoteScrollingCoordinatorTransaction::decode(IPC::Decoder& decoder) > if (!decoder.decode(parentNodeID)) > return false; > >- m_scrollingStateTree->attachNode(nodeType, nodeID, parentNodeID, notFound); // Append new node. >+ m_scrollingStateTree->attachNode(nodeType, nodeID, parentNodeID); > ScrollingStateNode* newNode = m_scrollingStateTree->stateNodeForID(nodeID); > ASSERT(newNode); > ASSERT(!parentNodeID || newNode->parent()); >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 815468930962b1408e572ee20dbe8faf68256df0..8041c3efd86e851fd08e8a1a0833a3630348839c 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,19 @@ >+2018-12-08 Commit Queue <commit-queue@webkit.org> >+ >+ Unreviewed, rolling out r239010. >+ https://bugs.webkit.org/show_bug.cgi?id=192537 >+ >+ Breaks fast/visual-viewport/tiled-drawing/zoomed-fixed- >+ scrolling-layers-state.html again (Requested by ap on >+ #webkit). >+ >+ Reverted changeset: >+ >+ "Allow control over child order when adding nodes to the >+ scrolling tree" >+ https://bugs.webkit.org/show_bug.cgi?id=176914 >+ https://trac.webkit.org/changeset/239010 >+ > 2018-12-08 Eric Carlson <eric.carlson@apple.com> > > [MediaStream] Scaled video frames should be resized in letterbox mode >diff --git a/LayoutTests/platform/mac-wk2/TestExpectations b/LayoutTests/platform/mac-wk2/TestExpectations >index 5811214995c567fd0d4b4365b4260f7b6869505c..ff9b37fac456ae52bb159c669fe0c34cc607c353 100644 >--- a/LayoutTests/platform/mac-wk2/TestExpectations >+++ b/LayoutTests/platform/mac-wk2/TestExpectations >@@ -321,8 +321,6 @@ webkit.org/b/167321 tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-ma > > webkit.org/b/148408 tiled-drawing/scrolling/root-overflow-with-mousewheel.html [ Pass Failure Timeout ] > >-webkit.org/b/192529 fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state.html [ Pass Failure ] >- > webkit.org/b/139820 fast/frames/lots-of-objects.html [ Pass Timeout ] > webkit.org/b/139820 fast/frames/lots-of-iframes.html [ Pass Timeout ] >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 192537
: 356911