In WebKit2, composited layers don't scroll with the rest of the page.
Created attachment 62217 [details] Patch for some prep work
Comment on attachment 62217 [details] Patch for some prep work http://trac.webkit.org/changeset/63856
I tried the patch at http://pastie.org/1054420 in a Chromium mac build and it appears to work fine - the scrolling repaint pixel tests all pass and the scrolling behavior appears correct when manually tested as well.
Created attachment 62322 [details] More prep work: single bottleneck method
Comment on attachment 62322 [details] More prep work: single bottleneck method http://trac.webkit.org/changeset/63907
Created attachment 62365 [details] Patch
Comment on attachment 62217 [details] Patch for some prep work Cleared Anders Carlsson's review+ from obsolete attachment 62217 [details] so that this bug does not appear in http://webkit.org/pending-commit.
Comment on attachment 62322 [details] More prep work: single bottleneck method Cleared Darin Adler's review+ from obsolete attachment 62322 [details] so that this bug does not appear in http://webkit.org/pending-commit.
Comment on attachment 62365 [details] Patch > diff --git a/WebCore/rendering/RenderLayerCompositor.cpp b/WebCore/rendering/RenderLayerCompositor.cpp > index 234ad7f270191ef8a7ba5870b072d875bf6f7423..14d45927b3ca31cce19bce537343bbd90ccf8553 100644 > --- a/WebCore/rendering/RenderLayerCompositor.cpp > +++ b/WebCore/rendering/RenderLayerCompositor.cpp > -void RenderLayerCompositor::updateContentLayerScrollPosition(const IntPoint& scrollPosition) > +void RenderLayerCompositor::frameViewDidScroll(const IntPoint& scrollPosition) > { > if (m_scrollLayer) > m_scrollLayer->setPosition(FloatPoint(-scrollPosition.x(), -scrollPosition.y())); > @@ -1039,6 +1039,9 @@ bool RenderLayerCompositor::shouldPropagateCompositingToEnclosingIFrame() const > // On non-Mac platforms, let compositing propagate for all iframes. > return true; > #else > + if (!m_renderView->frameView()->platformWidget()) > + return true; > + Could you add a comment about why we check for a null platform widget here? Looks fine otherwise!
http://trac.webkit.org/changeset/64054
http://trac.webkit.org/changeset/64054 might have broken Leopard Intel Debug (Tests) The following changes are on the blame list: http://trac.webkit.org/changeset/64053 http://trac.webkit.org/changeset/64054
This patch broke scrolling in Chromium when there is a fixed position element. Chromium bug: http://code.google.com/p/chromium/issues/detail?id=52332 It seems like we end up missing some invalidates after scrolling.
(In reply to comment #12) > This patch broke scrolling in Chromium when there is a fixed position element. > > Chromium bug: > http://code.google.com/p/chromium/issues/detail?id=52332 > > It seems like we end up missing some invalidates after scrolling. Sounds like bug 42949.