https://bugs.webkit.org/show_bug.cgi?id=98968
REGRESSION: Unable to scroll with trackpad on some websites after 
r130783

Reviewed by Simon Fraser.

This bug seems to reproduce mostly on web pages that require login. 
The re-routing causes extra churn of the RenderLayerBacking, and we 
end up destroying and re-creating the backing and therefore the 
ScrollingStateNodes, and when the timing is just wrong we get into a 
state where the ScrollingTree has a set of incorrect information. 
This patch fixes the bug by making sure the ScrollingStateNodes keep 
the ScrollingTree in synch with their re-set data.

Tell the ScrollingStateTree that the root layer has changed.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):

New virtual function will set every property as having changed.
* page/scrolling/ScrollingStateNode.h:
(WebCore::ScrollingStateNode::setHasChangedProperties):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::setHasChangedProperties):
(WebCore):
* page/scrolling/ScrollingStateScrollingNode.h:

When the root layer changes, make sure we update the ScrollingTree 
appropriately by indicating that every property could have changed.
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::rootLayerDidChange):
(WebCore):
* page/scrolling/ScrollingStateTree.h:
(ScrollingStateTree):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130989 268f45cc-cd09-0410-ab3c-d52691b4dbfc
7 files changed