Title: [156200] trunk/Source/WebCore
- Revision
- 156200
- Author
- [email protected]
- Date
- 2013-09-20 14:47:38 -0700 (Fri, 20 Sep 2013)
Log Message
Ensure that TileController tile coverage is updated on scrolling even when we don't have scrollbars
https://bugs.webkit.org/show_bug.cgi?id=121700
<rdar://problem/15030589>
Reviewed by Dean Jackson.
r155660 introduced a bug where we wouldn't make scrollbars on long pages. However,
that revealed a fundamental flaw in the TiledBacking update logic; it relied on the
GraphicsLayer flushes triggered by scrollbars updates in order to update the main
TileController's tile coverage. No scrollbars meant no tile coverage updates.
Fix by explicitly triggering a flush when the FrameView is scrolled (we get
notified about this on the main thread after the scrolling thread has moved
layers around).
No test since this will only be exposed for a short time while scrollbars are
broken.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::frameViewDidScroll):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (156199 => 156200)
--- trunk/Source/WebCore/ChangeLog 2013-09-20 21:17:43 UTC (rev 156199)
+++ trunk/Source/WebCore/ChangeLog 2013-09-20 21:47:38 UTC (rev 156200)
@@ -1,3 +1,26 @@
+2013-09-20 Simon Fraser <[email protected]>
+
+ Ensure that TileController tile coverage is updated on scrolling even when we don't have scrollbars
+ https://bugs.webkit.org/show_bug.cgi?id=121700
+ <rdar://problem/15030589>
+
+ Reviewed by Dean Jackson.
+
+ r155660 introduced a bug where we wouldn't make scrollbars on long pages. However,
+ that revealed a fundamental flaw in the TiledBacking update logic; it relied on the
+ GraphicsLayer flushes triggered by scrollbars updates in order to update the main
+ TileController's tile coverage. No scrollbars meant no tile coverage updates.
+
+ Fix by explicitly triggering a flush when the FrameView is scrolled (we get
+ notified about this on the main thread after the scrolling thread has moved
+ layers around).
+
+ No test since this will only be exposed for a short time while scrollbars are
+ broken.
+
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::frameViewDidScroll):
+
2013-09-20 Zoltan Horvath <[email protected]>
Refactoring LineBreaker and RenderTextInfo out of RenderBlock.h
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (156199 => 156200)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2013-09-20 21:17:43 UTC (rev 156199)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2013-09-20 21:47:38 UTC (rev 156200)
@@ -1319,8 +1319,11 @@
// If there's a scrolling coordinator that manages scrolling for this frame view,
// it will also manage updating the scroll layer position.
- if (hasCoordinatedScrolling())
+ if (hasCoordinatedScrolling()) {
+ // We have to schedule a flush in order for the main TiledBacking to update its tile coverage.
+ scheduleLayerFlushNow();
return;
+ }
FrameView& frameView = m_renderView.frameView();
IntPoint scrollPosition = frameView.scrollPosition();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes