Register scrolling layers with ScrollingCoordinator
https://bugs.webkit.org/show_bug.cgi?id=78862

Patch by Sami Kyostila <skyostil@google.com> on 2012-09-04
Reviewed by James Robinson.

In order to allow scrollable child layers to be scrolled off the main
thread, register them with the ScrollingCoordinator. These layers are
also removed from the non-fast scrollable region.

Whenever the scroll offset or other scroll geometry related attribute of
a compositor scrolled layer changes, the ScrollingCoordinator is
informed to allow it to update its internal representation of the
scrollable layer.

No tests because the ScrollingCoordinator is currently not testable.

* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::computeNonFastScrollableRegion): Composited scrolling layers
can be scrolled off the main thread.
(WebCore):
(WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
Callback to ScrollingCoordinator about changes the composited scrolling layers.
* page/scrolling/ScrollingCoordinator.h:
(WebCore):
(ScrollingCoordinator):
* page/scrolling/ScrollingCoordinatorNone.cpp:
(WebCore):
(WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
* platform/ScrollableArea.h:
(WebCore::ScrollableArea::usesCompositedScrolling):
* rendering/RenderLayer.cpp:
(WebCore):
(WebCore::RenderLayer::usesCompositedScrolling):
* rendering/RenderLayer.h:
(RenderLayer):
(WebCore::RenderLayer::usesCompositedScrolling):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::updateScrollingLayers):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::scrollingLayerDidChange):
(WebCore):
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127480 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/platform/ScrollableArea.h b/Source/WebCore/platform/ScrollableArea.h
index 721ec32..ce255b1 100644
--- a/Source/WebCore/platform/ScrollableArea.h
+++ b/Source/WebCore/platform/ScrollableArea.h
@@ -169,6 +169,7 @@
 
 #if USE(ACCELERATED_COMPOSITING)
     virtual TiledBacking* tiledBacking() { return 0; }
+    virtual bool usesCompositedScrolling() const { return false; }
 #endif
 
 protected: