Title: [108392] trunk/Source/WebCore
Revision
108392
Author
[email protected]
Date
2012-02-21 13:39:00 -0800 (Tue, 21 Feb 2012)

Log Message

ScrollingCoordinator::coordinatesScrollingForFrameView should be conditional on compositing being active
https://bugs.webkit.org/show_bug.cgi?id=79126

Reviewed by Anders Carlsson.

The ScrollingCoordinator should only attempt to coordinate scrolling when compositing is active, since it's all
about manipulating GraphicsLayers. Adds a runtime check.

Also removes some stray #if ENABLE(THREADED_SCROLLING) guards that snuck into FrameView.

* page/FrameView.cpp:
(WebCore::FrameView::addFixedObject):
(WebCore::FrameView::removeFixedObject):
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::coordinatesScrollingForFrameView):
(WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (108391 => 108392)


--- trunk/Source/WebCore/ChangeLog	2012-02-21 21:35:38 UTC (rev 108391)
+++ trunk/Source/WebCore/ChangeLog	2012-02-21 21:39:00 UTC (rev 108392)
@@ -1,5 +1,24 @@
 2012-02-21  James Robinson  <[email protected]>
 
+        ScrollingCoordinator::coordinatesScrollingForFrameView should be conditional on compositing being active
+        https://bugs.webkit.org/show_bug.cgi?id=79126
+
+        Reviewed by Anders Carlsson.
+
+        The ScrollingCoordinator should only attempt to coordinate scrolling when compositing is active, since it's all
+        about manipulating GraphicsLayers. Adds a runtime check.
+
+        Also removes some stray #if ENABLE(THREADED_SCROLLING) guards that snuck into FrameView.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::addFixedObject):
+        (WebCore::FrameView::removeFixedObject):
+        * page/scrolling/ScrollingCoordinator.cpp:
+        (WebCore::ScrollingCoordinator::coordinatesScrollingForFrameView):
+        (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
+
+2012-02-21  James Robinson  <[email protected]>
+
         Chromium build fix. Unreviwed but rubber-stamped by Antti.
 
         * dom/Document.cpp:

Modified: trunk/Source/WebCore/page/FrameView.cpp (108391 => 108392)


--- trunk/Source/WebCore/page/FrameView.cpp	2012-02-21 21:35:38 UTC (rev 108391)
+++ trunk/Source/WebCore/page/FrameView.cpp	2012-02-21 21:39:00 UTC (rev 108392)
@@ -1337,12 +1337,10 @@
         if (platformWidget())
             updateCanBlitOnScrollRecursively();
 
-#if ENABLE(THREADED_SCROLLING)
         if (Page* page = m_frame->page()) {
             if (ScrollingCoordinator* scrollingCoordinator = page->scrollingCoordinator())
                 scrollingCoordinator->frameViewHasFixedObjectsDidChange(this);
         }
-#endif
     }
 }
 
@@ -1352,12 +1350,10 @@
     --m_fixedObjectCount;
 
     if (!m_fixedObjectCount) {
-#if ENABLE(THREADED_SCROLLING)
         if (Page* page = m_frame->page()) {
             if (ScrollingCoordinator* scrollingCoordinator = page->scrollingCoordinator())
                 scrollingCoordinator->frameViewHasFixedObjectsDidChange(this);
         }
-#endif
 
         // FIXME: In addFixedObject() we only call this if there's a platform widget,
         // why isn't the same check being made here?

Modified: trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp (108391 => 108392)


--- trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp	2012-02-21 21:35:38 UTC (rev 108391)
+++ trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp	2012-02-21 21:39:00 UTC (rev 108392)
@@ -99,7 +99,15 @@
     if (frameView->frame() != m_page->mainFrame())
         return false;
 
-    return true;
+    // We currently only support composited mode.
+#if USE(ACCELERATED_COMPOSITING)
+    RenderView* renderView = m_page->mainFrame()->contentRenderer();
+    if (!renderView)
+        return false;
+    return renderView->usesCompositing();
+#endif
+
+    return false;
 }
 
 static Region computeNonFastScrollableRegion(FrameView* frameView)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to