• David Bokan's avatar
    Correct OverflowClipRect() for root scroller · 8c76d127
    David Bokan authored
    When a layout object is the effective root scroller, the
    OverflowClipRect uses the ViewRect rather than computing the padding box
    as usual. This is because the padding box won't expand when the URL bar
    is hidden.
    
    Unfortunately in the root scroller case we forget to set the passed in
    location. This patch adds that so the rect is in the correct coordinate
    space. Additionally, this all works only if the box set as the effective
    root scroller has no border since the OverflowClipRect uses the padding
    box. I've updated the root scroller to ensure the padding box matches
    the viewport rect.
    
    Ideally we'd just return View()->OverflowClipRect - which does remember
    to set the location - in LayoutBox but this could lead to an infinite
    recursion as that calls LayoutBox::OverflowClipRect if the ViewRect is
    empty. Thus, we call ViewRect directly.
    
    Bug: 816161
    Change-Id: I2f622ff0c25e58373955e1d0e22d54e254e134ff
    Reviewed-on: https://chromium-review.googlesource.com/1026517Reviewed-by: default avatarPhilip Rogers <pdr@chromium.org>
    Commit-Queue: David Bokan <bokan@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#553678}
    8c76d127
position-sticky-rect-inside-root-scroller.html 1.43 KB