[Webkit-unassigned] [Bug 84979] New: Infinite backgroundClipRect should not be scrolled.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Apr 26 11:37:00 PDT 2012


https://bugs.webkit.org/show_bug.cgi?id=84979

           Summary: Infinite backgroundClipRect should not be scrolled.
           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: shawnsingh at chromium.org
                CC: enne at google.com


It is possible for the backgroundClipRect to be an infinite rect  (equal to PaintInfo::InfiniteRect()).

However, in RenderLayer::backgroundClipRect() this backgroundClipRect is being scrolled when it is fixed position on the root layer.  By scrolling the backgroundClipRect, it no longer equals PaintInfo::InfiniteRect() and later in the code, goes through incorrect code paths where that rect is not considered infinite.  As a result, chromium was receiving overflowed bounds on some layers which caused stuttering when scrolling fixed-position layers.  (for example, 2011.beercamp.com)

For now, the correct fix is to avoid scrolling a rect that is considered to be infinite.   A better solution in the long term is to robustify the semantics of infinite rects so that moving them will not change them, since they are already infinite.  However, this requires pervading all clipRects / layoutRects / IntRects with the notion of being infinite.

I have the fix, just need to create a layout test before submitting a patch!

-- 
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