[Webkit-unassigned] [Bug 84965] New: [chromium] Composited fixed-position elements are wrongly positioned when scroll position is restored from history
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Apr 26 08:10:33 PDT 2012
https://bugs.webkit.org/show_bug.cgi?id=84965
Summary: [chromium] Composited fixed-position elements are
wrongly positioned when scroll position is restored
from history
Product: WebKit
Version: 528+ (Nightly build)
Platform: Unspecified
OS/Version: Unspecified
Status: NEW
Severity: Normal
Priority: P2
Component: Layout and Rendering
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: husky at google.com
Forked off from https://bugs.webkit.org/show_bug.cgi?id=70103 because it's a bug in existing code.
Steps to reproduce:
- Open any page
- Open another page with a composited fixed-position element (e.g. one with a 3D transform)
- Scroll down
- Go back to the previous page
- Go forward
The scroll position is restored, but the fixed-position element will be in the wrong place. When you scroll further it pops back to the correct position.
I think this is because the scroll position is restored while we're inside FrameView::layout(), and updateFixedElementsAfterScrolling() looks like this:
void FrameView::updateFixedElementsAfterScrolling()
{
#if USE(ACCELERATED_COMPOSITING)
if (!m_nestedLayoutCount && hasFixedObjects()) {
if (RenderView* root = rootRenderer(this)) {
root->compositor()->updateCompositingLayers(CompositingUpdateOnScroll);
}
}
#endif
}
m_nestedLayoutCount is 1, so we don't call updateCompositingLayers().
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list