• bokan's avatar
    Fix scroll chaining for non-descendants of root scroller. · bc48cb30
    bokan authored
    This CL fixes the scroll chaining behavior for elements that aren't descendants
    of the root scroller element. This can only happen in the non-document root
    scroller proposal.
    
    On the main thread scrolling path, we were previously assuming that all scrolls
    would chain through the effective root scroller. This CL fixes the terminating
    condition as well as removes an invalid DCHECK.
    
    On the compositor side, the chaining mechanisms would previously use the inner
    viewport scroll layer to designate viewport scrolling. Further on, we would
    explicitly check for the inner viewport layer and scroll using cc::Viewport.
    When scrolling a non-descendant of the root scroller, we chain up to the inner
    viewport scroll layer without going through the outer viewport. Scrolling
    cc::Viewport causes scrolling in the outer viewport though so we would scroll
    it inadvertaintly.  I've made changes so that we use the outer viewport to
    designate cc::Viewport scrolling. Scrolls will terminate at the outer viewport
    scroll layer, but they don't have to chain through it.
    
    Unrelated, but I also removed LayerImpl::ApplyScroll as it's unused.
    
    BUG=505516
    CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel
    
    Review-Url: https://codereview.chromium.org/2365793002
    Cr-Commit-Position: refs/heads/master@{#420763}
    bc48cb30
layer_tree_host_impl_unittest.cc 462 KB